This workflow corresponds to n8n.io template #4889 — we link there as the canonical source.
This workflow follows the Agent → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "5f71a0e6-d5ec-4712-9feb-2b10a1b0a3ea",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
0,
0
],
"parameters": {
"path": "12a0b328-1d39-44b4-b29d-9ac465cf134b",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "bd66537c-6fe5-4877-9127-3b78af08c499",
"name": "Check if from me",
"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": "Response, No action",
"type": "n8n-nodes-base.noOp",
"position": [
700,
120
],
"parameters": {},
"typeVersion": 1
},
{
"id": "8adbb07e-4897-4421-b581-c963b754aa2b",
"name": "New Message",
"type": "n8n-nodes-base.noOp",
"position": [
680,
-140
],
"parameters": {},
"typeVersion": 1
},
{
"id": "39865ae2-a266-47ba-a6fd-c9b1f5d5a931",
"name": "Global Variables",
"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 Button Press",
"type": "n8n-nodes-base.webhook",
"position": [
0,
800
],
"parameters": {
"path": "e3182811-630a-4959-b91c-71d8c8093e1c",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2
},
{
"id": "b87d4806-423b-4656-bbd6-9d0808242cc4",
"name": "Parse 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": "Verify 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": "Check if approved",
"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": "Send User Message",
"type": "n8n-nodes-base.slack",
"position": [
4080,
-100
],
"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\": \"\ud83d\udc64*<{{ $('Webhook').item.json.body.sender.attendee_profile_url }}|{{ $('Webhook').item.json.body.sender.attendee_name }}>*\\n\\n\ud83d\udcbc {{ $('Set all potential Inputs').item.json.linkedinprofile[0].headline }}\\n\\n\ud83d\udccd {{ $('Set all potential Inputs').item.json.linkedinprofile[0].location }}\\n\ud83d\udc65 {{ $('Set all potential Inputs').item.json.linkedinprofile[0].follower_count }} followers | \ud83d\udd17 {{ $('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\": \"*\ud83d\udce9 <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\": \"\ud83e\udd16 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\": \"\u2705 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\": \"\ud83d\uddc3\ufe0f 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": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "7470b927-8a4d-4421-b6d3-cc55623d77dd",
"name": "Send Org Message",
"type": "n8n-nodes-base.slack",
"position": [
4080,
60
],
"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\": \"\ud83c\udfe2*<{{ $('Webhook').item.json.body.sender.attendee_profile_url }}|{{ $('Webhook').item.json.body.sender.attendee_name }}>*\\n\\n\ud83d\udcbc {{ $('Set all potential Inputs').item.json.linkedinprofile[0].headline }}\\n\\n\ud83d\udccd {{ $('Set all potential Inputs').item.json.linkedinprofile[0].location }}\\n\ud83d\udc65 {{ $('Set all potential Inputs').item.json.linkedinprofile[0].follower_count }} followers | \ud83e\uddd1\u200d\ud83d\udcbc {{ $('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\": \"*\ud83d\udce9 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\": \"\ud83e\udd16 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\": \"\u2705 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\": \"\ud83d\uddc3\ufe0f 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": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "0c63c0e7-752d-4bd7-ab78-23a1ff4d70ae",
"name": "Send Nothing Found Message",
"type": "n8n-nodes-base.slack",
"position": [
4080,
220
],
"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\": \"\u2705 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\": \"\ud83d\uddc3\ufe0f 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": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "fb29432d-7603-4b42-902f-7784459dd40d",
"name": "Sticky 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": "Sticky 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": "Decide on Message Type",
"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": "User Switcher",
"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": "Isolate Message and Payload",
"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": "Isolate Payload",
"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": "Send webhook to Coworker Workflow",
"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": "Send Message to 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": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "bed8608b-b474-4472-87ad-1e3454799a81",
"name": "Delete Approved Message from Slack",
"type": "n8n-nodes-base.slack",
"position": [
1680,
520
],
"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": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "b79429a6-3b46-4898-a933-3b6ec77a1f97",
"name": "Delete Denied Message from Slack",
"type": "n8n-nodes-base.slack",
"position": [
1680,
720
],
"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": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "9a475e01-a250-44f2-8cc6-4ef60aedaa36",
"name": "AI Agent",
"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 \u2014 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 \u2014 but never robotic.\n- Lightly personalized. Use the sender\u2019s 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\u2019s 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\u2019s 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": "Simple Memory",
"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 Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
3120,
180
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "gpt-4o"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "b405f410-4d76-43f9-b21c-b6cb363daa43",
"name": "Structured Output Parser",
"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": "Sticky 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": "Isolate parent workflow data for AI",
"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": "Get Request Router Directory Database",
"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": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "af762a13-5774-4608-a221-7860dce3f27c",
"name": "Format DB data for AI Context",
"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": "Aggregate DB objects into one item",
"type": "n8n-nodes-base.aggregate",
"position": [
2860,
20
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "dbObject"
}
]
}
},
"typeVersion": 1
},
{
"id": "204ce89b-9443-4ece-8385-cb3b59bd5a0b",
"name": "Sticky 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": "Sticky 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": "Get Linkedin User Data from 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": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "d3fb953a-f3cf-4005-934c-b091bb784d84",
"name": "Set User Data from 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": "Group in one object - User",
"type": "n8n-nodes-base.aggregate",
"position": [
1420,
-280
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "linkedinprofile"
},
"typeVersion": 1
},
{
"id": "1eb09bf7-fb93-4c19-bc41-86330c7b33e6",
"name": "Get Linkedin Org Data from 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": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "38f5ed6f-9302-4979-b964-c1d231a344b6",
"name": "Set Linkedin Org Data from 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": "Group in one object - Org",
"type": "n8n-nodes-base.aggregate",
"position": [
1720,
-80
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "linkedinprofile"
},
"typeVersion": 1
},
{
"id": "c97c50b6-b491-43cd-8eb6-e48b368c862e",
"name": "Set unable to find data object",
"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": "Sticky 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": "Set all potential Inputs",
"type": "n8n-nodes-base.set",
"position": [
2020,
-80
],
"parameters": {
"options": {},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "7e091689-7905-4101-8dc9-0609b4f80233",
"name": "Sticky 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": "Sticky 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": "Sticky 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": "Sticky 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": "Sticky 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": "Sticky 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": "Sticky 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": "Sticky 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": "Sticky 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": "Sticky Note15",
"type": "n8n-nodes-base.stickyNote",
"position": [
1620,
460
],
"parameters": {
"width": 220,
"height": 460,
"content": "#### Update Credentials"
},
"typeVersion": 1
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Global Variables",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Decide on Message Type",
"type": "main",
"index": 0
}
]
]
},
"New Message": {
"main": [
[
{
"node": "Get Linkedin User Data from Unipile",
"type": "main",
"index": 0
}
]
]
},
"Parse Webhook": {
"main": [
[
{
"node": "User Switcher",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"User Switcher": {
"main": [
[
{
"node": "Isolate Message and Payload",
"type": "main",
"index": 0
}
],
[
{
"node": "Isolate Payload",
"type": "main",
"index": 0
}
]
]
},
"Verify Webhook": {
"main": [
[
{
"node": "Parse Webhook",
"type": "main",
"index": 0
}
]
]
},
"Isolate Payload": {
"main": [
[
{
"node": "Send webhook to Coworker Workflow",
"type": "main",
"index": 0
}
]
]
},
"Check if from me": {
"main": [
[
{
"node": "New Message",
"type": "main",
"index": 0
}
],
[
{
"node": "Response, No action",
"type": "main",
"index": 0
}
]
]
},
"Global Variables": {
"main": [
[
{
"node": "Check if from me",
"type": "main",
"index": 0
}
]
]
},
"Check if approved": {
"main": [
[
{
"node": "Send Message to LinkedIn via Unipile",
"type": "main",
"index": 0
}
],
[
{
"node": "Delete Denied Message from Slack",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Slack Button Press": {
"main": [
[
{
"node": "Verify Webhook",
"type": "main",
"index": 0
}
]
]
},
"Decide on Message Type": {
"main": [
[
{
"node": "Send User Message",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Org Message",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Nothing Found Message",
"type": "main",
"index": 0
}
]
]
},
"Set all potential Inputs": {
"main": [
[
{
"node": "Isolate parent workflow data for AI",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Group in one object - Org": {
"main": [
[
{
"node": "Set all potential Inputs",
"type": "main",
"index": 0
}
]
]
},
"Group in one object - User": {
"main": [
[
{
"node": "Set all potential Inputs",
"type": "main",
"index": 0
}
]
]
},
"Set User Data from Unipile": {
"main": [
[
{
"node": "Group in one object - User",
"type": "main",
"index": 0
}
]
]
},
"Isolate Message and Payload": {
"main": [
[
{
"node": "Check if approved",
"type": "main",
"index": 0
}
]
]
},
"Format DB data for AI Context": {
"main": [
[
{
"node": "Aggregate DB objects into one item",
"type": "main",
"index": 0
}
]
]
},
"Set unable to find data object": {
"main": [
[
{
"node": "Set all potential Inputs",
"type": "main",
"index": 0
}
]
]
},
"Aggregate DB objects into one item": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Get Linkedin Org Data from Unipile": {
"main": [
[
{
"node": "Set Linkedin Org Data from Unipile",
"type": "main",
"index": 0
}
],
[
{
"node": "Set unable to find data object",
"type": "main",
"index": 0
}
]
]
},
"Set Linkedin Org Data from Unipile": {
"main": [
[
{
"node": "Group in one object - Org",
"type": "main",
"index": 0
}
]
]
},
"Get Linkedin User Data from Unipile": {
"main": [
[
{
"node": "Set User Data from Unipile",
"type": "main",
"index": 0
}
],
[
{
"node": "Get Linkedin Org Data from Unipile",
"type": "main",
"index": 0
}
]
]
},
"Isolate parent workflow data for AI": {
"main": [
[
{
"node": "Get Request Router Directory Database",
"type": "main",
"index": 0
}
]
]
},
"Send Message to LinkedIn via Unipile": {
"main": [
[
{
"node": "Delete Approved Message from Slack",
"type": "main",
"index": 0
}
]
]
},
"Get Request Router Directory Database": {
"main": [
[
{
"node": "Format DB data for AI Context",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
httpHeaderAuthnotionApiopenAiApislackApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Public-facing professionals (developer advocates, founders, marketers, content creators) who get bombarded with LinkedIn messages that aren't actually for them - support requests when you're in marketing, sales inquiries when you're a devrel, partnership pitches when you handle…
Source: https://n8n.io/workflows/4889/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow automates the entire process of taking a raw user-submitted script, rewriting it into a polished HeyGen-ready narration, generating a full avatar video, handling all processing checks, r
🧾 An intelligent automation system that turns Google Meet recordings into structured meeting notes — integrating Fireflies.ai, OpenAI GPT-4.1-mini, Notion, Slack, Google Drive, and Gmail via n8n.
Automate multilingual voice content creation by translating an English script into multiple languages and generating natural-sounding audio files using AI. 🌍🎙️ This workflow receives a script via webh
This n8n workflow orchestrates a powerful suite of AI Agents and automations to manage and optimize various aspects of an e-commerce operation, particularly for platforms like Shopify. It leverages La
Enhance your support, onboarding, and internal knowledge workflows with an intelligent RAG-powered chatbot that responds using live data stored in Google Sheets. 🤖📚 Built for teams that rely on struct