Automatisation Intercom avec n8n : mise à jour des utilisateurs
Ce workflow n8n a pour objectif d'automatiser la gestion des utilisateurs dans Intercom en réponse à des événements déclenchés par un webhook. Dans un contexte où la gestion des données clients est cruciale pour les entreprises, ce type d'automatisation permet de gagner du temps et d'assurer la précision des informations. Par exemple, lorsque de nouveaux utilisateurs sont créés dans Intercom, le workflow se déclenche, permettant de mettre à jour automatiquement les données de ces utilisateurs. Étape 1 : le workflow commence par un déclencheur de type Webhook qui reçoit des événements d'Intercom. Étape 2 : les données sont ensuite traitées par un nœud de type 'set' qui définit les champs clés nécessaires pour l'opération. Étape 3 : un appel HTTP est effectué pour mettre à jour les informations dans Intercom, en utilisant les données enrichies d'un autre service via une requête HTTP. Étape 4 : des nœuds de type 'sticky note' sont utilisés pour enregistrer des informations visuelles sur le processus. Ce workflow n8n offre une solution efficace pour automatiser la mise à jour des utilisateurs, réduisant ainsi les erreurs manuelles et améliorant la réactivité des équipes. En intégrant ce type d'automatisation, les entreprises peuvent se concentrer sur des tâches à plus forte valeur ajoutée tout en assurant une gestion fluide des données clients. Tags clés : automatisation, Intercom, workflow.
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": "cb484ba7b742928a2048bf8829668bed5b5ad9787579adea888f05980292a4a7"
},
"nodes": [
{
"id": "1f578b25-ab5b-40f3-9ccc-7f5975959073",
"name": "Could not find user",
"type": "n8n-nodes-base.noOp",
"position": [
1620,
560
],
"parameters": {},
"typeVersion": 1
},
{
"id": "236436e0-1fc9-4411-b34c-946246ecbe19",
"name": "On Webhook event from Intercom",
"type": "n8n-nodes-base.webhook",
"position": [
700,
500
],
"webhookId": "11e21ebc-27ef-49b5-8c77-648faf3e86e0",
"parameters": {
"path": "11e21ebc-27ef-49b5-8c77-648faf3e86e0",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1.1
},
{
"id": "10e2e89c-6ea2-4888-99c8-2f5d99cb1a1d",
"name": "set key fields",
"type": "n8n-nodes-base.set",
"position": [
1120,
340
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "3631124b-89e3-49b5-a792-36264eb502f0",
"name": "user_id",
"type": "string",
"value": "={{ $json.body.data.item.id }}"
},
{
"id": "3c2a877d-186b-4a26-86f2-d686e5630e42",
"name": "email",
"type": "string",
"value": "={{ $json.body.data.item.email }}"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "078945ff-7c7a-4b45-9f8b-773827b9eb30",
"name": "Update data in Intercom",
"type": "n8n-nodes-base.httpRequest",
"position": [
1900,
140
],
"parameters": {
"url": "=https://api.intercom.io/contacts/{{ $('set key fields').item.json.user_id }}",
"method": "PUT",
"options": {},
"sendBody": true,
"sendHeaders": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "email",
"value": "={{ $json.result.current_work_email }} {{ $json.result.full_name }}"
},
{
"name": "name",
"value": "={{ $json.result.full_name }}"
},
{
"name": "phone",
"value": "={{ $json.result.phone_numbers?.[0]?.E164 }}"
},
{
"name": "avatar",
"value": "={{ $json.result.employment?.profile_pic_url }}"
},
{
"name": "social_profiles",
"value": "={{ $json.social_profiles }}"
},
{
"name": "location",
"value": "={{ $json.location }}"
}
]
},
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Intercom-Version",
"value": "2.10"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "YYOMyAkbDgnGfggq",
"name": "intercom api key"
}
},
"typeVersion": 4.1
},
{
"id": "4ca65df4-7244-485f-8c6c-bb1ae4cd84a8",
"name": "Other event",
"type": "n8n-nodes-base.noOp",
"position": [
1120,
680
],
"parameters": {},
"typeVersion": 1
},
{
"id": "87b12749-b81e-460b-97bb-b25b59f303df",
"name": "Intercom",
"type": "n8n-nodes-base.intercom",
"disabled": true,
"position": [
1900,
-60
],
"parameters": {
"operation": "update",
"additionalFields": {}
},
"credentials": {
"intercomApi": {
"id": "sIILbFMUzkVWaBE6",
"name": "Intercom account"
}
},
"typeVersion": 1
},
{
"id": "ddb1dbb6-3f20-480f-9f49-641d40d9953a",
"name": "massage data",
"type": "n8n-nodes-base.code",
"position": [
1660,
140
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "// Add social profiles\n$input.item.json.social_profiles = $input.item.json.result.social_profiles.map((profile) => {\n return {\n type: 'social_profile',\n name : profile.network,\n url: profile.url,\n }\n});\n\n$input.item.json.location = {\n country: $input.item.json.result.location?.country,\n city: $input.item.json.result.location?.city,\n region: $input.item.json.result.location?.region,\n}\n\nreturn $input.item;"
},
"typeVersion": 2
},
{
"id": "c490bb0d-ec6a-4a9a-9915-dd65ab669873",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
660,
240
],
"parameters": {
"width": 377.10487444608555,
"height": 609.3353028064989,
"content": "## On User created event in Intercom\n\n1. Setup webhook url in intercom\n2. Make sure `contact.user.created` is enabled"
},
"typeVersion": 1
},
{
"id": "3e866480-4ec8-4a27-b946-43d6358edfec",
"name": "On user created",
"type": "n8n-nodes-base.switch",
"position": [
880,
500
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "user created",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.topic }}",
"rightValue": "contact.user.created"
}
]
},
"renameOutput": true
}
]
},
"options": {
"fallbackOutput": "extra"
}
},
"typeVersion": 3
},
{
"id": "e9efb8f5-8f97-476f-9d60-09a24b4f656a",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1260,
20
],
"parameters": {
"color": 3,
"width": 275.71639586410623,
"height": 609.3353028064989,
"content": "## Enrich data from ExactBuyer\n\n1. Add api key from Exact buyer\n2. Use email as identifier to match user\n\nUse API Guide here https://docs.exactbuyer.com/contact-enrichment/enrichment"
},
"typeVersion": 1
},
{
"id": "4a86d237-0908-4a79-9ebf-42711f850b3e",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1600,
-280
],
"parameters": {
"width": 562.599704579025,
"height": 763.7223042836036,
"content": "## Update user in Intercom\n\n1. Set Http node and generic header API Key using this guide https://developers.intercom.com/docs/build-an-integration/learn-more/authentication/\n2. Update data in intercom using this guide\nhttps://developers.intercom.com/docs/references/rest-api/api.intercom.io/Contacts/UpdateContact/"
},
"typeVersion": 1
},
{
"id": "44eb44fc-9376-4c64-9561-3d9b585eb51f",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
540,
-320
],
"parameters": {
"color": 4,
"width": 623.6113141433334,
"height": 390.44782241577565,
"content": "# Enrich new Intercom users with contact details from ExactBuyer\n\n## This workflow aims to enrich new contacts in Intercom. The more relevant the Intercom profile, the more useful it is. Once active, this n8n workflow will update the social profiles, contact data (phone, email) as well as location data from ExactBuyer.\n"
},
"typeVersion": 1
},
{
"id": "fc9755ae-07ed-4151-bab0-4dc9b6c2408f",
"name": "Enrich user from ExactBuyer",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
1340,
340
],
"parameters": {
"url": "https://api.exactbuyer.com/v1/enrich",
"options": {
"redirect": {
"redirect": {}
}
},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "email",
"value": "={{ $json.email }}"
},
{
"name": "required",
"value": "work_email,personal_email,email"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "kyMNOdXZX3ugPihF",
"name": "ExactBuyer Api key"
}
},
"typeVersion": 4.1
}
],
"pinData": {
"On Webhook event from Intercom": [
{
"body": {
"id": "notif_6da6874a-0fc5-4d6e-9c50-a9656b741203",
"data": {
"item": {
"id": "65d5de6eb71d82abcb782f68",
"os": null,
"name": "Eadan exact butyer",
"role": "user",
"tags": {
"url": "/contacts/65d5de6eb71d82abcb782f68/tags",
"data": [],
"type": "list",
"has_more": false,
"total_count": 0
},
"type": "contact",
"email": "edan@exactbuyer.com",
"notes": {
"url": "/contacts/65d5de6eb71d82abcb782f68/notes",
"data": [],
"type": "list",
"has_more": false,
"total_count": 0
},
"phone": null,
"avatar": null,
"browser": null,
"location": {
"city": null,
"type": "location",
"region": null,
"country": null,
"country_code": null,
"continent_code": null
},
"owner_id": null,
"referrer": null,
"utm_term": null,
"companies": {
"url": "/contacts/65d5de6eb71d82abcb782f68/companies",
"data": [],
"type": "list",
"has_more": false,
"total_count": 0
},
"created_at": "2024-02-21T11:28:46.093+00:00",
"ios_device": null,
"updated_at": "2024-02-21T11:28:46.090+00:00",
"utm_medium": null,
"utm_source": null,
"external_id": "eden_exact_buyer",
"sms_consent": false,
"utm_content": null,
"ios_app_name": null,
"last_seen_at": null,
"signed_up_at": null,
"utm_campaign": null,
"workspace_id": "ub6mafvn",
"android_device": null,
"ios_os_version": null,
"browser_version": null,
"ios_app_version": null,
"ios_sdk_version": null,
"last_replied_at": null,
"social_profiles": {
"data": [],
"type": "list"
},
"android_app_name": null,
"browser_language": null,
"has_hard_bounced": false,
"ios_last_seen_at": null,
"custom_attributes": {},
"language_override": null,
"last_contacted_at": null,
"android_os_version": null,
"android_app_version": null,
"android_sdk_version": null,
"android_last_seen_at": null,
"last_email_opened_at": null,
"marked_email_as_spam": false,
"last_email_clicked_at": null,
"unsubscribed_from_sms": false,
"unsubscribed_from_emails": false,
"opted_in_subscription_types": {
"url": "/contacts/65d5de6eb71d82abcb782f68/subscriptions",
"data": [],
"type": "list",
"has_more": false,
"total_count": 0
},
"opted_out_subscription_types": {
"url": "/contacts/65d5de6eb71d82abcb782f68/subscriptions",
"data": [],
"type": "list",
"has_more": false,
"total_count": 0
}
},
"type": "notification_event_data"
},
"self": null,
"type": "notification_event",
"links": {},
"topic": "contact.user.created",
"app_id": "ub6mafvn",
"created_at": 1708514926,
"delivered_at": 0,
"first_sent_at": 1708514926,
"delivery_status": "pending",
"delivery_attempts": 1
},
"query": {},
"params": {},
"headers": {
"host": "test.users.n8n.cloud"
}
}
]
},
"connections": {
"massage data": {
"main": [
[
{
"node": "Update data in Intercom",
"type": "main",
"index": 0
}
]
]
},
"set key fields": {
"main": [
[
{
"node": "Enrich user from ExactBuyer",
"type": "main",
"index": 0
}
]
]
},
"On user created": {
"main": [
[
{
"node": "set key fields",
"type": "main",
"index": 0
}
],
[
{
"node": "Other event",
"type": "main",
"index": 0
}
]
]
},
"Enrich user from ExactBuyer": {
"main": [
[
{
"node": "massage data",
"type": "main",
"index": 0
}
],
[
{
"node": "Could not find user",
"type": "main",
"index": 0
}
]
]
},
"On Webhook event from Intercom": {
"main": [
[
{
"node": "On user created",
"type": "main",
"index": 0
}
]
]
}
}
}Pour qui est ce workflow ?
Ce workflow s'adresse aux entreprises utilisant Intercom pour la gestion de leur relation client, notamment les équipes marketing et support. Il est conçu pour des utilisateurs ayant un niveau technique intermédiaire, souhaitant automatiser leurs processus de gestion des utilisateurs.
Problème résolu
Ce workflow résout le problème de la mise à jour manuelle des données utilisateurs dans Intercom, ce qui peut entraîner des erreurs et des incohérences. En automatisant ce processus, les entreprises éliminent les frustrations liées à la gestion des données, réduisent le risque d'erreurs humaines et améliorent la qualité des informations clients. Les utilisateurs bénéficient d'une gestion plus efficace et d'une meilleure réactivité face aux besoins des clients.
Étapes du workflow
Étape 1 : le workflow est déclenché par un événement Webhook provenant d'Intercom. Étape 2 : les données reçues sont traitées pour définir les champs clés nécessaires à l'opération. Étape 3 : une requête HTTP est envoyée pour mettre à jour les données de l'utilisateur dans Intercom. Étape 4 : des nœuds de type 'sticky note' sont utilisés pour enregistrer des informations visuelles tout au long du processus. Étape 5 : si un nouvel utilisateur est créé, le workflow enrichit les données en interrogeant ExactBuyer pour obtenir des informations supplémentaires.
Guide de personnalisation du workflow n8n
Pour personnaliser ce workflow, vous pouvez modifier l'URL du webhook pour l'adapter à votre configuration Intercom. Il est également possible d'ajuster les paramètres des nœuds 'set' pour définir les champs clés selon vos besoins spécifiques. Si vous souhaitez enrichir les données d'autres sources, vous pouvez remplacer le nœud 'Enrich user from ExactBuyer' par une autre API. Assurez-vous de sécuriser vos requêtes HTTP en configurant correctement l'authentification et les en-têtes nécessaires.