This workflow corresponds to n8n.io template #14811 — we link there as the canonical source.
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 →
{
"nodes": [
{
"id": "5569eac0-d61e-4cbd-bd27-a0ca6cbf3819",
"name": "Main Sticky",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
368
],
"parameters": {
"color": 2,
"width": 500,
"height": 680,
"content": "## Automate Personalized Cold Email Outreach\nStreamline your outbound lead engagement by automatically sending personalized emails based on partner type.\n\n\n### How it works\n1. Fetch lead data from Google Sheets.\n2. Filter for unique, valid leads.\n3. Check existing status to avoid duplicate outreach.\n4. Route leads to custom email templates.\n5. Send emails via Zoho ZeptoMail.\n6. Update tracking sheet with outreach status.\n\n\n### Setup\n1. Connect Google Sheets and Zoho ZeptoMail credentials.\n2. Configure your Resource IDs for the sheets.\n3. Update the 'Set' nodes with your company details.\n4. Install required community nodes (see Important section).\n\n\n### Customization\nConsolidate user-specific values in a Set node at the workflow start for easy configuration.\n\n\n### Important\n\u26a0\ufe0f This workflow requires a self-hosted n8n instance. Community nodes used: n8n-nodes-zohozeptomail.zohoZeptomail"
},
"typeVersion": 1
},
{
"id": "5cbe9599-f05a-4dc7-9cd1-cca9b6fa424f",
"name": "Remove Duplicate Emails",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
480,
512
],
"parameters": {
"compare": "selectedFields",
"options": {
"removeOtherFields": false
},
"fieldsToCompare": "Email"
},
"typeVersion": 2
},
{
"id": "3520d855-5e99-466e-b636-4833c57ec66d",
"name": "Validate Email and Name",
"type": "n8n-nodes-base.filter",
"position": [
704,
512
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "email-check",
"operator": {
"type": "boolean",
"operation": "equals"
},
"leftValue": "={{ /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test($json['Email']) }}",
"rightValue": true
},
{
"id": "name-check",
"operator": {
"type": "boolean",
"operation": "equals"
},
"leftValue": "={{ ($json['Name'] || '').trim().length > 0 }}",
"rightValue": true
}
]
}
},
"typeVersion": 2.3
},
{
"id": "f3b5cae7-d55c-4178-9573-8e0164e93341",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
928,
512
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "48ba4123-9abe-4d95-85d3-7d29865bf019",
"name": "Read Tracking Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
1168,
528
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "YOUR_RESOURCE_ID_HERE"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_RESOURCE_ID_HERE"
}
},
"typeVersion": 4.7,
"continueOnFail": true,
"alwaysOutputData": true
},
{
"id": "5fbc77e6-0dca-42aa-9ba2-46d32bb9d625",
"name": "Skip If Already In Sequence",
"type": "n8n-nodes-base.code",
"position": [
1376,
528
],
"parameters": {
"jsCode": "// \u2500\u2500 Per-item duplicate check \u2014 runs fresh each loop iteration \u2500\u2500\nconst BLOCKING = ['sent','followup_1','completed','replied','unsubscribed'];\n\n// Current lead from the loop (1 item at a time)\nconst lead = $('Loop Over Items').item.json;\nconst leadEmail = (lead['Email'] || '').toLowerCase().trim();\n\n// Check tracking sheet rows\nconst alreadyTracked = $input.all().some(row => {\n const rowEmail = (row.json['Email'] || row.json['email'] || '').toLowerCase().trim();\n const rowStatus = (row.json['status'] || row.json['Status'] || '').toLowerCase().trim();\n return rowEmail === leadEmail && BLOCKING.includes(rowStatus);\n});\n\nif (alreadyTracked) return [];\nreturn [{ json: lead }];\n"
},
"typeVersion": 2,
"alwaysOutputData": false
},
{
"id": "9ac6c324-8e04-46c9-b55f-3ee60eb46d28",
"name": "Route by Partner Type",
"type": "n8n-nodes-base.switch",
"position": [
1616,
496
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "college-rule",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json['partner_type'] }}",
"rightValue": "College"
}
]
}
},
{
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "influencer-rule",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json['partner_type'] }}",
"rightValue": "Influencer"
}
]
}
},
{
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "brand-rule",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json['partner_type'] }}",
"rightValue": "Brand"
}
]
}
}
]
},
"options": {
"fallbackOutput": "extra"
}
},
"typeVersion": 3.4
},
{
"id": "1dc10ddd-8aa9-4c64-bfbb-45be477a0fe3",
"name": "College Email",
"type": "n8n-nodes-base.set",
"position": [
1904,
464
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "c-re",
"name": "recipientEmail",
"type": "string",
"value": "={{ $json['Email'] }}"
},
{
"id": "c-rn",
"name": "recipientName",
"type": "string",
"value": "={{ $json['Name'] }}"
},
{
"id": "c-pt",
"name": "partnerType",
"type": "string",
"value": "College"
},
{
"id": "c-sub",
"name": "emailSubject",
"type": "string",
"value": "=Collaboration opportunity with [YOUR COMPANY] \u2014 for {{ $json['Company'] || 'your' }} students"
},
{
"id": "c-bod",
"name": "emailBody",
"type": "string",
"value": "=<!DOCTYPE html><html><body style=\"font-family:Arial,sans-serif;max-width:600px;margin:0 auto;color:#333;line-height:1.6\"><p>Hi {{ $json['Name'].split(' ')[0] }},</p><p>We came across <strong>{{ $json['Company'] || 'your institution' }}</strong> and would love to explore a campus partnership with you!</p><p>Here is what a partnership with <strong>[YOUR COMPANY]</strong> looks like:</p><ul style=\"padding-left:20px\"><li style=\"margin-bottom:6px\">\ud83c\udf93 Guest lectures and workshops by our team for your students</li><li style=\"margin-bottom:6px\">\ud83d\udcbc Internship and placement opportunities at [YOUR COMPANY]</li><li style=\"margin-bottom:6px\">\ud83c\udfc6 Sponsored hackathons, case study competitions, and prizes</li><li style=\"margin-bottom:6px\">\ud83d\udcda Free access to [YOUR PRODUCT] for students and faculty</li></ul><p>We already partner with leading institutions and have helped <strong>500+ students</strong> kickstart their careers.</p><p>I'd love to jump on a quick 20-minute call to explore this \u2014 no pitch, just a genuine conversation.</p><p style=\"margin-top:24px\"><a href=\"https://calendly.com/REPLACE_WITH_CALENDAR_LINK\" style=\"background:#1D4ED8;color:#fff;padding:12px 24px;border-radius:6px;text-decoration:none;display:inline-block;font-weight:bold\">\ud83d\udcc5 Schedule a Chat</a></p><p style=\"margin-top:24px\">Looking forward to it,<br><strong>[YOUR NAME]</strong><br>[YOUR TITLE] \u00b7 [YOUR COMPANY]<br>[YOUR PHONE] \u00b7 [YOUR EMAIL]</p><hr style=\"border:none;border-top:1px solid #eee;margin:28px 0\"><p style=\"font-size:11px;color:#999\">You received this because you filled out our partner interest form.<br><a href=\"mailto:[YOUR EMAIL]?subject=Unsubscribe\" style=\"color:#999\">Unsubscribe</a></p></body></html>"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "8e477fd8-4b68-4b68-889a-e80e460b1245",
"name": "Influencer Email",
"type": "n8n-nodes-base.set",
"position": [
1904,
640
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "i-re",
"name": "recipientEmail",
"type": "string",
"value": "={{ $json['Email'] }}"
},
{
"id": "i-rn",
"name": "recipientName",
"type": "string",
"value": "={{ $json['Name'] }}"
},
{
"id": "i-pt",
"name": "partnerType",
"type": "string",
"value": "Influencer"
},
{
"id": "i-sub",
"name": "emailSubject",
"type": "string",
"value": "=Collab opportunity \u2014 [YOUR COMPANY] x {{ $json['Name'].split(' ')[0] }} \ud83d\ude80"
},
{
"id": "i-bod",
"name": "emailBody",
"type": "string",
"value": "=<!DOCTYPE html><html><body style=\"font-family:Arial,sans-serif;max-width:600px;margin:0 auto;color:#333;line-height:1.6\"><p>Hi {{ $json['Name'].split(' ')[0] }},</p><p>Huge fan of your content \u2014 we think <strong>[YOUR COMPANY]</strong> and you would be a perfect match!</p><p>Here is what a partnership with <strong>[YOUR COMPANY]</strong> looks like:</p><ul style=\"padding-left:20px\"><li style=\"margin-bottom:6px\">\ud83d\udcb0 Competitive flat fee + performance-based revenue share</li><li style=\"margin-bottom:6px\">\ud83c\udf81 Free lifetime access to [YOUR PRODUCT] for you and your audience</li><li style=\"margin-bottom:6px\">\ud83d\udcf8 Full creative freedom \u2014 no rigid scripts, just authentic content</li><li style=\"margin-bottom:6px\">\ud83d\udce3 Cross-promotion to our audience of [X]K followers</li></ul><p>Our creator partners see strong engagement and have driven <strong>thousands of signups</strong> with a single post.</p><p>I'd love to jump on a quick 20-minute call to explore this \u2014 no pitch, just a genuine conversation.</p><p style=\"margin-top:24px\"><a href=\"https://calendly.com/REPLACE_WITH_CALENDAR_LINK\" style=\"background:#7C3AED;color:#fff;padding:12px 24px;border-radius:6px;text-decoration:none;display:inline-block;font-weight:bold\">\ud83d\udcc5 Let's Talk Collab</a></p><p style=\"margin-top:24px\">Looking forward to it,<br><strong>[YOUR NAME]</strong><br>[YOUR TITLE] \u00b7 [YOUR COMPANY]<br>[YOUR PHONE] \u00b7 [YOUR EMAIL]</p><hr style=\"border:none;border-top:1px solid #eee;margin:28px 0\"><p style=\"font-size:11px;color:#999\">You received this because you filled out our partner interest form.<br><a href=\"mailto:[YOUR EMAIL]?subject=Unsubscribe\" style=\"color:#999\">Unsubscribe</a></p></body></html>"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b66c9740-a51e-463f-bc1b-40747639ce45",
"name": "Brand Email",
"type": "n8n-nodes-base.set",
"position": [
1904,
816
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b-re",
"name": "recipientEmail",
"type": "string",
"value": "={{ $json['Email'] }}"
},
{
"id": "b-rn",
"name": "recipientName",
"type": "string",
"value": "={{ $json['Name'] }}"
},
{
"id": "b-pt",
"name": "partnerType",
"type": "string",
"value": "Brand"
},
{
"id": "b-sub",
"name": "emailSubject",
"type": "string",
"value": "=Brand partnership with [YOUR COMPANY] \u2014 let's grow together, {{ $json['Name'].split(' ')[0] }}"
},
{
"id": "b-bod",
"name": "emailBody",
"type": "string",
"value": "=<!DOCTYPE html><html><body style=\"font-family:Arial,sans-serif;max-width:600px;margin:0 auto;color:#333;line-height:1.6\"><p>Hi {{ $json['Name'].split(' ')[0] }},</p><p>We'd love to explore a brand partnership between <strong>{{ $json['Company'] || 'your team' }}</strong> and <strong>{{ $json.Name }}</strong>!</p><p>Here is what a partnership with <strong>[YOUR COMPANY]</strong> looks like:</p><ul style=\"padding-left:20px\"><li style=\"margin-bottom:6px\">\ud83d\udce3 Co-branded campaigns reaching both our audiences</li><li style=\"margin-bottom:6px\">\ud83e\udd1d Joint product bundles and exclusive offers</li><li style=\"margin-bottom:6px\">\ud83d\udcca Shared performance dashboards and transparent reporting</li><li style=\"margin-bottom:6px\">\ud83d\ude80 Co-sponsored events, webinars, and activations</li></ul><p>Our brand partners typically see a <strong>2\u20134x uplift</strong> in qualified leads within the first campaign.</p><p>I'd love to jump on a quick 20-minute call to explore this \u2014 no pitch, just a genuine conversation.</p><p style=\"margin-top:24px\"><a href=\"https://calendly.com/REPLACE_WITH_CALENDAR_LINK\" style=\"background:#059669;color:#fff;padding:12px 24px;border-radius:6px;text-decoration:none;display:inline-block;font-weight:bold\">\ud83d\udcc5 Explore the Partnership</a></p><p style=\"margin-top:24px\">Looking forward to it,<br><strong>[YOUR NAME]</strong><br>[YOUR TITLE] \u00b7 [YOUR COMPANY]<br>[YOUR PHONE] \u00b7 [YOUR EMAIL]</p><hr style=\"border:none;border-top:1px solid #eee;margin:28px 0\"><p style=\"font-size:11px;color:#999\">You received this because you filled out our partner interest form.<br><a href=\"mailto:[YOUR EMAIL]?subject=Unsubscribe\" style=\"color:#999\">Unsubscribe</a></p></body></html>"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "47045630-171a-46a5-a8b6-3657675174d4",
"name": "Other Email",
"type": "n8n-nodes-base.set",
"position": [
1904,
992
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "o-re",
"name": "recipientEmail",
"type": "string",
"value": "={{ $json['Email'] }}"
},
{
"id": "o-rn",
"name": "recipientName",
"type": "string",
"value": "={{ $json['Name'] }}"
},
{
"id": "o-pt",
"name": "partnerType",
"type": "string",
"value": "={{ $json['partner_type'] || 'Other' }}"
},
{
"id": "o-sub",
"name": "emailSubject",
"type": "string",
"value": "=Thanks for reaching out, {{ $json['Name'].split(' ')[0] }} \u2014 let's connect"
},
{
"id": "o-bod",
"name": "emailBody",
"type": "string",
"value": "=<!DOCTYPE html><html><body style=\"font-family:Arial,sans-serif;max-width:600px;margin:0 auto;color:#333;line-height:1.6\"><p>Hi {{ $json['Name'].split(' ')[0] }},</p><p>Thanks for filling out our form \u2014 great to hear from <strong>{{ $json['Company'] || 'your team' }}</strong>!</p><p>Here is what a partnership with <strong>[YOUR COMPANY]</strong> looks like:</p><ul style=\"padding-left:20px\"><li style=\"margin-bottom:6px\">\ud83e\udd1d Flexible partnership structures tailored to your goals</li><li style=\"margin-bottom:6px\">\ud83d\ude80 Fast onboarding and a dedicated point of contact</li><li style=\"margin-bottom:6px\">\ud83d\udcc8 Mutual growth and cross-promotion opportunities</li></ul><p>We are always open to exploring creative ways to work together.</p><p>I'd love to jump on a quick 20-minute call to explore this \u2014 no pitch, just a genuine conversation.</p><p style=\"margin-top:24px\"><a href=\"https://calendly.com/REPLACE_WITH_CALENDAR_LINK\" style=\"background:#374151;color:#fff;padding:12px 24px;border-radius:6px;text-decoration:none;display:inline-block;font-weight:bold\">\ud83d\udcc5 Book a Quick Call</a></p><p style=\"margin-top:24px\">Looking forward to it,<br><strong>[YOUR NAME]</strong><br>[YOUR TITLE] \u00b7 [YOUR COMPANY]<br>[YOUR PHONE] \u00b7 [YOUR EMAIL]</p><hr style=\"border:none;border-top:1px solid #eee;margin:28px 0\"><p style=\"font-size:11px;color:#999\">You received this because you filled out our partner interest form.<br><a href=\"mailto:[YOUR EMAIL]?subject=Unsubscribe\" style=\"color:#999\">Unsubscribe</a></p></body></html>"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "cab90c6f-3d54-4ce0-9821-452a98cb0be7",
"name": "Add to Tracking Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
2512,
736
],
"parameters": {
"columns": {
"value": {
"Name": "={{ $('Skip If Already In Sequence').item.json.Name }}",
"Email": "={{ $('Skip If Already In Sequence').item.json['Email'] }}",
"status": "sent",
"sent_date": "={{ $now.toFormat(\"yyyy/MM/dd\") }}",
"thread_id": "={{ $json.code }}",
"email_type": "={{ $('Skip If Already In Sequence').item.json.email_type }}",
"message_id": "={{ $json.code }}",
"row_number": "={{ $('Skip If Already In Sequence').item.json.row_number }}",
"partner_type": "={{ $('Skip If Already In Sequence').item.json['partner_type'] }}",
"follow_up_date": "={{ $now.plus({days: 5}).toISODate() }}",
"original_subject": "={{ $('Wait').item.json.emailSubject }}"
},
"schema": [
{
"id": "row_number",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "partner_type",
"type": "string",
"display": true,
"required": false,
"displayName": "partner_type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "sent_date",
"type": "string",
"display": true,
"required": false,
"displayName": "sent_date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "email_type",
"type": "string",
"display": true,
"required": false,
"displayName": "email_type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "follow_up_date",
"type": "string",
"display": true,
"required": false,
"displayName": "follow_up_date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "thread_id",
"type": "string",
"display": true,
"required": false,
"displayName": "thread_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "message_id",
"type": "string",
"display": true,
"required": false,
"displayName": "message_id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "original_subject",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "original_subject",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "YOUR_RESOURCE_ID_HERE"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_RESOURCE_ID_HERE"
}
},
"typeVersion": 4.7
},
{
"id": "9535d998-9816-4aea-bee5-93c5a1323b1a",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
2128,
736
],
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "4baba23c-0118-456c-a68b-a2bfbab88342",
"name": "Get row(s) in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
256,
512
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "YOUR_RESOURCE_ID_HERE"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_RESOURCE_ID_HERE"
}
},
"typeVersion": 4.7
},
{
"id": "e8af0b57-5323-473d-9fd2-1d445b962057",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
32,
512
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.3
},
{
"id": "a8cb4707-79a1-4a1d-8f24-2881347fe74b",
"name": "Initial Email",
"type": "n8n-nodes-zohozeptomail.zohoZeptomail",
"position": [
2320,
736
],
"parameters": {
"subject": "={{ $json.emailSubject }}",
"htmlbody": "={{ $json.emailBody }}",
"mailagent": "555046c28339d27e",
"toaddress": "={{ $json.recipientEmail }}",
"attachment": {},
"fromaddress": {
"name": "Think Sage",
"address": "YOUR_EMAIL_HERE"
}
},
"credentials": {},
"typeVersion": 1
},
{
"id": "fc1ace66-16e9-4b92-ad8d-3e4f3702f2bf",
"name": "Section Sticky 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
368
],
"parameters": {
"color": 7,
"width": 1788,
"height": 392,
"content": "## 1. Trigger & Validation\nSchedules the workflow and cleans raw data."
},
"typeVersion": 1
},
{
"id": "49544129-0b30-443a-9597-fe0fc6d0ca22",
"name": "Section Sticky 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1856,
368
],
"parameters": {
"color": 7,
"width": 828,
"height": 792,
"content": "## 2. Outreach Logic\nFilters leads and routes by partner category."
},
"typeVersion": 1
}
],
"connections": {
"Wait": {
"main": [
[
{
"node": "Initial Email",
"type": "main",
"index": 0
}
]
]
},
"Brand Email": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Other Email": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"College Email": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Initial Email": {
"main": [
[
{
"node": "Add to Tracking Sheet",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "Read Tracking Sheet",
"type": "main",
"index": 0
}
]
]
},
"Influencer Email": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Get row(s) in sheet",
"type": "main",
"index": 0
}
]
]
},
"Get row(s) in sheet": {
"main": [
[
{
"node": "Remove Duplicate Emails",
"type": "main",
"index": 0
}
]
]
},
"Read Tracking Sheet": {
"main": [
[
{
"node": "Skip If Already In Sequence",
"type": "main",
"index": 0
}
]
]
},
"Add to Tracking Sheet": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Route by Partner Type": {
"main": [
[
{
"node": "College Email",
"type": "main",
"index": 0
}
],
[
{
"node": "Influencer Email",
"type": "main",
"index": 0
}
],
[
{
"node": "Brand Email",
"type": "main",
"index": 0
}
],
[
{
"node": "Other Email",
"type": "main",
"index": 0
}
]
]
},
"Remove Duplicate Emails": {
"main": [
[
{
"node": "Validate Email and Name",
"type": "main",
"index": 0
}
]
]
},
"Validate Email and Name": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Skip If Already In Sequence": {
"main": [
[
{
"node": "Route by Partner Type",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Send personalized cold outreach emails to partners without ever contacting the same person twice. This workflow reads a lead list from Google Sheets, validates and deduplicates entries, checks a tracking sheet to skip anyone already in sequence, then routes each lead to a…
Source: https://n8n.io/workflows/14811/ — 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 n8n workflow fetches URLs from an RSS feed, checks which URLs have a valid RSS feed and if true, fetches the latest articles from those URLs. It then stores the article details, including the art
Keep your clients informed at every stage of their project without lifting a finger. This workflow runs daily from Google Sheets and automatically sends four timed emails a Day 3 progress update, a Da
This workflow allows you to generate QR codes (Barcodes) in bulk from a Google Sheets file and store the generated QR images automatically in Google Drive. Each QR code contains a unique identifier (i
Stop losing leads to manual follow-up fatigue. This workflow runs daily, checks your Google Sheets lead tracker, and automatically sends the right follow-up email at the right time — personalized by p
I built this tool because we faced a real, recurring problem: managing hundreds of client projects in a weekly automated loop.