This workflow corresponds to n8n.io template #1808 — we link there as the canonical source.
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 →
{
"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
},
{
"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
},
{
"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
},
{
"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
},
{
"id": "a2ff1fa3-d67a-4abb-94ae-f22cad7de359",
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
2160,
180
],
"parameters": {},
"typeVersion": 1
},
{
"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
},
{
"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
},
{
"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
},
{
"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
}
],
"connections": {
"On customer updated": {
"main": [
[
{
"node": "Add Zendesk contact Id to Shopify data",
"type": "main",
"index": 0
},
{
"node": "Search contact by email adress",
"type": "main",
"index": 0
}
]
]
},
"User exists in Zendesk": {
"main": [
[
{
"node": "Contact data is modified",
"type": "main",
"index": 0
}
],
[
{
"node": "Create contact in Zendesk",
"type": "main",
"index": 0
}
]
]
},
"Contact data is modified": {
"main": [
[
{
"node": "Update contact in Zendesk",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Keep only UserId and email": {
"main": [
[
{
"node": "Add Zendesk contact Id to Shopify data",
"type": "main",
"index": 1
}
]
]
},
"Search contact by email adress": {
"main": [
[
{
"node": "Keep only UserId and email",
"type": "main",
"index": 0
}
]
]
},
"Add Zendesk contact Id to Shopify data": {
"main": [
[
{
"node": "User exists in Zendesk",
"type": "main",
"index": 0
}
]
]
}
}
}
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.
shopifyApizendeskApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automatically syncs Shopify orders with your Zendesk contacts. Using this workflow, the Shopify email ID, phone number ID and order information will be added or updated to Zendesk contacts. Shopify account and Shopify credentials Zendesk account and Zendesk…
Source: https://n8n.io/workflows/1808/ — 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.
Shopify Zendesk. Uses shopifyTrigger, noOp, zendesk. Event-driven trigger; 9 nodes.
Shopify Zendesk. Uses shopifyTrigger, noOp, zendesk. Event-driven trigger; 7 nodes.
This workflow automatically syncs Shopify orders with your Zendesk tickets. Using this workflow, Shopify orders will be added or have their information updated straight to your Zendesk tickets. Shopif
Shopify + Mautic. Uses shopifyTrigger, noOp, mautic, crypto. Event-driven trigger; 26 nodes.
Having a seamless flow of customer data between your online store and your marketing platform is essential.