toolgrader.com

N8N WORKFLOWS — EMAIL MARKETING & NURTURE

Welcome Email Sequence Workflow

Our Guidance

Here’s exactly how to connect the three accounts this workflow needs — every other setting lives in one “Store Config” node.

Shopify — same setup as your Abandoned Cart Recovery workflow. Reuse the same Access Token in the two trigger nodes here.

SendGrid — same sender email and API key as Cart Recovery. Just reuse the credential from the dropdown, no need to re-enter anything.

Not on Shopify, or capturing leads on a separate landing page? Copy the “Webhook – Lead Magnet Signup” node’s URL and point your form or landing tool at it instead.

Google Sheets — sign in with Google once, create a new sheet (or tab) for subscribers, and paste its ID into Store Config.

Reuses the same accounts as Abandoned Cart Recovery — nothing new to set up if you already connected that one.

Get the Workflow File

{"name":"Welcome Email Sequence Workflow","nodes":[{"parameters":{"authentication":"accessToken","topic":"customers\/create"},"id":"f0a2c47f-a51a-405d-b7af-e1e6cf743c51","name":"Shopify - Customer Created","type":"n8n-nodes-base.shopifyTrigger","typeVersion":1,"position":[-416,48],"webhookId":"24b84e21-b124-4d64-996a-bbcc8a127d5c"},{"parameters":{"assignments":{"assignments":[{"id":"fromEmail","name":"fromEmail","value":"<__PLACEHOLDER_VALUE__e.g. hello@yourstore.com__>","type":"string"},{"id":"fromName","name":"fromName","value":"<__PLACEHOLDER_VALUE__e.g. Your Store Name__>","type":"string"},{"id":"sheetId","name":"sheetId","value":"<__PLACEHOLDER_VALUE__paste your Google Sheet ID or full URL__>","type":"string"},{"id":"sheetName","name":"sheetName","value":"Subscribers","type":"string"},{"id":"welcomeDiscountCode","name":"welcomeDiscountCode","value":"<__PLACEHOLDER_VALUE__real Shopify discount code, e.g. WELCOME15__>","type":"string"},{"id":"leadMagnetName","name":"leadMagnetName","value":"<__PLACEHOLDER_VALUE__e.g. The Ultimate Templates Starter Pack__>","type":"string"},{"id":"leadMagnetUrl","name":"leadMagnetUrl","value":"<__PLACEHOLDER_VALUE__direct download link to your free resource__>","type":"string"},{"id":"topProductsUrl","name":"topProductsUrl","value":"<__PLACEHOLDER_VALUE__link to your best-selling products \/ collection page__>","type":"string"}]},"includeOtherFields":true,"options":[]},"id":"370998fe-d9e4-45ac-8d04-58c30e22a70c","name":"Store Config (edit me)","type":"n8n-nodes-base.set","typeVersion":3.4,"position":[-192,112]},{"parameters":{"jsCode":"\nconst items = $input.all();\n\nreturn items.map(item => {\n const raw = item.json;\n const source = raw.body ? raw.body : raw;\n\n const customer = source.customer || {};\n const email = source.email || customer.email || '';\n const firstName = source.first_name || source.firstName || customer.first_name || '';\n const lastName = source.last_name || source.lastName || customer.last_name || '';\n const customerName = (firstName || lastName) ? `${firstName} ${lastName}`.trim() : 'there';\n\n return {\n json: {\n email,\n customerName\n }\n };\n});\n"},"id":"cfdd2018-b5f1-4d17-93b6-b9d8a4b7387b","name":"Extract & Tag Data","type":"n8n-nodes-base.code","typeVersion":2,"position":[0,112]},{"parameters":{"conditions":{"options":{"caseSensitive":true,"leftValue":"","typeValidation":"strict","version":1},"combinator":"and","conditions":[{"leftValue":"={{ $json.email }}","operator":{"type":"string","operation":"notEmpty"},"rightValue":""}]},"options":[]},"id":"9d43c017-d648-41b3-95af-9416c7fa309e","name":"Has Email?","type":"n8n-nodes-base.if","typeVersion":2.3,"position":[272,112]},{"parameters":{"operation":"appendOrUpdate","documentId":{"__rl":true,"mode":"id","value":"={{ nodeJson(storeConfig, 'sheetId') }}","cachedResultName":"From Store Config"},"sheetName":{"__rl":true,"mode":"name","value":"={{ nodeJson(storeConfig, 'sheetName') }}","cachedResultName":"From Store Config"},"columns":{"mappingMode":"defineBelow","value":{"Email":"={{ nodeJson(extractTagData, 'email') }}","CustomerName":"={{ nodeJson(extractTagData, 'customerName') }}","Tag":"New Subscriber","Status":"Sequence Started - Email 1 Sent","LastUpdated":"={{ $now.toISO() }}","Converted":""},"schema":[{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"CustomerName","displayName":"CustomerName","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Tag","displayName":"Tag","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Status","displayName":"Status","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"LastUpdated","displayName":"LastUpdated","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Converted","displayName":"Converted","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false}],"matchingColumns":["Email"]},"options":[]},"id":"604b1574-7cff-4f08-8a0c-d5d534b669f7","name":"Log: New Subscriber","type":"n8n-nodes-base.googleSheets","typeVersion":4.7,"position":[528,112],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":{"resource":"mail","fromEmail":"={{ nodeJson(storeConfig, 'fromEmail') }}","fromName":"={{ nodeJson(storeConfig, 'fromName') }}","toEmail":"={{ nodeJson(extractTagData, 'email') }}","subject":"={{ \"Welcome! Here's your \" + nodeJson(storeConfig, 'leadMagnetName') }}","contentType":"text\/html","contentValue":"=<div style=\"font-family:Arial,Helvetica,sans-serif;max-width:600px;margin:auto;color:#222;\"><h2>Hi {{ nodeJson(extractTagData, 'customerName') }}, welcome aboard!<\/h2><p>Thanks for joining us. As promised, here's your free resource:<\/p><p style=\"text-align:center;margin:20px 0;\"><a href=\"{{ nodeJson(storeConfig, 'leadMagnetUrl') }}\" style=\"background:#111;color:#fff;padding:12px 26px;text-decoration:none;border-radius:6px;display:inline-block;\">Download: {{ nodeJson(storeConfig, 'leadMagnetName') }}<\/a><\/p><p>And since you're new here, here's a welcome gift for your first purchase:<\/p><p style=\"text-align:center;\"><span style=\"background:#eef7f2;color:#0a6b42;padding:8px 16px;border-radius:6px;font-weight:bold;display:inline-block;\">Code: {{ nodeJson(storeConfig, 'welcomeDiscountCode') }}<\/span><\/p><p style=\"color:#999;font-size:12px;margin-top:32px;\">This code is valid for a limited time on your first order.<\/p><\/div>","additionalFields":[]},"id":"03be2599-eed1-45c7-8693-02f3dc78eb84","name":"Email 1: Welcome + Free Resource","type":"n8n-nodes-base.sendGrid","typeVersion":1,"position":[784,112],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":{"amount":24,"unit":"hours"},"id":"6d18ad5f-81ca-4411-a4ff-d54e03b22fa5","name":"Wait 24 Hours","type":"n8n-nodes-base.wait","typeVersion":1.1,"position":[1040,112],"webhookId":"188faa86-6814-4ed4-91f9-d4114312cd62"},{"parameters":{"documentId":{"__rl":true,"mode":"id","value":"={{ nodeJson(storeConfig, 'sheetId') }}","cachedResultName":"From Store Config"},"sheetName":{"__rl":true,"mode":"name","value":"={{ nodeJson(storeConfig, 'sheetName') }}","cachedResultName":"From Store Config"},"filtersUI":{"values":[{"lookupColumn":"Email","lookupValue":"={{ nodeJson(extractTagData, 'email') }}"}]},"options":[]},"id":"f75667a0-ede9-4dc9-870c-4cd0e55a5270","name":"Read Status (Before Email 2)","type":"n8n-nodes-base.googleSheets","typeVersion":4.7,"position":[1312,112],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":{"conditions":{"options":{"caseSensitive":true,"leftValue":"","typeValidation":"strict","version":1},"combinator":"and","conditions":[{"leftValue":"={{ $json.Converted }}","operator":{"type":"string","operation":"empty"},"rightValue":""}]},"options":[]},"id":"048e1349-c22a-42b3-8ce6-615b49cac470","name":"Still Not Converted? (Before Email 2)","type":"n8n-nodes-base.if","typeVersion":2.3,"position":[1568,112]},{"parameters":{"resource":"mail","fromEmail":"={{ nodeJson(storeConfig, 'fromEmail') }}","fromName":"={{ nodeJson(storeConfig, 'fromName') }}","toEmail":"={{ nodeJson(extractTagData, 'email') }}","subject":"The products our customers can't stop talking about","contentType":"text\/html","contentValue":"=<div style=\"font-family:Arial,Helvetica,sans-serif;max-width:600px;margin:auto;color:#222;\"><h2>Hi {{ nodeJson(extractTagData, 'customerName') }},<\/h2><p>Hope you've had a chance to check out your free resource. While you're here, these are the products our customers keep coming back for:<\/p><blockquote style=\"border-left:3px solid #ddd;padding-left:12px;color:#555;margin:16px 0;\">\"Instant access, and the templates saved me hours of work.\" \u2014 a happy customer<\/blockquote><p>Because everything is digital, you get instant access the moment you buy \u2014 no shipping, no waiting, and lifetime updates included.<\/p><p style=\"text-align:center;margin-top:24px;\"><a href=\"{{ nodeJson(storeConfig, 'topProductsUrl') }}\" style=\"background:#111;color:#fff;padding:12px 26px;text-decoration:none;border-radius:6px;display:inline-block;\">See Our Best Sellers<\/a><\/p><p style=\"color:#999;font-size:12px;margin-top:32px;\">Your welcome code {{ nodeJson(storeConfig, 'welcomeDiscountCode') }} still works on this order.<\/p><\/div>","additionalFields":[]},"id":"9e5540fb-7e9a-480b-8909-2629af20a4cd","name":"Email 2: Top Products Showcase","type":"n8n-nodes-base.sendGrid","typeVersion":1,"position":[1568,512],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":{"operation":"appendOrUpdate","documentId":{"__rl":true,"mode":"id","value":"={{ nodeJson(storeConfig, 'sheetId') }}","cachedResultName":"From Store Config"},"sheetName":{"__rl":true,"mode":"name","value":"={{ nodeJson(storeConfig, 'sheetName') }}","cachedResultName":"From Store Config"},"columns":{"mappingMode":"defineBelow","value":{"Email":"={{ nodeJson(extractTagData, 'email') }}","CustomerName":"={{ nodeJson(extractTagData, 'customerName') }}","Tag":"New Subscriber","Status":"Email 2 Sent - Product Showcase","LastUpdated":"={{ $now.toISO() }}","Converted":""},"schema":[{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"CustomerName","displayName":"CustomerName","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Tag","displayName":"Tag","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Status","displayName":"Status","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"LastUpdated","displayName":"LastUpdated","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Converted","displayName":"Converted","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false}],"matchingColumns":["Email"]},"options":[]},"id":"bdf5115f-2e6b-4dc1-b87c-92b98a6c652e","name":"Log: Email 2 Sent","type":"n8n-nodes-base.googleSheets","typeVersion":4.7,"position":[1312,512],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":{"amount":48,"unit":"hours"},"id":"a1185127-4ffa-47ae-8a29-03e31101e960","name":"Wait 48 Hours (reach 72h total)","type":"n8n-nodes-base.wait","typeVersion":1.1,"position":[1040,512],"webhookId":"0e3325b5-c2b8-41b9-86d0-4e42031140a9"},{"parameters":{"documentId":{"__rl":true,"mode":"id","value":"={{ nodeJson(storeConfig, 'sheetId') }}","cachedResultName":"From Store Config"},"sheetName":{"__rl":true,"mode":"name","value":"={{ nodeJson(storeConfig, 'sheetName') }}","cachedResultName":"From Store Config"},"filtersUI":{"values":[{"lookupColumn":"Email","lookupValue":"={{ nodeJson(extractTagData, 'email') }}"}]},"options":[]},"id":"986247c7-8712-40d8-90e6-986d83cf6177","name":"Read Status (Before Email 3)","type":"n8n-nodes-base.googleSheets","typeVersion":4.7,"position":[784,512],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":{"conditions":{"options":{"caseSensitive":true,"leftValue":"","typeValidation":"strict","version":1},"combinator":"and","conditions":[{"leftValue":"={{ $json.Converted }}","operator":{"type":"string","operation":"empty"},"rightValue":""}]},"options":[]},"id":"da2c6fd4-ab36-415b-8855-e54477ef9db6","name":"Still Not Converted? (Before Email 3)","type":"n8n-nodes-base.if","typeVersion":2.3,"position":[528,512]},{"parameters":{"resource":"mail","fromEmail":"={{ nodeJson(storeConfig, 'fromEmail') }}","fromName":"={{ nodeJson(storeConfig, 'fromName') }}","toEmail":"={{ nodeJson(extractTagData, 'email') }}","subject":"Your welcome discount expires soon","contentType":"text\/html","contentValue":"=<div style=\"font-family:Arial,Helvetica,sans-serif;max-width:600px;margin:auto;color:#222;\"><h2>Hi {{ nodeJson(extractTagData, 'customerName') }},<\/h2><p>Just a heads up \u2014 your welcome code is about to expire:<\/p><p style=\"text-align:center;\"><span style=\"background:#fdeeee;color:#a3231e;padding:8px 16px;border-radius:6px;font-weight:bold;display:inline-block;\">Code: {{ nodeJson(storeConfig, 'welcomeDiscountCode') }} (expiring soon)<\/span><\/p><p>A few quick reasons people choose digital: <strong>instant access<\/strong> the moment you check out, <strong>no shipping<\/strong> to wait for, and <strong>lifetime updates<\/strong> on everything you buy.<\/p><p style=\"text-align:center;margin-top:24px;\"><a href=\"{{ nodeJson(storeConfig, 'topProductsUrl') }}\" style=\"background:#111;color:#fff;padding:12px 26px;text-decoration:none;border-radius:6px;display:inline-block;\">Use My Code Now<\/a><\/p><p style=\"color:#999;font-size:12px;margin-top:32px;\">If you already used this code, you can ignore this email.<\/p><\/div>","additionalFields":[]},"id":"55d3ae08-9a20-4b81-b0b7-3634db66c8ce","name":"Email 3: Urgency - Discount Expiring","type":"n8n-nodes-base.sendGrid","typeVersion":1,"position":[272,512],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":{"operation":"appendOrUpdate","documentId":{"__rl":true,"mode":"id","value":"={{ nodeJson(storeConfig, 'sheetId') }}","cachedResultName":"From Store Config"},"sheetName":{"__rl":true,"mode":"name","value":"={{ nodeJson(storeConfig, 'sheetName') }}","cachedResultName":"From Store Config"},"columns":{"mappingMode":"defineBelow","value":{"Email":"={{ nodeJson(extractTagData, 'email') }}","CustomerName":"={{ nodeJson(extractTagData, 'customerName') }}","Tag":"New Subscriber","Status":"Sequence Complete - Email 3 Sent","LastUpdated":"={{ $now.toISO() }}","Converted":""},"schema":[{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"CustomerName","displayName":"CustomerName","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Tag","displayName":"Tag","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Status","displayName":"Status","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"LastUpdated","displayName":"LastUpdated","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Converted","displayName":"Converted","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false}],"matchingColumns":["Email"]},"options":[]},"id":"3712627b-d480-4416-ac58-b103e357d0d2","name":"Log: Email 3 Sent (Sequence Complete)","type":"n8n-nodes-base.googleSheets","typeVersion":4.7,"position":[0,512],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":{"operation":"appendOrUpdate","documentId":{"__rl":true,"mode":"id","value":"={{ nodeJson(storeConfig, 'sheetId') }}","cachedResultName":"From Store Config"},"sheetName":{"__rl":true,"mode":"name","value":"={{ nodeJson(storeConfig, 'sheetName') }}","cachedResultName":"From Store Config"},"columns":{"mappingMode":"defineBelow","value":{"Email":"={{ nodeJson(extractTagData, 'email') }}","CustomerName":"={{ nodeJson(extractTagData, 'customerName') }}","Tag":"New Subscriber","Status":"Converted (before Email 3)","LastUpdated":"={{ $now.toISO() }}","Converted":""},"schema":[{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"CustomerName","displayName":"CustomerName","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Tag","displayName":"Tag","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Status","displayName":"Status","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"LastUpdated","displayName":"LastUpdated","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Converted","displayName":"Converted","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false}],"matchingColumns":["Email"]},"options":[]},"id":"b142af5f-a2b2-4183-b725-8d859d8b35b6","name":"Log: Converted Before Email 3","type":"n8n-nodes-base.googleSheets","typeVersion":4.7,"position":[528,688],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":{"operation":"appendOrUpdate","documentId":{"__rl":true,"mode":"id","value":"={{ nodeJson(storeConfig, 'sheetId') }}","cachedResultName":"From Store Config"},"sheetName":{"__rl":true,"mode":"name","value":"={{ nodeJson(storeConfig, 'sheetName') }}","cachedResultName":"From Store Config"},"columns":{"mappingMode":"defineBelow","value":{"Email":"={{ nodeJson(extractTagData, 'email') }}","CustomerName":"={{ nodeJson(extractTagData, 'customerName') }}","Tag":"New Subscriber","Status":"Converted (before Email 2)","LastUpdated":"={{ $now.toISO() }}","Converted":""},"schema":[{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"CustomerName","displayName":"CustomerName","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Tag","displayName":"Tag","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Status","displayName":"Status","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"LastUpdated","displayName":"LastUpdated","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Converted","displayName":"Converted","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false}],"matchingColumns":["Email"]},"options":[]},"id":"4982bf75-1f05-4bd6-93d7-7ee03df8cda3","name":"Log: Converted Before Email 2","type":"n8n-nodes-base.googleSheets","typeVersion":4.7,"position":[1568,288],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":{"operation":"appendOrUpdate","documentId":{"__rl":true,"mode":"id","value":"={{ nodeJson(storeConfig, 'sheetId') }}","cachedResultName":"From Store Config"},"sheetName":{"__rl":true,"mode":"name","value":"={{ nodeJson(storeConfig, 'sheetName') }}","cachedResultName":"From Store Config"},"columns":{"mappingMode":"defineBelow","value":{"Email":"(no email captured)","CustomerName":"","Tag":"","Status":"Skipped - No Email Captured","LastUpdated":"={{ $now.toISO() }}","Converted":""},"schema":[{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"CustomerName","displayName":"CustomerName","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Tag","displayName":"Tag","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Status","displayName":"Status","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"LastUpdated","displayName":"LastUpdated","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Converted","displayName":"Converted","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false}],"matchingColumns":["Email"]},"options":[]},"id":"03fb84a0-9a74-408b-bc2e-085d3acbd360","name":"Log: Skipped (No Email)","type":"n8n-nodes-base.googleSheets","typeVersion":4.7,"position":[272,288],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":{"httpMethod":"POST","path":"new-subscriber","options":{"noResponseBody":false,"responseData":"{\"status\":\"received\"}"}},"id":"392d308b-3214-4044-9703-fad031a12db6","name":"Webhook - Lead Magnet Signup","type":"n8n-nodes-base.webhook","typeVersion":2.1,"position":[-416,160],"webhookId":"b70db636-e43a-4698-9bab-c320205a1b9d"},{"parameters":{"authentication":"accessToken","topic":"orders\/create"},"id":"ffa0d0a2-9ce9-43ee-bc9f-48ad49e9aa03","name":"Shopify - Order Created","type":"n8n-nodes-base.shopifyTrigger","typeVersion":1,"position":[-416,-288],"webhookId":"fbe736ff-0851-4204-aba0-20ff2b5f456f"},{"parameters":{"jsCode":"\nconst items = $input.all();\nreturn items.map(item => {\n const order = item.json;\n const email = order.email || (order.customer && order.customer.email) || '';\n return { json: { email } };\n});\n"},"id":"247b9ac8-5b5f-4c17-b153-d28c93964673","name":"Extract Order Email","type":"n8n-nodes-base.code","typeVersion":2,"position":[-160,-288]},{"parameters":{"documentId":{"__rl":true,"mode":"id","value":"={{ nodeJson(storeConfig, 'sheetId') }}","cachedResultName":"From Store Config"},"sheetName":{"__rl":true,"mode":"name","value":"={{ nodeJson(storeConfig, 'sheetName') }}","cachedResultName":"From Store Config"},"filtersUI":{"values":[{"lookupColumn":"Email","lookupValue":"={{ nodeJson(extractOrderEmail, 'email') }}"},{"lookupColumn":"Converted"}]},"options":[]},"id":"d89367a4-4ea2-4b5d-af20-90791f30ea10","name":"Find Subscriber Rows for Email","type":"n8n-nodes-base.googleSheets","typeVersion":4.7,"position":[112,-288],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":{"operation":"update","documentId":{"__rl":true,"mode":"id","value":"={{ nodeJson(storeConfig, 'sheetId') }}","cachedResultName":"From Store Config"},"sheetName":{"__rl":true,"mode":"name","value":"={{ nodeJson(storeConfig, 'sheetName') }}","cachedResultName":"From Store Config"},"columns":{"mappingMode":"defineBelow","value":{"Email":"={{ $json.Email }}","Converted":"TRUE","Status":"Converted - Purchased"},"schema":[{"id":"Email","displayName":"Email","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":true},{"id":"CustomerName","displayName":"CustomerName","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Tag","displayName":"Tag","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Status","displayName":"Status","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"LastUpdated","displayName":"LastUpdated","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false},{"id":"Converted","displayName":"Converted","required":false,"defaultMatch":false,"display":true,"type":"string","canBeUsedToMatch":false}],"matchingColumns":["Email"]},"options":[]},"id":"25b37ef8-4683-45c9-857d-3aada30f5f0e","name":"Mark as Converted","type":"n8n-nodes-base.googleSheets","typeVersion":4.7,"position":[368,-288],"retryOnFail":true,"maxTries":3,"waitBetweenTries":2000},{"parameters":[],"id":"60b1dda9-b287-4e41-bac7-bd2ca3801a62","name":"On Any Error","type":"n8n-nodes-base.errorTrigger","typeVersion":1,"position":[-416,-560]},{"parameters":{"select":"channel","channelId":{"__rl":true,"mode":"name","value":"<__PLACEHOLDER_VALUE__e.g. ops-alerts__>","cachedResultName":"From placeholder"},"text":"={{ \"\ud83d\udea8 Welcome Sequence failed: \" + $json.execution.error.message + \" (node: \" + $json.execution.error.node.name + \")\" }}","otherOptions":[]},"id":"db1f326e-748c-44c5-bde3-19b89e6dd7a7","name":"Notify Ops (Slack)","type":"n8n-nodes-base.slack","typeVersion":2.5,"position":[-160,-560],"webhookId":"053d976c-30e0-4fdd-a4c5-c6ecfa2b6263"},{"parameters":{"content":"## \ud83c\udf81 Welcome & Digital Product Nurturing Sequence\n\nTurns new subscribers into first-time buyers with a 3-email sequence (immediate \/ 24h \/ 72h), built for digital products \u2014 no shipping, instant delivery, lifetime updates.\n\n**Reuses ~70% of the Abandoned Cart Recovery infrastructure:**\n\u2705 Same \"Store Config\" centralized settings pattern\n\u2705 Same Google-Sheets-based conversion check (stops emails once someone buys \u2014 no awkward \"your discount expires\" email to someone who already paid)\n\u2705 Same Order-Created cross-check branch, same retry logic, same Slack error alerts\n\nDifferences from Cart Recovery: Email 1 fires immediately (no wait), and there are only 2 check-ins instead of 3, since there's no cart to poll \u2014 just a subscriber to nurture.","height":460,"width":500,"color":7},"id":"d993330c-508e-44e0-90c1-9b1a3693e161","name":"Overview","type":"n8n-nodes-base.stickyNote","typeVersion":1,"position":[-976,-288]},{"parameters":{"content":"## \ud83e\udded How to Use This\n\n**Setup (once):**\n1. Fill in Store Config: your email, lead magnet name + download link, welcome discount code, and a link to your best-selling products\n2. Connect 3 accounts: Shopify, SendGrid, Google Sheets (same accounts as Cart Recovery \u2014 just select them from the dropdown, no need to re-enter anything)\n3. If you capture leads on a non-Shopify landing page, point that tool's webhook at the \"Webhook - Lead Magnet Signup\" URL (right-click the node \u2192 copy webhook URL)\n4. Activate\n\n**After that:** new customers and subscribers automatically get the 3-email sequence, and it stops the moment they buy \u2014 no manual work.","height":400,"width":500,"color":2},"id":"e87c0e51-1c61-4a14-ae8d-f04dfd1e4957","name":"\ud83e\udded How to Use This","type":"n8n-nodes-base.stickyNote","typeVersion":1,"position":[-976,224]},{"parameters":{"content":"## 0\ufe0f\u20e3 Error Monitoring\n\nSame pattern as Cart Recovery: if any node fails after retries, you get a Slack alert immediately.\n\n\u26a0\ufe0f Same manual step required: Settings \u2192 Error Workflow \u2192 select this workflow itself.","height":260,"width":460,"color":3},"id":"9bc304bf-cebf-457c-8d3d-30ea5bfcaf46","name":"0\ufe0f\u20e3 Error Monitoring","type":"n8n-nodes-base.stickyNote","typeVersion":1,"position":[-416,-720]},{"parameters":{"content":"## 1\ufe0f\u20e3 Purchase Detection\n\nSame reconciliation pattern as Cart Recovery: when someone places an order, this branch finds their subscriber row(s) by email and marks them Converted \u2014 stopping any pending nurture emails automatically.","height":260,"width":460,"color":4},"id":"5dac7840-c0fd-4e33-90d2-9f3e039e7fad","name":"1\ufe0f\u20e3 Purchase Detection","type":"n8n-nodes-base.stickyNote","typeVersion":1,"position":[-416,48]},{"parameters":{"content":"## 2\ufe0f\u20e3 The Nurture Sequence\n\n**Email 1 (immediate):** Welcome + free resource + welcome discount code.\n**Email 2 (+24h):** Top products showcase, social proof, \"why digital\" framing \u2014 only if they haven't converted.\n**Email 3 (+72h total):** Urgency \u2014 discount expiring soon \u2014 only if they still haven't converted.\n\nEach stage reads the real Converted status from your Sheet first, exactly like Cart Recovery.","height":320,"width":1200,"color":6},"id":"4e751a55-27db-4b44-b3e6-f45bba367e5b","name":"2\ufe0f\u20e3 The Nurture Sequence","type":"n8n-nodes-base.stickyNote","typeVersion":1,"position":[800,-320]}],"connections":{"Shopify - Customer Created":{"main":[[{"node":"Store Config (edit me)","type":"main","index":0}]]},"Store Config (edit me)":{"main":[[{"node":"Extract & Tag Data","type":"main","index":0}]]},"Extract & Tag Data":{"main":[[{"node":"Has Email?","type":"main","index":0}]]},"Has Email?":{"main":[[{"node":"Log: New Subscriber","type":"main","index":0}],[{"node":"Log: Skipped (No Email)","type":"main","index":0}]]},"Log: New Subscriber":{"main":[[{"node":"Email 1: Welcome + Free Resource","type":"main","index":0}]]},"Email 1: Welcome + Free Resource":{"main":[[{"node":"Wait 24 Hours","type":"main","index":0}]]},"Wait 24 Hours":{"main":[[{"node":"Read Status (Before Email 2)","type":"main","index":0}]]},"Read Status (Before Email 2)":{"main":[[{"node":"Still Not Converted? (Before Email 2)","type":"main","index":0}]]},"Still Not Converted? (Before Email 2)":{"main":[[{"node":"Email 2: Top Products Showcase","type":"main","index":0}],[{"node":"Log: Converted Before Email 2","type":"main","index":0}]]},"Email 2: Top Products Showcase":{"main":[[{"node":"Log: Email 2 Sent","type":"main","index":0}]]},"Log: Email 2 Sent":{"main":[[{"node":"Wait 48 Hours (reach 72h total)","type":"main","index":0}]]},"Wait 48 Hours (reach 72h total)":{"main":[[{"node":"Read Status (Before Email 3)","type":"main","index":0}]]},"Read Status (Before Email 3)":{"main":[[{"node":"Still Not Converted? (Before Email 3)","type":"main","index":0}]]},"Still Not Converted? (Before Email 3)":{"main":[[{"node":"Email 3: Urgency - Discount Expiring","type":"main","index":0}],[{"node":"Log: Converted Before Email 3","type":"main","index":0}]]},"Email 3: Urgency - Discount Expiring":{"main":[[{"node":"Log: Email 3 Sent (Sequence Complete)","type":"main","index":0}]]},"Webhook - Lead Magnet Signup":{"main":[[{"node":"Store Config (edit me)","type":"main","index":0}]]},"Shopify - Order Created":{"main":[[{"node":"Extract Order Email","type":"main","index":0}]]},"Extract Order Email":{"main":[[{"node":"Find Subscriber Rows for Email","type":"main","index":0}]]},"Find Subscriber Rows for Email":{"main":[[{"node":"Mark as Converted","type":"main","index":0}]]},"On Any Error":{"main":[[{"node":"Notify Ops (Slack)","type":"main","index":0}]]}},"pinData":[],"meta":{"aiBuilderAssisted":true,"builderVariant":"mcp","instanceId":"a8610f00e1fe2a5bce768598a7e63848df427bd4d8770071107d6f6e694414de"}}

Paste into n8n via Import from Clipboard.

Scroll to Top