{"workflow":{"id":14024,"name":"Publish a social media post with Swonkie","views":12,"recentViews":0,"totalViews":12,"createdAt":"2026-03-13T14:23:51.335Z","description":"## 🚀 What this workflow does\n\nAutomate publishing social media posts through the **Swonkie Public API**. \nGiven a media file URL, a caption, and a target profile, this workflow handles \nthe full end-to-end flow: uploading the media, creating the post, validating \nit against platform rules, and publishing or scheduling it, all without \ntouching the Swonkie dashboard.\n\nUse this as a starting point to connect Swonkie to any other tool in n8n: \ntrigger posts from a CMS, a spreadsheet, a form submission, an AI agent, or \nany other data source.\n\n## ⚙️ How it works\n\n- Registers the media file in Swonkie's media library and uploads the binary \n  directly to Azure Blob Storage using a signed upload URL\n- Polls the media processing status every 3 seconds until Swonkie confirms \n  the file is ready (SUCCESS) or stops with an error if processing fails\n- Creates a new post with the uploaded media, caption, and target social profile\n- Validates the post against Swonkie's network rules (caption length, media \n  format, profile connection) before publishing\n- Changes the post stage to publishNow (publishes immediately) or schedule\n\n## 🛠️ Set up steps\n\n- Sign up at swonkie.dev and connect at least one social media profile\n- Go to app.swonkie.com/settings/workspace/public-api to get your App ID and \n  API Key\n- Get your Profile ID from the Swonkie API (GET /profiles) or the dashboard\n- Open the Configure node and fill in: apiId, apiKey, profileId, caption, \n  stage, mediaUrl and mediaName\n- Run the workflow","workflow":{"nodes":[{"id":"6153cff6-ceeb-4c2d-b4d9-1e643448efd8","name":"Sticky - Overview","type":"n8n-nodes-base.stickyNote","position":[-1056,64],"parameters":{"color":5,"width":1824,"height":108,"content":"## 🚀 Swonkie – Publish a Social Media Post\nThis workflow publishes a post to a Swonkie-connected social profile via the **Swonkie Public API**. It covers the full flow: upload media → create post → validate → schedule or publish immediately.\n**Before running:** open the **Configure** node and fill in your credentials and post settings. Get your credentials at [app.swonkie.com/settings/workspace/public-api](https://app.swonkie.com/settings/workspace/public-api) and your Profile ID from the GET /profiles endpoint."},"typeVersion":1},{"id":"bc3ef4fe-205c-4c33-932c-e38b36e421e2","name":"Sticky - Setup","type":"n8n-nodes-base.stickyNote","position":[-1056,192],"parameters":{"color":7,"width":400,"height":450,"content":"## ⚙️ Setup - Edit This Node First\n\nOpen the **Configure** node below and fill in:\n\n- **apiId**: Your App ID\n- **apiKey**: Your API Key\n- **profileId**: Target social profile ID\n- **caption**: Post text\n- **stage**: `publishNow` (publish immediately, default) or `schedule`\n- **mediaUrl**: Public URL of the image/video to upload\n- **mediaName**: Filename, e.g. `photo.jpg`\n\n---\n⚠️ **Security note:** Credentials are stored as plain text in the workflow JSON and visible in execution logs. For production use, create a **Generic Credential → Header Auth** in n8n's Credentials panel with `X-API-ID` and `X-API-KEY` as headers, then reference it in each HTTP Request node instead."},"typeVersion":1},{"id":"60b5ff29-bfde-40e1-b349-5998431c8d8d","name":"Sticky - Media Upload","type":"n8n-nodes-base.stickyNote","position":[-640,192],"parameters":{"color":2,"width":416,"height":452,"content":"## 📤 Media Upload\nSwonkie requires a 3-step upload before a file can be attached to a post:\n1. **Create Media Entry**: registers the file with Swonkie, returns an `uploadUrl` and a `mediaId`\n2. **Download & Attach Binary**: fetches the file from `mediaUrl` as binary data in n8n\n3. **Upload File to Blob**: PUTs the binary to Azure Blob Storage via the `uploadUrl`\n4. **Confirm Upload**: notifies Swonkie the upload is complete and starts async processing\n5. **Poll loop**: waits 3 s, polls `status` → `SUCCESS` continues, `ERROR` stops, anything else loops back"},"typeVersion":1},{"id":"b6d67b37-3818-4d1d-9c89-b238deb1aa0a","name":"Sticky - Post Publishing","type":"n8n-nodes-base.stickyNote","position":[-208,192],"parameters":{"color":5,"width":452,"height":452,"content":"## 📝 Post Publishing\n1. **Create Post**: creates an IDEA post with the uploaded media, caption, and profile\n2. **Validate Post**: checks the post meets all network rules: caption length, media format, profile connection status\n3. **Change Stage**: moves the post to `publishNow` (publishes immediately, default) or `schedule` (only use if you first set a `publishAt` date on the post via the API)\n\nThe final **Post Published** node outputs `postId`, `stage`, and a `success: true` flag for use in downstream nodes."},"typeVersion":1},{"id":"02a8db34-c1ae-4ed5-9a8e-02dcde07aa72","name":"Sticky - Error Handling","type":"n8n-nodes-base.stickyNote","position":[256,192],"parameters":{"color":3,"width":484,"height":444,"content":"## ❌ Error Handling\nBoth failure paths use the **Stop and Error** node, which marks the execution as **failed** (shown in red in n8n's execution history) and triggers any error workflow configured under *Workflow Settings → Error Workflow*.\n\n- **Media Processing Failed**: Swonkie returned `status: ERROR` during async processing. The file was uploaded successfully but could not be processed, it may be corrupt, too large, in an unsupported format, or have incompatible specs (codec, resolution, duration). Try re-uploading a different file or check the media in your Swonkie media library for details.\n- **Validation Failed**: the post did not pass Swonkie's validation rules before publishing. The error message contains the full API response, check caption length limits, media requirements, and whether the profile is properly connected."},"typeVersion":1},{"id":"e018d93b-1594-467f-a14c-6c0c7163a82b","name":"Start","type":"n8n-nodes-base.manualTrigger","position":[-992,864],"parameters":{},"typeVersion":1},{"id":"1662902f-26d7-47c4-9054-2c6296e61147","name":"Configure","type":"n8n-nodes-base.set","notes":"Fill in your credentials and post settings here.","position":[-768,864],"parameters":{"options":{},"assignments":{"assignments":[{"id":"cfg-001","name":"apiBase","type":"string","value":"https://api.swonkie.dev/v2"},{"id":"cfg-002","name":"apiId","type":"string","value":"YOUR_APP_ID_HERE"},{"id":"cfg-003","name":"apiKey","type":"string","value":"YOUR_API_KEY_HERE"},{"id":"cfg-004","name":"profileId","type":"string","value":"YOUR_PROFILE_ID_HERE"},{"id":"cfg-005","name":"caption","type":"string","value":"Your post caption here 🚀 #Swonkie"},{"id":"cfg-007","name":"stage","type":"string","value":"publishNow"},{"id":"cfg-008","name":"mediaUrl","type":"string","value":"https://picsum.photos/800/600"},{"id":"cfg-009","name":"mediaName","type":"string","value":"post-image.png"}]}},"typeVersion":3.4},{"id":"515d8a5c-7a91-4236-a874-6916c559e3d9","name":"Create Media Entry","type":"n8n-nodes-base.httpRequest","notes":"Registers the media file in Swonkie and returns an upload URL.","position":[-480,816],"parameters":{"url":"={{ $('Configure').item.json.apiBase }}/media","method":"POST","options":{},"jsonBody":"={{ JSON.stringify({ destinationType: 'POST_MEDIA', name: $('Configure').item.json.mediaName }) }}","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"X-API-ID","value":"={{ $('Configure').item.json.apiId }}"},{"name":"X-API-KEY","value":"={{ $('Configure').item.json.apiKey }}"}]}},"typeVersion":4.2},{"id":"c66da8de-a070-4dfb-8e03-0103165801cb","name":"Download & Attach Binary","type":"n8n-nodes-base.httpRequest","notes":"Downloads the media file from the configured URL and attaches it as binary data (field name: data).","position":[-272,816],"parameters":{"url":"={{ $('Configure').item.json.mediaUrl }}","options":{"response":{"response":{"responseFormat":"file"}}}},"typeVersion":4.2},{"id":"53325d9b-5022-4ebc-9280-5b2c8f13ac22","name":"Upload File to Blob","type":"n8n-nodes-base.httpRequest","notes":"Uploads the binary file to the Azure Blob Storage URL returned by Create Media Entry.","position":[-48,816],"parameters":{"url":"={{ $('Create Media Entry').item.json.uploadUrl }}","method":"PUT","options":{"response":{"response":{"neverError":true}}},"sendBody":true,"contentType":"binaryData","sendHeaders":true,"headerParameters":{"parameters":[{"name":"x-ms-blob-type","value":"BlockBlob"}]},"inputDataFieldName":"data"},"typeVersion":4.2},{"id":"95f716d2-eccc-436b-961f-70e63edd7b7c","name":"Confirm Upload","type":"n8n-nodes-base.httpRequest","notes":"Notifies Swonkie that the file upload is complete and processing should begin.","position":[176,816],"parameters":{"url":"={{ $('Configure').item.json.apiBase + '/media/' + $('Create Media Entry').item.json.id }}","method":"PATCH","options":{},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"X-API-ID","value":"={{ $('Configure').item.json.apiId }}"},{"name":"X-API-KEY","value":"={{ $('Configure').item.json.apiKey }}"}]}},"typeVersion":4.2},{"id":"0347a11f-5710-48fb-b375-208107c133a6","name":"Wait for Processing","type":"n8n-nodes-base.wait","notes":"Waits 3 seconds before polling media status. Loops until status is SUCCESS.","position":[400,816],"webhookId":"swonkie-media-poll","parameters":{"amount":3},"typeVersion":1.1},{"id":"f0ee4557-fe53-4774-878c-cc988b2d3eed","name":"Check Media Status","type":"n8n-nodes-base.httpRequest","notes":"Polls the media status. Expected values: PROCESSING, SUCCESS, ERROR.","position":[608,816],"parameters":{"url":"={{ $('Configure').item.json.apiBase + '/media/' + $('Create Media Entry').item.json.id }}","options":{},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"X-API-ID","value":"={{ $('Configure').item.json.apiId }}"},{"name":"X-API-KEY","value":"={{ $('Configure').item.json.apiKey }}"}]}},"typeVersion":4.2},{"id":"4fa24821-084e-45dd-bdd4-77d845a5eb5e","name":"Media Ready?","type":"n8n-nodes-base.switch","notes":"Output 0 (SUCCESS) → Create Post. Output 1 (ERROR) → Media Processing Failed. Fallback (PROCESSING) → loop back to Wait.","position":[832,816],"parameters":{"rules":{"values":[{"outputKey":"SUCCESS","conditions":{"options":{"caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"cond-success","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"SUCCESS"}]},"renameOutput":true},{"outputKey":"ERROR","conditions":{"options":{"caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"cond-error","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"ERROR"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra"}},"typeVersion":3.2},{"id":"65a37632-92bb-4b16-96ef-9fc08f0dd96b","name":"Create Post","type":"n8n-nodes-base.httpRequest","notes":"Creates the post with the uploaded media. Stage will be IDEA (no publishAt date set).","position":[1312,816],"parameters":{"url":"={{ $('Configure').item.json.apiBase }}/posts","method":"POST","options":{},"jsonBody":"={{ JSON.stringify({ type: 'MEDIA', profileIds: [$('Configure').item.json.profileId], captions: [{ plainText: $('Configure').item.json.caption, net: null }], medias: [{ mediaFiles: [{ mediaLibId: $('Create Media Entry').item.json.id }], net: null }], links: [], labelIds: [] }) }}","sendBody":true,"sendHeaders":true,"specifyBody":"json","headerParameters":{"parameters":[{"name":"X-API-ID","value":"={{ $('Configure').item.json.apiId }}"},{"name":"X-API-KEY","value":"={{ $('Configure').item.json.apiKey }}"}]}},"typeVersion":4.2},{"id":"12e28f73-403b-4459-98f6-df6cf66ce169","name":"Validate Post","type":"n8n-nodes-base.httpRequest","notes":"Validates the post before publishing. Returns { valid: true } or a 400 with errors.","position":[1536,816],"parameters":{"url":"={{ $('Configure').item.json.apiBase + '/posts/' + $json.id + '/validate' }}","options":{"response":{"response":{"neverError":true}}},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"X-API-ID","value":"={{ $('Configure').item.json.apiId }}"},{"name":"X-API-KEY","value":"={{ $('Configure').item.json.apiKey }}"}]}},"typeVersion":4.2},{"id":"618aaa2a-b0be-441b-9799-3ce858703b64","name":"Post Valid?","type":"n8n-nodes-base.if","notes":"TRUE → change stage to schedule/publishNow. FALSE → stop with validation error details.","position":[1744,816],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"cond-post-valid","operator":{"type":"boolean","operation":"true"},"leftValue":"={{ $json.valid }}","rightValue":true}]}},"typeVersion":2.2},{"id":"41a6c82b-ae0d-4dd2-98c0-785f79fc4b19","name":"Change Stage","type":"n8n-nodes-base.httpRequest","notes":"Moves the post to the configured stage (schedule or publishNow). Set in Configure node.","position":[2288,864],"parameters":{"url":"={{ $('Configure').item.json.apiBase + '/posts/' + $('Create Post').item.json.id + '/stage/' + $('Configure').item.json.stage }}","method":"PATCH","options":{},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"X-API-ID","value":"={{ $('Configure').item.json.apiId }}"},{"name":"X-API-KEY","value":"={{ $('Configure').item.json.apiKey }}"}]}},"typeVersion":4.2},{"id":"50d3d293-2f4b-4b9b-8c8d-84776ab3b07f","name":"Post Published","type":"n8n-nodes-base.set","notes":"Workflow completed successfully.","position":[2512,864],"parameters":{"options":{},"assignments":{"assignments":[{"id":"out-001","name":"success","type":"boolean","value":true},{"id":"out-002","name":"message","type":"string","value":"Post successfully handed off to Swonkie."},{"id":"out-003","name":"postId","type":"string","value":"={{ $('Create Post').item.json.id }}"},{"id":"out-004","name":"stage","type":"string","value":"={{ $('Configure').item.json.stage }}"}]}},"typeVersion":3.4},{"id":"7df1da80-b229-4647-b488-f8f323ae6752","name":"Media Processing Failed","type":"n8n-nodes-base.stopAndError","notes":"Media processing returned ERROR status. The file was uploaded but Swonkie's async processor could not handle it. It may be corrupt, too large, in an unsupported format, or have incompatible specs. Try re-uploading a different file.","position":[1088,944],"parameters":{"errorMessage":"=Media processing failed for mediaId {{ $('Create Media Entry').item.json.id }}. The file may be corrupt or in an unsupported format."},"typeVersion":1},{"id":"9676ef6b-deb7-4c11-a7a6-e917e7a81257","name":"Validation Failed","type":"n8n-nodes-base.stopAndError","notes":"Post failed validation. The error message contains details from the Swonkie API.","position":[1984,928],"parameters":{"errorMessage":"=Post validation failed for postId {{ $('Create Post').item.json.id }}. Details: {{ JSON.stringify($json) }}"},"typeVersion":1},{"id":"f7481383-ca5f-4f5d-904b-97730e25806b","name":"Sticky - Media Upload1","type":"n8n-nodes-base.stickyNote","position":[-544,672],"parameters":{"color":2,"width":1776,"height":484,"content":"## Media Upload\n"},"typeVersion":1},{"id":"80ea18ff-59e5-465e-8d6a-55ddfa7b81e2","name":"Sticky - Post Publishing1","type":"n8n-nodes-base.stickyNote","position":[1248,672],"parameters":{"color":5,"width":884,"height":484,"content":"## Create Post"},"typeVersion":1},{"id":"5da6d3d3-0e05-41e4-a205-c7373d4ad796","name":"Sticky - Post Publishing2","type":"n8n-nodes-base.stickyNote","position":[2160,672],"parameters":{"color":4,"width":564,"height":484,"content":"## Publish Post"},"typeVersion":1},{"id":"e0ab6c97-bb2f-421a-b6db-994a41b4ef24","name":"Sticky - Post Publishing3","type":"n8n-nodes-base.stickyNote","position":[-1056,672],"parameters":{"color":7,"width":484,"height":484,"content":"## Trigger & Configure"},"typeVersion":1}],"connections":{"Start":{"main":[[{"node":"Configure","type":"main","index":0}]]},"Configure":{"main":[[{"node":"Create Media Entry","type":"main","index":0}]]},"Create Post":{"main":[[{"node":"Validate Post","type":"main","index":0}]]},"Post Valid?":{"main":[[{"node":"Change Stage","type":"main","index":0}],[{"node":"Validation Failed","type":"main","index":0}]]},"Change Stage":{"main":[[{"node":"Post Published","type":"main","index":0}]]},"Media Ready?":{"main":[[{"node":"Create Post","type":"main","index":0}],[{"node":"Media Processing Failed","type":"main","index":0}],[{"node":"Wait for Processing","type":"main","index":0}]]},"Validate Post":{"main":[[{"node":"Post Valid?","type":"main","index":0}]]},"Confirm Upload":{"main":[[{"node":"Wait for Processing","type":"main","index":0}]]},"Check Media Status":{"main":[[{"node":"Media Ready?","type":"main","index":0}]]},"Create Media Entry":{"main":[[{"node":"Download & Attach Binary","type":"main","index":0}]]},"Upload File to Blob":{"main":[[{"node":"Confirm Upload","type":"main","index":0}]]},"Wait for Processing":{"main":[[{"node":"Check Media Status","type":"main","index":0}]]},"Download & Attach Binary":{"main":[[{"node":"Upload File to Blob","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":25,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.set":{"count":2},"n8n-nodes-base.wait":{"count":1},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.stickyNote":{"count":9},"n8n-nodes-base.httpRequest":{"count":8},"n8n-nodes-base.stopAndError":{"count":2},"n8n-nodes-base.manualTrigger":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Swonkie","username":"swonkie-dev","bio":"Swonkie provides a comprehensive social media management platform allowing developers and\nn8n integrators to automate publishing and monitor analytics.","verified":false,"links":["https://swonkie.com"],"avatar":"https://gravatar.com/avatar/79011d937e1f3079bdd4ee3d7eae47e5a0a915decf5f0abca955fb4429ed080e?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":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":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":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":528,"icon":"fa:exclamation-triangle","name":"n8n-nodes-base.stopAndError","codex":{"data":{"alias":["Throw error","Error","Exception"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.stopanderror/"}]},"categories":["Core Nodes","Utility"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"input\"]","defaults":{"name":"Stop and Error","color":"#ff0000"},"iconData":{"icon":"exclamation-triangle","type":"icon"},"displayName":"Stop and Error","typeVersion":1,"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":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":33,"name":"Social Media"}],"image":[]}}