{"workflow":{"id":14923,"name":"Create and post AI social captions from WordPress blogs to Facebook, Instagram, X, and LinkedIn with GPT-4o via OpenRouter","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-04-08T14:22:18.206Z","description":"Every time you publish a blog post on WordPress, this workflow automatically creates unique, platform-optimised captions for Facebook, Instagram, Twitter and LinkedIn — and publishes them all simultaneously without any manual effort.\n\nBuilt for content creators, digital marketing agencies, SEO agencies, bloggers, and businesses that publish blog content regularly and want to maximise reach across social media without spending hours manually writing different versions for each platform.\n\n---\n\n## The Problem This Solves\n\nMost businesses publish a blog post and then either copy and paste the same text to every social media platform — which performs poorly because each platform has different audience expectations, character limits, tone and algorithm preferences — or they skip social media promotion entirely because writing four different captions for one post takes too much time.\n\nThe result is wasted content. Hours of writing a great blog post go unnoticed because the distribution is manual, inconsistent, or nonexistent.\n\nThis workflow solves that completely. One WordPress publish triggers everything. The AI writes platform-specific captions that actually match how each platform works. Every post gets promoted everywhere automatically.\n\n---\n\n## How It Works\n\n**Step 1 — WordPress Webhook Trigger**\n\nThe workflow starts the instant you publish a post on WordPress. This requires a webhook plugin installed on your WordPress site — the recommended free option is **WP Webhooks** (available on WordPress.org plugin directory). When you publish or update a post to published status, WP Webhooks sends a POST request to your n8n webhook URL with the full post data including title, content, permalink, thumbnail URL, and post type.\n\nNo polling. No scheduled checks. The workflow fires in real time the moment your post goes live.\n\n**Step 2 — Post Type and Status Filter**\n\nBefore any processing happens, the workflow checks two conditions:\n- The post type must be `post` (not page, product, or custom post type)\n- The post status must be `publish` (not draft, pending, or scheduled)\n\nThis ensures the workflow only runs for actual published blog posts and ignores everything else — drafts, page updates, WooCommerce products, and any other WordPress content types.\n\n**Step 3 — HTML to Markdown Conversion**\n\nWordPress post content arrives as raw HTML with tags, shortcodes, and formatting markup. Before sending this to an AI model, the workflow converts the HTML content to clean Markdown text using the built-in Markdown node. This removes HTML tags, cleans up formatting, and gives the AI clean, readable text that produces significantly better caption quality than feeding raw HTML.\n\n**Step 4 — Data Normalization**\n\nA Set node extracts and organises all the data needed for the rest of the workflow into clean variables:\n- `post_title` — the blog post title\n- `post_content` — the cleaned Markdown content\n- `post_link` — the full permalink URL to the published post\n- `post_thumbnail` — the featured image URL used for visual posts on Facebook and Instagram\n- `facebook_page_id` — your Facebook Page ID for the Graph API call\n- `instagram_id` — your Instagram Business Account ID for the Graph API call\n\n**Step 5 — AI Caption Generator**\n\nAn AI agent powered by OpenRouter (GPT-4o) reads the post title, link, and the first 800 characters of the post content, then generates four completely different captions — one for each platform — in a single API call.\n\nEach caption is written according to strict platform-specific guidelines:\n\n**Twitter/X caption:** Maximum 220 characters. One punchy insight or hook from the post. One to two hashtags only. Ends with the post link. Short, direct, and conversational.\n\n**Facebook caption:** Starts with a bold question or statement. Three to five bullet points of what readers will learn. Ends with the post link. Friendly and conversational tone. Maximum three hashtags.\n\n**Instagram caption:** Opens with a bold hook in the first 125 characters to survive the truncation. Three to five key takeaways as short bullet points. Ends with \"Link in bio to read the full guide.\" Three to five relevant hashtags. Does not include the URL in the body since Instagram does not make links clickable in captions.\n\n**LinkedIn caption:** Professional tone throughout. Hook or surprising statement to open. Three to four short paragraphs covering the problem, what the post covers, the key insight, and a call to action with the link. Two to three professional hashtags. Between 800 and 1200 characters total for maximum LinkedIn algorithmic reach.\n\nThe output is enforced as strict JSON via a Structured Output Parser — ensuring reliable, parseable data for the downstream publishing nodes every time.\n\n**Step 6 — Simultaneous Publishing to All Platforms**\n\nAfter caption generation, the workflow publishes to all four platforms in parallel:\n\n**Twitter/X:** The Twitter node posts the caption directly using OAuth2 authentication. No additional steps required.\n\n**Facebook:** An HTTP Request node calls the Facebook Graph API `/{page_id}/photos` endpoint, sending the Facebook caption as the message and the WordPress featured image URL as the photo. This creates a photo post with the caption on your Facebook Page, which performs significantly better than link-only posts in terms of reach and engagement.\n\n**Instagram:** Instagram publishing requires two steps as per the official Meta Graph API requirements. First, an HTTP Request node calls `/{instagram_id}/media` to create a media container with the caption and featured image URL. Second, another HTTP Request node calls `/{instagram_id}/media_publish` with the container ID returned from the first step. This is the official two-step publishing flow required by Meta.\n\n**LinkedIn:** The thumbnail image is first downloaded via an HTTP Request node (LinkedIn requires binary image data, not just a URL). Then the LinkedIn node creates a post using the downloaded image binary along with the LinkedIn caption. The post is published to your company organisation page using OAuth2 authentication.\n\n---\n\n## WordPress Plugin Required\n\nThis workflow requires a webhook plugin installed on your WordPress site to send post data to n8n when a post is published.\n\n**Recommended: WP Webhooks (Free)**\nAvailable at wordpress.org/plugins/wp-webhooks\n\nAfter installing WP Webhooks on your WordPress site:\n1. Go to Settings → WP Webhooks in your WordPress dashboard\n2. Click Send Data tab\n3. Add a new webhook\n4. Select trigger: Post Published or Post Updated\n5. Paste your n8n webhook URL as the delivery URL\n6. Save and test\n\nThe plugin will send a POST request to n8n with the full post data every time you publish a blog post.\n\n**Alternative options:**\n- WPBrutha Webhooks\n- Bit Integrations (free plugin with webhook sending)\n- Custom code using WordPress `transition_post_status` hook if you prefer a code-based approach\n\n---\n\n## Payload Structure\n\nYour n8n webhook node expects this data structure from WordPress:\n\n```json\n{\n  \"post\": {\n    \"post_title\": \"Your Blog Post Title\",\n    \"post_content\": \"<p>Your full HTML post content</p>\",\n    \"post_type\": \"post\",\n    \"post_status\": \"publish\"\n  },\n  \"post_permalink\": \"https://yoursite.com/your-post-slug/\",\n  \"post_thumbnail\": \"https://yoursite.com/wp-content/uploads/featured-image.jpg\"\n}\n```\n\nThe exact field names depend on which WordPress webhook plugin you use. Adjust the Set node field mappings to match the payload structure sent by your chosen plugin.\n\n---\n\n## Requirements\n\n- WordPress website with admin access\n- WP Webhooks plugin (free) or any WordPress webhook plugin installed and configured\n- n8n instance (self-hosted or cloud) with a publicly accessible webhook URL\n- OpenRouter API key (supports GPT-4o, Claude, Gemini, and 200+ other models)\n- Twitter/X Developer account with OAuth2 app credentials\n- Facebook Page with a System User token from Meta Business Portfolio or a long-lived Page Access Token\n- Instagram Business Account connected to your Facebook Page via Meta Business Portfolio\n- LinkedIn Company Page with OAuth2 app credentials\n\n---\n\n## Setup Steps\n\n1. Install and activate WP Webhooks on your WordPress site\n2. Copy the n8n webhook URL from the Webhook node in this workflow\n3. Configure WP Webhooks to send to your n8n webhook URL on post publish\n4. Add your OpenRouter API key to n8n credentials\n5. Connect your Twitter/X OAuth2 credentials in the Create Tweet node\n6. Add your Facebook Page Access Token or System User Token to the HTTP Query Auth credential used in Post on FB node\n7. Add the same token to the Instagram nodes — Create Media Container and Post On IG\n8. Update the `facebook_page_id` value in the Clean Data node with your actual Facebook Page ID\n9. Update the `instagram_id` value in the Clean Data node with your actual Instagram Business Account ID\n10. Connect your LinkedIn OAuth2 credentials in the Create a post node\n11. Update the LinkedIn organisation URN in the Create a post node with your actual company page URN\n12. Publish a test post on WordPress and verify all four platforms receive their posts\n\n---\n\n## Customization Options\n\n- **Change the AI model** — swap GPT-4o for any OpenRouter model including Claude Sonnet, Gemini Flash, or Mistral to reduce cost per run\n- **Adjust caption length and style** — edit the platform guidelines in the system prompt to match your brand voice or preferred posting style\n- **Add more platforms** — extend the workflow with TikTok, Pinterest, Threads, or YouTube community posts by adding nodes after the AI Agent\n- **Filter by category or tag** — add an IF node after the filter to only trigger for posts in specific WordPress categories\n- **Add a delay between platforms** — add Wait nodes between publishing steps if you prefer staggered posting\n- **Schedule posts instead of immediate publishing** — replace the direct publishing nodes with a scheduling tool like Postiz or Buffer API\n- **Content length control** — the AI currently reads the first 800 characters of post content. Increase or decrease this slice in the user prompt to give the AI more or less context\n- **Language support** — the AI will match the language of your blog post automatically. Write in Urdu, Arabic, French, or any other language and captions will be generated in the same language\n\n---\n\n## Use Cases\n\n- **SEO and digital marketing agencies** promoting client blog content across all platforms automatically\n- **Bloggers and content creators** who publish regularly and want consistent social media presence without manual effort\n- **ecommerce businesses** promoting product guides, how-to articles, and SEO content\n- **SaaS companies** distributing thought leadership content and product updates\n- **Local businesses** sharing informative blog posts about their services\n- **News and media sites** distributing articles to social audiences in real time\n\n---\n\n## Nodes Used\n\n- Webhook — receives WordPress post data on publish\n- IF — filters for published blog posts only\n- Markdown — converts HTML post content to clean text\n- Set — normalizes and extracts post data into clean variables\n- AI Agent (LangChain) — generates four platform-specific captions simultaneously\n- Structured Output Parser — enforces JSON output from the AI agent\n- OpenRouter Chat Model — powers the AI caption generation\n- Twitter node — publishes to Twitter/X\n- HTTP Request (Facebook) — posts photo with caption to Facebook Page via Graph API\n- HTTP Request (Instagram container) — creates Instagram media container via Graph API\n- HTTP Request (Instagram publish) — publishes Instagram container to feed\n- HTTP Request (LinkedIn image) — downloads featured image binary for LinkedIn\n- LinkedIn node — publishes image post to LinkedIn company page\n\n---\n\n\n\n\n*Built with Meta Graph API v25.0, OpenRouter, Twitter API v2, and LinkedIn API. Compatible with any WordPress site running version 4.7 or above with the WordPress REST API enabled.*\n\n\n","workflow":{"meta":{"instanceId":"4f3d674a636d1510e4120a3e346e6ed10c98f6398c5a8f2f5294ee80b39a7bc0","templateCredsSetupCompleted":true},"nodes":[{"id":"60012318-0c2b-4bfa-ae56-f84f9b56cd53","name":"Webhook","type":"n8n-nodes-base.webhook","position":[0,16],"webhookId":"6dc2aea4-38c8-4d0e-8e8c-6bf231f50056","parameters":{"path":"6dc2aea4-38c8-4d0e-8e8c-6bf231f50056","options":{},"httpMethod":"POST"},"typeVersion":2.1},{"id":"9ba8a0de-54b8-4a9b-96ff-a40c8e97624a","name":"HTML To Markdown","type":"n8n-nodes-base.markdown","position":[448,16],"parameters":{"html":"={{ $('Webhook').item.json.body.post.post_content }}","options":{}},"typeVersion":1},{"id":"91670d70-7be8-43a8-a3ec-c7f865c5f2a1","name":"If","type":"n8n-nodes-base.if","position":[224,16],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"e0bda018-2dd1-4c65-bc2d-77d219981ad5","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.body.post.post_type }}","rightValue":"post"},{"id":"9be02a9a-ae8c-4ce4-8dea-dfadd7a630cd","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.body.post.post_status }}","rightValue":"publish"}]}},"typeVersion":2.3},{"id":"c9deca50-1d77-48cb-90c2-8abea2baeba8","name":"Clean Data","type":"n8n-nodes-base.set","position":[672,16],"parameters":{"options":{},"assignments":{"assignments":[{"id":"ac7c00ef-8f72-4898-b78b-2bbf5b62ea11","name":"post_title","type":"string","value":"={{ $json.body.post.post_title }}"},{"id":"3ba2adcd-b031-418b-a739-dd93b6ada23b","name":"post_content","type":"string","value":"={{ $json.data }}"},{"id":"a8c96599-d650-4cdb-91c5-8a94872d42de","name":"post_link","type":"string","value":"={{ $('Webhook').item.json.body.post_permalink }}"},{"id":"e6a65c63-deff-4aaa-b5c6-c323f8b10069","name":"post_thumbnail","type":"string","value":"={{ $('Webhook').item.json.body.post_thumbnail }}"},{"id":"f849fd26-fbc3-4b6f-af75-c3896d9dba87","name":"facebook_page_id","type":"string","value":"788563884350153"},{"id":"ed237fa5-3ab4-4815-a120-36a1ed4e2e04","name":"instagram_id","type":"string","value":"17841478701285041"}]}},"typeVersion":3.4},{"id":"c99c8c5e-6172-4f4f-8090-180932fa07c0","name":"AI Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[896,16],"parameters":{"text":"=Post Title: {{ $json.post_title }}\nPost Link: {{ $json.post_link }}\nPost Content: {{ $json.post_content.slice(0, 800) }}\n\nGenerate platform-specific social media captions for this blog post now.","options":{"systemMessage":"# Role\nYou are a professional social media content writer.\nYou write platform-specific captions when a new blog \npost is published on a WordPress website.\n\n# Your Job\nRead the post title, link, and content.\nThen write one caption for each platform below.\nEach caption must match that platform's style, \ntone, length, and best practices.\n\n# Platform Guidelines\n\nTWITTER:\n- Max 220 characters including the link\n- One punchy insight or hook from the post\n- 1 to 2 relevant hashtags only\n- End with the post link\n- Tone: short, direct, conversational\n\nFACEBOOK:\n- Max 300 characters for the hook line\n- Start with a bold question or statement\n- 2 to 3 bullet points of what readers will learn\n- End with the post link\n- Tone: friendly, conversational\n- No more than 3 hashtags\n\nINSTAGRAM:\n- Start with a bold hook in the first 125 characters\n- 3 to 5 key takeaways as short bullet points\n- End with: Link in bio to read the full guide\n- Add 3 to 5 relevant hashtags at the bottom\n- Tone: engaging, direct, value-driven\n- Do NOT include the link in the caption body\n\nLINKEDIN:\n- Professional tone\n- Start with a bold insight or surprising statement\n- Write 3 to 4 short paragraphs:\n  Paragraph 1: the hook or problem\n  Paragraph 2: what the post covers\n  Paragraph 3: key takeaway or insight\n  Paragraph 4: call to action with the link\n- 2 to 3 professional hashtags at the end\n- Between 800 and 1200 characters total\n\n# Output Format\nReturn ONLY a valid JSON object.\nNo explanation. No markdown. No extra text.\nJust the raw JSON like this:\n\n{\n  \"twitter\": \"your twitter caption here\",\n  \"facebook\": \"your facebook caption here\",\n  \"instagram\": \"your instagram caption here\",\n  \"linkedin\": \"your linkedin caption here\"\n}"},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"66af76e5-3bbb-4f00-afca-aaf471ea68cf","name":"Structured Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1040,240],"parameters":{"jsonSchemaExample":"{\n  \"twitter\": \"string\",\n  \"facebook\": \"string\",\n  \"instagram\": \"string\",\n  \"linkedin\": \"string\"\n}"},"typeVersion":1.3},{"id":"8c6f0b78-541a-4072-a70e-1e98ee6b3823","name":"OpenRouter Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenRouter","position":[912,240],"parameters":{"model":"openai/gpt-4o","options":{}},"credentials":{"openRouterApi":{"id":"BbZPIgDQoBUqDzyJ","name":"OpenRouter account"}},"typeVersion":1},{"id":"b1961efd-2123-44fe-b85c-55666c5a5446","name":"Create Tweet","type":"n8n-nodes-base.twitter","position":[1408,-272],"parameters":{"text":"={{ $json.output.twitter }}","additionalFields":{}},"credentials":{"twitterOAuth2Api":{"id":"Y5LtIeDnq4G4aik9","name":"X account"}},"typeVersion":2},{"id":"c2f0c3db-a8b0-459e-921c-fdcb63dcdc63","name":"Create a post","type":"n8n-nodes-base.linkedIn","position":[1600,400],"parameters":{"text":"={{ $json.output.linkedin }}","postAs":"organization","organization":"your_org_URN","additionalFields":{},"shareMediaCategory":"IMAGE"},"credentials":{"linkedInOAuth2Api":{"id":"RHygbLmsqQJcY64L","name":"LinkedIn account"}},"typeVersion":1},{"id":"991f738a-894e-4dcd-890b-3b808de9659d","name":"Post on FB","type":"n8n-nodes-base.httpRequest","position":[1392,-80],"parameters":{"url":"=https://graph.facebook.com/v25.0/{{ $('Clean Data').item.json.facebook_page_id }}/photos","method":"POST","options":{},"sendQuery":true,"authentication":"genericCredentialType","genericAuthType":"httpQueryAuth","queryParameters":{"parameters":[{"name":"message","value":"={{ $json.output.facebook }}"},{"name":"url","value":"={{ $('Clean Data').item.json.post_thumbnail }}"}]}},"credentials":{"httpQueryAuth":{"id":"M3XA2TSYgympu8ca","name":"Test"}},"typeVersion":4.3},{"id":"c5855820-3179-46b8-95e7-c188b12ddfba","name":"Create Media Container","type":"n8n-nodes-base.httpRequest","position":[1392,96],"parameters":{"url":"=https://graph.facebook.com/v25.0/{{ $('Clean Data').item.json.instagram_id }}/media","method":"POST","options":{},"sendQuery":true,"authentication":"genericCredentialType","genericAuthType":"httpQueryAuth","queryParameters":{"parameters":[{"name":"caption","value":"={{ $json.output.instagram }}"},{"name":"image_url","value":"={{ $('Clean Data').item.json.post_thumbnail }}"}]}},"credentials":{"httpQueryAuth":{"id":"M3XA2TSYgympu8ca","name":"Test"}},"typeVersion":4.3},{"id":"92ead471-dfcc-45c7-8b77-b2c8032f98a3","name":"Post On IG","type":"n8n-nodes-base.httpRequest","position":[1600,96],"parameters":{"url":"=https://graph.facebook.com/v25.0/{{ $('Clean Data').item.json.instagram_id }}/media_publish","method":"POST","options":{},"sendQuery":true,"authentication":"genericCredentialType","genericAuthType":"httpQueryAuth","queryParameters":{"parameters":[{"name":"creation_id","value":"={{ $json.id }}"}]}},"credentials":{"httpQueryAuth":{"id":"M3XA2TSYgympu8ca","name":"Test"}},"typeVersion":4.3},{"id":"bb161802-79a5-4459-9ca5-fcc0b3b06c6b","name":"HTTP Request","type":"n8n-nodes-base.httpRequest","position":[1376,400],"parameters":{"url":"={{ $('Clean Data').item.json.post_thumbnail }}","options":{}},"typeVersion":4.3},{"id":"50912aa0-9900-45f8-b43c-b1904fa2b258","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-560,-336],"parameters":{"width":480,"height":608,"content":"## AI Agent for Auto Posting WordPress Blogs to Social Media\n\n### How it works\n\n1. The workflow starts with a webhook trigger. \n2. If conditions are met, HTML is converted to Markdown. \n3. Cleansed data is processed by an AI agent. \n4. Outputs are distributed to various social media platforms. \n5. HTTP Requests manage additional media handling for posts.\n\n### Setup steps\n\n- [ ] Set up the webhook trigger URL.\n- [ ] Configure conditional logic in the 'If' node.\n- [ ] Connect API credentials for AI, Twitter, Facebook, Instagram, and LinkedIn.\n- [ ] Ensure correct endpoint and data formatting in HTTP Request nodes.\n\n### Customization\n\nConsider modifying API endpoints or authentication methods for different platforms."},"typeVersion":1},{"id":"d4aa1839-ff0b-4810-a41e-1d46d09d2336","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-64,-128],"parameters":{"color":7,"width":416,"height":304,"content":"## Webhook Trigger and Condition\n\nInitial trigger through a webhook and conditional branching."},"typeVersion":1},{"id":"cf53d3f0-6682-44ad-bf84-f9e9087fc539","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[400,-128],"parameters":{"color":7,"width":416,"height":304,"content":"## Markdown Conversion and Clean Data\n\nConverts HTML content to markdown format and cleans up the data for AI processing."},"typeVersion":1},{"id":"54c6939c-e695-4434-87d6-59334f2148fd","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[832,-128],"parameters":{"color":7,"width":352,"height":512,"content":"## AI Processing\n\nProcesses cleansed data with an AI agent and generates structured output."},"typeVersion":1},{"id":"787f2c8a-8de2-4f1b-9adb-0bcb7cd3702e","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[1328,-432],"parameters":{"color":7,"width":400,"height":688,"content":"## Social Media Publishing\n\nPublishes content to various social media platforms including Twitter, Facebook, and Instagram."},"typeVersion":1},{"id":"89ae2c2f-7101-4a89-80ce-5fe87ea7d467","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[1328,288],"parameters":{"color":7,"width":416,"height":304,"content":"## LinkedIn Posting\n\nHandles the creation and management of LinkedIn posts."},"typeVersion":1}],"pinData":{},"connections":{"If":{"main":[[{"node":"HTML To Markdown","type":"main","index":0}]]},"Webhook":{"main":[[{"node":"If","type":"main","index":0}]]},"AI Agent":{"main":[[{"node":"Create Tweet","type":"main","index":0},{"node":"Post on FB","type":"main","index":0},{"node":"Create Media Container","type":"main","index":0},{"node":"HTTP Request","type":"main","index":0}]]},"Clean Data":{"main":[[{"node":"AI Agent","type":"main","index":0}]]},"Create Tweet":{"main":[[]]},"HTTP Request":{"main":[[{"node":"Create a post","type":"main","index":0}]]},"HTML To Markdown":{"main":[[{"node":"Clean Data","type":"main","index":0}]]},"OpenRouter Chat Model":{"ai_languageModel":[[{"node":"AI Agent","type":"ai_languageModel","index":0}]]},"Create Media Container":{"main":[[{"node":"Post On IG","type":"main","index":0}]]},"Structured Output Parser":{"ai_outputParser":[[{"node":"AI Agent","type":"ai_outputParser","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":19,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.twitter":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.linkedIn":{"count":1},"n8n-nodes-base.markdown":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.httpRequest":{"count":4},"@n8n/n8n-nodes-langchain.agent":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenRouter":{"count":1},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Salman Mehboob","username":"salmanmehboob","bio":"n8n Automation Engineer with 3+ years building real-world workflows for agencies and businesses. I specialize in AI pipelines, voice automation with Vapi, lead scraping, outreach systems and API integrations. I build things that actually work in production not just demos.","verified":true,"links":["https://www.linkedin.com/in/salman-mehboob-pro/"],"avatar":"https://gravatar.com/avatar/79052fec3c66eab8385100f0bd2d0019602ebf0948148ba84d9cfa5f830e07c4?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":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":325,"icon":"file:x.svg","name":"n8n-nodes-base.twitter","codex":{"data":{"alias":["Tweet","Twitter","X","X API"],"resources":{"generic":[{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.twitter/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/twitter/"}]},"categories":["Marketing"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"output\"]","defaults":{"name":"X"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIzLjMxNzEgMTYuOTM3M0wzNy45MDI2IDBIMzQuNDQ2M0wyMS43ODE3IDE0LjcwNjRMMTEuNjY2NiAwSDBMMTUuMjk2MSAyMi4yMzg3TDAgNDBIMy40NTY0OEwxNi44MzA2IDI0LjQ2OTZMMjcuNTEyOSA0MEgzOS4xNzk1TDIzLjMxNjMgMTYuOTM3M0gyMy4zMTcxWk0xOC41ODMgMjIuNDM0NkwxNy4wMzMyIDIwLjIyMDFMNC43MDE5IDIuNTk5MzZIMTAuMDEwOEwxOS45NjIzIDE2LjgxOTlMMjEuNTEyMiAxOS4wMzQ0TDM0LjQ0NzkgMzcuNTE4OUgyOS4xMzlMMTguNTgzIDIyLjQzNTRWMjIuNDM0NloiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo="},"displayName":"X (Formerly Twitter)","typeVersion":2,"nodeCategories":[{"id":27,"name":"Marketing"}]},{"id":367,"icon":"file:linkedin.svg","name":"n8n-nodes-base.linkedIn","codex":{"data":{"resources":{"generic":[{"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"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.linkedin/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/linkedin/"}]},"categories":["Marketing","Communication"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"LinkedIn"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjcgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEiIHk9IjEiLz48c3ltYm9sIGlkPSJhIiBvdmVyZmxvdz0idmlzaWJsZSI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBzdHJva2U9Im5vbmUiPjxwYXRoIGZpbGw9IiMwMTc3YjUiIGQ9Ik01OS4yNiAwSDQuNzI0QzIuMTIgMCAwIDIuMDY2IDAgNC42MXY1NC43ODhjMCAyLjUzIDIuMTIgNC42IDQuNzI0IDQuNmg1NC41NGMyLjYxIDAgNC43MzYtMi4wNyA0LjczNi00LjZWNC42MUM2NCAyLjA2NiA2MS44NzQgMCA1OS4yNiAwIi8+PHBhdGggZD0iTTkuNDkgMjMuOTkySDE5djMwLjU0SDkuNDl6bTQuNzQ4LTE1LjJjMy4wMzQgMCA1LjUgMi40NjYgNS41IDUuNWE1LjUxIDUuNTEgMCAwIDEtNS40OTggNS41MDYgNS41MiA1LjUyIDAgMCAxLTUuNTA4LTUuNTA2IDUuNSA1LjUgMCAwIDEgNS41MDYtNS41bTEwLjcgMTUuMmg5LjEwNHY0LjE3NGguMTI2YzEuMjY4LTIuNCA0LjM2NC00LjkzMiA5LTQuOTMyIDkuNjEyIDAgMTEuMzg2IDYuMzI2IDExLjM4NiAxNC41NDh2MTYuNzUyaC05LjQ4NlYzOS42NzhjMC0zLjU0LS4wNjQtOC4xLTQuOTMyLTguMS00Ljk0IDAtNS43IDMuODYtNS43IDcuODR2MTUuMTA4aC05LjQ4NHYtMzAuNTR6Ii8+PC9nPjwvc3ltYm9sPjwvc3ZnPg=="},"displayName":"LinkedIn","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"},{"id":27,"name":"Marketing"}]},{"id":564,"icon":"file:markdown.svg","name":"n8n-nodes-base.markdown","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.markdown/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"output\"]","defaults":{"name":"Markdown"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM3LjExNjQgMzIuNjE4N0gyLjg4MzU3QzIuNTA0OSAzMi42MTg3IDIuMTI5OTMgMzIuNTQ0MSAxLjc4MDA4IDMyLjM5OTJDMS40MzAyMyAzMi4yNTQzIDEuMTEyMzQgMzIuMDQxOSAwLjg0NDU3OSAzMS43NzQxQzAuNTc2ODE1IDMxLjUwNjQgMC4zNjQ0MTIgMzEuMTg4NSAwLjIxOTQ5OSAzMC44Mzg2QzAuMDc0NTg1OCAzMC40ODg4IDAgMzAuMTEzOCAwIDI5LjczNTFWMTAuODgzNkMwIDEwLjExODggMC4zMDM4MDQgOS4zODUzNSAwLjg0NDU3OSA4Ljg0NDU4QzEuMzg1MzUgOC4zMDM4IDIuMTE4OCA4IDIuODgzNTcgOEgzNy4xMTY0QzM3LjQ5NTEgOCAzNy44NzAxIDguMDc0NTkgMzguMjE5OSA4LjIxOTVDMzguNTY5OCA4LjM2NDQxIDM4Ljg4NzcgOC41NzY4MSAzOS4xNTU0IDguODQ0NThDMzkuNDIzMiA5LjExMjM0IDM5LjYzNTYgOS40MzAyMyAzOS43ODA1IDkuNzgwMDhDMzkuOTI1NCAxMC4xMjk5IDQwIDEwLjUwNDkgNDAgMTAuODgzNlYyOS43MzE4QzQwLjAwMDIgMzAuMTEwNiAzOS45MjU4IDMwLjQ4NTggMzkuNzgxIDMwLjgzNThDMzkuNjM2MiAzMS4xODU5IDM5LjQyMzggMzEuNTAzOSAzOS4xNTYgMzEuNzcxOUMzOC44ODgyIDMyLjAzOTggMzguNTcwMyAzMi4yNTI0IDM4LjIyMDMgMzIuMzk3NEMzNy44NzAzIDMyLjU0MjQgMzcuNDk1MiAzMi42MTg3IDM3LjExNjQgMzIuNjE4N1pNOS42MTQxMyAyNi44NDgyVjE5LjM0NzZMMTMuNDYxMSAyNC4xNTYzTDE3LjMwNjQgMTkuMzQ3NlYyNi44NDgySDIxLjE1MzRWMTMuNzcyMUgxNy4zMDY0TDEzLjQ2MTEgMTguNTgwOUw5LjYxNDEzIDEzLjc3MjFINS43NjcxNVYyNi44NTE2TDkuNjE0MTMgMjYuODQ4MlpNMzUuMzg2MyAyMC4zMDk0SDMxLjUzOTNWMTMuNzcwNUgyNy42OTRWMjAuMzA5NEgyMy44NDdMMjkuNjE1OCAyNy4wNDE2TDM1LjM4NjMgMjAuMzA5NFoiIGZpbGw9IiMzODM4MzkiLz4KPC9zdmc+Cg=="},"displayName":"Markdown","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1179,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.outputParserStructured","codex":{"data":{"alias":["json","zod"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Structured Output Parser"},"iconData":{"icon":"code","type":"icon"},"displayName":"Structured Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1281,"icon":"file:openrouter.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenRouter","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenrouter/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenRouter Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjOTRBM0I4IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5PcGVuUm91dGVyPC90aXRsZT48cGF0aCBkPSJNMTYuODA0IDEuOTU3bDcuMjIgNC4xMDV2LjA4N0wxNi43MyAxMC4yMWwuMDE3LTIuMTE3LS44MjEtLjAzYy0xLjA1OS0uMDI4LTEuNjExLjAwMi0yLjI2OC4xMS0xLjA2NC4xNzUtMi4wMzguNTc3LTMuMTQ3IDEuMzUyTDguMzQ1IDExLjAzYy0uMjg0LjE5NS0uNDk1LjMzNi0uNjguNDU1bC0uNTE1LjMyMi0uMzk3LjIzNC4zODUuMjMuNTMuMzM4Yy40NzYuMzE0IDEuMTcuNzk2IDIuNzAxIDEuODY2IDEuMTEuNzc1IDIuMDgzIDEuMTc3IDMuMTQ3IDEuMzUybC4zLjA0NWMuNjk0LjA5MSAxLjM3NS4wOTQgMi44MjUuMDMzbC4wMjItMi4xNTkgNy4yMiA0LjEwNXYuMDg3TDE2LjU4OSAyMmwuMDE0LTEuODYyLS42MzUuMDIyYy0xLjM4Ni4wNDItMi4xMzcuMDAyLTMuMTM4LS4xNjItMS42OTQtLjI4LTMuMjYtLjkyNi00Ljg4MS0yLjA1OWwtMi4xNTgtMS41YTIxLjk5NyAyMS45OTcgMCAwMC0uNzU1LS40OThsLS40NjctLjI4YTU1LjkyNyA1NS45MjcgMCAwMC0uNzYtLjQzQzIuOTA4IDE0LjczLjU2MyAxNC4xMTYgMCAxNC4xMTZWOS44ODhsLjE0LjAwNGMuNTY0LS4wMDcgMi45MS0uNjIyIDMuODA5LTEuMTI0bDEuMDE2LS41OC40MzgtLjI3NGMuNDI4LS4yOCAxLjA3Mi0uNzI2IDIuNjg2LTEuODUzIDEuNjIxLTEuMTMzIDMuMTg2LTEuNzggNC44ODEtMi4wNTkgMS4xNTItLjE5IDEuOTc0LS4yMTMgMy44MTQtLjEzOGwuMDItMS45MDd6Ij48L3BhdGg+PC9zdmc+Cg=="},"displayName":"OpenRouter Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":33,"name":"Social Media"},{"id":51,"name":"Multimodal AI"}],"image":[]}}