This workflow corresponds to n8n.io template #9813 — we link there as the canonical source.
This workflow follows the Agent → Gmail 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": "414324ed-4eb7-438e-87b5-545389924db6",
"name": "Sticky Note - Title",
"type": "n8n-nodes-base.stickyNote",
"position": [
736,
5488
],
"parameters": {
"color": 5,
"width": 3600,
"height": 2400,
"content": "## Personalised AI Sales Automation\n**LinkedIn, Email & Whatsapp**"
},
"typeVersion": 1
},
{
"id": "c1f4229c-0af5-474f-9d08-4ca0f2b09e42",
"name": "Sticky Note 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1584,
6288
],
"parameters": {
"color": 4,
"width": 380,
"height": 360,
"content": "## STEP 1: Setup Your Google Sheet\n\n**What you need:**\n- A Google Sheet with your lead data\n- Required columns: First Name, Last Name, Title, Company Name, Personal Email, etc.\n- Add these columns for AI output: \"Connection\", \"AI Email\", \"AI Whatsapp Message\"\n\n**Configure:**\n1. Get your Google Sheet ID from the URL\n2. Add Google Sheets OAuth2 credentials in n8n\n3. Update both \"Get row(s) in sheet\" nodes with your Sheet ID"
},
"typeVersion": 1
},
{
"id": "4c0496fe-5909-4f0f-bba4-cc0f524dd5a0",
"name": "Sticky Note 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1920,
7120
],
"parameters": {
"color": 4,
"width": 384,
"height": 380,
"content": "## STEP 2: Process Data in Batches\n\n**Loop Over Items node:**\n- Splits your sheet data into batches\n- Processes one lead at a time\n- Prevents API rate limits\n\n**Edit Fields node:**\n- Prepares the full row data as \"Fullrow\"\n- This data is sent to the AI Agent for personalization"
},
"typeVersion": 1
},
{
"id": "769a5e09-db40-4fcf-84af-3297a9a7a923",
"name": "Sticky Note 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2368,
7104
],
"parameters": {
"color": 3,
"width": 400,
"height": 400,
"content": "## STEP 3: AI Personalization Engine\n\n**AI Agent node:**\n- Uses OpenAI to generate personalized messages\n- Creates 3 outputs: LinkedIn request, Email, WhatsApp message\n- Analyzes all lead data for hyper-personalization\n\n**IMPORTANT - Update the prompt with:**\n- [YOUR_NAME] - Your full name\n- [YOUR_TITLE] - Your job title\n- [YOUR_EMAIL] - Your email address\n- [YOUR_LINKEDIN_URL] - Your LinkedIn profile\n\n**OpenAI Chat Model:**\n- Add your OpenAI API key in credentials\n- Model: gpt-4.1-mini (you can change this)"
},
"typeVersion": 1
},
{
"id": "4e38a570-1441-4308-b224-67b6adbb7a44",
"name": "Sticky Note 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
2848,
7104
],
"parameters": {
"color": 4,
"width": 424,
"height": 416,
"content": "## STEP 4: Clean & Save AI Output\n\n**Cleans up node:**\n- Parses AI response from JSON string\n- Extracts: connectionMessage, emailMessage, whatsappMessage\n\n**Update row in sheet:**\n- Writes AI-generated messages back to Google Sheet\n- Updates the same row using row_number as identifier\n- Now you can review messages before sending!"
},
"typeVersion": 1
},
{
"id": "92a03bcf-c4e7-4d9b-91be-ed6deb6c8a26",
"name": "Sticky Note 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2064,
5824
],
"parameters": {
"color": 6,
"width": 476,
"height": 376,
"content": "## STEP 5: Manual Approval Gate\n\n**Send a message1 (Gmail):**\n- Sends you an approval email\n- Review the Google Sheet with AI-generated messages\n- Approve or reject before sending\n\n**If1 node:**\n- Checks if you approved\n- Only proceeds if approved = true\n- Safety mechanism to prevent unwanted sends\n\n**CONFIGURE:**\n- Add Gmail OAuth2 credentials\n- Update \"sendTo\" with your email address"
},
"typeVersion": 1
},
{
"id": "de7ce25c-269a-453c-a848-3e88bf412c21",
"name": "Sticky Note 6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2608,
5840
],
"parameters": {
"color": 6,
"width": 428,
"height": 360,
"content": "## STEP 6: Send LinkedIn Requests\n\n**LinkedIn Requests2 (HTTP Request):**\n- Connects to Phantombuster API\n- Automates LinkedIn connection requests\n\n**CONFIGURE:**\n1. Sign up for Phantombuster\n2. Create a LinkedIn automation agent\n3. Replace YOUR_PHANTOMBUSTER_API_KEY\n4. Replace YOUR_AGENT_ID with your agent ID\n\n**Note:** You'll need to configure Phantombuster with your LinkedIn account and connection message template."
},
"typeVersion": 1
},
{
"id": "e7336ca5-b83a-497a-a402-a2848add7f99",
"name": "Sticky Note 7",
"type": "n8n-nodes-base.stickyNote",
"position": [
3520,
6704
],
"parameters": {
"color": 6,
"width": 480,
"height": 436,
"content": "## STEP 7: Send Emails & Notifications\n\n**Send a message2 (Gmail):**\n- Sends personalized AI-generated emails\n- Subject includes company name\n- Body is the HTML email from AI\n\n**Send a text message (Telegram):**\n- Sends connection message to your Telegram\n- Useful for monitoring/logging\n\n**CONFIGURE:**\n- Gmail: Add OAuth2 credentials\n- Telegram: Create bot with @BotFather, get bot token\n- Update YOUR_TELEGRAM_CHAT_ID with your chat ID\n\n**Loop Over Items1:**\n- Processes approved leads one by one\n- Sends emails and notifications sequentially"
},
"typeVersion": 1
},
{
"id": "a46a7fcf-0caf-4094-8d52-e0283e8448ee",
"name": "Sticky Note 8",
"type": "n8n-nodes-base.stickyNote",
"position": [
768,
5616
],
"parameters": {
"color": 2,
"width": 380,
"height": 460,
"content": "## QUICK START CHECKLIST\n\n**Required Credentials:**\n\u25a1 Google Sheets OAuth2\n\u25a1 Gmail OAuth2\n\u25a1 OpenAI API Key\n\u25a1 Telegram Bot Token (optional)\n\u25a1 Phantombuster API Key (optional)\n\n**Setup Steps:**\n1. Import this workflow to n8n\n2. Add all credentials\n3. Update Google Sheet ID in nodes\n4. Customize AI prompt with your details\n5. Update email addresses\n6. Test with 1-2 leads first\n7. Review output in Google Sheet\n8. Approve and send!\n\n**Support:** Check n8n community forum or documentation"
},
"typeVersion": 1
},
{
"id": "a75bdaf0-9212-44b2-804e-75d05bc9c6ec",
"name": "Sticky Note 9",
"type": "n8n-nodes-base.stickyNote",
"position": [
768,
6160
],
"parameters": {
"width": 380,
"height": 460,
"content": "## IMPORTANT NOTES\n\n**Rate Limits:**\n- OpenAI: ~3-10 req/min (depends on plan)\n- Gmail: 100-500 emails/day\n- LinkedIn: 100 requests/week (Phantombuster limits)\n\n**Best Practices:**\n- Start with small batches (5-10 leads)\n- Review AI output quality regularly\n- Monitor deliverability rates\n- Personalize the AI prompt for your niche\n- Keep your Google Sheet organized\n\n**Troubleshooting:**\n- Check credentials if nodes fail\n- Verify Google Sheet permissions\n- Test each node individually\n- Check execution logs for errors"
},
"typeVersion": 1
},
{
"id": "8391a7e7-a953-4725-a37d-03ad485eba3d",
"name": "Sticky Note 10",
"type": "n8n-nodes-base.stickyNote",
"position": [
768,
6720
],
"parameters": {
"color": 7,
"width": 420,
"height": 460,
"content": "## CUSTOMIZATION IDEAS\n\n**Enhance the AI Prompt:**\n- Add your company's value propositions\n- Include specific industry pain points\n- Customize tone (formal/casual)\n- Add call-to-action variations\n\n**Additional Features:**\n- Add delays between sends\n- Implement A/B testing for messages\n- Track response rates in Sheet\n- Add follow-up sequences\n- Integrate with CRM (HubSpot, Salesforce)\n\n**Alternative Tools:**\n- Replace Phantombuster with other LinkedIn tools\n- Use SendGrid instead of Gmail\n- Add Slack notifications\n- Connect to WhatsApp Business API"
},
"typeVersion": 1
},
{
"id": "c99ab453-96b2-4f8f-9ba5-a0f39f53806c",
"name": "Get row(s) in sheet4",
"type": "n8n-nodes-base.googleSheets",
"position": [
1776,
6704
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "YOUR_SHEET_GID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit#gid=YOUR_SHEET_GID",
"cachedResultName": "Your Data Sheet"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEET_ID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit",
"cachedResultName": "Your Leads Sheet"
}
},
"typeVersion": 4.7
},
{
"id": "980946e2-ad17-4135-a332-bcfea8a4f6b1",
"name": "Loop Over Items4",
"type": "n8n-nodes-base.splitInBatches",
"position": [
2000,
6704
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "ba8c86b9-d123-40a3-9f6d-3bb91de5cc78",
"name": "Update row in sheet2",
"type": "n8n-nodes-base.googleSheets",
"position": [
3024,
6832
],
"parameters": {
"columns": {
"value": {
"AI Email": "={{ $json.emailMessage }}",
"Connection": "={{ $json.connectionMessage }}",
"row_number": "={{ $('Get row(s) in sheet4').item.json.row_number }}",
"AI Whatsapp Message": "={{ $json.whatsappMessage }}"
},
"schema": [
{
"id": "Connection",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Connection",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "AI Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "AI Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "AI Whatsapp Message",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "AI Whatsapp Message",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Name for Emails",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Name for Emails",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Person Linkedin Url",
"type": "string",
"display": true,
"required": false,
"displayName": "Person Linkedin Url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Personal Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Personal Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Seniority",
"type": "string",
"display": true,
"required": false,
"displayName": "Seniority",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Departments",
"type": "string",
"display": true,
"required": false,
"displayName": "Departments",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Corporate Phone",
"type": "string",
"display": true,
"required": false,
"displayName": "Corporate Phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "# Employees",
"type": "string",
"display": true,
"required": false,
"displayName": "# Employees",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Industry",
"type": "string",
"display": true,
"required": false,
"displayName": "Industry",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Keywords",
"type": "string",
"display": true,
"required": false,
"displayName": "Keywords",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Website",
"type": "string",
"display": true,
"required": false,
"displayName": "Website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Facebook Url",
"type": "string",
"display": true,
"required": false,
"displayName": "Facebook Url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Linkedin Url",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Linkedin Url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Twitter Url",
"type": "string",
"display": true,
"required": false,
"displayName": "Twitter Url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "City",
"type": "string",
"display": true,
"required": false,
"displayName": "City",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "State",
"type": "string",
"display": true,
"required": false,
"displayName": "State",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Country",
"type": "string",
"display": true,
"required": false,
"displayName": "Country",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Address",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company City",
"type": "string",
"display": true,
"required": false,
"displayName": "Company City",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company State",
"type": "string",
"display": true,
"required": false,
"displayName": "Company State",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Country",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Country",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Phone",
"type": "string",
"display": true,
"required": false,
"displayName": "Company Phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Technologies",
"type": "string",
"display": true,
"required": false,
"displayName": "Technologies",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Annual Revenue",
"type": "string",
"display": true,
"required": false,
"displayName": "Annual Revenue",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"row_number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "YOUR_SHEET_GID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit#gid=YOUR_SHEET_GID",
"cachedResultName": "Your Data Sheet"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEET_ID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit",
"cachedResultName": "Your Leads Sheet"
}
},
"typeVersion": 4.7
},
{
"id": "ed189141-1f7b-42e1-a61b-9197534f5568",
"name": "Edit Fields2",
"type": "n8n-nodes-base.set",
"position": [
2224,
6704
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "51bdb84d-79e3-4c23-8426-6ef43cb1fbb9",
"name": "Fullrow",
"type": "string",
"value": "={{$json}}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "acc8f11b-3a2f-4ccd-8f70-17553a6d2c9d",
"name": "Send a message5",
"type": "n8n-nodes-base.gmail",
"position": [
2224,
6416
],
"parameters": {
"sendTo": "user@example.com",
"message": "Please review the Google Sheet YOUR_SHEET_URL and verify the outgoing messages. Once you've checked them, indicate whether you approve or disagree with each message before we send the outputs.",
"options": {},
"subject": "Seeking your approval to send Linkedin requests, Email & Whatsapp messages",
"operation": "sendAndWait",
"approvalOptions": {
"values": {
"approvalType": "double"
}
}
},
"typeVersion": 2.1
},
{
"id": "73a42b47-45fe-4741-9369-288827f8379b",
"name": "Get row(s) in sheet5",
"type": "n8n-nodes-base.googleSheets",
"position": [
2976,
6400
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "YOUR_SHEET_GID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit#gid=YOUR_SHEET_GID",
"cachedResultName": "Your Data Sheet"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEET_ID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit",
"cachedResultName": "Your Leads Sheet"
}
},
"typeVersion": 4.7
},
{
"id": "4cee7d9c-e9a7-41b8-87f6-5f4c4c075b2f",
"name": "Loop Over Items5",
"type": "n8n-nodes-base.splitInBatches",
"position": [
3392,
6400
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "bc6db9b6-8df8-456a-9ced-828bf39a7029",
"name": "AI Agent (Data Analysis & Personalisation)2",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2448,
6704
],
"parameters": {
"text": "=You are an expert outreach strategist, copywriter, and AI consultant. You will receive a full JSON of a prospect in Json. Your task is to generate **three highly personalized messages** from me, [YOUR_NAME], [YOUR_TITLE], with email [YOUR_EMAIL] and LinkedIn [YOUR_LINKEDIN_URL]. Use all data in the JSON to craft messages that feel **hyper-personalized and human**, as if I really researched their company, role, and industry. \n\nYour goal is to make the prospect feel: \"Wow, they really know my business!\" while keeping messages professional, empathetic, and engaging.\n\n1. **LinkedIn Connection Request** \n - Max 300 characters \n - Friendly, empathetic, professional \n - Use Name, Company, Title, Industry, Keywords, Location, Technologies, or anything relevant from the JSON \n - Mention subtle benefit of AI automations for their workflows \n - Must feel like a real human wrote it, never generic or robotic \n\n2. **Email Message (HTML)** \n - Full HTML email with **beautiful, readable structure** \n - `<p>` for paragraphs, `<strong>` for emphasis, `<ul>` if needed \n - 6\u20138 sentences minimum \n - Professional, persuasive, friendly, and human-like \n - Begin with personalized greeting and reference their company, role, or achievements \n - Explain **how AI automations can subtly help their business**, without sounding salesy \n - Use clear, easy-to-read formatting with short paragraphs \n - Include a polite and friendly CTA \n - End with my signature: \n ```\n Best regards,<br>\n [YOUR_NAME]<br>\n [YOUR_TITLE]<br>\n <a href='mailto:[YOUR_EMAIL]'>[YOUR_EMAIL]</a><br>\n <a href='[YOUR_LINKEDIN_URL]'>LinkedIn</a>\n ```\n - Only provide the **HTML content**, no Markdown, no JSON, no code fences \n\n3. **WhatsApp Message** \n - 1\u20132 sentences, short and casual \n - Personalized using Name, Company, or Location \n - Highlight an insight, interesting observation, or subtle benefit \n - Friendly, approachable, human-like \n\n**Output JSON only, no extra text, no Markdown:** \n\n{\n \"connectionMessage\": \"...\",\n \"emailMessage\": \"...\",\n \"whatsappMessage\": \"...\"\n}\n\nUse **all available data in {{ $json.Fullrow }}** to make the messages feel personal, researched, and real. The goal is for the prospect to feel impressed, engaged, and curious to reply. Make everything professional, human, and compelling.\n",
"options": {},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "d2a85eaa-0f27-4c5c-9548-7faa79e678bb",
"name": "Cleans up2",
"type": "n8n-nodes-base.code",
"position": [
2800,
6704
],
"parameters": {
"jsCode": "// Parse GPT string output into JSON\nreturn $json[\"output\"] ? [{ \n connectionMessage: JSON.parse($json[\"output\"]).connectionMessage,\n emailMessage: JSON.parse($json[\"output\"]).emailMessage,\n whatsappMessage: JSON.parse($json[\"output\"]).whatsappMessage\n}] : [];\n"
},
"typeVersion": 2
},
{
"id": "ffcc5923-d229-49ba-bcb3-81e6f1331c40",
"name": "Send a text message2",
"type": "n8n-nodes-base.telegram",
"position": [
4128,
6416
],
"parameters": {
"text": "={{ $('Loop Over Items5').item.json[\"AI Connection Message\"] }}",
"chatId": "YOUR_TELEGRAM_CHAT_ID",
"additionalFields": {
"appendAttribution": false
}
},
"typeVersion": 1.2
},
{
"id": "2a69893f-4696-45ee-bff2-6efe47874e51",
"name": "LinkedIn Requests3",
"type": "n8n-nodes-base.httpRequest",
"position": [
2720,
6400
],
"parameters": {
"url": "https://api.phantombuster.com/api/v1/agent/YOUR_AGENT_ID/launch",
"method": "POST",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "output",
"value": "json"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "X-Phantombuster-Key-1",
"value": "YOUR_PHANTOMBUSTER_API_KEY"
},
{
"name": "accept",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "f651dc8f-ffd3-4acd-9b23-615f95c0b755",
"name": "OpenAI Chat Model3",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2448,
6880
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "23f0a514-ed0d-4c28-acb2-a3b88d434f04",
"name": "If3",
"type": "n8n-nodes-base.if",
"position": [
2464,
6416
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "de2c80cc-c777-4b5d-952b-03ce98676ed6",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.data.approved }}",
"rightValue": "=true"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "8ca2cfad-502c-409f-8f99-6d05612a5efc",
"name": "Send a message6",
"type": "n8n-nodes-base.gmail",
"position": [
3680,
6416
],
"parameters": {
"sendTo": "user@example.com",
"message": "={{ $json[\"AI Email\"] }}",
"options": {
"appendAttribution": false
},
"subject": "=Thoughts on boosting {{ $json[\"Company Name\"] }}'s efficiency with AI "
},
"typeVersion": 2.1
},
{
"id": "776c4dec-044c-4419-b2cd-8cce07fe04bf",
"name": "Send message",
"type": "n8n-nodes-base.whatsApp",
"position": [
3888,
6416
],
"parameters": {
"operation": "send",
"additionalFields": {}
},
"credentials": {
"whatsAppApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
}
],
"connections": {
"If3": {
"main": [
[
{
"node": "LinkedIn Requests3",
"type": "main",
"index": 0
}
]
]
},
"Cleans up2": {
"main": [
[
{
"node": "Update row in sheet2",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields2": {
"main": [
[
{
"node": "AI Agent (Data Analysis & Personalisation)2",
"type": "main",
"index": 0
}
]
]
},
"Send message": {
"main": [
[
{
"node": "Send a text message2",
"type": "main",
"index": 0
}
]
]
},
"Send a message5": {
"main": [
[
{
"node": "If3",
"type": "main",
"index": 0
}
]
]
},
"Send a message6": {
"main": [
[
{
"node": "Send message",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items4": {
"main": [
[
{
"node": "Send a message5",
"type": "main",
"index": 0
}
],
[
{
"node": "Edit Fields2",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items5": {
"main": [
[],
[
{
"node": "Send a message6",
"type": "main",
"index": 0
}
]
]
},
"LinkedIn Requests3": {
"main": [
[
{
"node": "Get row(s) in sheet5",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model3": {
"ai_languageModel": [
[
{
"node": "AI Agent (Data Analysis & Personalisation)2",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Get row(s) in sheet4": {
"main": [
[
{
"node": "Loop Over Items4",
"type": "main",
"index": 0
}
]
]
},
"Get row(s) in sheet5": {
"main": [
[
{
"node": "Loop Over Items5",
"type": "main",
"index": 0
}
]
]
},
"Send a text message2": {
"main": [
[
{
"node": "Loop Over Items5",
"type": "main",
"index": 0
}
]
]
},
"Update row in sheet2": {
"main": [
[
{
"node": "Loop Over Items4",
"type": "main",
"index": 0
}
]
]
},
"AI Agent (Data Analysis & Personalisation)2": {
"main": [
[
{
"node": "Cleans up2",
"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.
whatsAppApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates your entire sales outreach process across LinkedIn, Email, and WhatsApp using AI to create hyper-personalized messages for each prospect. Instead of spending hours crafting individual messages, the workflow analyzes your lead data and generates customized…
Source: https://n8n.io/workflows/9813/ — 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 process of generating, reviewing, and publishing blog posts across multiple platforms, now enhanced with support for RSS Feeds as a content source. It streamlines the manag
Universal Expense tracker. Uses telegram, httpRequest, openAi, googleSheets. Webhook trigger; 33 nodes.
//ASMR AI Workflow
Workflow Created By: Abdullah Dilshad 📧 iamabdullahdishad@gmail.com
Automated Research Report Generation with OpenAI, Wikipedia, Google Search, and Gmail/Telegram. Uses lmChatOpenAi, memoryBufferWindow, toolHttpRequest, agent. Event-driven trigger; 26 nodes.