{"workflow":{"id":14813,"name":"Send personalized cold email follow-ups from Google Sheets with ZeptoMail","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-04-06T15:00:48.000Z","description":"## Automated Cold Email Follow-up Sequence with Google Sheets & ZeptoMail\n\nStop 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 partner type (College, Influencer, or Brand) — then updates the sheet status so nothing slips through the cracks.\n\n### Who is this for?\n\nFounders, sales reps, and growth teams who manage outreach to multiple partner types and need a reliable, hands-off follow-up engine without a full CRM.\n\n---\n\n### What this workflow does\n\n1. **Triggers daily** via Schedule node\n2. **Reads your Google Sheet** to fetch all leads\n3. **Filters active leads** — skips anyone marked `completed`, `replied`, or `unsubscribed`\n4. **Checks follow-up date** — only processes leads due today or earlier\n5. **Routes each lead** by their current stage (`sent` → `followup_1` → `followup_2` → `completed`)\n6. **Builds a personalized HTML email** based on partner type (College/University, Influencer, Brand, or generic)\n7. **Sends via ZeptoMail** with threading headers to keep replies in the same email thread\n8. **Updates the Google Sheet** with the new status and next follow-up date\n\n---\n\n### Prerequisites\n\n- A **self-hosted n8n instance** (community nodes required)\n- A **Google Sheets** account with OAuth connected\n- A **Zoho ZeptoMail** account with API access\n- The community node installed: `n8n-nodes-zohozeptomail`\n\n---\n\n### Google Sheet structure\n\nYour tracking sheet should have (at minimum) these columns:\n\n| Column | Description |\n|---|---|\n| `Email` | Lead's email address |\n| `name` | Lead's full name |\n| `partner_type` | One of: `college`, `influencer`, `brand` |\n| `status` | Current stage: `sent`, `followup_1`, `followup_2`, `completed`, `replied`, `unsubscribed` |\n| `follow_up_date` | Date the next follow-up should be sent (YYYY-MM-DD) |\n| `message_id` | (Optional) Original email Message-ID for threading |\n\n---\n\n### Setup steps\n\n1. **Install the community node** `n8n-nodes-zohozeptomail` in your n8n instance\n2. **Connect Google Sheets** — add your OAuth credentials in n8n\n3. **Connect ZeptoMail** — add your API key credentials\n4. **Update the Google Sheet ID and sheet name** in the `Read Tracking Sheet` node\n5. **Replace placeholder values** in the Code nodes:\n   - `[YOUR COMPANY]`, `[YOUR NAME]`, `[YOUR EMAIL]`\n   - `https://calendly.com/REPLACE_WITH_CALENDAR_LINK`\n6. **Set the workflow to Active** — it will run automatically every day\n\n---\n\n### Customization\n\n- Add new partner types by extending the `getTemplate()` function in the Build Email Code nodes\n- Adjust follow-up timing by changing the date written back to the sheet in the Update Status nodes\n- Add more stages beyond `followup_2` by extending the Switch node and duplicating the email builder pattern\n\n---\n\n### ⚠️ Important notes\n\n- This workflow **requires a self-hosted n8n instance** — it will not run on n8n Cloud due to the community node dependency\n- Leads are skipped (not deleted) if their status is `completed`, `replied`, or `unsubscribed` — safe to keep all history in one sheet\n- ZeptoMail threading headers (`In-Reply-To`, `References`) are set automatically if `message_id` is present in the sheet","workflow":{"meta":{"instanceId":"886a78126a9b6719341e2c5e4179c9ee71f1b4f551138fa25fe40bdf67aaa100"},"nodes":[{"id":"1531b0b2-6323-4446-ac4a-aabbd37eb1bb","name":"Main Sticky","type":"n8n-nodes-base.stickyNote","position":[-592,496],"parameters":{"color":2,"width":500,"height":664,"content":"## Automate Cold Email Follow-ups\nStreamline your outreach sequence by automatically sending personalized follow-ups based on lead status.\n\n\n### How it works\n1. Schedule daily trigger execution.\n2. Fetch leads from Google Sheets.\n3. Filter active, non-replied leads.\n4. Route leads to specific email stages.\n5. Send personalized emails via ZeptoMail.\n6. Update sheet status and next steps.\n\n\n### Setup\n1. Connect your Google Sheets account.\n2. Connect your Zoho ZeptoMail account.\n3. Update Google Sheet ID and Range.\n4. Set your custom calendar link in Code nodes.\n5. 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⚠️ This workflow requires a self-hosted n8n instance. Community nodes used: n8n-nodes-zohozeptomail.zohoZeptomail"},"typeVersion":1},{"id":"6cf6444e-d3bd-474a-9cf8-53b34c02b284","name":"Run Daily","type":"n8n-nodes-base.scheduleTrigger","position":[-48,608],"parameters":{"rule":{"interval":[{}]}},"typeVersion":1.2},{"id":"02f41a15-03a5-4f55-b421-f487911940fe","name":"Read Tracking Sheet","type":"n8n-nodes-base.googleSheets","position":[176,608],"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":"e0e32193-5f2c-4e1d-bc4b-fd9acb703519","name":"Filter Active Leads","type":"n8n-nodes-base.filter","position":[400,608],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"c1","operator":{"type":"string","operation":"notEquals"},"leftValue":"={{ $json.status }}","rightValue":"completed"},{"id":"c2","operator":{"type":"string","operation":"notEquals"},"leftValue":"={{ $json.status }}","rightValue":"replied"},{"id":"c3","operator":{"type":"string","operation":"notEquals"},"leftValue":"={{ $json.status }}","rightValue":"unsubscribed"},{"id":"c4","operator":{"type":"string","operation":"notEmpty"},"leftValue":"={{ $json.Email }}","rightValue":""}]}},"typeVersion":2.3},{"id":"fc5d92d7-2de1-48c1-bac0-91fa046c555d","name":"Filter Due Today","type":"n8n-nodes-base.filter","position":[624,608],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"or","conditions":[{"id":"d1","operator":{"type":"dateTime","operation":"beforeOrEqual"},"leftValue":"={{ $json.follow_up_date }}","rightValue":"={{ $now.toISODate() }}"},{"id":"3e923d5e-3fb7-4b7c-9b68-66da9ed1e1e2","operator":{"type":"dateTime","operation":"beforeOrEquals"},"leftValue":"={{ $json.follow_up_date }}","rightValue":"={{ $now.toISODate() }}"}]},"looseTypeValidation":true},"typeVersion":2.3},{"id":"518b8dc7-b6c0-40f9-abeb-9a0ea4c34e7d","name":"Loop Over Leads","type":"n8n-nodes-base.splitInBatches","position":[848,608],"parameters":{"options":{}},"typeVersion":3},{"id":"5c8c3792-3b83-4c2d-8ddc-f59f724554d4","name":"Route by Follow-up Stage","type":"n8n-nodes-base.switch","position":[1088,592],"parameters":{"rules":{"values":[{"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"r1","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"sent"}]}},{"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"r2","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"followup_1"}]}},{"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"r3","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"followup_2"}]}}]},"options":{"fallbackOutput":"extra"}},"typeVersion":3.4},{"id":"d25ba314-aa10-4e1a-838f-d439ea992289","name":"Build Follow-up 1 Email","type":"n8n-nodes-base.code","position":[1312,528],"parameters":{"jsCode":"// BUILD FOLLOW-UP 1 EMAIL - personalised by partner type\nfunction getTemplate(type) {\n  const t = (type || '').toLowerCase();\n  if (t.includes('college') || t.includes('university')) return {\n    subject: (fn) => 'Following up — campus partnership with [YOUR COMPANY], ' + fn,\n    color: '#1D4ED8',\n    body: (fn, d) => 'Just checking in on my last email about a campus partnership between <strong>' + (d.name || 'your institution') + '</strong> and <strong>[YOUR COMPANY]</strong>.<br><br>We\\'d love to bring value to your students — through workshops, internships, or hackathons. Would a 15-minute call this week work?'\n  };\n  if (t.includes('influencer')) return {\n    subject: (fn) => 'Hey ' + fn + ', still keen on the collab?',\n    color: '#7C3AED',\n    body: () => 'Just following up on the collab idea I sent over! I genuinely think your audience would love <strong>[YOUR PRODUCT]</strong> — and the deal is flexible to match your style.<br><br>Would love to hop on a quick call — totally casual, no pressure.'\n  };\n  if (t.includes('brand')) return {\n    subject: (fn) => 'Quick follow-up — brand partnership with [YOUR COMPANY], ' + fn,\n    color: '#059669',\n    body: () => 'Following up on the brand partnership opportunity I shared earlier. We\\'ve had great results with partners in your space.<br><br>Would a 15-minute call this week work?'\n  };\n  return {\n    subject: (fn) => 'Quick follow-up — ' + fn + ', still interested in partnering?',\n    color: '#374151',\n    body: () => 'Just following up on my last email about partnering with <strong>[YOUR COMPANY]</strong>. Would a quick 15-minute call work?'\n  };\n}\n\nconst d = $input.first().json;\nconst firstName = (d.name || 'there').split(' ')[0];\nconst tpl = getTemplate(d.partner_type);\n\nconst emailBody = '<!DOCTYPE html><html><body style=\"font-family:Arial,sans-serif;max-width:600px;margin:0 auto;color:#333;line-height:1.6\">'\n  + '<p>Hi ' + firstName + ',</p>'\n  + '<p>' + tpl.body(firstName, d) + '</p>'\n  + '<p style=\"margin-top:20px\"><a href=\"https://calendly.com/REPLACE_WITH_CALENDAR_LINK\" style=\"background:' + tpl.color + ';color:#fff;padding:12px 24px;border-radius:6px;text-decoration:none;display:inline-block;font-weight:bold\">Pick a Time</a></p>'\n  + '<p style=\"margin-top:20px\">If the timing is not right, just say the word — no hard feelings.<br><br>Best,<br><strong>[YOUR NAME]</strong><br>[YOUR COMPANY] · [YOUR EMAIL]</p>'\n  + '<hr style=\"border:none;border-top:1px solid #eee;margin:28px 0\">'\n  + '<p style=\"font-size:11px;color:#999\"><a href=\"mailto:[YOUR EMAIL]?subject=Unsubscribe\" style=\"color:#999\">Unsubscribe</a></p>'\n  + '</body></html>';\n\n\n// Threading headers for email client grouping\nconst inReplyTo = d.message_id ? '<' + d.message_id + '>' : '';\nconst references = d.thread_id ? '<' + d.thread_id + '>' : '';\nconst threadSubject = d.original_subject || tpl.subject(firstName);\nreturn [{ json: { ...d, emailSubject: threadSubject, emailBody, inReplyTo, references } }];"},"typeVersion":2},{"id":"db9645e2-e921-4bee-a633-d38aa4c8c9fd","name":"Update Status → followup_1","type":"n8n-nodes-base.googleSheets","position":[2000,608],"parameters":{"columns":{"value":{"Name":"={{ $('Build Follow-up 1 Email').item.json.Name }}","Email":"={{ $('Build Follow-up 1 Email').item.json.Email }}","status":"=followup_1","sent_date":"={{ $now.plus({days: 5}).toISODate() }}","thread_id":"={{ $('Loop Over Leads').item.json.thread_id }}","email_type":"={{ $('Build Follow-up 1 Email').item.json.email_type }}","message_id":"={{ $('Send Follow-up 1').item.json.data[0].request_id }}","row_number":"={{ $('Build Follow-up 1 Email').item.json.row_number }}","partner_type":"={{ $('Build Follow-up 1 Email').item.json.partner_type }}","follow_up_date":"={{ $('Build Follow-up 1 Email').item.json.follow_up_date }}"},"schema":[{"id":"row_number","type":"string","display":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Email","type":"string","display":true,"removed":false,"required":false,"displayName":"Email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Name","type":"string","display":true,"removed":false,"required":false,"displayName":"Name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"partner_type","type":"string","display":true,"removed":false,"required":false,"displayName":"partner_type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"status","type":"string","display":true,"removed":false,"required":false,"displayName":"status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"sent_date","type":"string","display":true,"removed":false,"required":false,"displayName":"sent_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"email_type","type":"string","display":true,"removed":false,"required":false,"displayName":"email_type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow_up_date","type":"string","display":true,"removed":false,"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":true,"required":false,"displayName":"original_subject","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Email"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":"YOUR_RESOURCE_ID_HERE"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_RESOURCE_ID_HERE"}},"typeVersion":4.7},{"id":"98b6ef5d-371f-471e-894d-a8b580f661bf","name":"Build Follow-up 2 Email","type":"n8n-nodes-base.code","position":[1312,672],"parameters":{"jsCode":"// BUILD FOLLOW-UP 2 EMAIL - second nudge (middle of sequence)\nfunction getTemplate(type) {\n  const t = (type || '').toLowerCase();\n  if (t.includes('college') || t.includes('university')) return {\n    subject: (fn) => 'Still worth a chat \\u2014 campus partnership, ' + fn,\n    color: '#1D4ED8',\n    body: (fn, d) => 'I wanted to follow up once more about the campus partnership between <strong>' + (d.name || 'your institution') + '</strong> and <strong>[YOUR COMPANY]</strong>.<br><br>Even a short 10-minute call could open a lot of doors for your students. Happy to work around your schedule.'\n  };\n  if (t.includes('influencer')) return {\n    subject: (fn) => fn + ', the collab offer is still open \\ud83d\\ude4c',\n    color: '#7C3AED',\n    body: () => 'Circling back one more time \\u2014 I genuinely think this collab would resonate well with your audience.<br><br>No pressure at all, just happy to jump on a quick call whenever works for you.'\n  };\n  if (t.includes('brand')) return {\n    subject: (fn) => 'One more thought on our partnership, ' + fn,\n    color: '#059669',\n    body: () => 'Just one more follow-up on the brand partnership idea. We have had great traction with similar brands recently and I think there is a real fit here.<br><br>Would love to show you some numbers on a quick call.'\n  };\n  return {\n    subject: (fn) => 'Checking in once more \\u2014 ' + fn,\n    color: '#374151',\n    body: () => 'One more follow-up about partnering with <strong>[YOUR COMPANY]</strong>. Still happy to connect whenever the timing works.'\n  };\n}\n\nconst d = $input.first().json;\nconst firstName = (d.name || 'there').split(' ')[0];\nconst tpl = getTemplate(d.partner_type);\n\nconst emailBody = '<!DOCTYPE html><html><body style=\"font-family:Arial,sans-serif;max-width:600px;margin:0 auto;color:#333;line-height:1.6\">'\n  + '<p>Hi ' + firstName + ',</p>'\n  + '<p>' + tpl.body(firstName, d) + '</p>'\n  + '<p style=\"margin-top:20px\"><a href=\"https://calendly.com/REPLACE_WITH_CALENDAR_LINK\" style=\"background:' + tpl.color + ';color:#fff;padding:12px 24px;border-radius:6px;text-decoration:none;display:inline-block;font-weight:bold\">Pick a Time</a></p>'\n  + '<p style=\"margin-top:20px\">Best,<br><strong>[YOUR NAME]</strong><br>[YOUR COMPANY] \\u00b7 [YOUR EMAIL]</p>'\n  + '<hr style=\"border:none;border-top:1px solid #eee;margin:28px 0\">'\n  + '<p style=\"font-size:11px;color:#999\"><a href=\"mailto:[YOUR EMAIL]?subject=Unsubscribe\" style=\"color:#999\">Unsubscribe</a></p>'\n  + '</body></html>';\n\n\n// Threading headers for email client grouping\nconst inReplyTo = d.message_id ? '<' + d.message_id + '>' : '';\nconst references = d.thread_id ? '<' + d.thread_id + '>' : '';\nconst threadSubject = d.original_subject || tpl.subject(firstName);\nreturn [{ json: { ...d, emailSubject: threadSubject, emailBody, inReplyTo, references } }];"},"typeVersion":2},{"id":"34e5bfa0-bbe9-42a5-b9c2-89cbabd493cf","name":"Update Status → followup_2","type":"n8n-nodes-base.googleSheets","position":[2000,784],"parameters":{"columns":{"value":{"Name":"={{ $('Loop Over Leads').item.json.Name }}","Email":"={{ $('Loop Over Leads').item.json.Email }}","status":"followup_2","sent_date":"={{ $now.toFormat('yyyy-MM-dd') }}","thread_id":"={{ $('Loop Over Leads').item.json.thread_id }}","email_type":"={{ $('Build Follow-up 2 Email').item.json.email_type }}","message_id":"={{ $('Send Follow-up 2').item.json.data[0].request_id }}","row_number":"={{ $('Loop Over Leads').item.json.row_number }}","partner_type":"={{ $('Loop Over Leads').item.json.partner_type }}","follow_up_date":"={{ $now.plus({days: 8}).toISODate() }}"},"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,"removed":false,"required":false,"displayName":"Email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Name","type":"string","display":true,"removed":false,"required":false,"displayName":"Name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"partner_type","type":"string","display":true,"removed":false,"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,"removed":false,"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":true,"required":false,"displayName":"original_subject","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Email"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":"YOUR_RESOURCE_ID_HERE"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_RESOURCE_ID_HERE"}},"typeVersion":4.7},{"id":"49e290a8-79f3-44b8-b6fe-1d68e1b6e070","name":"Wait","type":"n8n-nodes-base.wait","position":[1584,608],"webhookId":"7283545c-e568-4734-ba89-7418937a5029","parameters":{"amount":10},"typeVersion":1.1},{"id":"22f31b78-9b17-4ae7-9acd-9bb8cc112240","name":"Wait1","type":"n8n-nodes-base.wait","position":[1584,752],"webhookId":"1fddc28d-efc3-4368-910a-304cebbbb0b9","parameters":{"amount":10},"typeVersion":1.1},{"id":"8e1f696d-69a2-4ee6-8287-3958a02c0a0e","name":"Build Follow-up 3 Email","type":"n8n-nodes-base.code","position":[1312,816],"parameters":{"jsCode":"// BUILD FOLLOW-UP 3 (FINAL) EMAIL - personalised by partner type\nfunction getTemplate(type) {\n  const t = (type || '').toLowerCase();\n  if (t.includes('college') || t.includes('university')) return {\n    subject: (fn) => 'Last note \\u2014 campus collab with [YOUR COMPANY], ' + fn,\n    body: () => 'I\\'ll keep this short \\u2014 this is my last outreach about a campus partnership with <strong>[YOUR COMPANY]</strong>.<br><br>If the timing is not right, no worries at all. We\\'d love to reconnect whenever you\\'re planning for the next semester.'\n  };\n  if (t.includes('influencer')) return {\n    subject: (fn) => 'Last message \\u2014 the collab offer stands, ' + fn,\n    body: () => 'I won\\'t keep nudging \\u2014 promise this is the last one! The collab offer is still open whenever you\\'re ready.'\n  };\n  if (t.includes('brand')) return {\n    subject: (fn) => 'Closing the loop \\u2014 brand partnership, ' + fn,\n    body: () => 'Last note from me on the brand partnership with <strong>[YOUR COMPANY]</strong>. If it\\'s not the right fit, completely understand \\u2014 my inbox is always open.'\n  };\n  return {\n    subject: (fn) => 'Last note from me \\u2014 ' + fn,\n    body: () => 'This is my last note about partnering with <strong>[YOUR COMPANY]</strong>. Feel free to reach out whenever.'\n  };\n}\n\nconst d = $input.first().json;\nconst firstName = (d.name || 'there').split(' ')[0];\nconst tpl = getTemplate(d.partner_type);\n\nconst emailBody = '<!DOCTYPE html><html><body style=\"font-family:Arial,sans-serif;max-width:600px;margin:0 auto;color:#333;line-height:1.6\">'\n  + '<p>Hi ' + firstName + ',</p>'\n  + '<p>' + tpl.body(firstName, d) + '</p>'\n  + '<p>If you ever want to reconnect, I\\'m always reachable at <a href=\"mailto:[YOUR EMAIL]\">[YOUR EMAIL]</a>.</p>'\n  + '<p>Wishing you all the best!</p>'\n  + '<p>\\u2014 <strong>[YOUR NAME]</strong><br>[YOUR COMPANY]</p>'\n  + '<hr style=\"border:none;border-top:1px solid #eee;margin:28px 0\">'\n  + '<p style=\"font-size:11px;color:#999\"><a href=\"mailto:[YOUR EMAIL]?subject=Unsubscribe\" style=\"color:#999\">Unsubscribe</a></p>'\n  + '</body></html>';\n\n\n// Threading headers for email client grouping\nconst inReplyTo = d.message_id ? '<' + d.message_id + '>' : '';\nconst references = d.thread_id ? '<' + d.thread_id + '>' : '';\nconst threadSubject = d.original_subject || tpl.subject(firstName);\nreturn [{ json: { ...d, emailSubject: threadSubject, emailBody, inReplyTo, references } }];"},"typeVersion":2},{"id":"2b29f9c5-9485-46c1-90d5-336a33b11535","name":"Wait2","type":"n8n-nodes-base.wait","position":[1584,896],"webhookId":"7592a1c8-2ffc-4b01-9b39-3c5ef7725d32","parameters":{"amount":10},"typeVersion":1.1},{"id":"fdcd93ea-8a90-47cd-b4ab-dc590a7abd15","name":"Update Status → completed","type":"n8n-nodes-base.googleSheets","position":[2000,960],"parameters":{"columns":{"value":{"Name":"={{ $('Build Follow-up 3 Email').item.json.Name }}","Email":"={{ $('Build Follow-up 3 Email').item.json.Email }}","status":"completed","sent_date":"={{ $now.toFormat('yyyy-MM-dd') }}","thread_id":"={{ $('Loop Over Leads').item.json.thread_id }}","email_type":"={{ $('Build Follow-up 3 Email').item.json.email_type }}","message_id":"={{ $('Send Follow-up 3').item.json.data[0].request_id }}","row_number":"={{ $('Build Follow-up 3 Email').item.json.row_number }}","partner_type":"={{ $('Build Follow-up 3 Email').item.json.partner_type }}","follow_up_date":"={{ $now.plus({days: 18}).toISODate() }}"},"schema":[{"id":"row_number","type":"string","display":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Email","type":"string","display":true,"removed":false,"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,"removed":false,"required":false,"displayName":"thread_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"message_id","type":"string","display":true,"removed":false,"required":false,"displayName":"message_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"original_subject","type":"string","display":true,"removed":true,"required":false,"displayName":"original_subject","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Email"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":"YOUR_RESOURCE_ID_HERE"},"documentId":{"__rl":true,"mode":"list","value":"YOUR_RESOURCE_ID_HERE"}},"typeVersion":4.7},{"id":"aa147bec-7e1d-49f0-b172-6ad84fd60792","name":"Send Follow-up 1","type":"n8n-nodes-zohozeptomail.zohoZeptomail","position":[1792,608],"parameters":{"subject":"={{ $json.emailSubject }}","htmlbody":"={{ $json.emailBody }}","mailagent":"555046c28339d27e","toaddress":"={{ $json.Email }}","attachment":{},"fromaddress":{"name":"Think Sage","address":"YOUR_EMAIL_HERE"}},"credentials":{},"typeVersion":1},{"id":"5b565fab-2aa4-4182-a42d-869395768a1c","name":"Send Follow-up 2","type":"n8n-nodes-zohozeptomail.zohoZeptomail","position":[1792,768],"parameters":{"subject":"={{ $json.emailSubject }}","htmlbody":"={{ $json.emailBody }}","mailagent":"555046c28339d27e","toaddress":"={{ $json.Email }}","attachment":{},"fromaddress":{"name":"Think Sage","address":"YOUR_EMAIL_HERE"}},"credentials":{},"typeVersion":1},{"id":"56a51666-67cc-4eb8-9343-cbe0960d17cb","name":"Send Follow-up 3","type":"n8n-nodes-zohozeptomail.zohoZeptomail","position":[1792,912],"parameters":{"subject":"={{ $json.emailSubject }}","htmlbody":"={{ $json.emailBody }}","mailagent":"555046c28339d27e","toaddress":"={{ $json.Email }}","attachment":{},"fromaddress":{"name":"Think Sage","address":"YOUR_EMAIL_HERE"}},"credentials":{},"typeVersion":1},{"id":"dac740e2-792d-4a50-b631-6ec4840e4254","name":"Data Fetch","type":"n8n-nodes-base.stickyNote","position":[-64,496],"parameters":{"color":7,"width":600,"height":296,"content":"## 1. Trigger & Data Sync\nFetch daily leads and filter by status."},"typeVersion":1},{"id":"eed6114b-6ba2-408e-8e09-55d6159fc98e","name":"Logic","type":"n8n-nodes-base.stickyNote","position":[592,496],"parameters":{"color":7,"width":872,"height":520,"content":"## 2. Processing & Routing\nEvaluate lead stage and build dynamic email templates."},"typeVersion":1},{"id":"99ede930-151b-480c-8c08-53ee9b9ee308","name":"Output","type":"n8n-nodes-base.stickyNote","position":[1536,496],"parameters":{"color":7,"width":668,"height":664,"content":"## 3. Delivery & Updates\nSend emails via ZeptoMail and update sheet logs."},"typeVersion":1}],"pinData":{},"connections":{"Wait":{"main":[[{"node":"Send Follow-up 1","type":"main","index":0}]]},"Wait1":{"main":[[{"node":"Send Follow-up 2","type":"main","index":0}]]},"Wait2":{"main":[[{"node":"Send Follow-up 3","type":"main","index":0}]]},"Run Daily":{"main":[[{"node":"Read Tracking Sheet","type":"main","index":0}]]},"Loop Over Leads":{"main":[[],[{"node":"Route by Follow-up Stage","type":"main","index":0}]]},"Filter Due Today":{"main":[[{"node":"Loop Over Leads","type":"main","index":0}]]},"Send Follow-up 1":{"main":[[{"node":"Update Status → followup_1","type":"main","index":0}]]},"Send Follow-up 2":{"main":[[{"node":"Update Status → followup_2","type":"main","index":0}]]},"Send Follow-up 3":{"main":[[{"node":"Update Status → completed","type":"main","index":0}]]},"Filter Active Leads":{"main":[[{"node":"Filter Due Today","type":"main","index":0}]]},"Read Tracking Sheet":{"main":[[{"node":"Filter Active Leads","type":"main","index":0}]]},"Build Follow-up 1 Email":{"main":[[{"node":"Wait","type":"main","index":0}]]},"Build Follow-up 2 Email":{"main":[[{"node":"Wait1","type":"main","index":0}]]},"Build Follow-up 3 Email":{"main":[[{"node":"Wait2","type":"main","index":0}]]},"Route by Follow-up Stage":{"main":[[{"node":"Build Follow-up 1 Email","type":"main","index":0}],[{"node":"Build Follow-up 2 Email","type":"main","index":0}],[{"node":"Build Follow-up 3 Email","type":"main","index":0}],[{"node":"Loop Over Leads","type":"main","index":0}]]},"Update Status → completed":{"main":[[{"node":"Loop Over Leads","type":"main","index":0}]]},"Update Status → followup_1":{"main":[[{"node":"Loop Over Leads","type":"main","index":0}]]},"Update Status → followup_2":{"main":[[{"node":"Loop Over Leads","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":22,"nodeTypes":{"n8n-nodes-base.code":{"count":3},"n8n-nodes-base.wait":{"count":3},"n8n-nodes-base.filter":{"count":2},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.stickyNote":{"count":4},"n8n-nodes-base.googleSheets":{"count":4},"n8n-nodes-base.splitInBatches":{"count":1},"n8n-nodes-base.scheduleTrigger":{"count":1},"n8n-nodes-zohozeptomail.zohoZeptomail":{"count":3}}},"status":"published","readyToDemo":null,"user":{"name":"Panth1823","username":"panth1823","bio":"Curious builder automating various problems using n8n","verified":true,"links":["https://www.linkedin.com/in/panth1823/"],"avatar":"https://gravatar.com/avatar/a456b345ac9e437cca46f9b3b9127be2beaed3e25ba50c4ec7e5b3854499821e?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":839,"icon":"fa:clock","name":"n8n-nodes-base.scheduleTrigger","codex":{"data":{"alias":["Time","Scheduler","Polling","Cron","Interval"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\",\"schedule\"]","defaults":{"name":"Schedule Trigger","color":"#31C49F"},"iconData":{"icon":"clock","type":"icon"},"displayName":"Schedule Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":844,"icon":"fa:filter","name":"n8n-nodes-base.filter","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The Filter node can be used to filter items based on a condition. If the condition is met, the item will be passed on to the next node. If the condition is not met, the item will be omitted. Conditions can be combined together by AND(meet all conditions), or OR(meet at least one condition).","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.filter/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Filter","color":"#229eff"},"iconData":{"icon":"filter","type":"icon"},"displayName":"Filter","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":38,"name":"Lead Nurturing"}],"image":[]}}