Automatisation Zendesk avec n8n : gestion des tickets en temps réel
Ce workflow n8n a pour objectif d'automatiser la gestion des tickets dans Zendesk en intégrant des informations provenant de Pipedrive. Dans un contexte où la réactivité est cruciale, ce processus permet aux équipes de support de mieux gérer les demandes des clients en synchronisant les données des tickets avec les informations des contacts dans Pipedrive. Par exemple, lorsqu'un nouveau ticket est créé, le workflow déclenche une série d'actions pour récupérer les informations du demandeur, vérifier son existence dans Pipedrive et mettre à jour le ticket en conséquence. Étape 1 : Le workflow commence par un déclencheur programmé qui s'exécute toutes les 5 minutes, permettant une mise à jour régulière des tickets. Étape 2 : Il récupère les tickets créés après la dernière exécution, puis obtient les informations du demandeur pour chaque ticket. Étape 3 : Les données du demandeur sont filtrées pour ne conserver que les informations nécessaires, comme l'email. Étape 4 : Le workflow recherche ensuite le demandeur dans Pipedrive pour vérifier son existence et obtenir des informations supplémentaires. Si le contact existe, l'assignation du ticket est mise à jour pour refléter le propriétaire du contact dans Pipedrive. Si le contact n'est pas trouvé, une note est ajoutée au ticket pour indiquer cette situation. Les bénéfices de cette automatisation n8n incluent une réduction significative du temps de réponse aux tickets, une meilleure gestion des informations clients et une augmentation de la satisfaction client. En intégrant ces systèmes, les équipes peuvent se concentrer sur des tâches à plus forte valeur ajoutée tout en minimisant les erreurs humaines. Tags clés : automatisation, Zendesk, Pipedrive.
Vue d'ensemble du workflow n8n
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Détail des nœuds du workflow n8n
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"meta": {
"instanceId": "237600ca44303ce91fa31ee72babcdc8493f55ee2c0e8aa2b78b3b4ce6f70bd9"
},
"nodes": [
{
"id": "9d40c0b9-498f-421c-b731-3a387402b69a",
"name": "Get last execution timestamp",
"type": "n8n-nodes-base.functionItem",
"position": [
380,
360
],
"parameters": {
"functionCode": "// Code here will run once per input item.\n// More info and help: https://docs.n8n.io/nodes/n8n-nodes-base.functionItem\n// Tip: You can use luxon for dates and $jmespath for querying JSON structures\n\n// Add a new field called 'myNewField' to the JSON of the item\nconst staticData = getWorkflowStaticData('global');\n\nif(!staticData.lastExecution){\n staticData.lastExecution = new Date().getTime();\n}\n\nitem.executionTimeStamp = new Date().getTime();\nitem.lastExecution = staticData.lastExecution;\n\n\nreturn item;"
},
"typeVersion": 1
},
{
"id": "ddb12f68-1f6b-41fb-bfd4-038697ce4d75",
"name": "Set new last execution timestamp",
"type": "n8n-nodes-base.functionItem",
"position": [
3280,
380
],
"parameters": {
"functionCode": "// Code here will run once per input item.\n// More info and help: https://docs.n8n.io/nodes/n8n-nodes-base.functionItem\n// Tip: You can use luxon for dates and $jmespath for querying JSON structures\n\n// Add a new field called 'myNewField' to the JSON of the item\nconst staticData = getWorkflowStaticData('global');\n\nstaticData.lastExecution = $item(0).$node[\"Get last execution timestamp\"].executionTimeStamp;\n\nreturn item;"
},
"executeOnce": true,
"typeVersion": 1
},
{
"id": "42888df0-1f7e-4990-87b3-3226a474110e",
"name": "Get tickets created after last execution",
"type": "n8n-nodes-base.zendesk",
"position": [
620,
360
],
"parameters": {
"options": {
"query": "=created>{{ $json[\"lastExecution\"] }}",
"sortBy": "updated_at",
"sortOrder": "desc"
},
"operation": "getAll"
},
"credentials": {
"zendeskApi": {
"id": "5",
"name": "Zendesk account"
}
},
"typeVersion": 1
},
{
"id": "2f0f71f6-3d4c-4895-9313-7f47e3b2ed86",
"name": "Get requester information",
"type": "n8n-nodes-base.zendesk",
"position": [
840,
460
],
"parameters": {
"id": "={{ $json[\"requester_id\"] }}",
"resource": "user",
"operation": "get"
},
"credentials": {
"zendeskApi": {
"id": "5",
"name": "Zendesk account"
}
},
"typeVersion": 1
},
{
"id": "284fd54b-bd7b-4fbb-8a14-0c4fa62a3200",
"name": "Keep only needed requester information",
"type": "n8n-nodes-base.set",
"position": [
1060,
460
],
"parameters": {
"values": {
"number": [
{
"name": "requester_id",
"value": "={{ $json[\"id\"] }}"
}
],
"string": [
{
"name": "requester_email",
"value": "={{ $json[\"email\"] }}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"id": "17c3b860-60cb-4885-b503-9086b461bde0",
"name": "Keep only requester owner email",
"type": "n8n-nodes-base.set",
"position": [
2000,
480
],
"parameters": {
"values": {
"string": [
{
"name": "requester_pipedrive_email",
"value": "={{ $node[\"Search requester in pipedrive\"].json[\"primary_email\"] }}"
},
{
"name": "requester_pipedrive_owner_email",
"value": "={{ $json[\"data\"].email }}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"id": "a4ccf1d7-5d9f-4c4e-a5b9-c54ed77c5c44",
"name": "Every 5 minutes",
"type": "n8n-nodes-base.cron",
"position": [
160,
360
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyX",
"unit": "minutes",
"value": 5
}
]
}
},
"typeVersion": 1
},
{
"id": "99fb51d8-0d93-4db9-868d-757046d1bdc2",
"name": "Add requester information to ticket data",
"type": "n8n-nodes-base.merge",
"position": [
1280,
380
],
"parameters": {
"mode": "mergeByKey",
"propertyName1": "requester_id",
"propertyName2": "requester_id"
},
"typeVersion": 1
},
{
"id": "a4c7acd0-b2b6-48bb-b7b7-d2826ddb1f9d",
"name": "Search requester in pipedrive",
"type": "n8n-nodes-base.pipedrive",
"position": [
1560,
480
],
"parameters": {
"term": "={{ $json[\"requester_email\"] }}",
"resource": "person",
"operation": "search",
"additionalFields": {
"fields": "email"
}
},
"credentials": {
"pipedriveApi": {
"id": "1",
"name": "Pipedrive account"
}
},
"typeVersion": 1
},
{
"id": "7a8a3bf3-9f57-40ad-a31f-45522264f101",
"name": "Get owner information of Pipedrive contact",
"type": "n8n-nodes-base.httpRequest",
"position": [
1780,
480
],
"parameters": {
"url": "=https://n8n.pipedrive.com/api/v1/users/{{$json[\"owner\"][\"id\"]}}",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "pipedriveApi"
},
"credentials": {
"pipedriveApi": {
"id": "1",
"name": "Pipedrive account"
}
},
"typeVersion": 2
},
{
"id": "64a7fc0c-ddb4-4d84-86a6-3e9bd361ce46",
"name": "Get agents and admins",
"type": "n8n-nodes-base.zendesk",
"position": [
1780,
700
],
"parameters": {
"filters": {
"role": [
"agent",
"admin"
]
},
"resource": "user",
"operation": "getAll",
"returnAll": true
},
"credentials": {
"zendeskApi": {
"id": "5",
"name": "Zendesk account"
}
},
"typeVersion": 1
},
{
"id": "0117d5f8-e9b2-46c9-9777-7ae82e002cc2",
"name": "Keep only email and Id",
"type": "n8n-nodes-base.set",
"position": [
2000,
700
],
"parameters": {
"values": {
"string": [
{
"name": "agent_email",
"value": "={{ $json[\"email\"] }}"
},
{
"name": "agent_id",
"value": "={{ $json[\"id\"] }}"
}
]
},
"options": {},
"keepOnlySet": true
},
"typeVersion": 1
},
{
"id": "eaa7b072-0499-4b3a-96af-433d3afc12f9",
"name": "Add Pipedrive agent data to pipedrive contact information",
"type": "n8n-nodes-base.merge",
"position": [
2280,
500
],
"parameters": {
"mode": "mergeByKey",
"propertyName1": "requester_pipedrive_owner_email",
"propertyName2": "agent_email"
},
"typeVersion": 1
},
{
"id": "b9619e3d-c951-47ae-bbb5-db50e7ae5abe",
"name": "Add contact owner to ticket data",
"type": "n8n-nodes-base.merge",
"position": [
2540,
400
],
"parameters": {
"mode": "mergeByKey",
"propertyName1": "requester_email",
"propertyName2": "requester_pipedrive_email"
},
"typeVersion": 1
},
{
"id": "14f88f5f-2bab-42f2-bea7-a7566e6d45b1",
"name": "Contact exists in Pipedrive",
"type": "n8n-nodes-base.if",
"position": [
2760,
400
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json[\"agent_id\"] }}",
"operation": "isNotEmpty"
}
]
}
},
"typeVersion": 1
},
{
"id": "38da1ccc-3d23-41cd-84b3-6fc249aedca5",
"name": "Change assignee to Pipedrive contact owner",
"type": "n8n-nodes-base.zendesk",
"position": [
3020,
380
],
"parameters": {
"id": "={{ $json[\"id\"] }}",
"operation": "update",
"updateFields": {
"assigneeEmail": "={{$json[\"requester_pipedrive_owner_email\"]}}"
}
},
"credentials": {
"zendeskApi": {
"id": "5",
"name": "Zendesk account"
}
},
"typeVersion": 1
},
{
"id": "4295e0e2-88e8-4f93-8432-47fff452cfc5",
"name": "Add a note requester not found",
"type": "n8n-nodes-base.zendesk",
"position": [
3020,
580
],
"parameters": {
"id": "={{ $json[\"id\"] }}",
"operation": "update",
"updateFields": {
"internalNote": "Requester not found in Pipedrive"
}
},
"credentials": {
"zendeskApi": {
"id": "5",
"name": "Zendesk account"
}
},
"typeVersion": 1
}
],
"connections": {
"Every 5 minutes": {
"main": [
[
{
"node": "Get last execution timestamp",
"type": "main",
"index": 0
}
]
]
},
"Get agents and admins": {
"main": [
[
{
"node": "Keep only email and Id",
"type": "main",
"index": 0
}
]
]
},
"Keep only email and Id": {
"main": [
[
{
"node": "Add Pipedrive agent data to pipedrive contact information",
"type": "main",
"index": 1
}
]
]
},
"Get requester information": {
"main": [
[
{
"node": "Keep only needed requester information",
"type": "main",
"index": 0
}
]
]
},
"Contact exists in Pipedrive": {
"main": [
[
{
"node": "Change assignee to Pipedrive contact owner",
"type": "main",
"index": 0
}
],
[
{
"node": "Add a note requester not found",
"type": "main",
"index": 0
}
]
]
},
"Get last execution timestamp": {
"main": [
[
{
"node": "Get tickets created after last execution",
"type": "main",
"index": 0
}
]
]
},
"Search requester in pipedrive": {
"main": [
[
{
"node": "Get owner information of Pipedrive contact",
"type": "main",
"index": 0
}
]
]
},
"Add a note requester not found": {
"main": [
[
{
"node": "Set new last execution timestamp",
"type": "main",
"index": 0
}
]
]
},
"Keep only requester owner email": {
"main": [
[
{
"node": "Add Pipedrive agent data to pipedrive contact information",
"type": "main",
"index": 0
}
]
]
},
"Add contact owner to ticket data": {
"main": [
[
{
"node": "Contact exists in Pipedrive",
"type": "main",
"index": 0
}
]
]
},
"Keep only needed requester information": {
"main": [
[
{
"node": "Add requester information to ticket data",
"type": "main",
"index": 1
}
]
]
},
"Add requester information to ticket data": {
"main": [
[
{
"node": "Search requester in pipedrive",
"type": "main",
"index": 0
},
{
"node": "Add contact owner to ticket data",
"type": "main",
"index": 0
}
]
]
},
"Get tickets created after last execution": {
"main": [
[
{
"node": "Add requester information to ticket data",
"type": "main",
"index": 0
},
{
"node": "Get requester information",
"type": "main",
"index": 0
}
]
]
},
"Change assignee to Pipedrive contact owner": {
"main": [
[
{
"node": "Set new last execution timestamp",
"type": "main",
"index": 0
}
]
]
},
"Get owner information of Pipedrive contact": {
"main": [
[
{
"node": "Keep only requester owner email",
"type": "main",
"index": 0
}
]
]
},
"Add Pipedrive agent data to pipedrive contact information": {
"main": [
[
{
"node": "Add contact owner to ticket data",
"type": "main",
"index": 1
}
]
]
}
}
}Pour qui est ce workflow ?
Ce workflow s'adresse aux équipes de support client et aux responsables de la gestion des tickets dans des entreprises utilisant Zendesk et Pipedrive. Il est particulièrement adapté aux PME et aux startups qui cherchent à optimiser leurs processus de gestion des demandes clients sans nécessiter de compétences techniques avancées.
Problème résolu
Ce workflow résout le problème de la gestion manuelle des tickets en automatisant la synchronisation des informations entre Zendesk et Pipedrive. Cela permet d'éliminer les frustrations liées aux erreurs de saisie et aux délais de réponse prolongés. En automatisant ces processus, les utilisateurs peuvent s'assurer que chaque ticket est traité rapidement et efficacement, ce qui améliore l'expérience client et réduit le risque de perte de données.
Étapes du workflow
Étape 1 : Le déclencheur programmé s'exécute toutes les 5 minutes. Étape 2 : Le workflow récupère les tickets créés après la dernière exécution. Étape 3 : Les informations du demandeur sont obtenues pour chaque ticket. Étape 4 : Les données sont filtrées pour ne conserver que l'email et l'ID du demandeur. Étape 5 : Le workflow recherche le demandeur dans Pipedrive. Étape 6 : Si le contact existe, le propriétaire du contact est assigné au ticket. Étape 7 : Si le contact n'est pas trouvé, une note est ajoutée au ticket.
Guide de personnalisation du workflow n8n
Pour personnaliser ce workflow, vous pouvez modifier l'URL de l'API Zendesk et les paramètres de connexion à Pipedrive selon vos besoins. Assurez-vous d'ajuster les filtres de recherche pour correspondre à votre structure de données. Vous pouvez également changer la fréquence d'exécution du déclencheur programmé si nécessaire. Pour une meilleure sécurité, pensez à configurer des autorisations d'accès appropriées pour les intégrations API et à surveiller régulièrement les logs d'exécution pour détecter d'éventuelles anomalies.