Automatisation HubSpot avec n8n : gestion des emails entrants
Ce workflow n8n a pour objectif d'automatiser la gestion des emails entrants en intégrant des outils comme HubSpot et OpenAI. Dans un contexte où la réactivité et la personnalisation des réponses sont essentielles, ce processus permet aux équipes commerciales et marketing de gagner un temps précieux tout en améliorant l'engagement client. Par exemple, lorsqu'un email est reçu, le workflow déclenche une série d'actions pour analyser le contenu et déterminer si le contact existe déjà dans la base de données HubSpot.
- Étape 1 : le déclencheur 'When an email is received' capte les nouveaux messages.
- Étape 2 : le workflow utilise le noeud 'Search for the contact via email' pour vérifier l'existence du contact dans HubSpot.
- Étape 3 : si le contact existe, le workflow passe à l'étape suivante ; sinon, il crée un nouveau contact avec le noeud 'Creates contact'.
- Étape 4 : le contenu de l'email est analysé par le modèle de langage d'OpenAI via le noeud 'OpenAI Chat Model', permettant d'extraire des informations pertinentes. Enfin, le résultat est formaté et renvoyé à l'utilisateur. Grâce à cette automatisation n8n, les entreprises peuvent réduire les délais de réponse, améliorer la satisfaction client et optimiser leur processus de gestion des emails.
Workflow n8n HubSpot, email, OpenAI : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n HubSpot, email, OpenAI : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"nodes": [
{
"id": "9f2dc93f-bae5-4419-8411-d2fff4b31f5e",
"name": "Creates an email engagement",
"type": "n8n-nodes-base.hubspot",
"position": [
916,
-260
],
"parameters": {
"type": "email",
"metadata": {
"html": "={{ $('When an email is received').item.json.textHtml || $('When an email is received').item.json.textPlain}}",
"subject": "={{ $('When an email is received').item.json.subject }}",
"toEmail": [
"={{ $('When an email is received').item.json.to }}"
],
"fromEmail": "={{ $('When an email is received').item.json.from }}"
},
"resource": "engagement",
"authentication": "oAuth2",
"additionalFields": {
"associations": {
"contactIds": "={{ $json.vid }}"
}
}
},
"credentials": {
"hubspotOAuth2Api": {
"id": "JxzF93M0SJ00jDD9",
"name": "HubSpot account"
}
},
"typeVersion": 2.1
},
{
"id": "0a56ec28-afc6-40a9-bf42-4d8742e48eb4",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-140,
-40
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "1IOLtYX7aTspCAN8",
"name": "OpenAI Pollup"
}
},
"typeVersion": 1.2
},
{
"id": "8e53aeb6-7d84-4739-b482-b8cd844b89ac",
"name": "Search for the contact via email",
"type": "n8n-nodes-base.hubspot",
"position": [
256,
-260
],
"parameters": {
"operation": "search",
"authentication": "oAuth2",
"filterGroupsUi": {
"filterGroupsValues": [
{
"filtersUi": {
"filterValues": [
{
"value": "={{ $json.output.contact_info.email }}",
"propertyName": "email|string"
}
]
}
}
]
},
"additionalFields": {}
},
"credentials": {
"hubspotOAuth2Api": {
"id": "JxzF93M0SJ00jDD9",
"name": "HubSpot account"
}
},
"typeVersion": 2.1,
"alwaysOutputData": true
},
{
"id": "19e54445-d0cb-40f2-a11f-5e4cb22ad7ec",
"name": "Parse the mail with AI",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
-120,
-260
],
"parameters": {
"text": "=Get all important info from this email like first name, last name, email, phone number, name of the company, country, Postal code, city, etc. Return it as a json. The email content: {{ $json.textHtml || $json.textPlain}} \nFrom: {{ $json.from }} \nSubject: {{ $json.subject }}\nDate sent: {{ $json.date }}",
"messages": {
"messageValues": [
{
"message": "=You are a professional Email parser"
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.6
},
{
"id": "8b257214-0001-46aa-84df-cad844e3130b",
"name": "When an email is received",
"type": "n8n-nodes-base.emailReadImap",
"position": [
-340,
-260
],
"parameters": {
"options": {
"forceReconnect": 3
}
},
"credentials": {
"imap": {
"id": "g7C5Z9V9vQUbsLIw",
"name": "IMAP account"
}
},
"typeVersion": 2
},
{
"id": "32820b69-3918-4951-9ddc-45bdbcb60aca",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-440,
-400
],
"parameters": {
"color": 4,
"width": 280,
"height": 300,
"content": "## Set receiving email account\n- Ddefaults to an IMAP account node, but you can put a gmail account or any email trigger"
},
"typeVersion": 1
},
{
"id": "adbed044-08ae-4744-9b0c-09a225860267",
"name": "Set the output Json",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
80,
-40
],
"parameters": {
"jsonSchemaExample": "{\"contact_info\": \n{\n\"first name\": \n\"Thomas\",\n\"last name\": \"Vie\",\n\"position\": \n\"CTO\",\n\"company\": \n\"Pollup Data Services\",\n\"email\": \n\"Thomas@pollup.net\",\n\"phone\": \n\"+34 673626552\",\n\"website\": \n\"https://pollup.net\",\n\"address\": \n{\n\"street\": \n\"Oppelner Str. 32\",\n\"postal_code\": \n\"10997\",\n\"city\": \n\"Berlin\",\n\"country\": \n\"Germany\"\n}}}"
},
"typeVersion": 1.2
},
{
"id": "e58575ee-6ac8-4de1-b4db-8525146efd74",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-140,
-400
],
"parameters": {
"color": 4,
"width": 320,
"height": 300,
"content": "## Upgrade the prompt!\nThis is a very simple prompt but oit does the job. Improve it and send it to me!"
},
"typeVersion": 1
},
{
"id": "23465910-0a89-45f7-9bbf-fb17abadc5de",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
200,
-400
],
"parameters": {
"color": 4,
"width": 840,
"height": 400,
"content": "## Hubspot integration\n- Search for the contact in hubspot\n- If it is present creates an egagement\n- It it is not, creates it and adds an engagement"
},
"typeVersion": 1
},
{
"id": "f5573c22-85f3-4eda-ba5a-172567827991",
"name": "contact exists?",
"type": "n8n-nodes-base.if",
"position": [
476,
-260
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "554c2aa3-dbdb-4955-8510-6b09bc762f63",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.id }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "914f2e6b-7a5f-4c9c-bd3b-4bfb2693728d",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"position": [
696,
-360
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "75c8fc2d-dc8e-4b6c-a853-1dbd8d72f779",
"name": "vid",
"type": "string",
"value": "={{ $json.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "4c8fa2d1-e3b4-4323-bdc8-3a4e2bbc706d",
"name": "Creates contact",
"type": "n8n-nodes-base.hubspot",
"position": [
696,
-160
],
"parameters": {
"email": "={{ $('Parse the mail with AI').item.json.output.contact_info.email }}",
"options": {},
"authentication": "oAuth2",
"additionalFields": {
"city": "={{ $('Parse the mail with AI').item.json.output.contact_info.address.city }}",
"country": "={{ $('Parse the mail with AI').item.json.output.contact_info.address.country }}",
"jobTitle": "={{ $('Parse the mail with AI').item.json.output.contact_info.position }}",
"lastName": "={{ $('Parse the mail with AI').item.json.output.contact_info['last name'] }}",
"postalCode": "={{ $('Parse the mail with AI').item.json.output.contact_info.address.postal_code }}",
"websiteUrl": "={{ $('Parse the mail with AI').item.json.output.contact_info.website }}",
"companyName": "={{ $('Parse the mail with AI').item.json.output.contact_info.company }}",
"phoneNumber": "={{ $('Parse the mail with AI').item.json.output.contact_info.phone }}",
"streetAddress": "={{ $('Parse the mail with AI').item.json.output.contact_info.address.street }}"
}
},
"credentials": {
"hubspotOAuth2Api": {
"id": "JxzF93M0SJ00jDD9",
"name": "HubSpot account"
}
},
"typeVersion": 2.1
},
{
"id": "5f94ba18-49db-4bc0-9f0a-16a9d05ca6b0",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-440,
-620
],
"parameters": {
"width": 460,
"height": 200,
"content": "## Contact me\n- If you need any modification to this workflow\n- if you need some help with this workflow\n- Or if you need any workflow in n8n, Make, or Langchain / Langgraph\n\nWrite to me: [thomas@pollup.net](mailto:thomas@pollup.net)"
},
"typeVersion": 1
}
],
"connections": {
"Edit Fields": {
"main": [
[
{
"node": "Creates an email engagement",
"type": "main",
"index": 0
}
]
]
},
"Creates contact": {
"main": [
[
{
"node": "Creates an email engagement",
"type": "main",
"index": 0
}
]
]
},
"contact exists?": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
],
[
{
"node": "Creates contact",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Parse the mail with AI",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Set the output Json": {
"ai_outputParser": [
[
{
"node": "Parse the mail with AI",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Parse the mail with AI": {
"main": [
[
{
"node": "Search for the contact via email",
"type": "main",
"index": 0
}
]
]
},
"When an email is received": {
"main": [
[
{
"node": "Parse the mail with AI",
"type": "main",
"index": 0
}
]
]
},
"Search for the contact via email": {
"main": [
[
{
"node": "contact exists?",
"type": "main",
"index": 0
}
]
]
}
}
}Workflow n8n HubSpot, email, OpenAI : pour qui est ce workflow ?
Ce workflow s'adresse aux équipes marketing et commerciales des PME et grandes entreprises qui utilisent HubSpot pour la gestion de leurs contacts et souhaitent automatiser le traitement des emails entrants. Un niveau technique intermédiaire est recommandé pour la mise en place et la personnalisation du workflow.
Workflow n8n HubSpot, email, OpenAI : problème résolu
Ce workflow résout le problème de la gestion manuelle des emails entrants, qui peut être chronophage et source d'erreurs. En automatisant la recherche de contacts et l'analyse des emails, les utilisateurs évitent les pertes de temps liées à la saisie manuelle et à la recherche d'informations. Le résultat est une réponse plus rapide et personnalisée aux clients, ce qui améliore l'engagement et la satisfaction.
Workflow n8n HubSpot, email, OpenAI : étapes du workflow
Étape 1 : le workflow commence par le déclencheur 'When an email is received', qui capte les nouveaux messages entrants.
- Étape 1 : il utilise le noeud 'Search for the contact via email' pour vérifier si le contact existe déjà dans HubSpot.
- Étape 2 : si le contact est trouvé, le flux passe à l'étape suivante ; sinon, il crée un nouveau contact avec le noeud 'Creates contact'.
- Étape 3 : le contenu de l'email est ensuite analysé par le noeud 'OpenAI Chat Model', qui utilise l'intelligence artificielle pour extraire des informations pertinentes.
- Étape 4 : le résultat est formaté et renvoyé à l'utilisateur via le noeud 'Set the output Json'.
Workflow n8n HubSpot, email, OpenAI : guide de personnalisation
Pour personnaliser ce workflow, vous pouvez modifier les paramètres du noeud 'When an email is received' pour spécifier les comptes email à surveiller. Dans le noeud 'Search for the contact via email', ajustez les critères de recherche selon vos besoins. Le noeud 'OpenAI Chat Model' peut être configuré pour utiliser différents modèles ou options d'analyse. Assurez-vous également de vérifier les paramètres d'authentification pour HubSpot afin de garantir un accès correct aux données. Enfin, vous pouvez ajouter des noeuds supplémentaires pour intégrer d'autres outils ou services selon vos besoins.