{"workflow":{"id":12461,"name":"Recover abandoned WooCommerce carts with custom coupon emails","views":142,"recentViews":0,"totalViews":142,"createdAt":"2026-01-04T21:20:12.278Z","description":"**Stop paying for expensive plugins to recover your valuable revenue from abandoned carts on your WooCommerce store**\n\n## How It Works?\n1. When a product is added to a user's cart on your store, it fetches the cart contents via webhook & it utilises the code provided in the red sticky note to fetch the required info.\n2. It waits for a specified time to allow the user to place an order.\n3. It checks if the order has been placed or not.\n4. It creates the HTML with dynamic information fetched from previous nodes.\n5. It sends the email to the user via configured SMTP credentials.\n\n## Setup Steps (20 minutes):\n1. Set up your WooCommerce Account Credentials in n8n\n2. Set up webhook in n8n & WooCommerce\n3. Add the provided code in functions.php or as a PHP snippet via a plugin onto your website\n4. Customize the coupon code's phrase according to your needs\n5.  Customize the email's HTML code according to your needs\n\n\n## Requirements\n\n- **WooCommerce Store**: With REST API access enabled.\n\n- **SMTP Credentials**: For sending recovery emails.\n\nFor any queries, you can ping me on [X](https://x.com/matta_kshitij)\n","workflow":{"id":"hAFQqzrBpAXS0LwD","meta":{"instanceId":"b0b7342dd97fe152d3df30a69d8be05b124ea749d4be4586cfa367dfaf9c0c7c","templateCredsSetupCompleted":true},"name":"Recover abandoned carts with custom coupons for WooCommerce","tags":[{"id":"","name":"","createdAt":"2025-09-09T19:46:50.767Z","updatedAt":"2025-09-09T19:46:50.767Z"}],"nodes":[{"id":"49fbfe38-6c4d-4d98-8bee-6f3cbed260ee","name":"No Operation, do nothing1","type":"n8n-nodes-base.noOp","position":[0,0],"parameters":{},"typeVersion":1},{"id":"9dffd428-e03e-4aaa-bef0-c9356dfd4c95","name":"Fetching Cart Contents","type":"n8n-nodes-base.webhook","position":[-1024,80],"webhookId":"fde986cf-7c26-42e9-885d-cb44ee305863","parameters":{"path":"fde986cf-7c26-42e9-885d-cb44ee305863","options":{},"httpMethod":"POST"},"typeVersion":2},{"id":"da6a3a81-4495-4b9a-acc9-9d756cb4f243","name":"Waiting Time","type":"n8n-nodes-base.wait","position":[-848,80],"webhookId":"4721cf57-a939-46f1-bcb8-1dd85412a143","parameters":{"unit":"minutes","amount":15},"typeVersion":1.1},{"id":"0a19f77e-d3b2-41e8-8a61-6be83fd536b7","name":"Fetching If Customer has placed order","type":"n8n-nodes-base.wooCommerce","position":[-656,80],"parameters":{"limit":10,"options":{"after":"={{ $('Fetching Cart Contents').item.json.body.arg.timestamp }}","search":"={{ $json.body.arg.customer_id }}","status":"completed"},"resource":"order","operation":"getAll"},"credentials":{"wooCommerceApi":{"id":"3GgviDcfZZLbbl5i","name":"WooCommerce account"}},"typeVersion":1,"alwaysOutputData":true},{"id":"f60a0edc-d6c3-40cf-8c56-7e469aff6faa","name":"If, There's a Order Placed","type":"n8n-nodes-base.if","position":[-224,80],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"137f38ed-baa4-4027-b4a1-9fad50c94ca5","operator":{"type":"number","operation":"gt"},"leftValue":"={{ $node[\"Set Default Order Data\"].json.length }}","rightValue":"=0"}]},"looseTypeValidation":true},"typeVersion":2.2},{"id":"fa08116b-5b16-4d35-a500-d5674fd9210b","name":"Abandoned Cart Recovery Email","type":"n8n-nodes-base.emailSend","position":[720,192],"webhookId":"dc08939a-a98d-43a8-ae1f-71835ed27309","parameters":{"html":"={{ $json.email_html }}","options":{"appendAttribution":false},"subject":"=Greetings! You left [Your Product Name] in your cart! ","toEmail":"={{ $('Set Default Order Data').item.json.body.arg.billing_email }}","fromEmail":""},"credentials":{"smtp":{"id":"YmfND4stCynWOORm","name":"SMTP"}},"typeVersion":2.1},{"id":"152ac14f-ba84-4f0f-b413-7f53a37414fa","name":"Set Default Order Data","type":"n8n-nodes-base.code","position":[-448,80],"parameters":{"jsCode":"try {\n  // Get input data from WooCommerce node\n  const inputData = $input.first() || {};\n  // Get original webhook payload from Fetching Cart Contents\n  const webhookData = $node[\"Fetching Cart Contents\"].json || {};\n  // Log input for debugging\n  console.log('Input to Set Default Order Data: ' + JSON.stringify(inputData, null, 2));\n  console.log('Webhook Data: ' + JSON.stringify(webhookData, null, 2));\n  // Extract and validate orders\n  let orders = inputData.json;\n  if (orders === undefined || orders === null || typeof orders !== 'object') {\n    orders = [];\n  } else if (!Array.isArray(orders)) {\n    console.log('Invalid data format, forcing empty array');\n    orders = [];\n  }\n  // Merge webhook data with orders\n  const output = {\n    orders: orders,\n    ...webhookData // Preserve original payload fields\n  };\n  // Return normalized data\n  return [{ json: output }];\n} catch (error) {\n  console.log('Error in Set Default Order Data: ' + error.message);\n  return [{ json: { orders: [] } }];\n}"},"typeVersion":2},{"id":"b7aaf7e2-acb5-4fc5-b995-695ad788faa6","name":"Generate Unique Coupon Code","type":"n8n-nodes-base.code","position":[0,192],"parameters":{"jsCode":"// --- CONFIGURATION SECTION ---\nconst CONFIG = {\n    COUPON_PREFIX: '',       // Specify the Coupon Code Phrase here\n    EXPIRY_MINUTES: 30,      // Time until expiry\n    TIMEZONE: 'UTC'          // CHANGE THIS: 'Asia/Kolkata', 'America/New_York', 'UTC', etc.\n};\n\n// --- COUPON GENERATION LOGIC ---\nconst customerId = $input.first().json.body.arg.customer_id;\n\n// Generate base number (0-1000) based on ID and current timestamp\nlet baseNumber = Math.floor(Math.abs(parseInt(customerId + Date.now().toString().slice(-6))) % 1000 + 1);\nlet codeNumber = ('000' + baseNumber).slice(-3);\nlet finalCode = CONFIG.COUPON_PREFIX + codeNumber;\n\n// Handle collisions\nlet usedCodes = $json.usedCodes || [];\nwhile (usedCodes.includes(finalCode)) {\n    baseNumber = (baseNumber % 1000) + 1;\n    codeNumber = ('000' + baseNumber).slice(-3);\n    finalCode = CONFIG.COUPON_PREFIX + codeNumber;\n}\nusedCodes.push(finalCode);\n\n// --- TIME CALCULATION LOGIC ---\n\n// 1. Calculate the exact expiry moment (Current Time + Expiry Minutes)\nconst now = new Date();\nconst expiryDate = new Date(now.getTime() + CONFIG.EXPIRY_MINUTES * 60000);\n\n// 2. Format: \"HH:mm\" (e.g., \"19:09\") based on TARGET TIMEZONE\nconst expiryTime = expiryDate.toLocaleTimeString('en-GB', {\n    timeZone: CONFIG.TIMEZONE,\n    hour12: false,\n    hour: '2-digit',\n    minute: '2-digit'\n});\n\n// 3. Format: \"YYYY-MM-DD HH:mm:ss\" based on TARGET TIMEZONE\n// We use the 'sv-SE' (Swedish) locale hack, which naturally formats dates as ISO 8601 (YYYY-MM-DD)\nconst dateExpires = expiryDate.toLocaleString('sv-SE', {\n    timeZone: CONFIG.TIMEZONE,\n    year: 'numeric',\n    month: '2-digit',\n    day: '2-digit',\n    hour: '2-digit',\n    minute: '2-digit',\n    second: '2-digit'\n}).replace('T', ' ');\n\nreturn [{\n    json: {\n        code: finalCode,\n        usedCodes: usedCodes,\n        customer_id: customerId,\n        expiry_time: expiryTime,   // Local time in HH:mm\n        date_expires: dateExpires, // Full timestamp YYYY-MM-DD HH:mm:ss\n        timezone: CONFIG.TIMEZONE  // Helpful for debugging\n    }\n}];"},"typeVersion":2},{"id":"554fc78c-2c70-441a-9a8a-6cab7006d139","name":"Create Abandoned Cart Coupon (HTTP)","type":"n8n-nodes-base.httpRequest","position":[240,192],"parameters":{"url":"","method":"POST","options":{},"jsonBody":"={\n  \"code\": \"{{ $json.code }}\",\n  \"discount_type\": \"percent\",\n  \"amount\": \"5\",\n  \"date_expires\": \"{{ $json.date_expires }}\",\n  \"individual_use\": true,\n  \"usage_limit\": 1,\n  \"usage_limit_per_user\": 1,\n  \"customer_id\": \"{{ $('Set Default Order Data').item.json.body.arg.customer_id }}\",\n\"meta_data\": [\n    {\n      \"key\": \"expiry_time\",\n      \"value\": \"{{ $json.expiry_time }}\"\n    }\n  ]\n}","sendBody":true,"specifyBody":"json","authentication":"predefinedCredentialType","nodeCredentialType":"wooCommerceApi"},"credentials":{"wooCommerceApi":{"id":"3GgviDcfZZLbbl5i","name":"WooCommerce account"}},"typeVersion":4.2},{"id":"fb2119a3-91fb-4910-82d9-bb8cd139e5d8","name":"Generate Email HTML","type":"n8n-nodes-base.code","position":[480,192],"parameters":{"jsCode":"// --- CONFIGURATION SECTION ---\nconst CONFIG = {\n    TIMEZONE: 'UTC',        // CHANGE THIS: 'Asia/Kolkata', 'America/New_York', 'UTC', etc.\n    CURRENCY_SYMBOL: '',   // CHANGE THIS: '$', '€', '£', etc.\n    LOCALE_FORMAT: 'en-US'  // CHANGE THIS: 'en-GB', 'en-US' (for number formatting)\n};\n\n// --- DATA EXTRACTION ---\nconst inputData = $input.first().json;\n\n// Safe navigation for inputs (defaults provided if missing)\nconst cartContents = $('Set Default Order Data').first().json.body.arg.cart_contents || [];\nconst billingEmail = $('Set Default Order Data').first().json.body.arg.billing_email || '';\nconst cartTotal = $('Set Default Order Data').first().json.body.arg.cart_total || '0.00';\n\n// --- TIMESTAMP LOGIC (LOCALE AWARE) ---\n// If timestamp is missing, generate current time in the Configured Timezone\nlet currentTimestamp;\nif ($('Set Default Order Data').first().json.body.arg.timestamp) {\n    currentTimestamp = $('Set Default Order Data').first().json.body.arg.timestamp;\n} else {\n    // Generate ISO-like format (YYYY-MM-DD HH:mm:ss) respecting the CONFIG.TIMEZONE\n    currentTimestamp = new Date().toLocaleString('sv-SE', {\n        timeZone: CONFIG.TIMEZONE,\n        year: 'numeric',\n        month: '2-digit',\n        day: '2-digit',\n        hour: '2-digit',\n        minute: '2-digit',\n        second: '2-digit'\n    }).replace('T', ' ');\n}\nconst timestamp = currentTimestamp;\n\n// Retrieve Coupon Data (Ensure these nodes exist in your workflow)\nconst couponCode = $node[\"Generate Unique Coupon Code\"].json.code; \nconst dateExpires = $node[\"Create Abandoned Cart Coupon (HTTP)\"].json.date_expires;\n// Note: Ensure meta_data[0] actually exists in your previous node's output\nconst expiryTime = $node[\"Create Abandoned Cart Coupon (HTTP)\"].json.meta_data && $node[\"Create Abandoned Cart Coupon (HTTP)\"].json.meta_data[0] \n    ? $node[\"Create Abandoned Cart Coupon (HTTP)\"].json.meta_data[0].value \n    : '';\n\n// --- CALCULATIONS ---\n// Calculate discount (5%) and total\nconst discount = (parseFloat(cartTotal) * 0.05).toFixed(2);\nconst totalWithDiscount = (parseFloat(cartTotal) - parseFloat(discount)).toFixed(2);\n\n// --- DYNAMIC HTML GENERATION ---\nlet tableRows = '';\ncartContents.forEach(item => {\n    // Use CONFIG.CURRENCY_SYMBOL here\n    tableRows += `\n        <tr>\n            <td style=\"padding: 15px; border-bottom: 1px solid #e5e5e5; vertical-align: top\">\n                <img src=\"${item.image_url || 'https:'}\" alt=\"${item.name || 'Item'}\" style=\"width: 80px; display: block;\" />\n            </td>\n            <td style=\"padding: 15px; border-bottom: 1px solid #e5e5e5; font-family: Helvetica, Arial, sans-serif; font-size: 14px; color: #333333; vertical-align: top\">${item.name || 'Unnamed Item'}</td>\n            <td style=\"padding: 15px; border-bottom: 1px solid #e5e5e5; text-align: center; font-family: Helvetica, Arial, sans-serif; font-size: 14px; color: #333333; vertical-align: top\">${item.quantity || '1'}</td>\n            <td style=\"padding: 15px; border-bottom: 1px solid #e5e5e5; text-align: right; font-family: Helvetica, Arial, sans-serif; font-size: 14px; color: #333333; vertical-align: top\">${CONFIG.CURRENCY_SYMBOL}${item.price || '0.00'}</td>\n        </tr>\n    `;\n});\n\n// Construct checkout URL\nconst baseUrl = \"\"; // Replace with your actual domain\nconst cartUrl = couponCode ? `${baseUrl}/cart/?coupon=${couponCode}` : `${baseUrl}/cart/`;\n\n// --- EMAIL CONTENT ---\n// You can now use variables: ${timestamp}, ${formattedTotal}, ${tableRows}, etc.\n// HTML Version (Add Your Mail's HTML Code)\nconst htmlContent = `\n    \n`;\n\n// Plain Text Version (Fallback) (Add Fallback Text)\n\nreturn [{\n    json: {\n        email_html: htmlContent,\n        email_text: textContent,\n        meta: {\n            timestamp: timestamp,\n            timezone: CONFIG.TIMEZONE,\n            currency: CONFIG.CURRENCY_SYMBOL\n        }\n    }\n}];"},"typeVersion":2},{"id":"18f67ec7-d8ee-4626-b52d-d1de37d5aaed","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1856,-304],"parameters":{"width":480,"height":1392,"content":"# Recover abandoned carts with custom coupons for WooCommerce\n\n\nThis n8n workflow helps you recover lost sales opportunities by automatically sending personalized emails with a customized coupon to your customers who leave the website after adding products to their carts without completing checkout.\n\n\n## How it works :\n\n-  Webhook Trigger:  Webhook receives complete cart details from WooCommerce the moment any customer adds an item to the cart.\n\n- Verification of Order: It waits for the specified wait time and then checks through the WooCommerce API node to see if the customer has actually completed the purchase during that window.\n\n- Coupon Generation: If no order is found, a Code node generates a unique, custom coupon code with a custom expiry time (e.g., 30 minutes).\n\n-  Coupon Creation on Website: An HTTP Request node registers this new coupon directly into your WooCommerce store via the REST API.\n\n-  Email Composition: A Code node fetches all information extracted and converts it into an HTML email template.\n\n-  Sending Emails: Finally, the SMTP node sends the personalized recovery mail to the customer's email address.\n\n## Setup Steps :\n\n1. Set up your WooCommerce Account Credentials in n8n\n2. Set up Webhook in n8n & WooCommerce\n3. Add the provided code in functions.php or as a PHP snippet via a plugin in your website\n4. Customize the coupon code's phrase according to your needs\n5.  Customize the email's HTML code according to your needs\n\n\n## Requirements :\n\n- WooCommerce Store: With WooCommerce REST API access enabled.\n\n- SMTP Credentials: For sending recovery emails.\n\n\n## Need Help?\n\n[Schedule a 1:1 Troubleshooting Call](https://cal.com/mattakshitij/workflow-troubleshoot) or [Ping me on X](https://x.com/matta_kshitij)\n\nHappy Automating :)\n"},"typeVersion":1},{"id":"e184c052-e398-4b02-bd6d-ed5669afceaf","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-1264,-256],"parameters":{"color":7,"width":384,"height":288,"content":"## 1. Configuring webhook in n8n and WooCommerce\n\nSet up the webhook path and configure it in WooCommerce. Follow the given steps:\n- Go to WooCommerce Settings > Advanced > Webhook\n- Create a webhook and select Topic as Action and Action Event as woocommerce_add_to_cart\n- Add Webhook URL configured in n8n in the Delivery URL field\n"},"typeVersion":1},{"id":"7480b529-059b-4033-9dd8-1250a5c44fda","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-960,304],"parameters":{"color":3,"width":448,"height":368,"content":"##  2. Add the provided code to your WP (WooCommerce) website to enable the features of fetching cart details and coupon code customization\n\n** This PHP Code Snippet needs to be added in either the functions.php code of your theme or can be added via code snippet plugins like HFCM, which enables code to run on all pages of the website.\n\n- Access the code from [here](https://pastebin.com/tp0yFSRN)\n- Add it to your WordPress (WooCommerce) website"},"typeVersion":1},{"id":"fbc9567b-45b0-47a5-b283-c4a35938719c","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-160,384],"parameters":{"color":7,"width":416,"height":304,"content":"## 3. Customize the coupon code according to your needs\n\n- In COUPON_PREFIX, you need to set the phrase of the coupon, for example, your coupon to be HELLOxxx, then you need to put it in HELLO.\n- In EXPIRY_MINUTES, set the time in minutes for which the coupon should be active.\n- In TIMEZONE, you need to set the timezone acc. to your WP website's Timezone\n"},"typeVersion":1},{"id":"286eb849-4c3a-46fc-9736-ec79a21054fa","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[368,-208],"parameters":{"color":7,"width":336,"height":352,"content":"## 4. Customize email HTML according to your needs\n\n\n- Add HTML Code and set the variables defined in it to fetch values dynamically.\n\n- In TIMEZONE, you need to set the timezone according to your WP website's Timezone\n\n- CURRENCY_SYMBOL Add the symbol of the currency used in your store\n\n"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"5edef004-513b-4325-ac0e-8b1722d61556","connections":{"Waiting Time":{"main":[[{"node":"Fetching If Customer has placed order","type":"main","index":0}]]},"Generate Email HTML":{"main":[[{"node":"Abandoned Cart Recovery Email","type":"main","index":0}]]},"Fetching Cart Contents":{"main":[[{"node":"Waiting Time","type":"main","index":0}]]},"Set Default Order Data":{"main":[[{"node":"If, There's a Order Placed","type":"main","index":0}]]},"If, There's a Order Placed":{"main":[[{"node":"No Operation, do nothing1","type":"main","index":0}],[{"node":"Generate Unique Coupon Code","type":"main","index":0}]]},"Generate Unique Coupon Code":{"main":[[{"node":"Create Abandoned Cart Coupon (HTTP)","type":"main","index":0}]]},"Create Abandoned Cart Coupon (HTTP)":{"main":[[{"node":"Generate Email HTML","type":"main","index":0}]]},"Fetching If Customer has placed order":{"main":[[{"node":"Set Default Order Data","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":15,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.code":{"count":3},"n8n-nodes-base.noOp":{"count":1},"n8n-nodes-base.wait":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.emailSend":{"count":1},"n8n-nodes-base.stickyNote":{"count":5},"n8n-nodes-base.httpRequest":{"count":1},"n8n-nodes-base.wooCommerce":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Kshitij Matta","username":"autom8nstudio","bio":"Creating useful and easy to replicate marketing automations. Simplifying your content planning one node at a time. Follow me on X for more such automations and tips & tricks.","verified":true,"links":["https://x.com/matta_kshitij"],"avatar":"https://gravatar.com/avatar/5c3c77131f877c9186d55e4b001aa76f7e87ed62e988b7cffa1ee01cedf1dea8?r=pg&d=retro&size=200"},"nodes":[{"id":11,"icon":"fa:envelope","name":"n8n-nodes-base.emailSend","codex":{"data":{"alias":["SMTP","email","human","form","wait","hitl","approval"],"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/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"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.sendemail/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/sendemail/"}]},"categories":["Communication","HITL","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Send Email","color":"#00bb88"},"iconData":{"icon":"envelope","type":"icon"},"displayName":"Send Email","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":9,"name":"Core Nodes"},{"id":28,"name":"HITL"}]},{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"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/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-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"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/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"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/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"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/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"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/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"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.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"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/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/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"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/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"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/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"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/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"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/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"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-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"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"},{"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.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":26,"icon":"fa:arrow-right","name":"n8n-nodes-base.noOp","codex":{"data":{"alias":["nothing"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"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/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"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/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"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/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at 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-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"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"},{"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.noop/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"organization\"]","defaults":{"name":"No Operation, do nothing","color":"#b0b0b0"},"iconData":{"icon":"arrow-right","type":"icon"},"displayName":"No Operation, do nothing","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"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/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"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/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":298,"icon":"file:wooCommerce.svg","name":"n8n-nodes-base.wooCommerce","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.woocommerce/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/woocommerce/"}]},"categories":["Sales"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"output\"]","defaults":{"name":"WooCommerce"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyOC4yLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAxODMuNiA0Ny41IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxODMuNiA0Ny41OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7ZmlsbDojODczRUZGO30NCgkuc3Qxe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO30NCgkuc3Qye2ZpbGw6Izg3M0VGRjt9DQoJLnN0M3tmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNGRkZGRkY7fQ0KCS5zdDR7ZmlsbDojRkZGRkZGO30NCjwvc3R5bGU+DQo8Zz4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzcuNCwwYy00LjMsMC03LjEsMS40LTkuNiw2LjFMNTYuNCwyNy42VjguNWMwLTUuNy0yLjctOC41LTcuNy04LjVzLTcuMSwxLjctOS42LDYuNUwyOC4zLDI3LjZWOC43DQoJCWMwLTYuMS0yLjUtOC43LTguNi04LjdINy4zQzIuNiwwLDAsMi4yLDAsNi4yczIuNSw2LjQsNy4xLDYuNGg1LjF2MjQuMWMwLDYuOCw0LjYsMTAuOCwxMS4yLDEwLjhzOS42LTIuNiwxMi45LTguN2w3LjItMTMuNXYxMS40DQoJCWMwLDYuNyw0LjQsMTAuOCwxMS4xLDEwLjhzOS4yLTIuMywxMy04LjdsMTYuNi0yOEM4Ny44LDQuNyw4NS4zLDAsNzcuMywwQzc3LjMsMCw3Ny4zLDAsNzcuNCwweiIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMDguNiwwQzk1LDAsODQuNywxMC4xLDg0LjcsMjMuOHMxMC40LDIzLjcsMjMuOSwyMy43czIzLjgtMTAuMSwyMy45LTIzLjdDMTMyLjUsMTAuMSwxMjIuMSwwLDEwOC42LDB6DQoJCSBNMTA4LjYsMzIuOWMtNS4xLDAtOC42LTMuOC04LjYtOS4xczMuNS05LjIsOC42LTkuMnM4LjYsMy45LDguNiw5LjJTMTEzLjgsMzIuOSwxMDguNiwzMi45eiIvPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNTkuNywwYy0xMy41LDAtMjMuOSwxMC4xLTIzLjksMjMuOHMxMC40LDIzLjcsMjMuOSwyMy43czIzLjktMTAuMSwyMy45LTIzLjdTMTczLjIsMCwxNTkuNywweiBNMTU5LjcsMzIuOQ0KCQljLTUuMiwwLTguNS0zLjgtOC41LTkuMXMzLjQtOS4yLDguNS05LjJzOC42LDMuOSw4LjYsOS4yUzE2NC45LDMyLjksMTU5LjcsMzIuOXoiLz4NCjwvZz4NCjwvc3ZnPg0K"},"displayName":"WooCommerce","typeVersion":1,"nodeCategories":[{"id":2,"name":"Sales"}]},{"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"}]}],"categories":[{"id":38,"name":"Lead Nurturing"}],"image":[]}}