{"workflow":{"id":13751,"name":"Generate and host AI images on your CDN with Gemini Imagen 3 and Upload to URL","views":37,"recentViews":0,"totalViews":37,"createdAt":"2026-02-27T10:36:55.652Z","description":"# 🎨 AI Image Generation & CDN Hosting Automation with Gemini Imagen 3\n\nStreamline your creative production with this high-performance image generation and hosting pipeline. This workflow automates the transition from raw creative prompts to hosted assets, leveraging Gemini Imagen 3 for photorealistic visual generation and an automated Upload to URL sequence to deploy images directly to your CDN.\n\n---\n\n## 🎯 What This Workflow Does\n\nThis template is designed to handle two high-value commercial creative tasks via a single Webhook endpoint:\n\n### 🌍 Pipeline 1: Localized Marketing Campaigns\nPerfect for global brands, this path takes a master marketing image and recreates it with embedded text accurately translated into a target language. The system preserves your original branding, fonts, and visual hierarchy while ensuring localized messaging is sharp and professional.\n\n### 🛍️ Pipeline 2: High-Fidelity Product Mockups\nGenerate photorealistic e-commerce assets instantly. By providing a product type and color scheme, Imagen 3 creates studio-quality mockups with realistic textures and lighting. This is ideal for visualizing new apparel, packaging, or merchandise without a physical photoshoot.\n\n---\n\n## ✨ Key Features\n\n- **Automated Base64 Processing:** Includes custom logic to decode Gemini's base64 output into n8n binary files (PNG) automatically, removing manual file handling.\n- **Direct CDN Deployment:** Uses the built-in **Upload to URL** node to PUT your generated images directly to a presigned URL, making them instantly available via a public link.\n- **Intelligent Prompt Engineering:** Dedicated code nodes translate simple input parameters (like `jobType` or `targetLanguage`) into detailed, optimized prompts for the highest quality AI output.\n- **Scalable Webhook Architecture:** Centralizes your image generation tasks into a single API endpoint that routes traffic based on your specific business needs.\n\n---\n\n## 💼 Perfect For\n\n- **Digital Agencies:** Rapidly producing localized ad variants for international clients.\n- **E-commerce Store Owners:** Visualizing custom products or \"on-demand\" merchandise.\n- **Social Media Managers:** Creating consistent, high-quality visual content for daily posts.\n- **Product Designers:** Prototyping colorways and branding on various item types.\n\n---\n\n## 🔧 What You'll Need\n\n### Required Integrations\n\n- **Google AI (Gemini) API Key:** Required for access to the Imagen 3.0 model.\n- **CDN/Storage Provider:** Access to a service (like AWS S3 or Google Cloud Storage) that provides presigned PUT URLs for image hosting.\n\n---\n\n## ⚙️ Configuration Steps\n\n1. **API Credentials:** Set up an HTTP Header Auth credential named `Google AI Header Auth` using your key from AI Studio.\n2. **Endpoint Setup:** The template is pre-configured to use the `imagen-3.0-generate-001` predict endpoint.\n3. **URL Mapping:** After import, update the Upload to URL nodes and response nodes with your specific CDN domain and presigned URL logic.\n\n---\n\nReady to automate your creative assets? Import this template and connect your Gemini API key to start generating and hosting professional images in seconds!","workflow":{"meta":{"instanceId":"277842713620d9f5554de3b1518b865a152c8c4db680008bd8aec536fc18b4a8","templateCredsSetupCompleted":true},"nodes":[{"id":"a6a8404f-b2cb-4889-b846-ef9019583595","name":"📋 Flow Overview","type":"n8n-nodes-base.stickyNote","position":[-800,-368],"parameters":{"width":720,"height":556,"content":"## 🖼️ Gemini Imagen 3 – Image Generation → Upload to URL\n\n**How it works:**\n1. Webhook receives a POST request with `jobType`: **localize** or **mockup**\n2. **Route by Job Type** switch sends it down the correct pipeline\n3. A code node crafts the ideal **Gemini Imagen 3 prompt** from the payload\n4. **Gemini Imagen 3** generates the image and returns it as base64\n5. A code node **decodes base64 → n8n binary** (mimeType `image/png`)\n6. The binary is handed to the **n8n Upload to URL node** which PUTs it to your CDN presigned URL\n7. A final code node builds the **JSON response** with the public CDN URL\n\n**Credential needed:**\n`Google AI Header Auth` — HTTP Header Auth\nHeader name: `x-goog-api-key`  ·  Value: `YOUR_GEMINI_API_KEY`\nGet your key at: aistudio.google.com\n\n**Two things to replace after import:**\n- `YOUR_CDN_PRESIGNED_PUT_URL` in both Upload to URL nodes\n- `YOUR_CDN_DOMAIN` in both response code nodes\n\n**Gemini Imagen 3 endpoint:**\n`POST https://generativelanguage.googleapis.com/v1beta/models/imagen-3.0-generate-001:predict`\n\n"},"typeVersion":1},{"id":"dee009cf-b726-43ab-a744-779843852d31","name":"Sticky – Entry & Routing","type":"n8n-nodes-base.stickyNote","position":[-64,320],"parameters":{"color":7,"width":560,"height":668,"content":"### 1️⃣ Webhook Entry & Job Router\n**Webhook – Receive Image Job** accepts a POST at `/gemini-image-job` with `jobType` and generation parameters in the request body.\n**Route by Job Type Switch** reads `$json.body.jobType` and routes:\n- Output 0 `localize` → Localised Marketing Campaign pipeline\n- Output 1 `mockup` → Product Mockup pipeline\n- Fallback → **Respond – Error** node returns a 400 JSON error"},"typeVersion":1},{"id":"8e022129-2430-4209-bed9-9e13de95f776","name":"Sticky – Localize Pipeline","type":"n8n-nodes-base.stickyNote","position":[576,240],"parameters":{"color":7,"width":1504,"height":392,"content":"### 2️⃣ Localised Marketing Campaign\n**Build Localize Prompt** code node constructs the Imagen 3 prompt: recreate the master image with all embedded text accurately translated into `targetLanguage`, preserving original layout, fonts, brand colours and visual hierarchy. Injects `brandName` and `campaignText` from the payload. Also stamps a unique `jobId`.\n**Gemini Imagen 3 – Localize** POSTs to the Imagen 3 predict endpoint with `sampleCount: 1` and `aspectRatio: 1:1`. Returns `predictions[0].bytesBase64Encoded`.\n**Decode Localize Image** code node decodes the base64 string to a Buffer, writes it into the n8n binary store as property `data` with `mimeType: image/png` and filename `localized_{lang}_{jobId}.png`.\n**Upload to URL – Localize** is the **n8n built-in Upload to URL node** — it PUTs the binary to your CDN presigned URL with method PUT.\n**Build Localize Response** code node returns `{ success, jobId, language, publicUrl, generatedAt }`.\n**Respond to Webhook – Localize** sends the JSON back to the caller."},"typeVersion":1},{"id":"639f2425-b883-4a43-a1bd-fe8c03ee8861","name":"Sticky – Mockup Pipeline","type":"n8n-nodes-base.stickyNote","position":[576,672],"parameters":{"color":7,"width":1584,"height":332,"content":"### 3️⃣ High-Fidelity Product Mockup\n**Build Mockup Prompt** code node constructs the Imagen 3 prompt: photorealistic `productType` with the brand logo/pattern applied using `colorScheme`, studio lighting, natural fabric texture, realistic shadows. Stamps a unique `jobId`.\n**Gemini Imagen 3 – Mockup** POSTs to the same Imagen 3 endpoint. Returns the photorealistic product image as base64.\n**Decode Mockup Image** code node decodes base64 → binary, filename `mockup_{product}_{jobId}.png`.\n**Upload to URL – Mockup** is the **n8n built-in Upload to URL node** — PUTs the binary to your CDN presigned URL.\n**Build Mockup Response** code node returns `{ success, jobId, productType, colorScheme, publicUrl, generatedAt }`.\n**Respond to Webhook – Mockup** sends the JSON back to the caller."},"typeVersion":1},{"id":"b9681a8a-149d-4743-9e30-b1b9ac25c29c","name":"Webhook – Receive Image Job","type":"n8n-nodes-base.webhook","position":[-32,608],"webhookId":"8f862cb1-4406-434f-aaa8-f4e95dc60af8","parameters":{"path":"gemini-image-job","options":{},"httpMethod":"POST","responseMode":"responseNode"},"typeVersion":2},{"id":"7bdb63c2-e880-4ffd-8e00-010deec889a5","name":"Route by Job Type","type":"n8n-nodes-base.switch","position":[320,592],"parameters":{"rules":{"values":[{"outputKey":"Localize","conditions":{"options":{"caseSensitive":false,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.body.jobType.toLowerCase() }}","rightValue":"localize"}]},"renameOutput":true},{"outputKey":"Mockup","conditions":{"options":{"caseSensitive":false,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.body.jobType.toLowerCase() }}","rightValue":"mockup"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra"}},"typeVersion":3},{"id":"5ecbbc02-0a8b-46e8-a2a2-ade5fa4f02f2","name":"Respond – Error","type":"n8n-nodes-base.respondToWebhook","position":[320,800],"parameters":{"options":{},"respondWith":"json","responseBody":"={{ JSON.stringify($json) }}"},"typeVersion":1},{"id":"25e9153d-88a4-44c0-ac84-13874e46583b","name":"Build Localize Prompt","type":"n8n-nodes-base.code","position":[624,432],"parameters":{"jsCode":"const b      = $json.body;\nconst lang   = b.targetLanguage || 'Spanish';\nconst brand  = b.brandName      || 'Brand';\nconst text   = b.campaignText   || 'Special Offer';\nconst jobId  = `LOC-${Date.now()}`;\n\nconst prompt = `Recreate this marketing image with all embedded text accurately translated into ${lang}. ` +\n  `Preserve the exact original layout, visual hierarchy, font style and brand colours. ` +\n  `Brand: ${brand}. Translated headline in ${lang}: \"${text}\". ` +\n  `Photorealistic quality, sharp typography, professional marketing aesthetic, 1024x1024.`;\n\nreturn [{ json: { prompt, lang, brand, campaignText: text, jobId,\n                  masterImageUrl: b.masterImageUrl || '' } }];\n"},"typeVersion":2},{"id":"1ed05274-5d9d-488c-ba1c-3d495533d202","name":"Gemini Imagen 3 – Localize","type":"n8n-nodes-base.httpRequest","position":[880,432],"parameters":{"url":"https://generativelanguage.googleapis.com/v1beta/models/imagen-3.0-generate-001:predict","method":"POST","options":{},"sendHeaders":true,"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]}},"credentials":{"httpHeaderAuth":{"id":"GKgCj9WxmYpiz70D","name":"Stripe Header Auth"}},"typeVersion":4.2},{"id":"1a22bb68-eea1-47eb-8ddc-05af39fd9ebf","name":"Decode Localize Image","type":"n8n-nodes-base.code","position":[1152,432],"parameters":{"jsCode":"const pred  = $json.predictions?.[0];\nif (!pred) throw new Error('Imagen 3 returned no prediction');\nconst b64   = pred.bytesBase64Encoded;\nconst mime  = pred.mimeType || 'image/png';\nconst ext   = mime.split('/')[1] || 'png';\nconst prev  = $('Build Localize Prompt').item.json;\nconst fname = `localized_${prev.lang.toLowerCase().replace(/\\s+/g,'_')}_${prev.jobId}.${ext}`;\nconst buf   = Buffer.from(b64, 'base64');\nreturn [{\n  json:   { ...prev, filename: fname, mimeType: mime },\n  binary: { data: { data: b64, mimeType: mime, fileName: fname,\n                    fileSize: buf.length, fileExtension: ext } }\n}];\n"},"typeVersion":2},{"id":"e0281466-27cd-4873-b85e-165c864e41e0","name":"Build Localize Response","type":"n8n-nodes-base.code","position":[1648,432],"parameters":{"jsCode":"const p = $('Build Localize Prompt').item.json;\nreturn [{ json: {\n  success: true, jobId: p.jobId, jobType: 'localize',\n  language: p.lang, brand: p.brand,\n  filename: p.filename,\n  publicUrl: `https://YOUR_CDN_DOMAIN/${p.filename}`,\n  generatedAt: new Date().toISOString()\n}}];\n"},"typeVersion":2},{"id":"cf55d88e-88bc-4c3e-aa11-22017b1cc3f6","name":"Respond to Webhook – Localize","type":"n8n-nodes-base.respondToWebhook","position":[1888,432],"parameters":{"options":{},"respondWith":"json","responseBody":"={{ JSON.stringify($json) }}"},"typeVersion":1},{"id":"71c6deda-bf19-4aff-87bc-be07f734d905","name":"Build Mockup Prompt","type":"n8n-nodes-base.code","position":[624,832],"parameters":{"jsCode":"const b       = $json.body;\nconst product = b.productType      || 't-shirt';\nconst colors  = b.colorScheme      || 'navy and gold';\nconst logo    = b.logoDescription  || 'brand logo';\nconst jobId   = `MKP-${Date.now()}`;\n\nconst prompt = `Photorealistic product mockup of a ${product}. ` +\n  `Apply a ${logo} using ${colors} colour scheme. ` +\n  `Studio background, professional lighting, natural fabric texture, realistic shadows and highlights. ` +\n  `Premium commercial product photo ready for e-commerce. 1024x1024, no text overlays.`;\n\nreturn [{ json: { prompt, product, colors, logo, jobId } }];\n"},"typeVersion":2},{"id":"dddf4923-4fc0-453a-91d0-ad5ae7cd4d3e","name":"Gemini Imagen 3 – Mockup","type":"n8n-nodes-base.httpRequest","position":[880,832],"parameters":{"url":"https://generativelanguage.googleapis.com/v1beta/models/imagen-3.0-generate-001:predict","method":"POST","options":{},"sendHeaders":true,"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]}},"credentials":{"httpHeaderAuth":{"id":"GKgCj9WxmYpiz70D","name":"Stripe Header Auth"}},"typeVersion":4.2},{"id":"93482732-f535-4118-89e6-36f0eaa87603","name":"Decode Mockup Image","type":"n8n-nodes-base.code","position":[1152,832],"parameters":{"jsCode":"const pred  = $json.predictions?.[0];\nif (!pred) throw new Error('Imagen 3 returned no prediction');\nconst b64   = pred.bytesBase64Encoded;\nconst mime  = pred.mimeType || 'image/png';\nconst ext   = mime.split('/')[1] || 'png';\nconst prev  = $('Build Mockup Prompt').item.json;\nconst fname = `mockup_${prev.product.replace(/\\s+/g,'_')}_${prev.jobId}.${ext}`;\nconst buf   = Buffer.from(b64, 'base64');\nreturn [{\n  json:   { ...prev, filename: fname, mimeType: mime },\n  binary: { data: { data: b64, mimeType: mime, fileName: fname,\n                    fileSize: buf.length, fileExtension: ext } }\n}];\n"},"typeVersion":2},{"id":"d750be8f-048a-44f9-b0e4-26d279ddd93e","name":"Build Mockup Response","type":"n8n-nodes-base.code","position":[1648,832],"parameters":{"jsCode":"const p = $('Build Mockup Prompt').item.json;\nreturn [{ json: {\n  success: true, jobId: p.jobId, jobType: 'mockup',\n  productType: p.product, colorScheme: p.colors,\n  filename: p.filename,\n  publicUrl: `https://YOUR_CDN_DOMAIN/${p.filename}`,\n  generatedAt: new Date().toISOString()\n}}];\n"},"typeVersion":2},{"id":"4024e030-fe6a-4c63-a89f-5e4b28753eca","name":"Respond to Webhook – Mockup","type":"n8n-nodes-base.respondToWebhook","position":[1888,832],"parameters":{"options":{},"respondWith":"json","responseBody":"={{ JSON.stringify($json) }}"},"typeVersion":1},{"id":"aed7cefc-af66-4a33-97ee-5aab1bd6d580","name":"Upload to URL","type":"n8n-nodes-uploadtourl.uploadToUrl","position":[1392,432],"parameters":{},"credentials":{"uploadToUrlApi":{"id":"NFDYkIVrmT40WVK4","name":"Upload to URL account 4"}},"typeVersion":1},{"id":"15704ba4-1042-46a6-9488-9b1dfd7cb46b","name":"Upload to URL1","type":"n8n-nodes-uploadtourl.uploadToUrl","position":[1424,832],"parameters":{},"credentials":{"uploadToUrlApi":{"id":"NFDYkIVrmT40WVK4","name":"Upload to URL account 4"}},"typeVersion":1}],"pinData":{},"connections":{"Upload to URL":{"main":[[{"node":"Build Localize Response","type":"main","index":0}]]},"Upload to URL1":{"main":[[{"node":"Build Mockup Response","type":"main","index":0}]]},"Route by Job Type":{"main":[[{"node":"Build Localize Prompt","type":"main","index":0}],[{"node":"Build Mockup Prompt","type":"main","index":0}],[{"node":"Respond – Error","type":"main","index":0}]]},"Build Mockup Prompt":{"main":[[{"node":"Gemini Imagen 3 – Mockup","type":"main","index":0}]]},"Decode Mockup Image":{"main":[[{"node":"Upload to URL1","type":"main","index":0}]]},"Build Localize Prompt":{"main":[[{"node":"Gemini Imagen 3 – Localize","type":"main","index":0}]]},"Build Mockup Response":{"main":[[{"node":"Respond to Webhook – Mockup","type":"main","index":0}]]},"Decode Localize Image":{"main":[[{"node":"Upload to URL","type":"main","index":0}]]},"Build Localize Response":{"main":[[{"node":"Respond to Webhook – Localize","type":"main","index":0}]]},"Gemini Imagen 3 – Mockup":{"main":[[{"node":"Decode Mockup Image","type":"main","index":0}]]},"Gemini Imagen 3 – Localize":{"main":[[{"node":"Decode Localize Image","type":"main","index":0}]]},"Webhook – Receive Image Job":{"main":[[{"node":"Route by Job Type","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":19,"nodeTypes":{"n8n-nodes-base.code":{"count":6},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.stickyNote":{"count":4},"n8n-nodes-base.httpRequest":{"count":2},"n8n-nodes-base.respondToWebhook":{"count":3},"n8n-nodes-uploadtourl.uploadToUrl":{"count":2}}},"status":"published","readyToDemo":null,"user":{"name":"Jitesh Dugar","username":"jiteshdugar","bio":"AI Automation Specialist - OpenAI, CRM & Automation Expert with a solid understanding of various tools that include Zapier, Make, Zoho CRM, Hubspot, Google Sheets, Airtable, Pipedrive, Google Analytics, and more.","verified":true,"links":["https://www.linkedin.com/in/jiteshdugar"],"avatar":"https://gravatar.com/avatar/edaa3abb99806b0586dced559d0a5417f24a507e7c4464a63960f0638a4b1b90?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":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":535,"icon":"file:webhook.svg","name":"n8n-nodes-base.respondToWebhook","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.respondtowebhook/"}]},"categories":["Core Nodes","Utility"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"transform\"]","defaults":{"name":"Respond to Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Respond to Webhook","typeVersion":2,"nodeCategories":[{"id":7,"name":"Utility"},{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":31,"name":"Content Creation"},{"id":51,"name":"Multimodal AI"}],"image":[]}}