The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"versionId": "1.0.0",
"createdAt": "2025-09-29T07:07:52.261447",
"updatedAt": "2025-09-29T07:07:52.261454",
"owner": "n8n-user",
"license": "MIT",
"category": "automation",
"status": "active",
"priority": "high",
"environment": "production"
},
"nodes": [
{
"id": "94fc73af-a35d-4d5c-a192-6190d2a731ff",
"name": "Keep only UserId and email",
"type": "n8n-nodes-base.set",
"position": [
1200,
260
],
"parameters": {
"values": {
"number": [
{
"name": "ZendeskUserId",
"value": "={{ $json[\"id\"] }}"
}
],
"string": [
{
"name": "ZendeskEmail",
"value": "={{ $json[\"email\"] }}"
},
{
"name": "ZendeskPhone",
"value": "={{ $json[\"phone\"] }}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1,
"notes": "This set node performs automated tasks as part of the workflow."
},
{
"id": "6decc852-d5b9-40c4-b51e-832283637027",
"name": "User exists in Zendesk",
"type": "n8n-nodes-base.if",
"position": [
1660,
140
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{ $json[\"ZendeskUserId\"] }}",
"operation": "isNotEmpty"
}
]
}
},
"typeVersion": 1,
"notes": "This if node performs automated tasks as part of the workflow."
},
{
"id": "70fa2ad7-c43c-4d22-ba6d-89495f8b5794",
"name": "Add Zendesk contact Id to Shopify data",
"type": "n8n-nodes-base.merge",
"position": [
1420,
140
],
"parameters": {
"mode": "mergeByKey",
"propertyName1": "email",
"propertyName2": "ZendeskEmail"
},
"typeVersion": 1,
"notes": "This merge node performs automated tasks as part of the workflow."
},
{
"id": "346d3e04-433c-4b43-868f-729d3ee67ee2",
"name": "On customer updated",
"type": "n8n-nodes-base.shopifyTrigger",
"position": [
740,
120
],
"parameters": {
"topic": "customers/update"
},
"credentials": {
"shopifyApi": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"notes": "This shopifyTrigger node performs automated tasks as part of the workflow."
},
{
"id": "a2ff1fa3-d67a-4abb-94ae-f22cad7de359",
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
2160,
180
],
"parameters": {},
"typeVersion": 1,
"notes": "This noOp node performs automated tasks as part of the workflow."
},
{
"id": "41418930-0898-4602-88a3-cf4238f32890",
"name": "Contact data is modified",
"type": "n8n-nodes-base.if",
"position": [
1940,
80
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json[\"phone\"] }}",
"value2": "={{ $json[\"ZendeskPhone\"] }}",
"operation": "notEqual"
}
]
}
},
"typeVersion": 1,
"notes": "This if node performs automated tasks as part of the workflow."
},
{
"id": "ee1791fb-eaa0-4829-af3b-e72d7b3e80d5",
"name": "Create contact in Zendesk",
"type": "n8n-nodes-base.zendesk",
"position": [
1940,
240
],
"parameters": {
"name": "={{ $json[\"first_name\"] }} {{ $json[\"last_name\"] }}",
"resource": "user",
"additionalFields": {
"email": "={{ $json[\"email\"] }}",
"phone": "={{ $json[\"phone\"] ?? ' ' }}"
}
},
"credentials": {
"zendeskApi": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"notes": "This zendesk node performs automated tasks as part of the workflow."
},
{
"id": "67dc85c6-39af-43cc-951e-bcfd31b73e46",
"name": "Update contact in Zendesk",
"type": "n8n-nodes-base.zendesk",
"position": [
2160,
-20
],
"parameters": {
"id": "={{ $json[\"ZendeskUserId\"] }}",
"resource": "user",
"operation": "update",
"updateFields": {
"phone": "={{ $json[\"phone\"] ?? 0}}"
}
},
"credentials": {
"zendeskApi": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"notes": "This zendesk node performs automated tasks as part of the workflow."
},
{
"id": "9ab30a51-e599-4361-b170-b18b9d4021cb",
"name": "Search contact by email adress",
"type": "n8n-nodes-base.zendesk",
"position": [
1000,
260
],
"parameters": {
"limit": 1,
"filters": {
"query": "={{ $json[\"email\"] }}"
},
"resource": "user",
"operation": "search"
},
"credentials": {
"zendeskApi": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"alwaysOutputData": true,
"notes": "This zendesk node performs automated tasks as part of the workflow."
},
{
"id": "error-868de6c6",
"name": "Error Handler",
"type": "n8n-nodes-base.stopAndError",
"typeVersion": 1,
"position": [
1000,
400
],
"parameters": {
"message": "Workflow execution error",
"options": {}
}
}
],
"connections": {},
"name": "Set Workflow",
"description": "Automated workflow: Set Workflow. This workflow processes data and performs automated tasks.",
"settings": {
"executionOrder": "v1",
"saveManualExecutions": true,
"callerPolicy": "workflowsFromSameOwner",
"errorWorkflow": null,
"timezone": "UTC",
"executionTimeout": 3600,
"maxExecutions": 1000,
"retryOnFail": true,
"retryCount": 3,
"retryDelay": 1000
},
"notes": "Excellent quality workflow: Set Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation.",
"id": "wf38bad1a7ce80"
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
klickTippApitypeformApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
Leads from Typeform quiz submissions are automatically captured and processed to subscribe new contacts to your KlickTipp email list, enriching them with relevant tags based on quiz responses for personalised follow-up campaigns. This workflow suits marketing teams or lead generation specialists who run interactive quizzes to segment audiences without manual data entry, saving hours on list management. The key step involves splitting out the Typeform tags, defining an array of them, and merging with existing KlickTipp tags to ensure seamless integration and avoid duplicates.
Use this workflow when you need real-time automation for quiz-driven lead nurturing, especially for e-commerce or educational businesses relying on KlickTipp for CRM. Avoid it if your quizzes are low-volume or if you require complex AI-driven scoring, as it focuses on straightforward tagging. Common variations include adding conditional branches for different quiz outcomes or integrating with Slack for instant notifications on high-value leads.
About this workflow
Set Workflow. Uses n8n-nodes-klicktipp, typeformTrigger, stickyNote, splitOut. Event-driven trigger; 15 nodes.
Source: https://github.com/Zie619/n8n-workflows/blob/main/workflows/Aggregate/0697_Aggregate_Typeform_Create_Triggered.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Klicktipp Workflow. Uses n8n-nodes-klicktipp, jotFormTrigger, stickyNote, splitOut. Event-driven trigger; 15 nodes.
Aggregate Typeform. Uses n8n-nodes-klicktipp, typeformTrigger, stickyNote, splitOut. Event-driven trigger; 14 nodes.
Get Product Feedback. Uses typeformTrigger, airtable, trello, stopAndError. Event-driven trigger; 7 nodes.
Aggregate Jotform. Uses n8n-nodes-klicktipp, jotFormTrigger, stickyNote, splitOut. Event-driven trigger; 14 nodes.
Get Product Feedback. Uses typeformTrigger, airtable, trello, noOp. Event-driven trigger; 6 nodes.