Routage et réponse de messages automatisés LinkedIn (avec détection de demande)
Ceci est unSupport, AIworkflow d'automatisation du domainecontenant 52 nœuds.Utilise principalement des nœuds comme If, Set, Slack, Notion, Switch, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Routage et répondeur automatique de messages LinkedIn avec détection de requêtes
- •Token Bot Slack ou URL Webhook
- •Clé API Notion
- •Point de terminaison HTTP Webhook (généré automatiquement par n8n)
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Clé API OpenAI
Nœuds utilisés (52)
Catégorie
{
"meta": {
"instanceId": "cb484ba7b742928a2048bf8829668bed5b5ad9787579adea888f05980292a4a7",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "5f71a0e6-d5ec-4712-9feb-2b10a1b0a3ea",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
0,
0
],
"webhookId": "12a0b328-1d39-44b4-b29d-9ac465cf134b",
"parameters": {
"path": "12a0b328-1d39-44b4-b29d-9ac465cf134b",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "bd66537c-6fe5-4877-9127-3b78af08c499",
"name": "Vérifier si c'est de moi",
"type": "n8n-nodes-base.if",
"position": [
440,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "711303bb-aef2-4cff-b4c7-c2a898e454ac",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.sender_id }}",
"rightValue": "OzJlgZHDXWi0PmxVdqnPOQ"
},
{
"id": "d115500d-8e14-4b8e-b0ed-4e26a895bb37",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.sender_id }}",
"rightValue": "9va5ul-NUYejvzb7ADJzuw"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e14aedab-47e9-4811-b991-ee0d00290c39",
"name": "Réponse, Aucune action",
"type": "n8n-nodes-base.noOp",
"position": [
700,
120
],
"parameters": {},
"typeVersion": 1
},
{
"id": "8adbb07e-4897-4421-b581-c963b754aa2b",
"name": "Nouveau Message",
"type": "n8n-nodes-base.noOp",
"position": [
680,
-140
],
"parameters": {},
"typeVersion": 1
},
{
"id": "39865ae2-a266-47ba-a6fd-c9b1f5d5a931",
"name": "Variables Globales",
"type": "n8n-nodes-base.set",
"position": [
220,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "5483f235-49d0-404d-82dd-fd5688671044",
"name": "type",
"type": "string",
"value": "={{ $json.body.account_info.type }}"
},
{
"id": "d737da4a-cc6f-4dc5-a8b7-0fd60f6a45b5",
"name": "message",
"type": "string",
"value": "={{ $json.body.message }}"
},
{
"id": "924bd124-4ef1-4f41-8a3d-819d97f053e2",
"name": "message_id",
"type": "string",
"value": "={{ $json.body.message_id }}"
},
{
"id": "c05786b0-b2af-4d87-a111-aae969ce50e9",
"name": "chat_id",
"type": "string",
"value": "={{ $json.body.chat_id }}"
},
{
"id": "342fd20c-81be-42c7-aa85-a525fa9760fb",
"name": "sender",
"type": "string",
"value": "={{ $json.body.sender.attendee_name }}"
},
{
"id": "b40f55d7-928e-436f-90b7-b4048cd80423",
"name": "sender_profile",
"type": "string",
"value": "={{ $json.body.sender.attendee_profile_url }}"
},
{
"id": "efb12c87-42f5-4087-82b8-8dbda5aaf465",
"name": "sender_id",
"type": "string",
"value": "={{ $json.body.sender.attendee_id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3c58401c-cb83-4d71-9469-7563d6ce9c16",
"name": "Slack Bouton Pressé",
"type": "n8n-nodes-base.webhook",
"position": [
0,
800
],
"webhookId": "e3182811-630a-4959-b91c-71d8c8093e1c",
"parameters": {
"path": "e3182811-630a-4959-b91c-71d8c8093e1c",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2
},
{
"id": "b87d4806-423b-4656-bbd6-9d0808242cc4",
"name": "Analyser Webhook",
"type": "n8n-nodes-base.set",
"position": [
480,
800
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "94e30709-cf7a-4131-bc89-dbe56f8f3b16",
"name": "body.payload",
"type": "object",
"value": "={{ $json.body.payload }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ee147347-1a88-4e96-9580-d08285e901c0",
"name": "Vérifier Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
240,
800
],
"parameters": {
"options": {
"responseCode": 200,
"responseHeaders": {
"entries": [
{
"name": "Content-type",
"value": "application/json"
}
]
}
},
"respondWith": "json",
"responseBody": "={\"challenge\":\"{{ $json.body.challenge }}\"}"
},
"typeVersion": 1
},
{
"id": "ac2cb5e1-394a-4a5c-a999-a56d315bc3ff",
"name": "Vérifier si approuvé",
"type": "n8n-nodes-base.if",
"position": [
1140,
580
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "cf275c3e-347d-4028-8209-682f52d540e3",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.payload.actions[0].value.action }}",
"rightValue": "approve"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "3812b521-2e15-4c24-9883-79ef04fc6cb3",
"name": "Envoyer Message Utilisateur",
"type": "n8n-nodes-base.slack",
"position": [
4080,
-100
],
"webhookId": "e3624af3-3604-4d6a-b776-e3860b51b24e",
"parameters": {
"text": "=New LinkedIn Message from {{ $('Webhook').item.json.body.sender.attendee_name }}",
"user": {
"__rl": true,
"mode": "id",
"value": "U07G1JBR76W"
},
"select": "user",
"blocksUi": "={\n \"blocks\": [\n {\n \"type\": \"section\",\n \"block_id\": \"profile_card\",\n \"text\": {\n \"type\": \"mrkdwn\",\n \"text\": \"👤*<{{ $('Webhook').item.json.body.sender.attendee_profile_url }}|{{ $('Webhook').item.json.body.sender.attendee_name }}>*\\n\\n💼 {{ $('Set all potential Inputs').item.json.linkedinprofile[0].headline }}\\n\\n📍 {{ $('Set all potential Inputs').item.json.linkedinprofile[0].location }}\\n👥 {{ $('Set all potential Inputs').item.json.linkedinprofile[0].follower_count }} followers | 🔗 {{ $('Set all potential Inputs').item.json.linkedinprofile[0].connections_count }} connections\"\n },\n \"accessory\": {\n \"type\": \"image\",\n \"image_url\": \"{{ $('Set all potential Inputs').item.json.linkedinprofile[0].profile_picture_url }}\",\n \"alt_text\": \"LinkedIn Profile Picture\"\n }\n },\n {\n \"type\": \"section\",\n \"block_id\": \"incoming_message\",\n \"text\": {\n \"type\": \"mrkdwn\",\n \"text\": \"*📩 <https://www.linkedin.com/messaging/thread/{{ $('Webhook').item.json.body.provider_chat_id }}/|New LinkedIn Message>:*\\n> {{ $('Global Variables').item.json.message.replace(/\\n/g, '\\\\n').replace(/\\\"/g, '\\\\\"') }}\"\n }\n },\n {\n \"type\": \"input\",\n \"block_id\": \"ai_response\",\n \"element\": {\n \"type\": \"plain_text_input\",\n \"action_id\": \"response_input\",\n \"multiline\": true,\n \"initial_value\": \"{{ $('AI Agent').item.json.output.output.replace(/\\n/g, '\\\\n').replace(/\\\"/g, '\\\\\"') }}\",\n \"placeholder\": {\n \"type\": \"plain_text\",\n \"text\": \"Edit the AI-generated response before approving...\"\n }\n },\n \"label\": {\n \"type\": \"plain_text\",\n \"text\": \"🤖 Suggested Reply\"\n }\n },\n {\n \"type\": \"actions\",\n \"block_id\": \"actions_block\",\n \"elements\": [\n {\n \"type\": \"button\",\n \"action_id\": \"approve_response\",\n \"text\": {\n \"type\": \"plain_text\",\n \"text\": \"✅ Approve\"\n },\n \"style\": \"primary\",\n \"value\": \"{\\\"action\\\":\\\"approve\\\",\\\"message_id\\\":\\\"{{ $('Global Variables').item.json.message_id }}\\\",\\\"channel_id\\\":\\\"{{ $('Global Variables').item.json.chat_id }}\\\"}\"\n },\n {\n \"type\": \"button\",\n \"action_id\": \"archive_message\",\n \"text\": {\n \"type\": \"plain_text\",\n \"text\": \"🗃️ Archive\"\n },\n \"style\": \"danger\",\n \"value\": \"{\\\"action\\\":\\\"archive\\\",\\\"message_id\\\":\\\"{{ $('Global Variables').item.json.message_id }}\\\",\\\"channel_id\\\":\\\"{{ $('Global Variables').item.json.chat_id }}\\\"}\"\n }\n ]\n }\n ]\n}\n",
"messageType": "block",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "6xKmxBfKWNPnre2E",
"name": "Request Router"
}
},
"typeVersion": 2.3
},
{
"id": "7470b927-8a4d-4421-b6d3-cc55623d77dd",
"name": "Envoyer Message Organisation",
"type": "n8n-nodes-base.slack",
"position": [
4080,
60
],
"webhookId": "9a621f5a-854e-4725-81c4-3ce075d87d96",
"parameters": {
"text": "=New LinkedIn Message from {{ $('Webhook').item.json.body.sender.attendee_name }}",
"user": {
"__rl": true,
"mode": "id",
"value": "U07G1JBR76W"
},
"select": "user",
"blocksUi": "={\n \"blocks\": [\n {\n \"type\": \"section\",\n \"block_id\": \"profile_card_org\",\n \"text\": {\n \"type\": \"mrkdwn\",\n \"text\": \"🏢*<{{ $('Webhook').item.json.body.sender.attendee_profile_url }}|{{ $('Webhook').item.json.body.sender.attendee_name }}>*\\n\\n💼 {{ $('Set all potential Inputs').item.json.linkedinprofile[0].headline }}\\n\\n📍 {{ $('Set all potential Inputs').item.json.linkedinprofile[0].location }}\\n👥 {{ $('Set all potential Inputs').item.json.linkedinprofile[0].follower_count }} followers | 🧑💼 {{ $('Set all potential Inputs').item.json.linkedinprofile[0].employee_count }} employees\"\n },\n \"accessory\": {\n \"type\": \"image\",\n \"image_url\": \"{{ $('Set all potential Inputs').item.json.linkedinprofile[0].profile_picture_url }}\",\n \"alt_text\": \"Organization Profile Picture\"\n }\n },\n {\n \"type\": \"section\",\n \"block_id\": \"incoming_message\",\n \"text\": {\n \"type\": \"mrkdwn\",\n \"text\": \"*📩 New LinkedIn Message:*\\n> {{ $('Global Variables').item.json.message.replace(/\\n/g, '\\\\n').replace(/\\\"/g, '\\\\\"') }}\"\n }\n },\n {\n \"type\": \"input\",\n \"block_id\": \"ai_response\",\n \"element\": {\n \"type\": \"plain_text_input\",\n \"action_id\": \"response_input\",\n \"multiline\": true,\n \"initial_value\": \"{{ $('AI Agent').item.json.output.output.replace(/\\n/g, '\\\\n').replace(/\\\"/g, '\\\\\"') }}\",\n \"placeholder\": {\n \"type\": \"plain_text\",\n \"text\": \"Edit the AI-generated response before approving...\"\n }\n },\n \"label\": {\n \"type\": \"plain_text\",\n \"text\": \"🤖 Suggested Reply\"\n }\n },\n {\n \"type\": \"actions\",\n \"block_id\": \"actions_block\",\n \"elements\": [\n {\n \"type\": \"button\",\n \"action_id\": \"approve_response\",\n \"text\": {\n \"type\": \"plain_text\",\n \"text\": \"✅ Approve\"\n },\n \"style\": \"primary\",\n \"value\": \"{\\\"action\\\":\\\"approve\\\",\\\"message_id\\\":\\\"{{ $('Global Variables').item.json.message_id }}\\\",\\\"channel_id\\\":\\\"{{ $('Global Variables').item.json.chat_id }}\\\"}\"\n },\n {\n \"type\": \"button\",\n \"action_id\": \"archive_message\",\n \"text\": {\n \"type\": \"plain_text\",\n \"text\": \"🗃️ Archive\"\n },\n \"style\": \"danger\",\n \"value\": \"{\\\"action\\\":\\\"archive\\\",\\\"message_id\\\":\\\"{{ $('Global Variables').item.json.message_id }}\\\",\\\"channel_id\\\":\\\"{{ $('Global Variables').item.json.chat_id }}\\\"}\"\n }\n ]\n }\n ]\n}\n",
"messageType": "block",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "6xKmxBfKWNPnre2E",
"name": "Request Router"
}
},
"typeVersion": 2.3
},
{
"id": "0c63c0e7-752d-4bd7-ab78-23a1ff4d70ae",
"name": "Envoyer Message Aucun Résultat",
"type": "n8n-nodes-base.slack",
"position": [
4080,
220
],
"webhookId": "64dddbb2-1bf6-4a5a-884b-057b82596ef1",
"parameters": {
"user": {
"__rl": true,
"mode": "id",
"value": "U07G1JBR76W"
},
"select": "user",
"blocksUi": "={\n \"blocks\": [\n {\n \"type\": \"section\",\n \"block_id\": \"incoming_message\",\n \"text\": {\n \"type\": \"mrkdwn\",\n \"text\": \"*New LinkedIn Message:*\\n> {{ $('Global Variables').item.json.message.replace(/\\n/g, '\\\\n').replace(/\"/g, '\\\\\"') }}\"\n }\n },\n {\n \"type\": \"input\",\n \"block_id\": \"ai_response\",\n \"element\": {\n \"type\": \"plain_text_input\",\n \"action_id\": \"response_input\",\n \"multiline\": true,\n \"initial_value\": \"{{ $json.output.output.replace(/\\n/g, '\\\\n').replace(/\"/g, '\\\\\"') }}\",\n \"placeholder\": {\n \"type\": \"plain_text\",\n \"text\": \"Edit the AI-generated response before approving...\"\n }\n },\n \"label\": {\n \"type\": \"plain_text\",\n \"text\": \"Suggested Reply\"\n }\n },\n {\n \"type\": \"actions\",\n \"block_id\": \"actions_block\",\n \"elements\": [\n {\n \"type\": \"button\",\n \"action_id\": \"approve_response\",\n \"text\": {\n \"type\": \"plain_text\",\n \"text\": \"✅ Approve\"\n },\n \"style\": \"primary\",\n \"value\": \"{\\\"action\\\":\\\"approve\\\",\\\"message_id\\\":\\\"{{ $('Global Variables').item.json.message_id }}\\\",\\\"channel_id\\\":\\\"{{ $('Global Variables').item.json.chat_id }}\\\"}\"\n },\n {\n \"type\": \"button\",\n \"action_id\": \"archive_message\",\n \"text\": {\n \"type\": \"plain_text\",\n \"text\": \"🗃️ Archive\"\n },\n \"style\": \"danger\",\n \"value\": \"{\\\"action\\\":\\\"archive\\\",\\\"message_id\\\":\\\"{{ $('Global Variables').item.json.message_id }}\\\",\\\"channel_id\\\":\\\"{{ $('Global Variables').item.json.chat_id }}\\\"}\"\n }\n ]\n }\n ]\n}\n",
"messageType": "block",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "6xKmxBfKWNPnre2E",
"name": "Request Router"
}
},
"typeVersion": 2.3
},
{
"id": "fb29432d-7603-4b42-902f-7784459dd40d",
"name": "Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-420
],
"parameters": {
"color": 7,
"width": 980,
"height": 720,
"content": "\n## LinkedIn Message Processing\nReceives the LinkedIn message via Unipile api webhook."
},
"typeVersion": 1
},
{
"id": "388d621c-7339-4d74-a2c4-4da9c41a441f",
"name": "Note11",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
320
],
"parameters": {
"color": 7,
"width": 2097,
"height": 693,
"content": "\n## Slack Bot Button Press\nThis workflow gets the button presses from the Slack interface and passes it along to Unipile for processing."
},
"typeVersion": 1
},
{
"id": "13ed0034-df98-46a8-931c-4e87667e624c",
"name": "Décider du Type de Message",
"type": "n8n-nodes-base.switch",
"position": [
3760,
-80
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "User",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "4670af46-5774-4fec-8b12-a608aefa3d89",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('Set all potential Inputs').item.json.linkedinprofile[0].type }}",
"rightValue": "user"
}
]
},
"renameOutput": true
},
{
"outputKey": "Organization",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0a484630-343d-4b9a-9bf0-6ef5bd9b1b4b",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('Set all potential Inputs').item.json.linkedinprofile[0].type }}",
"rightValue": "organization"
}
]
},
"renameOutput": true
}
]
},
"options": {
"fallbackOutput": "extra"
}
},
"typeVersion": 3.2
},
{
"id": "e4c36cc2-9ad1-4ceb-8698-05079c9c6509",
"name": "Sélecteur d'Utilisateur",
"type": "n8n-nodes-base.switch",
"position": [
680,
800
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "angel",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "27c0a3cc-b768-4aba-bab0-19971fb2d38d",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.payload.user.id }}",
"rightValue": "U07G1JBR76W"
}
]
},
"renameOutput": true
},
{
"outputKey": "max",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "b16b07b2-c77b-439f-9acb-e7799dceaa6b",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.payload.user.id }}",
"rightValue": "U035CE97JGM"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "f84186be-8ded-47c5-8bdb-9366c8be59fa",
"name": "Isoler Message et Charge Utile",
"type": "n8n-nodes-base.set",
"position": [
920,
580
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "2a9278cb-3f2a-4f90-852a-3ca16b404c58",
"name": "message",
"type": "string",
"value": "={{ $json.body.payload.state.values.ai_response.response_input.value }}"
},
{
"id": "3c16c98d-a7db-42e9-aacd-9ede379b1f49",
"name": "body.payload.actions[0].value",
"type": "object",
"value": "={{ $json.body.payload.actions[0].value }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "7dc03482-8c14-4494-a475-3f958a1fd445",
"name": "Isoler Charge Utile",
"type": "n8n-nodes-base.set",
"position": [
920,
820
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "f334a7f4-4c85-466c-8278-3da5dd5a2486",
"name": "body",
"type": "object",
"value": "={{ $('Slack Button Press').item.json.body.payload }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "425b2b79-447d-4736-9edf-0033969d64b4",
"name": "Envoyer webhook au Workflow Collègue",
"type": "n8n-nodes-base.httpRequest",
"position": [
1140,
820
],
"parameters": {
"url": "https://n8n.cloud/webhook/89659f10-574e-s42c-530d-e7dd9158d177",
"method": "POST",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "4c36fc5c-75a5-4279-9555-13fdfa033510",
"name": "Envoyer Message à LinkedIn via Unipile",
"type": "n8n-nodes-base.httpRequest",
"position": [
1380,
520
],
"parameters": {
"url": "=https://api9.unipile.com:13976/api/v1/chats/{{ $json.body.payload.actions[0].value.channel_id }}/messages",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "form-urlencoded",
"sendHeaders": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "text",
"value": "={{ $('Isolate Message and Payload').item.json.message }}"
}
]
},
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "VfYHlcsosNuUS2YD",
"name": "unipile angel"
}
},
"typeVersion": 4.2
},
{
"id": "bed8608b-b474-4472-87ad-1e3454799a81",
"name": "Supprimer Message Approuvé de Slack",
"type": "n8n-nodes-base.slack",
"position": [
1680,
520
],
"webhookId": "08e7c073-569a-4400-aa60-80c7cddf8b03",
"parameters": {
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "={{ $('User Switcher').item.json.body.payload.channel.id }}"
},
"operation": "delete",
"timestamp": "={{ $('User Switcher').item.json.body.payload.container.message_ts }}"
},
"credentials": {
"slackApi": {
"id": "6xKmxBfKWNPnre2E",
"name": "Request Router"
}
},
"typeVersion": 2.3
},
{
"id": "b79429a6-3b46-4898-a933-3b6ec77a1f97",
"name": "Supprimer Message Refusé de Slack",
"type": "n8n-nodes-base.slack",
"position": [
1680,
720
],
"webhookId": "70630dad-c2a5-4c40-aef3-070994ce4b83",
"parameters": {
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "={{ $('User Switcher').item.json.body.payload.channel.id }}"
},
"operation": "delete",
"timestamp": "={{ $('User Switcher').item.json.body.payload.container.message_ts }}"
},
"credentials": {
"slackApi": {
"id": "6xKmxBfKWNPnre2E",
"name": "Request Router"
}
},
"typeVersion": 2.3
},
{
"id": "9a475e01-a250-44f2-8cc6-4ef60aedaa36",
"name": "Agent IA",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
3220,
-80
],
"parameters": {
"text": "=Sender Name: {{ $('Isolate parent workflow data for AI').item.json.sender }}\nSender Message: {{ $('Isolate parent workflow data for AI').item.json.message }}\nMy Name: Your Name\n\nIf found, the linkedin profile will be below, pay close attention to the number of followers and connections: \n{{ $('Set all potential Inputs').item.json.linkedinprofile.toJsonString() }}",
"options": {
"systemMessage": "=You are an expert professional assistant designed to help generate smart, personalized responses to LinkedIn messages.\n\nYou will be provided with:\n1. The **incoming message** and name from a LinkedIn user.\n2. A **database of past requests and responses**. These are known message types and the preferred replies.\n3. Context about the assistant's voice and tone.\n\n### Your Objective:\n- First, scan the database for any message that closely matches the incoming LinkedIn message. If a match is found, use the **corresponding response** as a base — you may slightly tailor it if needed (e.g., change names or dates).\n- If no close match is found, generate a **new, thoughtful reply** based on the message content, tone guidelines, and best practices in business networking. If you do not have a direct link or URL to provide from the Request Database, do not reference a website or URL. Instead say a variation of let me get back to you on that and see what I can find. \n\n### Tone Guidelines:\n- Friendly, confident, and professional — but never robotic.\n- Lightly personalized. Use the sender’s name if available.\n- Avoid sounding like a sales pitch.\n- Keep replies concise and natural, like something you'd actually send on LinkedIn.\n\n### When generating a new message:\n- Acknowledge the sender’s message.\n- Add a relevant, helpful comment or question to continue the conversation.\n- Keep the tone warm and open-ended.\n\n### Output format:\nOnly output the message text that should be sent to the user. Do not explain your reasoning. If you do not have a direct link to provide, do not reference a website or URL. Instead say let me get back to you on that and see what I can find. \n\nLet’s begin.\nRequest Database:\n\n{{ $json.dbObject.join('\\n\\n----\\n\\n') }}\n\nWhen responding, use the following format:\n{\n\t\"output\": \"message response\",\n\t\"found\": true\n}\nFor output output the message response, for found output a boolean, true if an example is found in the Request Database, false if a response is not found. The output is going to slack so ensure you escape your outputs like new lines. "
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.9
},
{
"id": "53011c4c-b9aa-4b47-84c8-060e4b7a2db9",
"name": "Mémoire Simple",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
3340,
160
],
"parameters": {
"sessionKey": "={{ $('Isolate parent workflow data for AI').item.json.chatid }}",
"sessionIdType": "customKey"
},
"typeVersion": 1.3
},
{
"id": "b5eb7520-c887-4a72-89d0-d616c24fdfca",
"name": "OpenAI Modèle de Chat",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
3120,
180
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "gpt-4o"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "QpFZ2EiM3WGl6Zr3",
"name": "Marketing OpenAI"
}
},
"typeVersion": 1.2
},
{
"id": "b405f410-4d76-43f9-b21c-b6cb363daa43",
"name": "Analyseur de Sortie Structurée",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
3500,
160
],
"parameters": {
"jsonSchemaExample": "{\n\t\"output\": \"message response\",\n\t\"found\": true\n}"
},
"typeVersion": 1.2
},
{
"id": "8ad9d20b-07a4-46f2-9dbb-5d3d8d502641",
"name": "Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
3020,
-400
],
"parameters": {
"color": 7,
"width": 668,
"height": 718,
"content": "\n## Generate Automated response\nThe AI bot receives not only the message from LinkedIn, but also LinkedIn user context, such as the number of followers and connections, allowing for tailored responses. For example if a user asks to meet, but they don't meet a certain number of followers threshold, they are politely declined. However if an influencer reaches out, they are automatically given a booking link to ensure that high priority requests are immediately followed up on. "
},
"typeVersion": 1
},
{
"id": "8d593035-111a-45dc-93ea-950aad7b0ebb",
"name": "Isoler données du workflow parent pour l'IA",
"type": "n8n-nodes-base.set",
"position": [
2260,
20
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "91a1191e-bac0-4b8b-b263-a03c63435470",
"name": "sender",
"type": "string",
"value": "={{ $('Global Variables').item.json.sender }}"
},
{
"id": "0f8c17c8-d598-4840-8b89-8dbdcd529231",
"name": "message",
"type": "string",
"value": "={{ $('Global Variables').item.json.message }}"
},
{
"id": "c9132b69-5e0e-4ccf-86bb-0e4cfa734860",
"name": "chatid",
"type": "string",
"value": "={{ $('Global Variables').item.json.chat_id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "d267a541-a739-49b8-a2f6-b8afbb6cc837",
"name": "Obtenir Base de Données du Répertoire du Routeur de Demandes",
"type": "n8n-nodes-base.notion",
"position": [
2460,
20
],
"parameters": {
"options": {},
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "1da5b6e0-c94f-8086-80b6-eab8e340d60e",
"cachedResultUrl": "https://www.notion.so/1da5b6e0c94f808680b6eab8e340d60e",
"cachedResultName": "RequestRouterDB"
}
},
"credentials": {
"notionApi": {
"id": "2B3YIiD4FMsF9Rjn",
"name": "Angelbot Notion"
}
},
"typeVersion": 2.2
},
{
"id": "af762a13-5774-4608-a221-7860dce3f27c",
"name": "Formater données DB pour Contexte IA",
"type": "n8n-nodes-base.set",
"position": [
2660,
20
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "c4ac8c33-a220-4c07-bc0d-dc7ba7cc068e",
"name": "dbObject",
"type": "string",
"value": "=Request Example: {{ $json.name }}\n--\nRequest Description: {{ $json.property_request_description }}\n--\nRequest Action: {{ $json.property_request_action }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "88da9528-2a4c-426a-bd27-8caa47bed3f5",
"name": "Agréger objets DB en un seul élément",
"type": "n8n-nodes-base.aggregate",
"position": [
2860,
20
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "dbObject"
}
]
}
},
"typeVersion": 1
},
{
"id": "204ce89b-9443-4ece-8385-cb3b59bd5a0b",
"name": "Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
2180,
-400
],
"parameters": {
"color": 7,
"width": 826,
"height": 700,
"content": "\n## Get routing Database data\nAn AI bot that does not get smarter over time is not a useful bot. That is why this bot references a shared internal database where requests routing can be updated without having to touch the n8n workflows. When a request comes in that does not have a standardized process, the AI will generate a response based on its model training. You can use this as a starting point, but when this becomes a pattern, simply updating the notion database instantly upgrades the AI bot. Not only that, but others can update the database, not only giving the AI context, but also creating a centralized location for standardized processes for handling different request types. This can be adapted for any platform, not just linkedIn, such as shared email inboxes, shared social media pages, and even for support requests. "
},
"typeVersion": 1
},
{
"id": "d4a894d6-334b-4abe-9d1a-0e449da46b6f",
"name": "Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
-540
],
"parameters": {
"color": 7,
"width": 1246,
"height": 840,
"content": ")\n## Enrich LinkedIn Data with User or Org Data from Unipile\nLinkedIn messages arrive from one of two object types, users or organizations. This workflow extracts the user data and passes it along. If the user is not found, then the Organization endpoint is searched instead. If it's found, it send that, otherwise it sends a not found object. "
},
"typeVersion": 1
},
{
"id": "ec186db1-e7e8-480e-a94a-d4c1de5ee420",
"name": "Obtenir Données Utilisateur Linkedin depuis Unipile",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
980,
-140
],
"parameters": {
"url": "=https://api9.unipile.com:13976/api/v1/users/{{ $('Webhook').item.json.body.sender.attendee_provider_id }}",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "account_id",
"value": "-oWmWRkASjKGUZadYcjcyg"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "VfYHlcsosNuUS2YD",
"name": "unipile angel"
}
},
"typeVersion": 4.2
},
{
"id": "d3fb953a-f3cf-4005-934c-b091bb784d84",
"name": "Définir Données Utilisateur depuis Unipile",
"type": "n8n-nodes-base.set",
"position": [
1240,
-280
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "aee91408-b68d-472e-8c3e-89260dd38c1c",
"name": "first_name",
"type": "string",
"value": "={{ $json.first_name }}"
},
{
"id": "57b3be6f-ba76-48c3-8f2e-1d9bb03d0dd5",
"name": "last_name",
"type": "string",
"value": "={{ $json.last_name }}"
},
{
"id": "75167f30-96d6-4442-9542-9d1b8e17fcb6",
"name": "headline",
"type": "string",
"value": "={{ $json.headline }}"
},
{
"id": "3e8bccc1-04a9-49f6-8053-eba22fe8d2f4",
"name": "websites",
"type": "array",
"value": "={{ $json.websites }}"
},
{
"id": "2e3dd2fe-5f71-4d19-bee8-085dd9bfc18c",
"name": "follower_count",
"type": "number",
"value": "={{ $json.follower_count }}"
},
{
"id": "ac5cc567-3c4f-481c-b229-9dc1e48d39fb",
"name": "connections_count",
"type": "number",
"value": "={{ $json.connections_count }}"
},
{
"id": "6bad07a6-4641-48cb-b436-fb735319865f",
"name": "location",
"type": "string",
"value": "={{ $json.location }}"
},
{
"id": "029fa351-f49f-4388-a59e-5719fcf8a506",
"name": "profile_picture_url",
"type": "string",
"value": "={{ $json.profile_picture_url }}"
},
{
"id": "2f96dca6-acee-41c0-83b5-00cd406d3301",
"name": "is_influencer",
"type": "boolean",
"value": "={{ $json.is_influencer }}"
},
{
"id": "4278e070-ce56-4993-b637-57ac60e83a49",
"name": "is_premium",
"type": "boolean",
"value": "={{ $json.is_premium }}"
},
{
"id": "b92c38f1-1423-4b7e-a807-320d13e0a944",
"name": "shared_connections_count",
"type": "number",
"value": "={{ $json.shared_connections_count }}"
},
{
"id": "96b24500-e6a4-444a-806c-0b61a1f00407",
"name": "type",
"type": "string",
"value": "user"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c6077ddb-362d-45f4-a497-2529348148ab",
"name": "Grouper en un objet - Utilisateur",
"type": "n8n-nodes-base.aggregate",
"position": [
1420,
-280
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "linkedinprofile"
},
"typeVersion": 1
},
{
"id": "1eb09bf7-fb93-4c19-bc41-86330c7b33e6",
"name": "Obtenir Données Organisation Linkedin depuis Unipile",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
1240,
80
],
"parameters": {
"url": "=https://api9.unipile.com:13976/api/v1/linkedin/company/{{ $('Webhook').item.json.body.sender.attendee_provider_id }}",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "account_id",
"value": "-oWmWRkASjKGUZadYcjcyg"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpHeaderAuth": {
"id": "VfYHlcsosNuUS2YD",
"name": "unipile angel"
}
},
"typeVersion": 4.2
},
{
"id": "38f5ed6f-9302-4979-b964-c1d231a344b6",
"name": "Définir Données Organisation Linkedin depuis Unipile",
"type": "n8n-nodes-base.set",
"position": [
1520,
-80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "aee91408-b68d-472e-8c3e-89260dd38c1c",
"name": "first_name",
"type": "string",
"value": "={{ $json.name }}"
},
{
"id": "57b3be6f-ba76-48c3-8f2e-1d9bb03d0dd5",
"name": "last_name",
"type": "string",
"value": "="
},
{
"id": "75167f30-96d6-4442-9542-9d1b8e17fcb6",
"name": "headline",
"type": "string",
"value": "={{ $json.description }}"
},
{
"id": "3e8bccc1-04a9-49f6-8053-eba22fe8d2f4",
"name": "websites",
"type": "string",
"value": "={{ $json.website }}"
},
{
"id": "2e3dd2fe-5f71-4d19-bee8-085dd9bfc18c",
"name": "follower_count",
"type": "number",
"value": "={{ $json.followers_count }}"
},
{
"id": "ac5cc567-3c4f-481c-b229-9dc1e48d39fb",
"name": "employee_count",
"type": "number",
"value": "={{ $json.employee_count_range.from }}"
},
{
"id": "6bad07a6-4641-48cb-b436-fb735319865f",
"name": "location",
"type": "string",
"value": "={{ $json.locations[0].street.join(' ') }}, {{ $json.locations[0].city }} {{ $json.locations[0].area }}, {{ $json.locations[0].postalCode }} {{ $json.locations[0].country }}."
},
{
"id": "89035aa7-e7bb-46eb-9f4b-633e2c17478a",
"name": "hashtags",
"type": "array",
"value": "={{ $json.hashtags }}"
},
{
"id": "25b0abe6-aef7-4d6f-88ea-5fcbd3472089",
"name": "profile_picture_url",
"type": "string",
"value": "={{ $json.logo }}"
},
{
"id": "decf44b7-520e-4977-9df5-276c5117d8e4",
"name": "type",
"type": "string",
"value": "organization"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "45bd4b50-01e6-468b-815a-58073c137693",
"name": "Grouper en un objet - Organisation",
"type": "n8n-nodes-base.aggregate",
"position": [
1720,
-80
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "linkedinprofile"
},
"typeVersion": 1
},
{
"id": "c97c50b6-b491-43cd-8eb6-e48b368c862e",
"name": "Définir objet données introuvable",
"type": "n8n-nodes-base.set",
"position": [
1640,
120
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "438518ca-d55a-45d5-9210-0c53de7ae108",
"name": "linkedinprofile",
"type": "string",
"value": "Unable to find LinkedIn Data"
},
{
"id": "2d0595aa-bdd4-46e3-9f4d-e13e69c5a7a9",
"name": "type",
"type": "string",
"value": "none"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b42b967a-b127-458c-94b6-7a81052e6ba1",
"name": "Note12",
"type": "n8n-nodes-base.stickyNote",
"position": [
3700,
-400
],
"parameters": {
"color": 7,
"width": 857,
"height": 813,
"content": "\n## Slack Bot Button Press\nThis workflow gets the button presses from the Slack interface and passes it along to Unipile for processing."
},
"typeVersion": 1
},
{
"id": "48da88b3-beac-4c52-bf0c-460bc4d525fb",
"name": "Définir toutes les Entrées potentielles",
"type": "n8n-nodes-base.set",
"position": [
2020,
-80
],
"parameters": {
"options": {},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "7e091689-7905-4101-8dc9-0609b4f80233",
"name": "Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
-180
],
"parameters": {
"color": 3,
"height": 360,
"content": "#### Add me to Unipile Webhook Dashboard\nEnsure that you have created a webhook in the Unipile dashboard that links to this node. [Link to Webhook Dashboard](https://dashboard.unipile.com/webhooks)"
},
"typeVersion": 1
},
{
"id": "97da9488-0e37-42c0-8dbf-912731fc5091",
"name": "Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
540
],
"parameters": {
"color": 3,
"height": 420,
"content": "#### Add me to your Slack App Interactivity and Shortcuts\nTo receive button presses in this webhook, ensure that you've created a slack app and then set the webhook URL in the Interactivity & Shortcuts tab to this production URL. Use our App Manifest template to quickly deploy the app with the correct scopes. [Link to template with App Manifest](https://dashboard.unipile.com/webhooks)"
},
"typeVersion": 1
},
{
"id": "c9be1dca-da24-4f18-b2a4-36f89b7520a1",
"name": "Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
940,
-300
],
"parameters": {
"width": 180,
"height": 320,
"content": "#### Update Credentials\nEnsure to use generic header auth. The name for the header is X-API-KEY. [Link to access token page on Unipile Site](https://dashboard.unipile.com/access-tokens)"
},
"typeVersion": 1
},
{
"id": "6e81a9bf-1c50-4366-9bae-be6241fc7875",
"name": "Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1200,
-80
],
"parameters": {
"width": 180,
"height": 320,
"content": "#### Update Credentials\nEnsure to use generic header auth. The name for the header is X-API-KEY. [Link to access token page on Unipile Site](https://dashboard.unipile.com/access-tokens)"
},
"typeVersion": 1
},
{
"id": "d8d5d5d1-6fe4-4f03-95cb-4d3cb6182f59",
"name": "Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2400,
-80
],
"parameters": {
"width": 220,
"height": 280,
"content": "#### Update Credentials\nDoes not have to be notion, can be any database type node like Google sheets. "
},
"typeVersion": 1
},
{
"id": "6a8202e9-e3c0-48db-b894-a009d801bddd",
"name": "Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
380,
-180
],
"parameters": {
"width": 220,
"height": 340,
"content": "#### Update with your Unipile UserID\nEasiest way to do this is to send a message to someone so it triggers this workflow and then copy the senderID that shows in this node"
},
"typeVersion": 1
},
{
"id": "36b271d3-53f6-4548-bf3f-8dea39e05b05",
"name": "Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
3060,
60
],
"parameters": {
"width": 220,
"height": 240,
"content": "#### Update Credentials"
},
"typeVersion": 1
},
{
"id": "2391f630-e071-4720-81c8-7937452e0523",
"name": "Note13",
"type": "n8n-nodes-base.stickyNote",
"position": [
4020,
-160
],
"parameters": {
"width": 220,
"height": 560,
"content": "#### Update Credentials"
},
"typeVersion": 1
},
{
"id": "c533f8ea-1391-4b2f-81ba-2caa8a919e3b",
"name": "Note14",
"type": "n8n-nodes-base.stickyNote",
"position": [
1320,
360
],
"parameters": {
"width": 220,
"height": 340,
"content": "#### Update Credentials\nEnsure to use generic header auth. The name for the header is X-API-KEY. [Link to access token page on Unipile Site](https://dashboard.unipile.com/access-tokens)"
},
"typeVersion": 1
},
{
"id": "6f0ef5cc-ef53-4a02-bdd9-5931c9ba8a0e",
"name": "Note15",
"type": "n8n-nodes-base.stickyNote",
"position": [
1620,
460
],
"parameters": {
"width": 220,
"height": 460,
"content": "#### Update Credentials"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"5f71a0e6-d5ec-4712-9feb-2b10a1b0a3ea": {
"main": [
[
{
"node": "39865ae2-a266-47ba-a6fd-c9b1f5d5a931",
"type": "main",
"index": 0
}
]
]
},
"9a475e01-a250-44f2-8cc6-4ef60aedaa36": {
"main": [
[
{
"node": "13ed0034-df98-46a8-931c-4e87667e624c",
"type": "main",
"index": 0
}
]
]
},
"8adbb07e-4897-4421-b581-c963b754aa2b": {
"main": [
[
{
"node": "ec186db1-e7e8-480e-a94a-d4c1de5ee420",
"type": "main",
"index": 0
}
]
]
},
"b87d4806-423b-4656-bbd6-9d0808242cc4": {
"main": [
[
{
"node": "e4c36cc2-9ad1-4ceb-8698-05079c9c6509",
"type": "main",
"index": 0
}
]
]
},
"53011c4c-b9aa-4b47-84c8-060e4b7a2db9": {
"ai_memory": [
[
{
"node": "9a475e01-a250-44f2-8cc6-4ef60aedaa36",
"type": "ai_memory",
"index": 0
}
]
]
},
"e4c36cc2-9ad1-4ceb-8698-05079c9c6509": {
"main": [
[
{
"node": "f84186be-8ded-47c5-8bdb-9366c8be59fa",
"type": "main",
"index": 0
}
],
[
{
"node": "7dc03482-8c14-4494-a475-3f958a1fd445",
"type": "main",
"index": 0
}
]
]
},
"ee147347-1a88-4e96-9580-d08285e901c0": {
"main": [
[
{
"node": "b87d4806-423b-4656-bbd6-9d0808242cc4",
"type": "main",
"index": 0
}
]
]
},
"7dc03482-8c14-4494-a475-3f958a1fd445": {
"main": [
[
{
"node": "425b2b79-447d-4736-9edf-0033969d64b4",
"type": "main",
"index": 0
}
]
]
},
"bd66537c-6fe5-4877-9127-3b78af08c499": {
"main": [
[
{
"node": "8adbb07e-4897-4421-b581-c963b754aa2b",
"type": "main",
"index": 0
}
],
[
{
"node": "e14aedab-47e9-4811-b991-ee0d00290c39",
"type": "main",
"index": 0
}
]
]
},
"39865ae2-a266-47ba-a6fd-c9b1f5d5a931": {
"main": [
[
{
"node": "bd66537c-6fe5-4877-9127-3b78af08c499",
"type": "main",
"index": 0
}
]
]
},
"ac2cb5e1-394a-4a5c-a999-a56d315bc3ff": {
"main": [
[
{
"node": "4c36fc5c-75a5-4279-9555-13fdfa033510",
"type": "main",
"index": 0
}
],
[
{
"node": "b79429a6-3b46-4898-a933-3b6ec77a1f97",
"type": "main",
"index": 0
}
]
]
},
"b5eb7520-c887-4a72-89d0-d616c24fdfca": {
"ai_languageModel": [
[
{
"node": "9a475e01-a250-44f2-8cc6-4ef60aedaa36",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"3c58401c-cb83-4d71-9469-7563d6ce9c16": {
"main": [
[
{
"node": "ee147347-1a88-4e96-9580-d08285e901c0",
"type": "main",
"index": 0
}
]
]
},
"13ed0034-df98-46a8-931c-4e87667e624c": {
"main": [
[
{
"node": "3812b521-2e15-4c24-9883-79ef04fc6cb3",
"type": "main",
"index": 0
}
],
[
{
"node": "7470b927-8a4d-4421-b6d3-cc55623d77dd",
"type": "main",
"index": 0
}
],
[
{
"node": "0c63c0e7-752d-4bd7-ab78-23a1ff4d70ae",
"type": "main",
"index": 0
}
]
]
},
"48da88b3-beac-4c52-bf0c-460bc4d525fb": {
"main": [
[
{
"node": "8d593035-111a-45dc-93ea-950aad7b0ebb",
"type": "main",
"index": 0
}
]
]
},
"b405f410-4d76-43f9-b21c-b6cb363daa43": {
"ai_outputParser": [
[
{
"node": "9a475e01-a250-44f2-8cc6-4ef60aedaa36",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"45bd4b50-01e6-468b-815a-58073c137693": {
"main": [
[
{
"node": "48da88b3-beac-4c52-bf0c-460bc4d525fb",
"type": "main",
"index": 0
}
]
]
},
"c6077ddb-362d-45f4-a497-2529348148ab": {
"main": [
[
{
"node": "48da88b3-beac-4c52-bf0c-460bc4d525fb",
"type": "main",
"index": 0
}
]
]
},
"d3fb953a-f3cf-4005-934c-b091bb784d84": {
"main": [
[
{
"node": "c6077ddb-362d-45f4-a497-2529348148ab",
"type": "main",
"index": 0
}
]
]
},
"f84186be-8ded-47c5-8bdb-9366c8be59fa": {
"main": [
[
{
"node": "ac2cb5e1-394a-4a5c-a999-a56d315bc3ff",
"type": "main",
"index": 0
}
]
]
},
"af762a13-5774-4608-a221-7860dce3f27c": {
"main": [
[
{
"node": "88da9528-2a4c-426a-bd27-8caa47bed3f5",
"type": "main",
"index": 0
}
]
]
},
"c97c50b6-b491-43cd-8eb6-e48b368c862e": {
"main": [
[
{
"node": "48da88b3-beac-4c52-bf0c-460bc4d525fb",
"type": "main",
"index": 0
}
]
]
},
"88da9528-2a4c-426a-bd27-8caa47bed3f5": {
"main": [
[
{
"node": "9a475e01-a250-44f2-8cc6-4ef60aedaa36",
"type": "main",
"index": 0
}
]
]
},
"1eb09bf7-fb93-4c19-bc41-86330c7b33e6": {
"main": [
[
{
"node": "38f5ed6f-9302-4979-b964-c1d231a344b6",
"type": "main",
"index": 0
}
],
[
{
"node": "c97c50b6-b491-43cd-8eb6-e48b368c862e",
"type": "main",
"index": 0
}
]
]
},
"38f5ed6f-9302-4979-b964-c1d231a344b6": {
"main": [
[
{
"node": "45bd4b50-01e6-468b-815a-58073c137693",
"type": "main",
"index": 0
}
]
]
},
"ec186db1-e7e8-480e-a94a-d4c1de5ee420": {
"main": [
[
{
"node": "d3fb953a-f3cf-4005-934c-b091bb784d84",
"type": "main",
"index": 0
}
],
[
{
"node": "1eb09bf7-fb93-4c19-bc41-86330c7b33e6",
"type": "main",
"index": 0
}
]
]
},
"8d593035-111a-45dc-93ea-950aad7b0ebb": {
"main": [
[
{
"node": "d267a541-a739-49b8-a2f6-b8afbb6cc837",
"type": "main",
"index": 0
}
]
]
},
"4c36fc5c-75a5-4279-9555-13fdfa033510": {
"main": [
[
{
"node": "bed8608b-b474-4472-87ad-1e3454799a81",
"type": "main",
"index": 0
}
]
]
},
"d267a541-a739-49b8-a2f6-b8afbb6cc837": {
"main": [
[
{
"node": "af762a13-5774-4608-a221-7860dce3f27c",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Support, Intelligence Artificielle
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Angel Menendez
@djangelicAngel Menendez is a Staff Developer Advocate at n8n.io, specializing in low-code tools for cybersecurity workflows. From Puerto Rico, Angel's tech journey began by helping his father translate technical books. He later started a web development business and transitioned from a career as a flight attendant to cybersecurity engineering. His workflows have saved companies significant time. Outside work, Angel enjoys time with his two sons, riding electric bikes, reading, and exploring new places.
Partager ce workflow