Workflow n8n

Automatisation Zendesk avec n8n : gestion des tickets Slack

Ce workflow n8n a pour objectif d'automatiser la gestion des tickets Zendesk en intégrant des notifications sur Slack. Dans un contexte où les équipes de support client doivent répondre rapidement aux demandes, ce workflow permet de recevoir des alertes en temps réel dès qu'un nouveau ticket est créé sur Zendesk. Lorsqu'un ticket arrive, le workflow se déclenche via un webhook, ce qui permet de récupérer les détails du ticket grâce au nœud 'Get ticket'. Ensuite, une condition est vérifiée pour déterminer si le ticket nécessite une réponse immédiate. Si c'est le cas, un message est posté dans un canal Slack via le nœud 'Create thread', informant l'équipe du nouveau ticket. Si le ticket est déjà en cours de traitement, une réponse est ajoutée à la conversation existante avec le nœud 'Create reply on existing thread'. Ce processus assure une communication fluide entre les équipes et améliore la réactivité face aux demandes des clients. En utilisant ce workflow, les entreprises peuvent réduire le temps de réponse et améliorer la satisfaction client, tout en optimisant la gestion de leurs tickets. Tags clés : automatisation, Zendesk, Slack.

Catégorie: Webhook · Tags: automatisation, Zendesk, Slack, workflow, support client0

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 ticket

    Ce noeud récupère un ticket depuis Zendesk en utilisant son identifiant.

  • IF

    Ce noeud évalue des conditions pour déterminer le chemin à suivre dans le workflow.

  • Update ticket

    Ce noeud met à jour un ticket existant dans Zendesk avec les champs spécifiés.

  • On new Zendesk ticket

    Ce noeud déclenche le workflow lorsqu'un nouveau ticket est créé dans Zendesk.

  • Create thread

    Ce noeud crée un nouveau fil de discussion sur Slack avec le texte et les options spécifiés.

  • Create reply on existing thread

    Ce noeud répond à un fil de discussion existant sur Slack avec le texte et les options fournis.

  • Configure

    Ce noeud configure des valeurs et options pour être utilisées dans le workflow.

  • Note

    Ce noeud crée une note autocollante avec le contenu spécifié, ainsi que sa largeur et sa hauteur.

  • Code

    Ce noeud exécute un code JavaScript personnalisé pour traiter des données ou effectuer des actions spécifiques.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "237600ca44303ce91fa31ee72babcdc8493f55ee2c0e8aa2b78b3b4ce6f70bd9"
  },
  "nodes": [
    {
      "id": "b220e0c7-3c34-4221-8fee-11c133a5345b",
      "name": "Get ticket",
      "type": "n8n-nodes-base.zendesk",
      "position": [
        740,
        540
      ],
      "parameters": {
        "id": "={{$node[\"On new Zendesk ticket\"].json[\"body\"][\"id\"]}}",
        "operation": "get"
      },
      "credentials": {
        "zendeskApi": {
          "id": "24",
          "name": "[UPDATE ME]"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e58834a7-1a94-429f-a50c-2e27293c32a0",
      "name": "IF",
      "type": "n8n-nodes-base.if",
      "position": [
        1140,
        540
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$node[\"Determine\"].json[\"Slack Thread ID\"]}}",
              "operation": "isNotEmpty"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c6f82ab9-54f4-4f91-a4d9-018739c6519d",
      "name": "Update ticket",
      "type": "n8n-nodes-base.zendesk",
      "notes": "Update the Zendesk ticket by adding the Jira issue key to the \"Jira Issue Key\" field.",
      "position": [
        1540,
        640
      ],
      "parameters": {
        "id": "={{$node[\"On new Zendesk ticket\"].json[\"body\"][\"id\"]}}",
        "operation": "update",
        "updateFields": {
          "customFieldsUi": {
            "customFieldsValues": [
              {
                "id": 7022397804317,
                "value": "={{$node[\"Create thread\"].json[\"ts\"]}}"
              }
            ]
          }
        }
      },
      "credentials": {
        "zendeskApi": {
          "id": "24",
          "name": "[UPDATE ME]"
        }
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "74d93ba5-d82d-4cc4-a177-bd86dbc18534",
      "name": "On new Zendesk ticket",
      "type": "n8n-nodes-base.webhook",
      "position": [
        540,
        540
      ],
      "webhookId": "b7845b15-0a44-4be5-b513-f4f4bb8989a6",
      "parameters": {
        "path": "b7845b15-0a44-4be5-b513-f4f4bb8989a6",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 1
    },
    {
      "id": "65d387cd-5c7a-4567-9a3c-9fa033f98ac9",
      "name": "Create thread",
      "type": "n8n-nodes-base.slack",
      "position": [
        1340,
        640
      ],
      "parameters": {
        "text": "={{$node[\"Get ticket\"].json[\"subject\"]}}",
        "channel": "={{$node[\"Configure\"].parameter[\"values\"][\"string\"][0][\"value\"]}}",
        "attachments": [],
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "28",
          "name": "[UPDATE ME]"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "50f5aa84-70bc-4b08-a9cc-576fbed72636",
      "name": "Create reply on existing thread",
      "type": "n8n-nodes-base.slack",
      "position": [
        1340,
        440
      ],
      "parameters": {
        "text": "={{$node[\"On new Zendesk ticket\"].json[\"body\"][\"comment\"]}}",
        "channel": "={{$node[\"Configure\"].parameter[\"values\"][\"string\"][0][\"value\"]}}",
        "attachments": [],
        "otherOptions": {
          "thread_ts": "={{$node[\"Determine\"].json[\"Slack Thread ID\"]}}"
        },
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "28",
          "name": "[UPDATE ME]"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6d5e8df0-4b0b-487c-81be-93359976dd90",
      "name": "Configure",
      "type": "n8n-nodes-base.set",
      "position": [
        540,
        360
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "Slack channel",
              "value": "#zendesk-updates"
            }
          ]
        },
        "options": {
          "dotNotation": false
        }
      },
      "typeVersion": 1
    },
    {
      "id": "934b95bb-2ffa-40a4-a2ca-02cfd646dd78",
      "name": "Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -20,
        360
      ],
      "parameters": {
        "width": 469.4813676974197,
        "height": 268.2900466166276,
        "content": "## Sync Zendesk tickets to Slack threads\n### Setup\n1. Add your [Zendesk credential](https://docs.n8n.io/integrations/builtin/credentials/zendesk/) to the `Get ticket` and `Update ticket` nodes.\n2. Add your [Slack credential](https://docs.n8n.io/integrations/builtin/credentials/slack/) to `Create Thread` and `Create reply on existing thread` nodes.\n3. Open `Configure` node and change \"Slack channel\" value to your slack channel (like #zendesk-updates).\n4. Activate the workflow so it runs automatically each time a Zendesk ticket is created."
      },
      "typeVersion": 1
    },
    {
      "id": "b582f7ff-7cc6-48dc-89fc-bc8bde13b06e",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "notes": "if thread was created already in Slack",
      "position": [
        940,
        540
      ],
      "parameters": {
        "jsCode": "/* configure here =========================================================== */\n/*  Zendesk field ID which represents the \"Slack Thread ID\" field.\n*/\nconst ISSUE_KEY_FIELD_ID = 7022397804317;\n\n/* ========================================================================== */\nnew_items = [];\n\nfor (item of $items(\"Get ticket\")) {\n    \n    // instantiate a new variable for status\n    var custom_fields = item.json[\"custom_fields\"];\n    var slack_thread_id = \"\";\n    for (var i = 0; i < custom_fields.length; i++) {\n        if (custom_fields[i].id == ISSUE_KEY_FIELD_ID) {\n            slack_thread_id = custom_fields[i].value;\n            break;\n        }\n    }\n\n    // push the new item to the new_items array\n    new_items.push({\n        \"Slack Thread ID\": slack_thread_id\n    });\n}\n\nreturn new_items;"
      },
      "notesInFlow": true,
      "typeVersion": 1
    }
  ],
  "connections": {
    "IF": {
      "main": [
        [
          {
            "node": "Create reply on existing thread",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create thread",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "IF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get ticket": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create thread": {
      "main": [
        [
          {
            "node": "Update ticket",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On new Zendesk ticket": {
      "main": [
        [
          {
            "node": "Get ticket",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Pour qui est ce workflow ?

Ce workflow s'adresse aux équipes de support client et aux responsables de la gestion des tickets dans les entreprises utilisant Zendesk. Il est idéal pour les organisations de taille moyenne à grande qui cherchent à améliorer leur réactivité et leur efficacité dans le traitement des demandes clients.

Problème résolu

Ce workflow résout le problème de la lenteur dans le traitement des tickets de support. En automatisant les notifications sur Slack, il élimine le risque de manquer des tickets importants et permet aux équipes de réagir rapidement. Les utilisateurs bénéficient d'une meilleure organisation et d'une communication améliorée, ce qui se traduit par une satisfaction client accrue et une réduction des délais de réponse.

Étapes du workflow

Étape 1 : Le workflow est déclenché par un webhook lorsque un nouveau ticket est créé sur Zendesk. Étape 2 : Les détails du ticket sont récupérés via le nœud 'Get ticket'. Étape 3 : Une condition est vérifiée pour déterminer si le ticket nécessite une attention immédiate. Étape 4 : Si oui, un message est créé dans Slack avec le nœud 'Create thread'. Étape 5 : Si le ticket est déjà en cours, une réponse est ajoutée à la conversation existante avec le nœud 'Create reply on existing thread'. Étape 6 : Des notes peuvent être ajoutées pour le suivi avec le nœud 'Note'.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, vous pouvez modifier le chemin du webhook dans le nœud 'On new Zendesk ticket' pour l'adapter à votre configuration. Assurez-vous également de spécifier le canal Slack dans les nœuds 'Create thread' et 'Create reply on existing thread'. Vous pouvez ajuster les conditions dans le nœud 'IF' pour répondre à vos critères spécifiques. Enfin, n'hésitez pas à ajouter d'autres services n8n si vous souhaitez enrichir le flux, comme des notifications par email ou des intégrations avec d'autres outils de gestion.