{"workflow":{"id":13540,"name":"Schedule social media posts from local files using UploadToURL, OpenAI, and Buffer","views":246,"recentViews":1,"totalViews":246,"createdAt":"2026-02-20T10:32:30.355Z","description":"Schedule social media posts from local files using UploadToURL, OpenAI, and Buffer\n===\n\nMarketing teams often have design files sitting locally — campaign images, product videos, event graphics — that need to be published on social media. The usual process means downloading files, switching apps, uploading to each platform separately, and writing captions by hand. This workflow removes those steps.\n\nSend a file link or binary upload to the webhook. UploadToURL hosts it instantly and returns a clean public URL. OpenAI GPT-4.1 mini reads the filename and context to generate a platform-specific caption, hashtags, alt text, and a scroll-stopping hook. A Switch node routes to the correct Buffer profile — Twitter/X, Instagram, or LinkedIn — and the post is scheduled at the AI-suggested best time.\n\n## What this workflow does\n\n1. Receives a file URL or binary upload via webhook along with platform, tone, and brand preferences\n2. Validates the payload — checks the platform, detects content type from the file extension, cleans the filename into readable words for the AI prompt\n3. Uploads the file to UploadToURL and retrieves a permanent public link\n4. Sends the link and context to OpenAI, which returns a structured JSON caption with hashtags, alt text, a hook line, and a UTC posting time\n5. Routes to the correct Buffer profile based on the platform field\n6. Schedules the post and returns a confirmation with the schedule ID, caption, hashtags, and estimated engagement\n\n## Who this is for\n\n- **Marketing agencies** managing multiple brand accounts who need to go from a finished design file to a scheduled post without switching tools\n- **Solo creators** who want to publish immediately after finishing a piece of content without manually uploading to each platform\n- **E-commerce teams** who want to trigger social posts whenever new product photos are ready\n\n## Setup\n\n1. Install the UploadToURL community node: `n8n-nodes-uploadtourl`\n2. Add credentials for UploadToURL API, OpenAI API, and Buffer (as HTTP Header Auth with your Buffer access token)\n3. Set three workflow variables: `BUFFER_PROFILE_TWITTER`, `BUFFER_PROFILE_INSTAGRAM`, `BUFFER_PROFILE_LINKEDIN` — find these IDs in your Buffer account under each profile's settings\n4. Activate and copy the webhook URL\n\n## Webhook payload\n\n```json\n{\n  \"fileUrl\": \"https://cdn.example.com/summer-campaign.jpg\",\n  \"filename\": \"summer-campaign.jpg\",\n  \"platform\": \"instagram\",\n  \"tone\": \"casual\",\n  \"brand\": \"Acme Studio\",\n  \"hashtags\": true\n}\n```\n\nTo upload a binary file instead, send as `multipart/form-data` with field name `file` and omit `fileUrl`. Pass `scheduleTime` as an ISO 8601 string to override the AI scheduling suggestion.\n\n## Notes\n\n- The OpenAI node uses `gpt-4.1-mini` with `response_format: json_object` to guarantee structured output — no post-processing of freetext required\n- Caption length is validated against per-platform limits before scheduling (Twitter: 280, Instagram: 2200, LinkedIn: 3000)\n- To add Facebook or TikTok, add a new output on the Switch node and duplicate one of the Buffer HTTP request nodes\n- The error handler returns a structured JSON `400` response so calling apps receive actionable feedback without needing to check n8n logs","workflow":{"meta":{"instanceId":"277842713620d9f5554de3b1518b865a152c8c4db680008bd8aec536fc18b4a8","templateCredsSetupCompleted":true},"nodes":[{"id":"f133eb2f-a75f-4891-8adb-b8809a3703a0","name":"📋 Overview","type":"n8n-nodes-base.stickyNote","position":[-2256,-928],"parameters":{"width":560,"height":468,"content":"AI Social Media Auto-Scheduler via UploadToURL\nAutomate the bridge between local media files and live social posts. This workflow hosts your assets via UploadToURL, generates platform-specific copy with AI, and schedules the results via Buffer.\n\n⚙️ How it works\nWebhook receives a file (Binary or URL) and platform preferences.\n\nUploadToURL hosts the asset and returns a public CDN link.\n\nOpenAI generates a platform-optimized caption, hashtags, and alt-text.\n\nBuffer schedules the post to Twitter, Instagram, or LinkedIn.\n\n🔧 Setup\nInstall n8n-nodes-uploadtourl community node.\n\nAdd UploadToURL, OpenAI, and Buffer credentials.\n\nSet variables: BUFFER_PROFILE_TWITTER, BUFFER_PROFILE_INSTAGRAM, BUFFER_PROFILE_LINKEDIN."},"typeVersion":1},{"id":"efc15edf-aa70-4916-8862-a9ccf488650f","name":"Section 1 — Intake","type":"n8n-nodes-base.stickyNote","position":[-1328,-368],"parameters":{"color":7,"width":420,"height":616,"content":"## 1 — Intake & validation\n\n**Webhook → Validate & Enrich → Has Remote URL?**\n\nThe webhook accepts a POST with `fileUrl` or binary data plus `platform`, `tone`, `brand`, `campaignContext`, and optional `scheduleTime`.\n\nThe code node checks that at least a filename or URL is present, validates the platform against the allowed list, maps per-platform character limits (Twitter 280, Instagram 2200, LinkedIn 3000), detects content type from the file extension, and cleans the filename into readable words for the AI prompt.\n\nThe IF node then routes to the correct upload path based on whether `fileUrl` is set."},"typeVersion":1},{"id":"7019ee99-0415-4fe0-bde9-2dc1968482e3","name":"Section 2 — Upload","type":"n8n-nodes-base.stickyNote","position":[-816,-400],"parameters":{"color":7,"width":420,"height":656,"content":"## 2 — File hosting via UploadToURL\n\n**Upload to URL (×2) → Extract clean URL**\n\nTwo parallel branches handle remote URLs and binary uploads using the native **UploadToURL community node** — no custom HTTP request needed.\n\nThe code node after both branches normalises the response (different field names across API versions) and throws a descriptive error if no URL is returned, so failures are easy to debug in the execution log."},"typeVersion":1},{"id":"dac3623b-f83e-4c52-ba1e-07f1fb18e8b3","name":"Section 3 — Caption","type":"n8n-nodes-base.stickyNote","position":[-288,-352],"parameters":{"color":7,"width":420,"height":548,"content":"## 3 — AI caption generation\n\n**OpenAI → Assemble post payload**\n\nOpenAI GPT-4.1 mini receives the platform, tone, brand, campaign context, and character limit. The response format is set to `json_object` so the output is always structured — no parsing of freetext.\n\nThe returned fields are: `caption`, `hashtags[]`, `altText`, `hook`, `bestPostingTimeUTC`, and `estimatedEngagement`.\n\nThe assemble node appends hashtags, checks the character limit, and calculates the schedule time — using the AI's UTC hour suggestion if none was provided in the original request."},"typeVersion":1},{"id":"b40c1ab1-1bbd-4d4a-8f3a-8a9f9a76b8d8","name":"Section 4 — Scheduling","type":"n8n-nodes-base.stickyNote","position":[272,-528],"parameters":{"color":7,"width":420,"height":772,"content":"## 4 — Platform routing & scheduling\n\n**Switch → Buffer (Twitter / Instagram / LinkedIn) → Response**\n\nThe Switch node routes on the `platform` value. Each Buffer branch is slightly different: Instagram includes the `photo` field, LinkedIn includes a `title`, and Twitter enforces the 280-character limit set earlier.\n\nAll three branches merge into the same response node, which returns `scheduleId`, `assetUrl`, `caption`, `hashtags`, and `estimatedEngagement`.\n\nTo add more platforms (Facebook, TikTok), add a new output on the Switch node and duplicate one of the Buffer nodes."},"typeVersion":1},{"id":"864f54db-ad25-43da-88e2-f8d532ca009a","name":"Webhook - Receive Asset","type":"n8n-nodes-base.webhook","position":[-1296,0],"webhookId":"29e37c0f-869d-4088-b235-2e54cc9e59b0","parameters":{"path":"social-asset-upload","options":{"allowedOrigins":"*"},"httpMethod":"POST","responseMode":"responseNode"},"typeVersion":2},{"id":"884d58fc-3087-4b7a-ae3f-6e726cb0731e","name":"Validate & Enrich Payload","type":"n8n-nodes-base.code","position":[-1072,0],"parameters":{"jsCode":"const body = $input.first().json.body || $input.first().json;\nconst allowedPlatforms = ['instagram', 'twitter', 'linkedin', 'facebook'];\nconst platform = (body.platform || 'instagram').toLowerCase();\n\nif (!body.filename && !body.fileUrl) {\n  throw new Error('Missing required fields: provide filename or fileUrl');\n}\nif (!allowedPlatforms.includes(platform)) {\n  throw new Error(`Invalid platform. Must be one of: ${allowedPlatforms.join(', ')}`);\n}\n\nconst charLimits = { twitter: 280, instagram: 2200, linkedin: 3000, facebook: 63206 };\nconst filename = body.filename || body.fileUrl?.split('/').pop() || 'asset';\nconst ext = filename.split('.').pop()?.toLowerCase();\nconst isVideo = ['mp4', 'mov', 'avi', 'webm'].includes(ext);\nconst isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp'].includes(ext);\nconst cleanName = filename\n  .replace(/\\.[^.]+$/, '')\n  .replace(/[-_]/g, ' ')\n  .replace(/([a-z])([A-Z])/g, '$1 $2')\n  .toLowerCase().trim();\n\nreturn [{\n  json: {\n    filename,\n    cleanName,\n    fileUrl: body.fileUrl || null,\n    platform,\n    tone: body.tone || 'professional',\n    includeHashtags: body.hashtags !== false,\n    charLimit: charLimits[platform],\n    contentType: isVideo ? 'video' : isImage ? 'image' : 'file',\n    brand: body.brand || '',\n    campaignContext: body.campaignContext || '',\n    scheduleTime: body.scheduleTime || null,\n    timestamp: new Date().toISOString()\n  }\n}];"},"typeVersion":2},{"id":"db7db58d-7cf7-4e62-b803-f63391f1ad04","name":"Has Remote URL?","type":"n8n-nodes-base.if","position":[-848,0],"parameters":{"options":{},"conditions":{"options":{"caseSensitive":false,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"cond-has-url","operator":{"type":"string","operation":"notEmpty"},"leftValue":"={{ $json.fileUrl }}","rightValue":""}]}},"typeVersion":2},{"id":"72d26911-946b-48e2-a036-5e17b33cb72b","name":"Upload to URL - From Remote URL","type":"n8n-nodes-uploadtourl.uploadToUrl","position":[-624,-128],"parameters":{},"credentials":{"uploadToUrlApi":{"id":"aTtpEWKPdBd8vRfH","name":"Upload to URL account 3"}},"typeVersion":1},{"id":"802f6c34-2f99-456a-aa49-51e158d8a539","name":"Upload to URL - From Binary","type":"n8n-nodes-uploadtourl.uploadToUrl","position":[-624,112],"parameters":{"operation":"uploadFile"},"credentials":{"uploadToUrlApi":{"id":"aTtpEWKPdBd8vRfH","name":"Upload to URL account 3"}},"typeVersion":1},{"id":"05fd0d9d-9d64-4b79-b01c-e9b320df2bac","name":"Extract Clean URL","type":"n8n-nodes-base.code","position":[-416,0],"parameters":{"jsCode":"const uploadResponse = $input.first().json;\nconst meta = $('Validate & Enrich Payload').first().json;\n\nconst cleanUrl =\n  uploadResponse.url ||\n  uploadResponse.link ||\n  uploadResponse.data?.url ||\n  uploadResponse.file?.url ||\n  uploadResponse.shortUrl;\n\nif (!cleanUrl) {\n  throw new Error('Upload to URL did not return a valid public URL. Response: ' + JSON.stringify(uploadResponse));\n}\n\nreturn [{\n  json: {\n    ...meta,\n    cleanUrl,\n    uploadId: uploadResponse.id || uploadResponse.data?.id || null,\n    fileSize: uploadResponse.size || uploadResponse.data?.size || null\n  }\n}];"},"typeVersion":2},{"id":"110bd7b7-39bd-4253-9270-1e5b4709d6c1","name":"OpenAI - Generate Caption","type":"@n8n/n8n-nodes-langchain.openAi","position":[-192,0],"parameters":{"modelId":{"__rl":true,"mode":"list","value":"gpt-4.1-mini","cachedResultName":"GPT-4.1-MINI"},"options":{"maxTokens":800,"temperature":0.75},"messages":{"values":[{"role":"system","content":"You are an expert social media copywriter. Always return a valid JSON object only — no markdown, no preamble."},{"content":"=Generate a social media caption.\n\n**Platform:** {{ $json.platform }}\n**Asset Name:** {{ $json.cleanName }}\n**Content Type:** {{ $json.contentType }}\n**Tone:** {{ $json.tone }}\n**Brand:** {{ $json.brand || 'Not specified' }}\n**Campaign Context:** {{ $json.campaignContext || 'General post' }}\n**Character Limit:** {{ $json.charLimit }}\n**Include Hashtags:** {{ $json.includeHashtags }}\n\nReturn ONLY this JSON:\n{\n  \"caption\": \"Main caption text under the char limit\",\n  \"hashtags\": [\"relevant\", \"hashtags\", \"without\", \"hash\"],\n  \"altText\": \"Accessibility description of the image or video\",\n  \"hook\": \"First-line hook for A/B testing\",\n  \"emojiUsage\": \"low|medium|high\",\n  \"bestPostingTimeUTC\": \"e.g. 14:00-16:00\",\n  \"estimatedEngagement\": \"low|medium|high\"\n}"}]}},"credentials":{"openAiApi":{"id":"8IkhtT3EbXygnvcr","name":"Mediajade"}},"typeVersion":1.5},{"id":"2c2f4205-31a3-44f9-8a99-b498bd1cd094","name":"Assemble Post Payload","type":"n8n-nodes-base.code","position":[112,0],"parameters":{"jsCode":"const openAIRaw = $input.first().json;\nconst assetData = $('Extract Clean URL').first().json;\n\nlet captionData;\ntry {\n  const raw =\n    openAIRaw.message?.content ||\n    openAIRaw.choices?.[0]?.message?.content ||\n    openAIRaw.content ||\n    openAIRaw.text;\n  captionData = typeof raw === 'string' ? JSON.parse(raw) : raw;\n} catch (e) {\n  throw new Error('Failed to parse OpenAI caption JSON: ' + e.message);\n}\n\nconst hashtagString =\n  assetData.includeHashtags && captionData.hashtags?.length\n    ? '\\n\\n' + captionData.hashtags.map(h => (h.startsWith('#') ? h : '#' + h)).join(' ')\n    : '';\n\nconst fullCaption = captionData.caption + hashtagString;\n\nif (fullCaption.length > assetData.charLimit) {\n  console.warn(\n    `Caption ${fullCaption.length} chars exceeds ${assetData.platform} limit of ${assetData.charLimit}`\n  );\n}\n\nlet scheduleAt = assetData.scheduleTime;\nif (!scheduleAt) {\n  const suggestedHour = parseInt(\n    (captionData.bestPostingTimeUTC || '14:00').split(':')[0],\n    10\n  );\n  const next = new Date();\n  next.setUTCHours(suggestedHour, 0, 0, 0);\n  if (next <= new Date()) next.setUTCDate(next.getUTCDate() + 1);\n  scheduleAt = next.toISOString();\n}\n\nreturn [{\n  json: {\n    assetUrl: assetData.cleanUrl,\n    filename: assetData.filename,\n    contentType: assetData.contentType,\n    platform: assetData.platform,\n    caption: captionData.caption,\n    hashtags: captionData.hashtags || [],\n    fullCaption,\n    altText: captionData.altText || '',\n    hook: captionData.hook || '',\n    emojiUsage: captionData.emojiUsage,\n    scheduleAt,\n    suggestedPostTime: captionData.bestPostingTimeUTC,\n    estimatedEngagement: captionData.estimatedEngagement,\n    uploadId: assetData.uploadId,\n    generatedAt: new Date().toISOString()\n  }\n}];"},"typeVersion":2},{"id":"5e6319f4-40e9-44e2-8ec3-b743a6d6fa4d","name":"Route by Platform","type":"n8n-nodes-base.switch","position":[256,0],"parameters":{"rules":{"values":[{"outputKey":"Twitter/X","conditions":{"options":{"caseSensitive":false,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.platform }}","rightValue":"twitter"}]},"renameOutput":true},{"outputKey":"Instagram","conditions":{"options":{"caseSensitive":false,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.platform }}","rightValue":"instagram"}]},"renameOutput":true},{"outputKey":"LinkedIn","conditions":{"options":{"caseSensitive":false,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.platform }}","rightValue":"linkedin"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra"}},"typeVersion":3},{"id":"dcc70bd8-774f-4579-9cbc-81abd7fd848e","name":"Buffer - Schedule Twitter/X","type":"n8n-nodes-base.httpRequest","position":[480,-160],"parameters":{"url":"https://api.bufferapp.com/1/updates/create.json","method":"POST","options":{},"jsonBody":"={\"text\": {{ JSON.stringify($json.fullCaption) }}, \"media\": {\"link\": {{ JSON.stringify($json.assetUrl) }}, \"description\": {{ JSON.stringify($json.altText) }}}, \"scheduled_at\": {{ JSON.stringify($json.scheduleAt) }}, \"profile_ids\": [\"{{ $vars.BUFFER_PROFILE_TWITTER }}\"]}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"GKgCj9WxmYpiz70D","name":"Stripe Header Auth"}},"typeVersion":4.2},{"id":"0e273c5b-45f8-4daa-9ab9-e523bae33f05","name":"Buffer - Schedule Instagram","type":"n8n-nodes-base.httpRequest","position":[480,16],"parameters":{"url":"https://api.bufferapp.com/1/updates/create.json","method":"POST","options":{},"jsonBody":"={\"text\": {{ JSON.stringify($json.fullCaption) }}, \"media\": {\"link\": {{ JSON.stringify($json.assetUrl) }}, \"description\": {{ JSON.stringify($json.altText) }}, \"photo\": {{ JSON.stringify($json.contentType === 'image' ? $json.assetUrl : '') }}}, \"scheduled_at\": {{ JSON.stringify($json.scheduleAt) }}, \"profile_ids\": [\"{{ $vars.BUFFER_PROFILE_INSTAGRAM }}\"]}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"GKgCj9WxmYpiz70D","name":"Stripe Header Auth"}},"typeVersion":4.2},{"id":"7bd22a5a-b101-4811-b559-96d93269384d","name":"Buffer - Schedule LinkedIn","type":"n8n-nodes-base.httpRequest","position":[480,160],"parameters":{"url":"https://api.bufferapp.com/1/updates/create.json","method":"POST","options":{},"jsonBody":"={\"text\": {{ JSON.stringify($json.fullCaption) }}, \"media\": {\"link\": {{ JSON.stringify($json.assetUrl) }}, \"title\": {{ JSON.stringify($json.filename) }}, \"description\": {{ JSON.stringify($json.altText) }}}, \"scheduled_at\": {{ JSON.stringify($json.scheduleAt) }}, \"profile_ids\": [\"{{ $vars.BUFFER_PROFILE_LINKEDIN }}\"]}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"GKgCj9WxmYpiz70D","name":"Stripe Header Auth"}},"typeVersion":4.2},{"id":"2ad95a6f-8c6b-4649-b2c3-e0b8fdfbab58","name":"Build Final Response","type":"n8n-nodes-base.code","position":[704,0],"parameters":{"jsCode":"const bufferResponse = $input.first().json;\nconst postData = $('Assemble Post Payload').first().json;\nconst success = !bufferResponse.error && bufferResponse.success !== false;\n\nreturn [{\n  json: {\n    success,\n    message: success\n      ? `Post scheduled on ${postData.platform} for ${postData.scheduleAt}`\n      : `Buffer scheduling failed: ${bufferResponse.error || 'Unknown error'}`,\n    scheduleId: bufferResponse.update?.id || bufferResponse.data?.id || null,\n    assetUrl: postData.assetUrl,\n    platform: postData.platform,\n    scheduledAt: postData.scheduleAt,\n    caption: postData.caption,\n    hook: postData.hook,\n    hashtags: postData.hashtags,\n    altText: postData.altText,\n    estimatedEngagement: postData.estimatedEngagement,\n    bufferError: bufferResponse.error || null\n  }\n}];"},"typeVersion":2},{"id":"6b130b72-a224-4a00-920c-be81955b6abe","name":"Respond to Webhook","type":"n8n-nodes-base.respondToWebhook","position":[912,0],"parameters":{"options":{"responseCode":200,"responseHeaders":{"entries":[{"name":"Content-Type","value":"application/json"}]}},"respondWith":"json","responseBody":"={{ $json }}"},"typeVersion":1.1}],"pinData":{},"connections":{"Has Remote URL?":{"main":[[{"node":"Upload to URL - From Remote URL","type":"main","index":0}],[{"node":"Upload to URL - From Binary","type":"main","index":0}]]},"Extract Clean URL":{"main":[[{"node":"OpenAI - Generate Caption","type":"main","index":0}]]},"Route by Platform":{"main":[[{"node":"Buffer - Schedule Twitter/X","type":"main","index":0}],[{"node":"Buffer - Schedule Instagram","type":"main","index":0}],[{"node":"Buffer - Schedule LinkedIn","type":"main","index":0}]]},"Build Final Response":{"main":[[{"node":"Respond to Webhook","type":"main","index":0}]]},"Assemble Post Payload":{"main":[[{"node":"Route by Platform","type":"main","index":0}]]},"Webhook - Receive Asset":{"main":[[{"node":"Validate & Enrich Payload","type":"main","index":0}]]},"OpenAI - Generate Caption":{"main":[[{"node":"Assemble Post Payload","type":"main","index":0}]]},"Validate & Enrich Payload":{"main":[[{"node":"Has Remote URL?","type":"main","index":0}]]},"Buffer - Schedule LinkedIn":{"main":[[{"node":"Build Final Response","type":"main","index":0}]]},"Buffer - Schedule Instagram":{"main":[[{"node":"Build Final Response","type":"main","index":0}]]},"Buffer - Schedule Twitter/X":{"main":[[{"node":"Build Final Response","type":"main","index":0}]]},"Upload to URL - From Binary":{"main":[[{"node":"Extract Clean URL","type":"main","index":0}]]},"Upload to URL - From Remote URL":{"main":[[{"node":"Extract Clean URL","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":19,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.code":{"count":4},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.stickyNote":{"count":5},"n8n-nodes-base.httpRequest":{"count":3},"@n8n/n8n-nodes-langchain.openAi":{"count":1},"n8n-nodes-base.respondToWebhook":{"count":1},"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":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":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"}]},{"id":1250,"icon":"file:openAi.svg","name":"@n8n/n8n-nodes-langchain.openAi","codex":{"data":{"alias":["LangChain","ChatGPT","Sora","DallE","whisper","audio","transcribe","tts","assistant"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg1IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NiAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MSA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K"},"displayName":"OpenAI","typeVersion":2,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":33,"name":"Social Media"},{"id":51,"name":"Multimodal AI"}],"image":[]}}