Workflow n8n

Automatisation Zendesk avec n8n : synchronisation des données HubSpot

Ce workflow n8n a pour objectif de synchroniser les données des entreprises entre Zendesk et HubSpot, permettant ainsi une gestion plus fluide des informations clients. Dans un contexte où les entreprises utilisent plusieurs outils pour gérer leurs relations clients, cette automatisation n8n facilite la mise à jour des données en temps réel, réduisant ainsi les risques d'erreurs et de doublons. Les cas d'usage incluent la création et la mise à jour d'organisations dans Zendesk en fonction des modifications apportées dans HubSpot, ce qui est essentiel pour les équipes de vente et de support. Étape 1 : Le déclencheur est un cron qui s'exécute toutes les 5 minutes. Étape 2 : Le workflow commence par récupérer les organisations modifiées dans HubSpot. Étape 3 : Pour chaque organisation, il vérifie si elle existe déjà dans Zendesk. Étape 4 : Si l'organisation n'existe pas, elle est créée ; sinon, ses données sont mises à jour. Étape 5 : Les données de Zendesk sont ensuite fusionnées avec celles de HubSpot pour garantir que toutes les informations sont à jour. En intégrant ces deux systèmes, les entreprises bénéficient d'une visibilité accrue sur leurs interactions clients, ce qui améliore l'efficacité opérationnelle et la satisfaction client. Tags clés : automatisation, HubSpot, Zendesk.

Catégorie: Scheduled · Tags: automatisation, HubSpot, Zendesk, n8n, synchronisation0

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

  • Add Zendesk company data to Hubspot data

    Ce noeud fusionne les données des entreprises Zendesk avec celles de Hubspot.

  • Set new last execution timestamp

    Ce noeud définit un nouvel horodatage d'exécution pour le workflow.

  • Get last execution timestamp

    Ce noeud récupère l'horodatage de la dernière exécution du workflow.

  • Get modified companies

    Ce noeud récupère les entreprises modifiées à partir de Hubspot selon les filtres spécifiés.

  • Get all Zendesk organisations

    Ce noeud récupère toutes les organisations de Zendesk.

  • Company exists in Zendesk

    Ce noeud vérifie si une entreprise existe déjà dans Zendesk.

  • Create organisation

    Ce noeud crée une nouvelle organisation dans Zendesk avec les informations fournies.

  • Update organisation

    Ce noeud met à jour une organisation existante dans Zendesk avec les champs spécifiés.

  • Every 5 minutes

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

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "237600ca44303ce91fa31ee72babcdc8493f55ee2c0e8aa2b78b3b4ce6f70bd9"
  },
  "nodes": [
    {
      "id": "60e3ee97-68cb-46ef-8a92-a9e8d1cdd45d",
      "name": "Add Zendesk company data to Hubspot data",
      "type": "n8n-nodes-base.merge",
      "position": [
        1120,
        320
      ],
      "parameters": {
        "mode": "mergeByKey",
        "propertyName1": "properties.name.value",
        "propertyName2": "name"
      },
      "typeVersion": 1
    },
    {
      "id": "d72c4307-c24c-494f-b5c2-57fd44ede5a5",
      "name": "Set new last execution timestamp",
      "type": "n8n-nodes-base.functionItem",
      "position": [
        1820,
        300
      ],
      "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": "c10e7993-4cd4-4b79-9dce-66097d797b30",
      "name": "Get last execution timestamp",
      "type": "n8n-nodes-base.functionItem",
      "position": [
        400,
        300
      ],
      "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();\n}\n\nitem.executionTimeStamp = new Date();\nitem.lastExecution = staticData.lastExecution;\n\n\nreturn item;"
      },
      "typeVersion": 1
    },
    {
      "id": "3c154d99-7984-4561-9fdf-60b0f705c5ee",
      "name": "Get modified companies",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        620,
        300
      ],
      "parameters": {
        "filters": {
          "since": "={{ $json[\"lastExecution\"] }}"
        },
        "resource": "company",
        "operation": "getRecentlyModified",
        "authentication": "appToken"
      },
      "credentials": {
        "hubspotAppToken": {
          "id": "13",
          "name": "HubSpot App Token account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6f05aae1-731e-42cf-b403-baf5f86aa934",
      "name": "Get all Zendesk organisations",
      "type": "n8n-nodes-base.zendesk",
      "position": [
        880,
        420
      ],
      "parameters": {
        "resource": "organization",
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "zendeskApi": {
          "id": "5",
          "name": "Zendesk account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a8ae65dc-0c60-42cb-9996-26e84770e299",
      "name": "Company exists in Zendesk",
      "type": "n8n-nodes-base.if",
      "position": [
        1340,
        320
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json[\"id\"] }}",
              "operation": "isNotEmpty"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a81ff688-8639-476d-8274-383e5ff51b97",
      "name": "Create organisation",
      "type": "n8n-nodes-base.zendesk",
      "position": [
        1600,
        400
      ],
      "parameters": {
        "name": "={{ $json[\"properties\"].name.value }}",
        "resource": "organization",
        "additionalFields": {
          "domain_names": "={{ $json[\"properties\"].domain.value }}"
        }
      },
      "credentials": {
        "zendeskApi": {
          "id": "5",
          "name": "Zendesk account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fd2780b3-c5cc-4535-ba71-840b13578a07",
      "name": "Update organisation",
      "type": "n8n-nodes-base.zendesk",
      "position": [
        1600,
        200
      ],
      "parameters": {
        "id": "={{ $json[\"id\"] }}",
        "resource": "organization",
        "operation": "update",
        "updateFields": {
          "name": "={{ $json[\"properties\"].name.value }}",
          "domain_names": "={{ $json[\"properties\"].domain.value }}"
        }
      },
      "credentials": {
        "zendeskApi": {
          "id": "5",
          "name": "Zendesk account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7f19e5ba-e973-4e6c-a2d0-a320ac314fa6",
      "name": "Every 5 minutes",
      "type": "n8n-nodes-base.cron",
      "position": [
        180,
        300
      ],
      "parameters": {
        "triggerTimes": {
          "item": [
            {
              "mode": "everyX",
              "unit": "minutes",
              "value": 5
            }
          ]
        }
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Every 5 minutes": {
      "main": [
        [
          {
            "node": "Get last execution timestamp",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create organisation": {
      "main": [
        [
          {
            "node": "Set new last execution timestamp",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update organisation": {
      "main": [
        [
          {
            "node": "Set new last execution timestamp",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get modified companies": {
      "main": [
        [
          {
            "node": "Get all Zendesk organisations",
            "type": "main",
            "index": 0
          },
          {
            "node": "Add Zendesk company data to Hubspot data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Company exists in Zendesk": {
      "main": [
        [
          {
            "node": "Update organisation",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create organisation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get last execution timestamp": {
      "main": [
        [
          {
            "node": "Get modified companies",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get all Zendesk organisations": {
      "main": [
        [
          {
            "node": "Add Zendesk company data to Hubspot data",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Add Zendesk company data to Hubspot data": {
      "main": [
        [
          {
            "node": "Company exists in Zendesk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Pour qui est ce workflow ?

Ce workflow s'adresse aux entreprises qui utilisent à la fois Zendesk et HubSpot pour la gestion de leurs relations clients. Il est particulièrement utile pour les équipes de vente et de support qui cherchent à automatiser la synchronisation des données. Un niveau technique intermédiaire est recommandé pour la personnalisation.

Problème résolu

Ce workflow résout le problème de la désynchronisation des données entre Zendesk et HubSpot, qui peut entraîner des erreurs dans la gestion des informations clients. En automatisant ce processus, les utilisateurs éliminent les tâches manuelles répétitives, réduisent les risques d'erreurs et garantissent que toutes les équipes disposent des informations les plus récentes. Cela permet également d'améliorer la réactivité et la qualité du service client.

Étapes du workflow

Étape 1 : Le flux est déclenché toutes les 5 minutes par un cron. Étape 2 : Il récupère les organisations modifiées dans HubSpot. Étape 3 : Pour chaque organisation, il vérifie si elle existe dans Zendesk. Étape 4 : Si l'organisation n'existe pas, elle est créée dans Zendesk. Étape 5 : Si elle existe, ses informations sont mises à jour. Étape 6 : Les données de Zendesk sont fusionnées avec celles de HubSpot pour assurer la cohérence des informations.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, vous pouvez modifier les paramètres du cron pour ajuster la fréquence de synchronisation. Il est également possible de changer les filtres pour récupérer des données spécifiques de HubSpot ou d'ajuster les champs à mettre à jour dans Zendesk. Assurez-vous que les identifiants d'authentification pour les deux services sont correctement configurés. Pour une sécurité accrue, envisagez d'ajouter des vérifications supplémentaires pour valider les données avant leur insertion.