{"workflow":{"id":13303,"name":"Generate product and marketing images using Riverflow 2.0 on Replicate","views":44,"recentViews":0,"totalViews":44,"createdAt":"2026-02-11T11:55:55.142Z","description":"## How it works\nThis workflow is designed to take user inputs in order to generate an image using the **[Riverflow 2.0](http://www.riverflow.ai/)** model through the **Replicate API**. It can handle both image generation as well as image editing. Additionally, for specific text modifications, the source text and font can be provided to help guide the model. Here is a high-level overview of how this workflow operates:\n\n1. An **initial input form** acts as the trigger for this workflow. It takes in all the parameters required by Riverflow 2.0, including:\n   - Model\n   - Font URLs + Texts\n   - Resolution\n   - Initial Image\n   - Instruction (Required)\n   - Aspect Ratio\n   - Transparency\n   - Enhance Prompt\n   - Max Iterations\n   - Safety Checker\n   - Super Resolution References\n   - Number of Outputs\n2. These inputs are then **sanitized** using a script and passed into a sub-workflow that handles the HTTP requests.\n3. **Sub-Workflow**: This workflow takes all the given parameters and makes a **POST request** to start the Riverflow 2.0 generation, followed by a looped **GET request** to check once the status is complete. The outputs are then stored in a **data table**, which is very important.  \n   - This is done in a sub-workflow so that images can be generated in parallel when multiple outputs are required.  \n   - **The data table allows communication between the parent workflow and the parallel-running sub-workflows.**\n4. In the parent workflow, we poll the data table to check if outputs from the sub-workflow have been generated. This is done using a loop and querying the data table to see if the outputs have been inserted.\n5. Once we have the outputs (as URLs), the raw image is also provided so that the image can be viewed or downloaded directly from the workflow (the URLs are also given if they need to be used).\n\n## Setup\n- This workflow requires a **Replicate API key**, which can be obtained from [https://replicate.com/](https://replicate.com/).  \n- Additionally, a **n8n data table** is needed to store outputs from parallel processes.\n\n## Ideal for\n- **E-commerce Brands**: Riverflow 2.0 is heavily used for product and packaging designs and images and was developed by [Sourceful](https://sourceful.com/). Using this workflow will help brands create images for e-commerce purposes.\n- **Marketers**: Teams can generate multiple creative variations in parallel for paid ads, social media, email campaigns, and A/B testing. Instead of manually editing assets, marketers can automate background changes, color variations, and creative iterations to rapidly test and scale winning campaigns.\n- **Design and Creative Teams**: Creative teams can use this workflow to quickly prototype visual concepts, enhance product renders, upscale images, and generate multiple design directions in minutes. It reduces repetitive production work and allows designers to focus on higher-level creative decisions.\n\n## Customization\n- **Connect to External Systems**: Outputs from this workflow can be passed to an external database or system such as Shopify or Google Drive.\n- **Post-processing Automation**: This workflow can be extended into a larger image automation pipeline. Generated assets can automatically undergo resizing, background removal, format conversion, watermarking, compression optimization, or thumbnail generation, ensuring images are production-ready without manual intervention.\n- **Ad Monitoring and Reports**: Generated images can feed directly into marketing workflows (e.g., paid ads or social campaigns). Performance metrics such as CPM, CTR, and conversion rate can be tracked and logged, enabling teams to measure creative effectiveness and iterate on prompts or variations based on real performance data.\n\nMore Infomation about Riverflow 2.0: [www.riverflow.ai](http://www.riverflow.ai/)","workflow":{"id":"rlTUWIR7CUgFnvJHfQ4lr","meta":{"instanceId":"e695a1a3f2b6554403b78268aada6e67407e2eb4029b858e0be54971cec9ea11"},"name":"Image Generation using Riverflow 2.0","tags":[],"nodes":[{"id":"675c3116-a387-435a-8c87-d9094e1ceac1","name":"On form submission","type":"n8n-nodes-base.formTrigger","position":[16,32],"webhookId":"0a8ed04c-d16d-4348-b60c-3df5a4320f0b","parameters":{"options":{},"formTitle":"Input data for Riverflow 2.0 Image Generation","formFields":{"values":[{"fieldType":"dropdown","fieldLabel":"Model","fieldOptions":{"values":[{"option":"pro"},{"option":"fast"}]}},{"fieldLabel":"Font Urls"},{"fieldLabel":"Font Texts"},{"fieldType":"dropdown","fieldLabel":"Resolution","defaultValue":"1K","fieldOptions":{"values":[{"option":"1K"},{"option":"2K"}]}},{"fieldLabel":"Init Images"},{"fieldType":"textarea","fieldLabel":"Instruction","requiredField":true},{"fieldType":"dropdown","fieldLabel":"Aspect Ratio","defaultValue":"auto","fieldOptions":{"values":[{"option":"auto"},{"option":"1:1"},{"option":"4:3"},{"option":"3:4"},{"option":"16:9"},{"option":"9:16"},{"option":"3:2"},{"option":"2:3"},{"option":"7:3"},{"option":"4:5"},{"option":"5:4"}]}},{"fieldType":"checkbox","fieldLabel":"Transparency","fieldOptions":{"values":[{"option":"true"}]}},{"fieldType":"checkbox","fieldLabel":"Enhance Prompt","fieldOptions":{"values":[{"option":"true"}]}},{"fieldType":"number","fieldLabel":"Max Iterations","defaultValue":"1"},{"fieldType":"checkbox","fieldLabel":"Safety Checker","defaultValue":"true","fieldOptions":{"values":[{"option":"true"}]}},{"fieldLabel":"Super Resolution Refs"},{"fieldType":"number","fieldLabel":"Number of Outputs","defaultValue":"1"}]},"formDescription":"Select model and parameters. (for any field with multiple values, separate using commas)"},"typeVersion":2.5},{"id":"67762d6f-c9d5-4509-aee7-b213cd272558","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-592,-64],"parameters":{"width":544,"height":432,"content":"## Image Generation using Riverflow 2.0\n\n### How it works\n- **Input Form**  takes in the necessary data to be used for the image editing/prediction such the initial image, font url & text for any text to edit/modify (Riverflow 2.0 fast), instruction (required), and other parameters such as enhance prompt, etc.\n- **Sanitises the inputs** to ensure that the correct and valid json payload can be given to the Replicate API\n- **POST request** is made to generate the image along with a loop to see if the **GET request** gives a valid response.\n- Result then returned as a **URL + raw image output**.\n- **Sub-workflow** is used to allow for parallel processing where multiple output images are required.\n### How to setup\n- Add **Replicate API key** (https://replicate.com/)\n- Create a **Data Table** to store data for communication between parent and Sub-Workflow"},"typeVersion":1},{"id":"2860e54e-bf3a-48f7-8074-e18c053cc38f","name":"Parse inputs given from form","type":"n8n-nodes-base.code","position":[224,32],"parameters":{"jsCode":"// Get input items from n8n\nconst items = $input.all();\nconst crypto = require('crypto');\n\n// Fields that should be treated as booleans\nconst booleanFields = [\"transparency\", \"enhance_prompt\", \"safety_checker\"];\n\n// Fields that should always be arrays\nconst arrayFields = [\"init_images\", \"font_urls\", \"font_texts\",\"super_resolution_refs\"];\nconst removeFields = [\"formmode\"]\n// Function to normalize field names: lowercase + underscores\nfunction normalizeFieldName(name) {\n  return name.toLowerCase().replace(/\\s+/g, \"_\");\n}\nconst outputItems = [];\nconst processId = crypto.randomUUID();\n// Process each item\nitems.forEach(item => {\n  const newJson = {};\n  let init_limit = 4;\n  let url = \"https://api.replicate.com/v1/models/sourceful/riverflow-2.0-fast/predictions\"\n  if (\n      typeof item.json.Model === \"string\" && item.json.Model === \"pro\"\n    ) {\n      url = \"https://api.replicate.com/v1/models/sourceful/riverflow-2.0-pro/predictions\"\n      init_limit = 10;\n    }\n  for (let key in item.json) {\n    let value = item.json[key];\n    const newKey = normalizeFieldName(key);\n    if (removeFields.includes(newKey)) continue;\n    // Validate max_iterations\n    if (newKey === \"max_iterations\") {\n      if (value > 3) {\n        throw new Error(`max_iterations cannot be greater than 3 (found ${value})`);\n      }\n    }\n    if (newKey == \"number_of_outputs\"){\n      if (value >4){\n        throw new Error(`number of outputs cannot be greater than 4 (found ${value})`);\n      }\n    }\n\n    // Convert comma-separated strings to arrays\n    if (arrayFields.includes(newKey)) {\n      if (typeof value === \"string\") {\n        // Split by commas if any, remove empty strings, always make it an array\n        value = value.split(\",\").map(s => s.trim()).filter(s => s.length > 0);\n      }\n      // Ensure single strings or empty values are also arrays\n      if (!Array.isArray(value)) {\n        value = value ? [value] : [];\n      }\n\n      // For font_urls, enforce max 2\n      if (newKey === \"font_urls\" && value.length > 2) {\n        throw new Error(`font_urls cannot have more than 2 entries (found ${value.length})`);\n      }\n      if(newKey == \"init_images\" && value.length > init_limit){\n        throw new Error(`init_images cannot have more than ${init_limit} entries (found ${value.length})`);\n      }\n      if(newKey == \"super_resolution_refs\"&& value.length > 4){\n        throw new Error(`super resolution refs cannot be more than 4 (found ${value.length})`);\n      }\n    }\n\n    // Convert n8n boolean array-style to actual booleans\n    if (booleanFields.includes(newKey)) {\n      if (Array.isArray(value) && value.length === 1 && value[0].toLowerCase() === \"true\") {\n        value = true;\n      } else {\n        value = false;\n      }\n    }\n\n    // Assign normalized key/value\n    newJson[newKey] = value;\n    \n  }\n  newJson.url = url;\n  newJson.processID = processId;\n  const count = Number(newJson.number_of_outputs || 1);\n\n  for (let i = 0; i < count; i++) {\n    outputItems.push({\n      json: JSON.parse(JSON.stringify(newJson))\n    });\n  }\n  // Replace item.json with normalized version\n  item.json = newJson;\n});\n\n// Return the modified input (compatible with n8n)\nreturn outputItems;\n"},"typeVersion":2},{"id":"d8c9758a-06a2-4f2a-b872-1bd81d7c5c4c","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-32,-16],"parameters":{"color":7,"width":416,"height":224,"content":"### Receiving and handling input"},"typeVersion":1},{"id":"73e222fb-5edd-4de4-ae69-e6485364acdf","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-576,432],"parameters":{"color":5,"height":320,"content":"### Initial Image\n\"make the text on the shampoo bottle say *Riverflow*\"\n![](https://replicate.delivery/pbxt/OVIMHUHWeaGC1B833lZPDdnTbFpVOuixPbT9Gn4WvEPo7xrh/shampoo-bottle-left.webp)"},"typeVersion":1},{"id":"9967ec29-1ed0-481b-bb05-f82bacae1304","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[-576,768],"parameters":{"color":5,"height":272,"content":"### Output Image\n![](https://replicate.delivery/xezq/7hxGQNvBZHbtE1LJ5gui24oQWxxS0VT05VfbByhf0ynuOuCWA/tmp6e9pxgkv.webp)"},"typeVersion":1},{"id":"571ab2a9-81d0-41b7-b67c-defba0b1ccc8","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[-592,384],"parameters":{"color":4,"width":544,"height":672,"content":"## Examples\n"},"typeVersion":1},{"id":"04dc45a6-ffdf-4f36-afc5-419f3b1c5394","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[-304,432],"parameters":{"color":5,"height":368,"content":"### Initial Image\n\"Create a landing page mockup for my product\"\n![](https://replicate.delivery/pbxt/OW2cwcgcKYI8R7XRYeNu3wNynKd3lxGDK9xaIMUKxQp5DoSr/Replicate%20x%20Sourceful.png)"},"typeVersion":1},{"id":"a545e4d2-52e3-429a-8a5d-1b97505e3457","name":"Sticky Note9","type":"n8n-nodes-base.stickyNote","position":[-304,816],"parameters":{"color":5,"height":224,"content":"### Output Image\n![](https://replicate.delivery/xezq/jO4We5vFXx1NMC7HUPEmU1JSmpK9C6zNehZ0zH0cdcgvjaDWA/tmpz9f0kmsf.webp)"},"typeVersion":1},{"id":"156d2840-d1af-4ac5-a8d9-7aa5034179bf","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[416,-96],"parameters":{"color":5,"width":368,"height":320,"content":"### Sub-Flow\nRuns another work-flow which contains nodes to:\n- send POST request to Replicate \n- do a GET request to check for errors and status. \n- If no errors, the output url is returned."},"typeVersion":1},{"id":"6898f33e-69d2-46bb-ba50-61c34a78170b","name":"Call 'POST + GET requests sub-workflow'","type":"n8n-nodes-base.executeWorkflow","position":[544,32],"parameters":{"mode":"each","options":{"waitForSubWorkflow":false},"workflowId":{"__rl":true,"mode":"list","value":"s5aseRc6thQFXxv4","cachedResultUrl":"/workflow/s5aseRc6thQFXxv4","cachedResultName":"HTTPs Requests for Riverflow 2.0 Image Generation"},"workflowInputs":{"value":{"url":"={{ $json.url }}","process_id":"={{ $json.processID }}","transparency":"={{ $json.transparency }}","enhance_prompt":"={{ $json.enhance_prompt }}","max_iterations":"={{ $json.max_iterations }}","safety_checker":"={{ $json.safety_checker }}","font_urls_toJsonString":"={{ $json.font_urls }}","font_texts_toJsonString":"={{ $json.font_texts }}","resolution_toJsonString":"={{ $json.resolution }}","init_images_toJsonString":"={{ $json.init_images }}","instruction_toJsonString":"={{ $json.instruction }}","aspect_ratio_toJsonString":"={{ $json.aspect_ratio }}","super_resolution_refs_toJsonString":"={{ $json.super_resolution_refs }}"},"schema":[{"id":"url","display":true,"removed":false,"required":false,"displayName":"url","defaultMatch":false,"canBeUsedToMatch":true},{"id":"super_resolution_refs_toJsonString","display":true,"removed":false,"required":false,"displayName":"super_resolution_refs_toJsonString","defaultMatch":false,"canBeUsedToMatch":true},{"id":"aspect_ratio_toJsonString","display":true,"removed":false,"required":false,"displayName":"aspect_ratio_toJsonString","defaultMatch":false,"canBeUsedToMatch":true},{"id":"init_images_toJsonString","display":true,"removed":false,"required":false,"displayName":"init_images_toJsonString","defaultMatch":false,"canBeUsedToMatch":true},{"id":"instruction_toJsonString","display":true,"removed":false,"required":false,"displayName":"instruction_toJsonString","defaultMatch":false,"canBeUsedToMatch":true},{"id":"font_texts_toJsonString","display":true,"removed":false,"required":false,"displayName":"font_texts_toJsonString","defaultMatch":false,"canBeUsedToMatch":true},{"id":"resolution_toJsonString","display":true,"removed":false,"required":false,"displayName":"resolution_toJsonString","defaultMatch":false,"canBeUsedToMatch":true},{"id":"font_urls_toJsonString","display":true,"removed":false,"required":false,"displayName":"font_urls_toJsonString","defaultMatch":false,"canBeUsedToMatch":true},{"id":"enhance_prompt","display":true,"removed":false,"required":false,"displayName":"enhance_prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"max_iterations","display":true,"removed":false,"required":false,"displayName":"max_iterations","defaultMatch":false,"canBeUsedToMatch":true},{"id":"safety_checker","display":true,"removed":false,"required":false,"displayName":"safety_checker","defaultMatch":false,"canBeUsedToMatch":true},{"id":"transparency","display":true,"removed":false,"required":false,"displayName":"transparency","defaultMatch":false,"canBeUsedToMatch":true},{"id":"process_id","display":true,"removed":false,"required":false,"displayName":"process_id","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":true}},"typeVersion":1.3},{"id":"b3666735-5c7f-40bb-821d-a09888eb0e31","name":"Wait","type":"n8n-nodes-base.wait","position":[1360,32],"webhookId":"b5091256-06dd-463d-b07c-50faa51c42bc","parameters":{"amount":10},"typeVersion":1.1},{"id":"05231dae-c49c-43b4-b793-37f44513540d","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[944,-32],"parameters":{"color":7,"width":944,"height":256,"content":"### Polling process id till all complete"},"typeVersion":1},{"id":"5036a475-94cb-4d77-8f84-6a5878915eda","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[1920,0],"parameters":{"color":7,"width":288,"height":192,"content":"### Outputing Images"},"typeVersion":1},{"id":"fa5fe18c-5dc0-4ab2-9a2b-b65c20177270","name":"Sticky Note10","type":"n8n-nodes-base.stickyNote","position":[960,256],"parameters":{"color":6,"width":288,"height":144,"content":"### Data Table\nData table used as a way to **communicate between the sub-workflows and the parent workflow** so that we can keep track of if they are complete or not."},"typeVersion":1},{"id":"4e66c4f7-00ed-450c-9a44-d2b2019930e6","name":"Isolate 1 process id","type":"n8n-nodes-base.code","position":[816,32],"parameters":{"jsCode":"const items = $input.all();\n\nif (items.length === 0) {\n  return [];\n}\n\nreturn [\n  {\n    json: items[0].json\n  }\n];\n"},"typeVersion":2},{"id":"51940d73-65fb-43ec-85d4-59583c795941","name":"Isolate 1 process id1","type":"n8n-nodes-base.code","position":[1184,32],"parameters":{"jsCode":"const items = $input.all();\n\nif (items.length === 0) {\n  return [];\n}\n\n// Return only the first item\nreturn [items[0]];\n"},"typeVersion":2},{"id":"0ad01966-9314-449b-8517-e81de1d233dc","name":"Insert empty process id","type":"n8n-nodes-base.dataTable","position":[992,32],"parameters":{"columns":{"value":{"process":"={{ $input.first().json.process_id }}","processcount":"={{ $input.first().json.number_of_outputs }}"},"schema":[{"id":"process","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"process","defaultMatch":false},{"id":"time","type":"dateTime","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"time","defaultMatch":false},{"id":"status","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"status","defaultMatch":false},{"id":"output","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"output","defaultMatch":false},{"id":"processcount","type":"number","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"processcount","defaultMatch":false}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"dataTableId":{"__rl":true,"mode":"list","value":"SdzSGfEAOeEmquQm","cachedResultUrl":"/projects/hsGHyIoVWZxfZQOB/datatables/SdzSGfEAOeEmquQm","cachedResultName":"Processes"}},"typeVersion":1.1},{"id":"7d9ab06f-d854-4ca5-882f-f90186962e2a","name":"If number of processes is correct","type":"n8n-nodes-base.if","position":[1728,32],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"60b23133-5537-4a00-b33a-9c801b21a3c4","operator":{"type":"number","operation":"notEquals"},"leftValue":"={{ $input.all().length }}","rightValue":"={{$input.first().json.processcount +1}}"}]}},"typeVersion":2.3,"alwaysOutputData":false},{"id":"b459d9da-7d42-4ac0-a70b-d5ee44880f96","name":"Output Filtering","type":"n8n-nodes-base.code","position":[1936,48],"parameters":{"jsCode":"const items = $input.all();\n\nconst outputUrls = [];\n\nfor (const item of items) {\n  const output = item.json.output;\n\n  if (typeof output === \"string\" && output.length > 0) {\n    outputUrls.push(output);\n  }\n}\n\n// Remove duplicates\nconst uniqueOutputs = [...new Set(outputUrls)];\n\n\nreturn uniqueOutputs.map(url => ({\n  json: { url }\n}));\n"},"typeVersion":2},{"id":"6562e051-4d46-4754-b69a-4eedf57b304a","name":"Get how many processes done","type":"n8n-nodes-base.dataTable","position":[1536,32],"parameters":{"filters":{"conditions":[{"keyName":"process","keyValue":"={{ $input.first().json.process }}"}]},"operation":"get","dataTableId":{"__rl":true,"mode":"list","value":"SdzSGfEAOeEmquQm","cachedResultUrl":"/projects/hsGHyIoVWZxfZQOB/datatables/SdzSGfEAOeEmquQm","cachedResultName":"Processes"}},"notesInFlow":false,"typeVersion":1.1,"alwaysOutputData":false},{"id":"58c78e91-3ed6-48ce-b514-ff8a0a5ce0ed","name":"Get image/s","type":"n8n-nodes-base.httpRequest","position":[2080,48],"parameters":{"url":"={{ $json.url }}","options":{}},"typeVersion":4.4},{"id":"580e6124-5950-4e49-b30e-f04852db4fd3","name":"Return output image url","type":"n8n-nodes-base.set","position":[1280,592],"parameters":{"options":{},"assignments":{"assignments":[{"id":"19919cf8-e9a8-4a8d-be24-1db61cd4f4a1","name":"output","type":"array","value":"={{ $json.output }}"},{"id":"24390454-2d86-4031-a53d-2ff390b0e984","name":"time","type":"string","value":"={{ $json.created_at }}"},{"id":"a96b76af-5c10-41c9-a535-8883abf60436","name":"status","type":"string","value":"={{ $json.status }}"}]}},"typeVersion":3.4},{"id":"215c3bd8-c541-4a5a-8ff9-613752aeceee","name":"GET Request for Riverflow Predictions","type":"n8n-nodes-base.httpRequest","position":[848,576],"parameters":{"url":"={{ $json.urls.get }}","options":{"timeout":6000},"authentication":"predefinedCredentialType","nodeCredentialType":"httpBearerAuth"},"credentials":{"httpBearerAuth":{"id":"I5ktDgorsnBMeMTp","name":"Replicate API key"}},"typeVersion":4.4},{"id":"2b972b30-0630-48c5-82f9-ad1c51b90809","name":"Check if output is present","type":"n8n-nodes-base.if","position":[1056,576],"parameters":{"options":{"ignoreCase":false},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"or","conditions":[{"id":"f2b52cb5-6f4d-4a18-8acc-2ad50a9822d8","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"=processing"}]}},"typeVersion":2.3},{"id":"b67dab2e-bce1-4e3f-916a-259c1fcf51a0","name":"POST request to Replicate API","type":"n8n-nodes-base.httpRequest","position":[432,576],"parameters":{"url":"={{ $json.url }}","method":"POST","options":{},"jsonBody":"={\n    \"input\": {\n      \"font_urls\": {{ $json.font_urls_toJsonString.toJsonString() }},\n      \"font_texts\": {{ $json.font_texts_toJsonString.toJsonString() }},\n      \"resolution\": {{ $json.resolution_toJsonString.toJsonString() }},\n      \"init_images\": {{ $json.init_images_toJsonString.toJsonString() }},\n      \"instruction\": {{ $json.instruction_toJsonString.toJsonString() }},\n      \"aspect_ratio\": {{ $json.aspect_ratio_toJsonString.toJsonString() }},\n      \"transparency\": {{ $json.transparency }},\n      \"enhance_prompt\": {{ $json.enhance_prompt }},\n      \"max_iterations\": {{ $json.max_iterations }},\n      \"safety_checker\": {{ $json.safety_checker }},\n      \"super_resolution_refs\": {{ $json.super_resolution_refs_toJsonString.toJsonString() }}\n    }\n  }","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"predefinedCredentialType","headerParameters":{"parameters":[{"name":"Prefer","value":"wait"}]},"nodeCredentialType":"httpBearerAuth"},"credentials":{"httpBearerAuth":{"id":"I5ktDgorsnBMeMTp","name":"Replicate API key"}},"notesInFlow":false,"typeVersion":4.4},{"id":"36fae70b-0f88-457c-bc84-b21334a85f4d","name":"Start","type":"n8n-nodes-base.executeWorkflowTrigger","position":[176,752],"parameters":{"workflowInputs":{"values":[{"name":"url","type":"any"},{"name":"super_resolution_refs_toJsonString","type":"any"},{"name":"aspect_ratio_toJsonString","type":"any"},{"name":"init_images_toJsonString","type":"any"},{"name":"instruction_toJsonString","type":"any"},{"name":"font_texts_toJsonString","type":"any"},{"name":"resolution_toJsonString","type":"any"},{"name":"font_urls_toJsonString","type":"any"},{"name":"enhance_prompt","type":"any"},{"name":"max_iterations","type":"any"},{"name":"safety_checker","type":"any"},{"name":"transparency","type":"any"},{"name":"process_id","type":"any"}]}},"typeVersion":1.1},{"id":"9ecf34f8-09a4-4712-bedd-2b893c51ae98","name":"Merge","type":"n8n-nodes-base.merge","position":[480,880],"parameters":{},"typeVersion":3.2},{"id":"48db880a-d972-4565-a237-16fd627efa58","name":"Code in JavaScript","type":"n8n-nodes-base.code","position":[656,880],"parameters":{"jsCode":"const items = $input.all();\n\n// Extract process_id from any item that has it\nconst processId =\n  items.find(i => i.json.process_id)?.json.process_id ?? null;\n\n// Keep only items that are actual Replicate results\nconst resultItems = items.filter(\n  item => Array.isArray(item.json.output)\n);\n\n// Build clean output\nreturn resultItems.map(item => ({\n  json: {\n    process_id: processId,\n    status: item.json.status,\n    time: item.json.time,\n    output_url: item.json.output[0] // Replicate returns array\n  }\n}));\n"},"typeVersion":2},{"id":"fd0911d7-b9c2-46cd-a9a1-2e27ea2575a7","name":"Insert row","type":"n8n-nodes-base.dataTable","position":[864,880],"parameters":{"columns":{"value":{"time":"={{ $json.time }}","output":"={{ $json.output_url }}","status":"={{ $json.status }}","process":"={{ $json.process_id }}"},"schema":[{"id":"process","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"process","defaultMatch":false},{"id":"time","type":"dateTime","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"time","defaultMatch":false},{"id":"status","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"status","defaultMatch":false},{"id":"output","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"output","defaultMatch":false}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"dataTableId":{"__rl":true,"mode":"list","value":"SdzSGfEAOeEmquQm","cachedResultUrl":"/projects/hsGHyIoVWZxfZQOB/datatables/SdzSGfEAOeEmquQm","cachedResultName":"Processes"}},"typeVersion":1.1},{"id":"ce07d74b-589f-46c5-bf3f-d1cd9e5aedb8","name":"Wait1","type":"n8n-nodes-base.wait","position":[640,576],"webhookId":"1a1af407-8d4f-42a8-afe9-9455f92a44b6","parameters":{"amount":2},"typeVersion":1.1},{"id":"113d7671-0501-4dfc-b327-f09acba2a1f3","name":"Sticky Note11","type":"n8n-nodes-base.stickyNote","position":[576,528],"parameters":{"color":7,"width":640,"height":240,"content":"### Loop to check get request till status is no longer processing"},"typeVersion":1},{"id":"b4526246-34c4-4ea4-83c9-91c85a0705ef","name":"Sticky Note12","type":"n8n-nodes-base.stickyNote","position":[400,528],"parameters":{"color":3,"width":160,"height":208,"content":"### Riverflow 2.0 call "},"typeVersion":1},{"id":"256df2c9-5ab8-42c7-90bb-b9ea53d5500a","name":"Sticky Note13","type":"n8n-nodes-base.stickyNote","position":[464,816],"parameters":{"color":7,"width":320,"height":224,"content":"### Gather parameters needed to add to data table"},"typeVersion":1},{"id":"aae84a07-c67a-446a-9a6c-84e06432a4e9","name":"Sticky Note14","type":"n8n-nodes-base.stickyNote","position":[816,816],"parameters":{"color":7,"width":198,"height":224,"content":"### Insert into data table for parent workflow"},"typeVersion":1},{"id":"b9c97657-07cd-4166-9b8c-6c5dd2cc78b1","name":"Sticky Note15","type":"n8n-nodes-base.stickyNote","position":[144,464],"parameters":{"color":5,"width":1312,"height":592,"content":"## Sub-Workflow: HTTPs Requests for RIverflow 2.0 through Replicate"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","availableInMCP":false,"executionOrder":"v1"},"versionId":"970aa2b8-fa89-46fa-a823-1d202592cfda","connections":{"Wait":{"main":[[{"node":"Get how many processes done","type":"main","index":0}]]},"Merge":{"main":[[{"node":"Code in JavaScript","type":"main","index":0}]]},"Start":{"main":[[{"node":"POST request to Replicate API","type":"main","index":0},{"node":"Merge","type":"main","index":0}]]},"Wait1":{"main":[[{"node":"GET Request for Riverflow Predictions","type":"main","index":0}]]},"Output Filtering":{"main":[[{"node":"Get image/s","type":"main","index":0}]]},"Code in JavaScript":{"main":[[{"node":"Insert row","type":"main","index":0}]]},"On form submission":{"main":[[{"node":"Parse inputs given from form","type":"main","index":0}]]},"Isolate 1 process id":{"main":[[{"node":"Insert empty process id","type":"main","index":0}]]},"Isolate 1 process id1":{"main":[[{"node":"Wait","type":"main","index":0}]]},"Insert empty process id":{"main":[[{"node":"Isolate 1 process id1","type":"main","index":0}]]},"Return output image url":{"main":[[{"node":"Merge","type":"main","index":1}]]},"Check if output is present":{"main":[[{"node":"Wait1","type":"main","index":0}],[{"node":"Return output image url","type":"main","index":0}]]},"Get how many processes done":{"main":[[{"node":"If number of processes is correct","type":"main","index":0}]]},"Parse inputs given from form":{"main":[[{"node":"Call 'POST + GET requests sub-workflow'","type":"main","index":0}]]},"POST request to Replicate API":{"main":[[{"node":"Wait1","type":"main","index":0}]]},"If number of processes is correct":{"main":[[{"node":"Isolate 1 process id1","type":"main","index":0}],[{"node":"Output Filtering","type":"main","index":0}]]},"GET Request for Riverflow Predictions":{"main":[[{"node":"Check if output is present","type":"main","index":0}]]},"Call 'POST + GET requests sub-workflow'":{"main":[[{"node":"Isolate 1 process id","type":"main","index":0}]]}}},"lastUpdatedBy":29,"workflowInfo":{"nodeCount":36,"nodeTypes":{"n8n-nodes-base.if":{"count":2},"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":5},"n8n-nodes-base.wait":{"count":2},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.dataTable":{"count":3},"n8n-nodes-base.stickyNote":{"count":16},"n8n-nodes-base.formTrigger":{"count":1},"n8n-nodes-base.httpRequest":{"count":3},"n8n-nodes-base.executeWorkflow":{"count":1},"n8n-nodes-base.executeWorkflowTrigger":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Joel Sage","username":"joelsagesourceful","bio":"","verified":false,"links":[],"avatar":"https://gravatar.com/avatar/be4d2c489d5e0fd1c197dfdba5ec7a58488f1d65875beb72aae32072b6c959ad?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":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using 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"},{"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/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.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"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/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting 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/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/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/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/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/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"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/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/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.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":111,"icon":"fa:sign-in-alt","name":"n8n-nodes-base.executeWorkflow","codex":{"data":{"alias":["n8n","call","sub","workflow","sub-workflow","subworkflow"],"details":"The Execute Workflow node can be used when you want your workflow to treat another workflow as a step in your flow. It allows you to modularize your workflows and have a single source of truth for series of actions you perform often. ","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflow/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Execute Workflow","color":"#ff6d5a"},"iconData":{"icon":"sign-in-alt","type":"icon"},"displayName":"Execute Sub-workflow","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":837,"icon":"fa:sign-out-alt","name":"n8n-nodes-base.executeWorkflowTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"When Executed by Another Workflow","color":"#ff6d5a"},"iconData":{"icon":"sign-out-alt","type":"icon"},"displayName":"Execute Workflow Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1225,"icon":"file:form.svg","name":"n8n-nodes-base.formTrigger","codex":{"data":{"alias":["table","submit","post"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Other Trigger Nodes"]}}},"group":"[\"trigger\"]","defaults":{"name":"On form submission"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwQjdCQyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzQuOTc4IDM3LjczMmExLjU2IDEuNTYgMCAwIDEtMS41NjIgMS41NjNINi4yNmExLjU2IDEuNTYgMCAwIDEtMS41NjMtMS41NjNWOS42MDdjMC0uNDA1LjE1Ny0uNzk0LjQzOC0xLjA4Nmw2LjMwNC02LjUzMXY1LjM0NEg4LjIxM2ExLjE3MiAxLjE3MiAwIDEgMCAwIDIuMzQzaDQuNDNhMS4xNyAxLjE3IDAgMCAwIDEuMTcxLTEuMTcxVi4yMzJoMTkuNjAyYTEuNTYgMS41NiAwIDAgMSAxLjU2MiAxLjU2M3YxMC4zMjdsLTIuODYgMi44Ni04LjI1MiA4LjI3NmE0MTMuMDA2IDQxMy4wMDYgMCAwIDEtMS42NTQgMS42NjJsLS4zMzcuMzM3YTIgMiAwIDAgMC0uNTU3IDEuMDhMMjAuMyAzMS45MjJjLS4xMDguNjM4LS4yMTUgMS4wNzkuMjExIDEuNDE4LjQwMy4zMi45LjE3NCAxLjU0LjA2Nmw1LjQwOC0uOTI4YTIgMiAwIDAgMCAxLjA4LS41NTZsNi40NC02LjQyOXptLTI0LjAzLTIxLjI2NWExLjE4IDEuMTggMCAwIDAgMS4xNzEgMS4xNzJoMTMuMTYzYTEuMTcyIDEuMTcyIDAgMSAwIDAtMi4zNDRIMTIuMTE5YTEuMTcgMS4xNyAwIDAgMC0xLjE3MiAxLjE3Mm03LjI5NCAxNC43NjZhMS4xNyAxLjE3IDAgMCAwLTEuMTcyLTEuMTcySDEyLjEyYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNC45NTFhMS4xNyAxLjE3IDAgMCAwIDEuMTcyLTEuMTcybS44Ni03LjM5MWExLjE3IDEuMTcgMCAwIDAtMS4xNzItMS4xNzJoLTUuODExYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNS44MWExLjE2NCAxLjE2NCAwIDAgMCAxLjE3My0xLjE3MSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwQjdCQyIgZD0ibTMzLjUzMiAxNi4zOTcgNC4yODktNC4yODkgMy43NTggMy43MSAxLjYxNy0xLjYxNiAyLjI1OCAyLjI1N2MuMjE4LjIxOC4zNC41MTMuMzQzLjgyLS4wMDIuMzExLS4xMjUuNjA4LS4zNDQuODNsLTYuODA0IDYuNzk2YTEuMTMgMS4xMyAwIDAgMS0uODI4LjM0MyAxLjE1IDEuMTUgMCAwIDEtLjgyOC0uMzQzIDEuMTggMS4xOCAwIDAgMSAwLTEuNjU3bDUuOTc2LTUuOTY4LTEuMzEyLTEuMzEzLTEuMzgzIDEuNDE0LTEzLjE0OSAxMy4xMjUtNC42MTcuNzgyLjc4Mi00LjYxNy4zMzYtLjMzNyAyLjU2MiAyLjU1NWExLjEgMS4xIDAgMCAwIC44MjguMzQ0Yy4zMTIuMDA1LjYxMi0uMTIuODI4LS4zNDRhMS4xOCAxLjE4IDAgMCAwIDAtMS42NTZsLTIuNTYyLTIuNTYyek00NC43MzYgMTIuMjRjMCAuNDE0LS4xNjMuODEtLjQ1NCAxLjEwMmwtLjkyMi45MTQtMy44NTItMy44MjguOTMtLjkzYTEuNTYzIDEuNTYzIDAgMCAxIDIuMjAzIDBsMS42NCAxLjY0MWMuMjkxLjI5My40NTUuNjkuNDU1IDEuMTAyIi8+PC9zdmc+"},"displayName":"n8n Form Trigger","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1315,"icon":"fa:table","name":"n8n-nodes-base.dataTable","codex":{"data":{"alias":["data","table","knowledge","data table","table","sheet","database","data base","mysql","postgres","postgresql","airtable","supabase","noco","notion"],"details":"Data table","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.datatable/"}]},"categories":["Core Nodes","Development"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\",\"transform\"]","defaults":{"name":"Data table"},"iconData":{"icon":"table","type":"icon"},"displayName":"Data table","typeVersion":1,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":31,"name":"Content Creation"},{"id":51,"name":"Multimodal AI"}],"image":[]}}