Workflow n8n

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.

Catégorie: Scheduled · Tags: automatisation, Zendesk, Pipedrive, workflow, n8n0

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

  • Get last execution timestamp

    Ce noeud récupère le dernier timestamp d'exécution.

  • Set new last execution timestamp

    Ce noeud met à jour le timestamp d'exécution avec la nouvelle valeur.

  • Get tickets created after last execution

    Ce noeud récupère les tickets créés après le dernier timestamp d'exécution.

  • Get requester information

    Ce noeud obtient les informations du demandeur à partir d'un ticket Zendesk.

  • Keep only needed requester information

    Ce noeud filtre les informations du demandeur pour ne conserver que celles nécessaires.

  • Keep only requester owner email

    Ce noeud extrait uniquement l'email du propriétaire du demandeur.

  • Every 5 minutes

    Ce noeud déclenche le workflow toutes les 5 minutes.

  • Add requester information to ticket data

    Ce noeud ajoute les informations du demandeur aux données du ticket.

  • Search requester in pipedrive

    Ce noeud recherche le demandeur dans Pipedrive.

  • Get owner information of Pipedrive contact

    Ce noeud récupère les informations du propriétaire d'un contact Pipedrive.

  • Get agents and admins

    Ce noeud obtient la liste des agents et administrateurs de Zendesk.

  • Keep only email and Id

    Ce noeud conserve uniquement l'email et l'ID des données.

  • Add Pipedrive agent data to pipedrive contact information

    Ce noeud ajoute les données de l'agent Pipedrive aux informations du contact Pipedrive.

  • Add contact owner to ticket data

    Ce noeud ajoute le propriétaire du contact aux données du ticket.

  • Contact exists in Pipedrive

    Ce noeud vérifie si le contact existe dans Pipedrive.

  • Change assignee to Pipedrive contact owner

    Ce noeud change l'assignation du ticket au propriétaire du contact Pipedrive.

  • Add a note requester not found

    Ce noeud ajoute une note indiquant que le demandeur n'a pas été trouvé.

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.