{"workflow":{"id":13288,"name":"Sync NetSuite inventory items between NetSuite and Salesforce products","views":57,"recentViews":0,"totalViews":57,"createdAt":"2026-02-10T14:25:36.575Z","description":"## Short Description\n\nAutomatically exports inventory items records from NetSuite and syncs them into Salesforce — creating or updating Products.\n\n## Who is this for / Use case\n\nThis template is designed for businesses and integration developers who:\n\n- Use NetSuite as their ERP or CRM system.\n- Need to automatically sync products data into Salesforce.\n- Want a reliable, scalable solution that supports pagination and upserts.\n- Prefer a ready-to-use, easily customizable workflow built on n8n.\n\n## How it works\n\nInitialize pagination offset.\n1. Fetch Salesforce Pricebook values data.\n2. Initialize pagination offset.\n3. Fetch NetSuite list of Inventory Items.\n4. Split the retrieved array into individual items.\n5. Get details for each Inventory Item from NetSuite.\n6. Find certain price value fetched from NetSuite\n7. Upserts Product into Salesforce\n8. Repeat until all records are processed, then end the workflow.\n\n## Setup / Configuration\n\n1. Import the workflow into your n8n instance.\n2. Set your NetSuite and Salesforce credentials.\n3. Ensure your Salesforce Account/Contact objects have a matching External ID field.\n4. (Optional) Adjust mapping fields or filters to your data needs.\n5. Execute manually or trigger on a schedule (e.g., daily sync).","workflow":{"meta":{"instanceId":"3a7e7b7e92e2049f5f0691e88d182013a2c9726f7e3a108e2a76cf49a18f7456","templateCredsSetupCompleted":true},"nodes":[{"id":"bf789e9d-beac-493f-b81d-7d194783a8f1","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[-496,1792],"parameters":{"width":460,"height":960,"content":"### This n8n template demonstrates how to export NetSuite Inventory Items and Upsert into Salesforce as Products.\n\n### How it works\n* Workflow processes 20 records per iteration until there are no records left.\n* To find unique records - NetSuite Internal Id is used in Salesforce as External Id.\n\n\n### How to use\n* Set up NetSuite and Salesforce connections.\n* The 'Execute Workflow Daily' node is used as an example but feel free to replace it with any other trigger.\n* Run the flow manually to process all records. Non-existing records will be created, all existing - updated.\n* After running workflow manually - you can set up schedule to run the flow. To process only records updated after last workflow run date - switch 'NS: Inventory Item - Get list of All records' node with 'NS: Inventory Item - Get Delta records'\n\n\n### Requirements\n* Salesforce connection working and External Id field exists.\n* NetSuite connection working. Please refer to the details provided in [NetSuite REST Node description](https://www.npmjs.com/package/n8n-nodes-netsuite-rest).\n\n### Note\n* When running a workflow with Schedule trigger - on a first run workflow will use {today} date as a last export date.\n* Currently workflow uses NetSuite REST community node   and can run on self-hosted n8n instance only.\n\n### Need Help?\nFeel free to reach out to support@entechsolutions.com\n\nHappy Integrating!"},"typeVersion":1},{"id":"56d52e50-2ed7-46c7-abbc-0b0645ccf9a4","name":"Split Customers Array","type":"n8n-nodes-base.splitOut","position":[1744,2176],"parameters":{"options":{},"fieldToSplitOut":"items"},"typeVersion":1},{"id":"63b00445-05fc-41d6-bd95-be6a098cfe59","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[2576,1920],"parameters":{"color":5,"width":432,"height":560,"content":"## Salesforce section 2\n\n### Records are inserted/updated into Salesforce here"},"typeVersion":1},{"id":"56fc814e-50da-47f2-99d4-650f49989ab9","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[1392,1856],"parameters":{"color":7,"width":800,"height":560,"content":"## Netsuite section\n\n### Records are pulled from NetSuite here\n\n### Fell free to use filter with Q parameter passed in 'NS: Inventory Item - Get list of All records' step\n\nRead about using Q parameter in [NetSuite Docs](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1545222128.html)\n\n### Note\n* In this workflow only one Netsuite price level value is used"},"typeVersion":1},{"id":"3e1bc7bf-49b9-4cb6-8b98-38a2fefeebd2","name":"Workflow is finished","type":"n8n-nodes-base.noOp","position":[1552,2704],"parameters":{},"typeVersion":1},{"id":"7158e1e8-c545-4478-91e9-4d7f78c819b0","name":"Has More Records?","type":"n8n-nodes-base.if","position":[976,2240],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"da799032-1cc2-421d-91cd-4eb174744162","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.hasMore }}","rightValue":""}]}},"typeVersion":2.2},{"id":"534b785f-eb2e-49be-ad48-a389321b7b9b","name":"Retrieve Paging Offset and LastExportDate","type":"n8n-nodes-base.code","position":[1200,2176],"parameters":{"jsCode":"const workflowStaticData = $getWorkflowStaticData('global');\nconst lastExportDate = workflowStaticData.lastExportDate ? workflowStaticData.lastExportDate : $today.minus({days: 1}).toFormat('MM/dd/yyyy')\n\nreturn [\n  {\n      offset: workflowStaticData.offset,\n      lastExportDate: lastExportDate\n  }\n];"},"typeVersion":2},{"id":"0dffa714-f495-438c-a63a-ef756007d9ab","name":"Update Paging Offset and LastExportDate","type":"n8n-nodes-base.code","position":[3296,2352],"parameters":{"jsCode":"const workflowStaticData = $getWorkflowStaticData('global');\n\nworkflowStaticData.offset = workflowStaticData.offset+20\nworkflowStaticData.hasMore = $('NS: Inventory Item - Get list of All records').isExecuted ? $('NS: Inventory Item - Get list of All records').first().json.hasMore: $('NS: Inventory Item - Get Delta records').first().json.hasMore\n\nreturn [\n  {\n      offset: workflowStaticData.offset,\n      hasMore: workflowStaticData.hasMore\n  }\n];"},"typeVersion":2},{"id":"88568793-5119-4776-8800-bfdc50e1c45c","name":"Execute Workflow Daily","type":"n8n-nodes-base.scheduleTrigger","position":[80,2240],"parameters":{"rule":{"interval":[{}]}},"typeVersion":1.2},{"id":"dcea2618-5270-419b-9d92-60b1dc9a83ee","name":"Init Offset","type":"n8n-nodes-base.code","position":[752,2240],"parameters":{"jsCode":"// initialize staticData object\nconst workflowStaticData = $getWorkflowStaticData('global');\n\nworkflowStaticData.offset = 0\nworkflowStaticData.hasMore = true\n\nreturn [\n  {\n      offset: workflowStaticData.offset,\n      hasMore: workflowStaticData.hasMore\n  }\n];"},"typeVersion":2},{"id":"20116ec6-ecf7-4e3e-aaca-b2ec48e27a7b","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[1392,1344],"parameters":{"width":368,"height":480,"content":"## Run for Delta records\n\n### Replace a 'NS: Inventory Item - Get list of All records' node with a node below to run flow only for records changed after Last Workflow Run"},"typeVersion":1},{"id":"8b0944ab-ad8d-4299-90b8-507db45d6c5c","name":"Update LastExportDate","type":"n8n-nodes-base.code","position":[1344,2704],"parameters":{"jsCode":"const workflowStaticData = $getWorkflowStaticData('global');\n\nworkflowStaticData.lastExportDate = DateTime.now().toFormat('MM/dd/yyyy')\n\nreturn [\n  {\n      lastExportDate: workflowStaticData.lastExportDate\n  }\n];"},"typeVersion":2},{"id":"02494af3-a865-4cdb-973e-0f5dcc1ecff7","name":"NS: Inventory Item - Get record","type":"n8n-nodes-netsuite-rest.netSuiteRest","position":[1984,2176],"parameters":{"id":"={{ $json.id }}","resource":"InventoryItem","operation":"get /inventoryItem/{id}","additionalFields":{"expandSubResources":true}},"credentials":{"netSuiteRestOAuth2Api":{"id":"yBU7WCFQjxMU2Crj","name":"NetSuite REST account TO SHARE"}},"typeVersion":1},{"id":"fa8ac58b-5a18-4ff7-9ce3-89d494594a50","name":"Salesforce: Add Products","type":"n8n-nodes-base.httpRequest","position":[2736,2176],"parameters":{"url":"https://entechsolutions4-dev-ed.develop.my.salesforce.com/services/data/v64.0/composite","method":"POST","options":{},"jsonBody":"={\n  \"allOrNone\": true,\n  \"compositeRequest\": [\n    {\n      \"method\": \"PATCH\",\n      \"url\": \"/services/data/v64.0/sobjects/Product2/External_ID__c/{{ $json.External_ID__c }}\",\n      \"referenceId\": \"prodUpsert\",\n      \"body\": {\n        \"Name\": \"{{ $json.Name }}\",\n        \"IsActive\": true\n      }\n    },\n    {\n      \"method\": \"PATCH\",\n      \"url\": \"/services/data/v64.0/sobjects/PricebookEntry/External_ID__c/{{ $json.External_ID__c }}-{{ $('Salesforce: Get Pricebook values').item.json.records[0].Id }}\",\n      \"referenceId\": \"pbeUpsert\",\n      \"body\": {\n        \"Pricebook2Id\": \"{{ $('Salesforce: Get Pricebook values').item.json.records[0].Id }}\",\n        \"Product2Id\": \"@{prodUpsert.id}\",\n        \"UnitPrice\": 100,\n        \"IsActive\": true\n      }\n    }\n  ]\n}\n","sendBody":true,"specifyBody":"json","authentication":"predefinedCredentialType","nodeCredentialType":"salesforceOAuth2Api"},"credentials":{"salesforceOAuth2Api":{"id":"AomShl0rpiUu4La4","name":"Salesforce account TO SHARE"}},"executeOnce":false,"typeVersion":4.2},{"id":"26d29287-2073-4ee3-b705-92455f8a93a5","name":"NS: Inventory Item - Get Delta records","type":"n8n-nodes-netsuite-rest.netSuiteRest","position":[1504,1632],"parameters":{"resource":"InventoryItem","isDebugMode":true,"additionalFields":{"q":"=lastModifiedDate ON_OR_AFTER \"{{ $json.lastExportDate }}\"","limit":20,"offset":"={{ $json.offset }}"}},"credentials":{"netSuiteRestOAuth2Api":{"id":"yBU7WCFQjxMU2Crj","name":"NetSuite REST account TO SHARE"}},"typeVersion":1},{"id":"797c443b-3e82-420e-abec-b103845234d8","name":"NS: Inventory Item - Get list of All records","type":"n8n-nodes-netsuite-rest.netSuiteRest","position":[1504,2176],"parameters":{"resource":"InventoryItem","additionalFields":{"limit":"=20","offset":"={{ $json.offset }}"}},"credentials":{"netSuiteRestOAuth2Api":{"id":"yBU7WCFQjxMU2Crj","name":"NetSuite REST account TO SHARE"}},"typeVersion":1},{"id":"2a1b0bce-475d-4382-a84b-9d0238ed5626","name":"Salesforce: Get Pricebook values","type":"n8n-nodes-base.httpRequest","position":[400,2240],"parameters":{"url":"https://entechsolutions4-dev-ed.develop.my.salesforce.com/services/data/v64.0/query?q=SELECT+Id,Name,IsStandard,IsActive+FROM+Pricebook2+WHERE+IsActive=true","options":{},"authentication":"predefinedCredentialType","nodeCredentialType":"salesforceOAuth2Api"},"credentials":{"salesforceOAuth2Api":{"id":"AomShl0rpiUu4La4","name":"Salesforce account TO SHARE"}},"executeOnce":false,"typeVersion":4.2},{"id":"e6c044d6-57a4-42ce-88ba-bd735dd5466c","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[256,1920],"parameters":{"color":5,"width":384,"height":496,"content":"## Salesforce section 1\n\n### Salesforce Pricebook values are fetched here\n\n### Note\n* In this workflow only one Salesforce Pricebook value is used"},"typeVersion":1},{"id":"b499cf83-6e96-41ab-b009-719409344370","name":"Prepare Salesforce Payload","type":"n8n-nodes-base.code","position":[2336,2176],"parameters":{"jsCode":"const records = $input.all();\n\nconst result = records.reduce((acc, item) => {\n  const data = item.json;\n  const prices = data.price?.items ?? [];\n\n  const quantityPrice = prices.find(p => p?.priceLevelName === \"Quantity\")?.price ?? null;\n\n  acc.push({\n    Name: data.itemId,\n    External_ID__c: data.id,\n    IsActive: data.isinactive === \"F\",\n    PricebookEntry_Price__c: quantityPrice\n  });\n\n  return acc;\n}, []);\n\nreturn result.map(r => ({ json: r }));\n"},"typeVersion":2}],"pinData":{},"connections":{"Init Offset":{"main":[[{"node":"Has More Records?","type":"main","index":0}]]},"Has More Records?":{"main":[[{"node":"Retrieve Paging Offset and LastExportDate","type":"main","index":0}],[{"node":"Update LastExportDate","type":"main","index":0}]]},"Split Customers Array":{"main":[[{"node":"NS: Inventory Item - Get record","type":"main","index":0}]]},"Update LastExportDate":{"main":[[{"node":"Workflow is finished","type":"main","index":0}]]},"Execute Workflow Daily":{"main":[[{"node":"Salesforce: Get Pricebook values","type":"main","index":0}]]},"Salesforce: Add Products":{"main":[[{"node":"Update Paging Offset and LastExportDate","type":"main","index":0}]]},"Prepare Salesforce Payload":{"main":[[{"node":"Salesforce: Add Products","type":"main","index":0}]]},"NS: Inventory Item - Get record":{"main":[[{"node":"Prepare Salesforce Payload","type":"main","index":0}]]},"Salesforce: Get Pricebook values":{"main":[[{"node":"Init Offset","type":"main","index":0}]]},"NS: Inventory Item - Get Delta records":{"main":[[]]},"Update Paging Offset and LastExportDate":{"main":[[{"node":"Has More Records?","type":"main","index":0}]]},"Retrieve Paging Offset and LastExportDate":{"main":[[{"node":"NS: Inventory Item - Get list of All records","type":"main","index":0}]]},"NS: Inventory Item - Get list of All records":{"main":[[{"node":"Split Customers Array","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":19,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.code":{"count":5},"n8n-nodes-base.noOp":{"count":1},"n8n-nodes-base.splitOut":{"count":1},"n8n-nodes-base.stickyNote":{"count":5},"n8n-nodes-base.httpRequest":{"count":2},"n8n-nodes-base.scheduleTrigger":{"count":1},"n8n-nodes-netsuite-rest.netSuiteRest":{"count":3}}},"status":"published","readyToDemo":null,"user":{"name":"Entech Solutions","username":"entech","bio":"Based in New York and New Jersey, ENTech Solutions is a digital consultancy specializing in high-velocity .NET and Azure engineering. Since 2006, we’ve applied a \"Build Often, Ship Often\" Agile approach to deliver rapid ROI.\n\nWe bridge traditional enterprise software with modern Agentic AI, integrating autonomous workflows and predictive analytics into core business processes. From OTA-compliant travel tech to scalable cloud apps, we turn complex specs into intelligent solutions.","verified":false,"links":["https://entechsolutions.com/"],"avatar":"https://gravatar.com/avatar/4a2e073c84f3b6b3e9b00585926ae3fe58ac8c00e504891ecb06939b132720fc?r=pg&d=retro&size=200"},"nodes":[{"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":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":1239,"icon":"file:splitOut.svg","name":"n8n-nodes-base.splitOut","codex":{"data":{"alias":["Split","Nested","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitout/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Split Out"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjOUI2REQ1IiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4MCAxNDhjMC02LjYyNy01LjM3My0xMi0xMi0xMkgzMjJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxNDZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMCA5NmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDMyMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDE0NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0wIDk2YzAtNi42MjctNS4zNzMtMTItMTItMTJIMzIyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTQ2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBkPSJNNDM4IDc2YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMydjU2YzAgMjYuOTc4LTEwLjI3MiA1MS41NTctMjcuMTE5IDcwLjAzOS01LjA1NSA1LjU0NS01LjA1NSAxNC4zNzcgMCAxOS45MjIgMTYuODQ3IDE4LjQ4MiAyNy4xMTkgNDMuMDYxIDI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMySDQyNmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtNDQuMTgzIDAtODAtMzUuODE3LTgwLTgwdi01NmMwLTMwLjkyOC0yNS4wNzItNTYtNTYtNTZhNS43ODMgNS43ODMgMCAwIDEtNS43ODMtNS43ODN2LTM2LjQzNGE1Ljc4MyA1Ljc4MyAwIDAgMSA1Ljc4My01Ljc4M2MzMC45MjggMCA1Ni0yNS4wNzIgNTYtNTZ2LTU2YzAtNDQuMTgzIDM1LjgxNy04MCA4MC04MEg0MjZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzYgMjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik01MTIgMEgwdjUxMmg1MTJ6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+"},"displayName":"Split Out","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":39,"name":"CRM"}],"image":[]}}