Workflow n8n

Automatisation Zendesk avec n8n : création de tâches Asana

Ce workflow n8n a pour objectif d'automatiser la gestion des tickets Zendesk en créant des tâches correspondantes dans Asana. Dans un contexte où la réactivité et l'organisation sont essentielles, ce processus permet aux équipes de support de mieux gérer les demandes des clients tout en assurant un suivi efficace des tâches à réaliser. Par exemple, lorsqu'un nouveau ticket est créé dans Zendesk, ce workflow se déclenche automatiquement pour créer une tâche dans Asana, garantissant ainsi que chaque demande est traitée en temps voulu. Le déroulé de l'automatisation commence avec un déclencheur de type Webhook, qui s'active dès qu'un nouveau ticket est reçu dans Zendesk. Ensuite, le workflow utilise le nœud 'Get ticket' pour récupérer les détails du ticket, suivi d'une étape où une tâche est créée dans Asana grâce au nœud 'Create task'. Une condition est ensuite vérifiée avec le nœud 'IF' pour déterminer si des actions supplémentaires sont nécessaires. Si c'est le cas, le workflow peut mettre à jour le ticket dans Zendesk ou ajouter un commentaire à la tâche existante dans Asana. Les bénéfices business de ce workflow sont multiples : il réduit le temps de réponse aux clients, améliore la collaboration entre les équipes et assure un suivi rigoureux des tâches. En intégrant Zendesk et Asana via ce workflow n8n, les entreprises peuvent optimiser leur processus de gestion des tickets et améliorer leur service client. Tags clés : automatisation, Zendesk, Asana.

Catégorie: Webhook · Tags: automatisation, Zendesk, Asana, 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 ticket

    Ce noeud récupère un ticket depuis Zendesk en fonction de l'identifiant fourni.

  • Create task

    Ce noeud crée une nouvelle tâche dans Asana avec les propriétés spécifiées.

  • 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 en fonction des champs de mise à jour fournis.

  • Determine

    Ce noeud exécute une fonction personnalisée pour traiter des données selon le code fourni.

  • Create comment on existing task

    Ce noeud ajoute un commentaire à une tâche existante dans Asana avec le texte spécifié.

  • On new Zendesk ticket

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

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "237600ca44303ce91fa31ee72babcdc8493f55ee2c0e8aa2b78b3b4ce6f70bd9"
  },
  "nodes": [
    {
      "id": "1c041974-2a1f-4464-be3e-70b8a700f40d",
      "name": "Get ticket",
      "type": "n8n-nodes-base.zendesk",
      "position": [
        460,
        480
      ],
      "parameters": {
        "id": "={{$node[\"On new Zendesk ticket\"].json[\"body\"][\"id\"]}}",
        "operation": "get"
      },
      "credentials": {
        "zendeskApi": {
          "id": "24",
          "name": "[UPDATE ME]"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a4a05b2a-2382-44af-8226-a2c60bee1ce3",
      "name": "Create task",
      "type": "n8n-nodes-base.asana",
      "position": [
        1000,
        580
      ],
      "parameters": {
        "name": "={{$node[\"Get ticket\"].json[\"subject\"]}}",
        "workspace": "1177253494675264",
        "otherProperties": {
          "assignee": "1202718619090236",
          "assignee_status": "inbox"
        }
      },
      "credentials": {
        "asanaApi": {
          "id": "8",
          "name": "[UPDATE ME]"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "55128ee9-9210-4341-bf9a-2e4ea415b668",
      "name": "IF",
      "type": "n8n-nodes-base.if",
      "position": [
        820,
        480
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$node[\"Determine\"].json[\"Asana GID\"]}}",
              "operation": "isNotEmpty"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6319045c-7df8-4031-b738-835f8fe12d06",
      "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": [
        1180,
        580
      ],
      "parameters": {
        "id": "={{$node[\"On new Zendesk ticket\"].json[\"body\"][\"id\"]}}",
        "operation": "update",
        "updateFields": {
          "customFieldsUi": {
            "customFieldsValues": [
              {
                "id": 6707064637597,
                "value": "={{$node[\"Create task\"].json[\"gid\"]}}"
              }
            ]
          }
        }
      },
      "credentials": {
        "zendeskApi": {
          "id": "24",
          "name": "[UPDATE ME]"
        }
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "39172e43-def7-4e05-9ce3-6d0bb1c3ff59",
      "name": "Determine",
      "type": "n8n-nodes-base.function",
      "notes": "if issue was created already in Jira",
      "position": [
        640,
        480
      ],
      "parameters": {
        "functionCode": "/* configure here =========================================================== */\n/*  Zendesk field ID which represents the \"Jira Issue Key\" field.\n*/\nconst ISSUE_KEY_FIELD_ID = 6707064637597;\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 asana_gid = \"\";\n    for (var i = 0; i < custom_fields.length; i++) {\n        if (custom_fields[i].id == ISSUE_KEY_FIELD_ID) {\n            asana_gid = custom_fields[i].value;\n            break;\n        }\n    }\n\n    // push the new item to the new_items array\n    new_items.push({\n        \"Asana GID\": asana_gid\n    });\n}\n\nreturn new_items;"
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "26f2aaf3-8b21-429f-bfec-c5876792d4b9",
      "name": "Create comment on existing task",
      "type": "n8n-nodes-base.asana",
      "position": [
        1000,
        380
      ],
      "parameters": {
        "id": "={{$node[\"Determine\"].json[\"Asana GID\"]}}",
        "text": "=<body>{{$node[\"On new Zendesk ticket\"].json[\"body\"][\"comment\"]}}</body>",
        "resource": "taskComment",
        "isTextHtml": true,
        "additionalFields": {}
      },
      "credentials": {
        "asanaApi": {
          "id": "8",
          "name": "[UPDATE ME]"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "bbbf0fc1-3fa7-4a15-a949-c8d9d5e32031",
      "name": "On new Zendesk ticket",
      "type": "n8n-nodes-base.webhook",
      "position": [
        280,
        480
      ],
      "webhookId": "4637a853-0b3a-43d4-9d76-92e1ce87889d",
      "parameters": {
        "path": "4637a853-0b3a-43d4-9d76-92e1ce87889d",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "IF": {
      "main": [
        [
          {
            "node": "Create comment on existing task",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Determine": {
      "main": [
        [
          {
            "node": "IF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get ticket": {
      "main": [
        [
          {
            "node": "Determine",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create task": {
      "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 projets dans les entreprises utilisant Zendesk et Asana. Il est idéal pour les organisations de taille moyenne à grande qui cherchent à améliorer leur efficacité opérationnelle et à automatiser leurs processus de gestion des tickets.

Problème résolu

Ce workflow résout le problème de la gestion manuelle des tickets dans Zendesk, qui peut entraîner des retards et des pertes d'informations. En automatisant la création de tâches dans Asana, il élimine les risques d'oubli et de mauvaise communication entre les équipes. Les utilisateurs bénéficient d'une meilleure organisation et d'un suivi plus rigoureux des demandes clients, ce qui se traduit par une satisfaction accrue des clients.

Étapes du workflow

Étape 1 : Le workflow se déclenche avec un Webhook lors de la création d'un nouveau ticket dans Zendesk. Étape 2 : Le nœud 'Get ticket' récupère les informations du ticket pour les utiliser dans les étapes suivantes. Étape 3 : Une tâche est créée dans Asana via le nœud 'Create task', permettant ainsi de suivre la demande. Étape 4 : Le nœud 'IF' vérifie si des actions supplémentaires sont nécessaires, et si oui, le ticket peut être mis à jour ou un commentaire peut être ajouté à la tâche existante.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, vous pouvez modifier l'URL du Webhook pour l'adapter à votre environnement. Il est également possible de changer les paramètres de création de tâche dans Asana, comme le nom de la tâche ou le workspace. Si vous souhaitez ajouter des conditions spécifiques, vous pouvez ajuster les paramètres du nœud 'IF'. Enfin, assurez-vous de sécuriser le flux en configurant les options de webhook et en surveillant les logs pour détecter d'éventuelles erreurs.