{"workflow":{"id":14893,"name":"Reply to Instagram ad comments with GPT-4o, Google Docs, and Slack","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-04-08T10:02:08.228Z","description":"\n\nNever miss a lead from your Instagram ads again. This workflow automatically monitors every comment on your Instagram ad posts in real time, classifies the comment using AI, and takes the right action instantly — whether that is replying with accurate information from your knowledge base, thanking a happy customer, or alerting your team about a negative review that needs human attention.\n\nBuilt for agencies, service businesses, and ecommerce brands running Instagram ad campaigns who are losing potential clients because comments go unanswered for hours — or worse, never get a reply at all.\n\n---\n\n## The Problem This Solves\n\nWhen you run Instagram ads, your comment section becomes your most active sales channel. Potential customers ask about pricing, timelines, and services directly in the comments. Happy customers leave reviews. Unhappy ones post complaints. Competitors spam your section with their own links.\n\nManaging all of this manually is impossible at scale:\n\n- Comments come in at 2am when your team is offline\n- A single active ad can receive hundreds of comments per day\n- Slow replies mean lost leads — potential clients move on to competitors who respond faster\n- Inconsistent replies from different team members destroy brand voice\n- Negative comments that go unanswered damage ad performance and brand reputation\n- Spam comments clutter your section and reduce trust from real prospects\n\nThis workflow solves every one of these problems automatically.\n\n---\n\n## How It Works\n\n**Step 1 — Real-Time Instagram Webhook Trigger**\n\nThe workflow fires the instant someone comments on your Instagram ad post. No polling. No delays. The comment is received within seconds via the Meta Graph API webhook, giving you a response time advantage that manual management can never match.\n\n**Step 2 — Smart Filter**\n\nBefore any processing happens, the workflow checks three things:\n- The comment field is confirmed as a real comment (not a like or post update)\n- The comment is not from your own account (prevents reply loops)\n- The post is an ad post (media_product_type = AD)\n\nThis ensures only relevant, genuine comments from real users trigger the workflow.\n\n**Step 3 — Fetch Full Comment Details**\n\nThe workflow calls the Instagram Graph API to retrieve the full comment data including the commenter username, exact comment text, and comment ID needed for replying.\n\n**Step 4 — Fetch Ad Post Content**\n\nThe workflow fetches the caption and details of the ad post the comment was left on. This is critical context for the AI — it needs to understand what is being advertised before it can classify or answer the comment accurately.\n\n**Step 5 — Clean and Normalize Data**\n\nAll extracted data is normalized into clean variables: post text, post permalink, comment text, comment ID, and commenter username. This makes all downstream nodes simple and reliable.\n\n**Step 6 — AI Comment Classifier**\n\nAn AI agent powered by OpenRouter (GPT-4o) reads both the post caption and the comment together and classifies the comment into one of four categories:\n\n- **QUERY** — The person is asking about the service, price, timeline, or process\n- **POSITIVE_REVIEW** — The person is expressing satisfaction or giving a compliment\n- **NEGATIVE_REVIEW** — The person is complaining, expressing frustration, or calling the service fake\n- **SPAM** — The comment is irrelevant, promotional, or from a bot\n\nThe classifier also returns a confidence level: HIGH, MEDIUM, or LOW. This structured output is enforced via a JSON output parser ensuring 100% reliable downstream routing.\n\n**Step 7 — Switch Node Routes to the Right Branch**\n\nBased on the classification the workflow splits into four paths:\n\n**QUERY Branch:**\nThe AI reply agent searches your Google Docs knowledge base for the answer. If found it writes a clear, helpful, human-sounding public reply that answers the question and ends with a soft call to action. If the answer is not in the knowledge base it redirects the user to your DM or WhatsApp without making up information. The reply is posted directly to Instagram via the Graph API.\n\n**POSITIVE_REVIEW Branch:**\nThe AI reply agent writes a warm, genuine thank-you reply without consulting the knowledge base. It keeps it short, sounds human, and subtly encourages others to try the service. The reply is posted directly to Instagram via the Graph API.\n\n**NEGATIVE_REVIEW Branch:**\nNo auto reply is posted. Instead a detailed Slack alert is sent immediately to your team with the commenter username, the full comment text, and a prompt to handle it manually. Negative comments require human judgment and empathy — this workflow keeps humans in control of the most sensitive interactions.\n\n**SPAM Branch:**\nNo action taken. The comment is ignored completely. No reply, no alert, no wasted API calls.\n\n---\n\n## What Makes This Workflow Unique\n\nMost Instagram comment automation tools either reply to everything with the same canned message, or require expensive third-party subscriptions like ManyChat or Spur. This workflow does something none of them do:\n\n- **Two-context AI classification** — the classifier reads both the post content AND the comment together, not just the comment in isolation. This produces dramatically more accurate classifications, especially for short or ambiguous comments\n- **Knowledge base powered replies** — answers come from your actual business document, not hallucinated AI responses. When information is not available the AI redirects to your team rather than guessing\n- **Confidence-based routing** — the classifier flags low confidence cases so you can add human review for uncertain classifications\n- **Negative review human handoff** — negative comments are never auto-replied to. Your team gets instant Slack alerts with full context to handle reputation-sensitive situations personally\n- **Free to run** — uses your own OpenRouter API key and Meta Graph API. No third-party subscription required\n\n---\n\n## Requirements\n\n- Instagram Business Account connected to a Facebook Page\n- Meta Developer App with webhooks configured for Instagram comments\n- System User token from Meta Business Portfolio with instagram_basic and pages_read_engagement permissions\n- n8n instance (self-hosted or cloud) with the webhook URL registered in Meta Developer Dashboard\n- OpenRouter API key (supports GPT-4o, Gemini, Claude, and 200+ other models)\n- Google Docs OAuth2 credentials with a knowledge base document prepared\n- Slack API credentials with a channel configured for negative review alerts\n- ngrok or a public HTTPS URL if running n8n locally\n\n---\n\n## Setup Steps\n\n1. Create your Meta Developer App and configure Instagram webhooks pointing to your n8n webhook URL\n2. Subscribe your Instagram Business Account to the app using the Facebook Page subscribed_apps endpoint\n3. Generate a System User token in Meta Business Portfolio with the required permissions\n4. Create your knowledge base as a Google Doc with your services, prices, FAQs and contact information\n5. Add your OpenRouter API key to n8n credentials\n6. Connect your Google Docs OAuth2 account and update the document ID in the Knowledge Base tool node\n7. Connect your Slack account and update the channel or user ID in the Inform User node\n8. Update the filter condition with your Instagram username to prevent reply loops\n9. Activate the workflow and test by commenting on one of your Instagram ad posts\n\n---\n\n## Customization Options\n\n- **Change the AI model** — swap GPT-4o for any OpenRouter model including Claude, Gemini Flash, or Mistral to control cost\n- **Extend the knowledge base** — add product FAQs, testimonials, pricing tables, or process explanations to improve answer quality\n- **Add Instagram DM** — extend the QUERY branch to also send a private DM with your WhatsApp link or service proposal alongside the public reply\n- **Add Telegram alerts** — replace or complement Slack with Telegram notifications for negative reviews\n- **Extend to Facebook** — the classifier and reply logic works identically for Facebook page comments. Add a second webhook trigger for Facebook and merge both into the same classification flow\n- **Add confidence gating** — route LOW confidence classifications to a Slack approval queue before posting any reply\n- **Localization** — the system prompt handles Urdu, English, and mixed language automatically. Extend to any other language by adding examples to the classifier prompt\n\n---\n\n## Use Cases\n\n- **SEO and digital marketing agencies** managing multiple client Instagram accounts and ad campaigns\n- **Service businesses** running Instagram ads for consulting, coaching, legal, medical, or educational services\n- **Ecommerce brands** receiving high volumes of product questions on sponsored posts\n- **Real estate agencies** handling inquiries on property listing ads\n- **Any business** that spends money on Instagram ads and cannot afford to let leads go cold in the comment section\n\n---\n\n## Nodes Used\n\n- Webhook — Instagram comment trigger\n- Filter — comment validation and ad post check\n- HTTP Request — Instagram Graph API for comment details and ad post content\n- IF — comment text existence check\n- Set — data normalization\n- AI Agent (LangChain) — comment classifier with structured output\n- AI Agent (LangChain) — comment reply generator\n- Structured Output Parser — enforces JSON classification output\n- OpenRouter Chat Model — powers both AI agents\n- Google Docs Tool — knowledge base retrieval\n- Switch — routes to correct branch based on classification\n- HTTP Request — posts reply to Instagram via Graph API\n- Slack — sends negative review alert to team\n\n---\n\n*Built with Meta Graph API v25.0 and OpenRouter. Tested on Instagram Business accounts connected via Facebook Business Portfolio System Users.*\n\n## 📩 Support & Contact\n\n- 📧 Email: [salmanmehboob1947@gmail.com](mailto:salmanmehboob1947@gmail.com)  \n- 💼 LinkedIn: [Salman Mehboob](https://www.linkedin.com/in/salman-mehboob-pro/)","workflow":{"meta":{"instanceId":"4f3d674a636d1510e4120a3e346e6ed10c98f6398c5a8f2f5294ee80b39a7bc0","templateCredsSetupCompleted":true},"nodes":[{"id":"d136c605-b544-40a4-96ca-de25a63bb588","name":"Filter","type":"n8n-nodes-base.filter","position":[-48,16],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"04588ffc-3323-4794-8d75-7e2820ea39d1","operator":{"type":"string","operation":"notEquals"},"leftValue":"={{ $json.body.entry[0].changes[0].value.from.username }}","rightValue":"YOUR PAGE ID"},{"id":"154fc83b-cbef-477b-adce-02a233b5a9e1","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.body.entry[0].changes[0].field }}","rightValue":"comments"},{"id":"1b2aef0f-02de-4883-9a63-dbc4a8edfdf7","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.body.entry[0].changes[0].value.media.media_product_type }}","rightValue":"AD"}]}},"typeVersion":2.3},{"id":"f8d8f2d9-a530-4b25-8113-129c83823a76","name":"Trigger on Instagram Comment","type":"n8n-nodes-base.webhook","position":[-256,16],"webhookId":"ecc03c31-5ab4-4261-84fb-c774e06fd579","parameters":{"path":"ecc03c31-5ab4-4261-84fb-c774e06fd579","options":{},"httpMethod":"POST"},"typeVersion":2.1},{"id":"663ae510-584c-4fd9-9572-e6354d994c49","name":"If","type":"n8n-nodes-base.if","position":[368,16],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"6c011997-5288-42ca-bc30-f5b22310951a","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{ $json.text }}","rightValue":""}]}},"typeVersion":2.3},{"id":"d0dc6713-966d-4d24-b7db-badef5115099","name":"Clean Data","type":"n8n-nodes-base.set","position":[816,0],"parameters":{"options":{},"assignments":{"assignments":[{"id":"18dbc49c-012a-406c-9ca6-c0a50075c30c","name":"post_text","type":"string","value":"={{ $json.caption }}"},{"id":"e776ff33-0112-44b0-b9ed-71f77c6bf81f","name":"post_permalink","type":"string","value":"={{ $json.permalink }}"},{"id":"db8ce601-2ad9-4fa8-9459-c1006d3d528b","name":"comment_text","type":"string","value":"={{ $('Get Commnet Details').item.json.text }}"},{"id":"5d390e42-c777-40a9-bf1a-b3802e6a9b82","name":"comment_id","type":"string","value":"={{ $('Get Commnet Details').item.json.id }}"},{"id":"d5f4f6d4-3f36-4c36-bf16-ae16e2b74d2c","name":"commentator_nusername","type":"string","value":"={{ $('Get Commnet Details').item.json.from.username }}"}]}},"typeVersion":3.4},{"id":"c2cee3df-af99-4ffa-b30e-7d97d4caba26","name":"Comment Classifier","type":"@n8n/n8n-nodes-langchain.agent","position":[1024,0],"parameters":{"text":"=Post Text: {{ $json.post_text }}\nComment Text: {{ $json.comment_text }}\n\nClassify this comment now.","options":{"systemMessage":"=# Role\nYou are a professional comment classifier for a business \nrunning service ads on Facebook and Instagram.\nYou have one job only — read a comment and classify it \ninto exactly one category.\n\n# Goal\nAnalyze the post text to understand what service or product \nis being advertised. Then analyze the comment to understand \nthe commenter's intention. Return a classification based on \nboth pieces of information together.\n\n# Classification Categories\n\nQUERY\nThe person is asking a question or requesting information.\nExamples:\n- Asking about price or packages\n- Asking how the service works\n- Asking about results or timeline\n- Asking for contact details\n- Asking if the service works for their niche or business\n\nPOSITIVE_REVIEW\nThe person is expressing satisfaction or giving a compliment.\nExamples:\n- Saying the service is good or recommended\n- Sharing a positive personal experience\n- Tagging someone to look at a good service\n- Saying masha Allah, bohat acha, great work\n\nNEGATIVE_REVIEW\nThe person is complaining or expressing dissatisfaction.\nExamples:\n- Calling the service fake or scam\n- Sharing a bad personal experience\n- Warning others not to use the service\n- Expressing anger or frustration about results\n\nSPAM\nThe comment is irrelevant or promotional.\nExamples:\n- Random emojis with no meaning\n- Someone promoting their own service or profile\n- Completely unrelated comment\n- Bot like repetitive text\n\n# Rules\n- Always read the post text first to understand context\n- Then read the comment to understand intention\n- Works for comments in Urdu, English, or mixed language\n- If comment is very short like \"nice\" or \"good\" \n  classify as POSITIVE_REVIEW\n- If comment is very short like \"?\" classify as QUERY\n- If you cannot determine clearly choose the more \n  serious category\n- Never classify based on comment alone without \n  considering post context\n- Return ONLY the JSON below with no extra text \n  no explanation no markdown\n\n# Output Format\n{\n  \"classification\": \"QUERY\" or \"POSITIVE_REVIEW\" \n  or \"NEGATIVE_REVIEW\" or \"SPAM\",\n  \"confidence\": \"LOW\" or \"MEDIUM\" or \"HIGH\"\n}\n\n# Confidence Guide\nHIGH — comment intention is very clear and obvious\nMEDIUM — comment intention is mostly clear \n  but has some ambiguity\nLOW — comment intention is unclear or could mean \n  multiple things"},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"2d593bae-c454-4464-a70a-cd9be75fd09c","name":"Structured Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1152,224],"parameters":{"jsonSchemaExample":"{\n\t\"classification\": \"string\",\n  \"confidence\": \"string\"\n}"},"typeVersion":1.3},{"id":"7bfc711e-ec2b-4736-8887-f534f22e83cd","name":"OpenRouter Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenRouter","position":[1440,224],"parameters":{"model":"openai/gpt-4o","options":{}},"credentials":{"openRouterApi":{"id":"BbZPIgDQoBUqDzyJ","name":"OpenRouter account"}},"typeVersion":1},{"id":"0a66a8ff-f7d8-442f-87d1-0982d7611669","name":"Get Ad Data","type":"n8n-nodes-base.httpRequest","position":[608,0],"parameters":{"url":"=https://graph.facebook.com/v25.0/{{ $('Filter').item.json.body.entry[0].changes[0].value.media.id }}","options":{},"sendQuery":true,"authentication":"genericCredentialType","genericAuthType":"httpQueryAuth","queryParameters":{"parameters":[{"name":"fields","value":"alt_text,caption,id,media_type,permalink"}]}},"credentials":{"httpQueryAuth":{"id":"M3XA2TSYgympu8ca","name":"Test"}},"typeVersion":4.3},{"id":"1b5654d8-eb29-44f1-a774-e6bdec4eb224","name":"Switch","type":"n8n-nodes-base.switch","position":[1680,-48],"parameters":{"rules":{"values":[{"outputKey":"POSITIVE_REVIEW","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"449a4c2a-b65a-4216-9309-0549aa6e48ec","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.classification }}","rightValue":"POSITIVE_REVIEW"}]},"renameOutput":true},{"outputKey":"NEGATIVE_REVIEW","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"68de3120-4bf9-4889-8244-1f00db5aaf4b","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.classification }}","rightValue":"NEGATIVE_REVIEW"}]},"renameOutput":true},{"outputKey":"QUERY","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"b6052353-4759-47c0-9ff4-7ee5fabbbf45","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.classification }}","rightValue":"QUERY"}]},"renameOutput":true},{"outputKey":"SPAM","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"e1cd3422-a952-4896-9600-2247dc13f54d","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.output.classification }}","rightValue":"SPAM"}]},"renameOutput":true}]},"options":{}},"typeVersion":3.4},{"id":"bfc8174b-ee23-46e7-a97d-666b29736584","name":"Knowledge Base","type":"n8n-nodes-base.googleDocsTool","position":[2288,160],"parameters":{"operation":"get","documentURL":"1iJH4TTrQgnzu8FTErlprGH-Hm4-wp7o9IFBIvPLkUeA"},"credentials":{"googleDocsOAuth2Api":{"id":"2dEWq67oWn2dDhTh","name":"Google Docs account"}},"typeVersion":2},{"id":"1434aae7-9c91-42a6-a859-733ae6b978b4","name":"Comment Generator","type":"@n8n/n8n-nodes-langchain.agent","position":[2048,-112],"parameters":{"text":"=Post Text: {{ $('Clean Data').first().json.post_text }}\n\nComment Text: {{ $('Clean Data').first().json.comment_text}}\n\nComment Classification: {{ $json.output.classification }}\nConfidence: {{ $json.output.confidence }}\n\nWrite a public reply to this comment now.","options":{"systemMessage":"=# Role\nYou are a professional and friendly social media reply \nagent for RankFlow Digital Agency. You write public \nreplies to comments on Facebook and Instagram posts \non behalf of the agency.\n\n# Goal\nWrite a short, warm, human sounding public reply to \nthe comment. The reply will be published directly \nas a comment — so output ONLY the reply text and \nnothing else.\n\n# Tool Usage\nYou have access to one tool: Knowledge Base\n\nUse the Knowledge Base tool ONLY when the comment \nis a QUERY and you need to find specific information \nlike prices, services, timelines or FAQs.\n\nDo NOT use the Knowledge Base tool when the comment \nis a POSITIVE_REVIEW. You already know how to reply \nto positive feedback.\n\n# How to Handle QUERY Comments\nStep 1 — Search the Knowledge Base for the answer\nStep 2 — If answer is found write a clear helpful reply\nStep 3 — End with a soft invitation to contact us\n\nIf the answer is NOT found in the Knowledge Base:\nDo not make up information.\nReply with this instead:\n\"Please DM us we will \nanswer all your questions personally.\"\nAdjust the language to match the comment language.\n\n# How to Handle POSITIVE_REVIEW Comments\nStep 1 — Do not use the Knowledge Base tool\nStep 2 — Thank the person warmly and genuinely\nStep 3 — Keep it to 2 sentences maximum\nStep 4 — Subtly encourage others to try the service\n\n# Reply Rules\n- Reply in the SAME language as the comment\n- Urdu comment → reply in Urdu\n- English comment → reply in English\n- Mixed comment → reply in mixed\n- Keep reply between 2 to 4 sentences\n- Sound human and warm — never robotic\n- Never start with Hello or Dear Customer\n- Use commenter first name if provided\n- Never mention you are an AI\n- Maximum 1 emoji per reply\n- Never use quotation marks in the reply\n- Never add any label or prefix like \"Reply:\" \n  or \"Response:\" before the text\n\n# Critical Output Rule\nOutput ONLY the reply text that will be posted \nas a public comment. No explanation. No JSON. \nNo markdown. No extra words. Just the reply."},"promptType":"define"},"typeVersion":3.1},{"id":"2d5f9903-930e-4731-96e2-f8e93c5ba922","name":"Reply to Comment","type":"n8n-nodes-base.httpRequest","position":[2368,-112],"parameters":{"url":"=https://graph.facebook.com/v25.0/{{ $('Clean Data').first().json.comment_id }}/replies","method":"POST","options":{},"sendBody":true,"contentType":"form-urlencoded","authentication":"genericCredentialType","bodyParameters":{"parameters":[{"name":"message","value":"={{ $json.output }}"}]},"genericAuthType":"httpQueryAuth"},"credentials":{"httpBasicAuth":{"id":"n7xcoYM4p4kL8BMo","name":"Unnamed credential"},"httpQueryAuth":{"id":"M3XA2TSYgympu8ca","name":"Test"}},"typeVersion":4.3},{"id":"ce07596d-065e-4271-aee4-68bc9170ac70","name":"Inform User","type":"n8n-nodes-base.slack","position":[2048,240],"webhookId":"a353060b-6ed7-4101-9269-dedb561c7a19","parameters":{"text":"=🚨 NEGATIVE REVIEW ALERT\n\n👤 Commenter: {{ $('Clean Data').first().json.commentator_nusername}}\n💬 Comment: {{ $('Clean Data').first().json.comment_text }}\n\n❗ Please review and reply manually on Facebook.","user":{"__rl":true,"mode":"list","value":"U09C6U7038V","cachedResultName":"salmanmehboob1947"},"select":"user","otherOptions":{}},"credentials":{"slackApi":{"id":"G2QngNnDLqdHNvky","name":"Slack account"}},"typeVersion":2.4},{"id":"66c127f6-f0cd-421d-8221-78dcbeccd4dd","name":"Get Commnet Details","type":"n8n-nodes-base.httpRequest","position":[176,16],"parameters":{"url":"=https://graph.facebook.com/v25.0/{{ $json.body.entry[0].changes[0].value.id }}","options":{},"sendQuery":true,"authentication":"genericCredentialType","genericAuthType":"httpQueryAuth","queryParameters":{"parameters":[{"name":"fields","value":"from,text,id"}]}},"credentials":{"httpQueryAuth":{"id":"M3XA2TSYgympu8ca","name":"Test"}},"typeVersion":4.3},{"id":"5e9b5acf-5520-4b12-9209-36558033a829","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-816,-368],"parameters":{"width":480,"height":800,"content":"## AI Instagram Comment Automation for Ads | Auto Reply & Lead Capture\n\n### How it works\n\n1. Triggers on an Instagram comment using a webhook.\n2. Filters and retrieves additional comment details.\n3. Evaluates conditions and fetches ad data if necessary.\n4. Processes the data using an AI model for sentiment classification.\n5. Based on classification, either replies to the comment or informs a user via Slack.\n\n### Setup steps\n\n- [ ] Set up Instagram webhook integration.\n- [ ] Configure API access for Facebook Graph API.\n- [ ] Prepare AI model for comment classification and generation.\n- [ ] Ensure Slack credentials are set up for notifications.\n\n### Customization\n\nYou can modify the AI model used for classification and the types of responses generated based on different comment types."},"typeVersion":1},{"id":"6de43bca-7f6c-4d5c-9a6d-5c4338a86ba3","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-304,-112],"parameters":{"color":7,"width":400,"height":304,"content":"## Trigger and initial filter\n\nInitiates workflow on new Instagram comment and applies basic filtering."},"typeVersion":1},{"id":"e89a2362-cab3-46a3-9976-cdd5d036c924","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[144,-224],"parameters":{"color":7,"width":150,"height":384,"content":"## Fetch comment details\n\nRetrieves detailed information about the Instagram comment."},"typeVersion":1},{"id":"84bca318-4a80-4456-ad2a-b45b903167ec","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[320,-160],"parameters":{"color":7,"width":432,"height":320,"content":"## Evaluate conditions\n\nChecks conditions and decides to fetch ad data for further processing."},"typeVersion":1},{"id":"3dbcd037-8ff8-4a53-9590-63f17cc0c444","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[768,-224],"parameters":{"color":7,"width":816,"height":576,"content":"## Data cleaning and classification\n\nCleans data and classifies comment using AI to determine sentiment or intent."},"typeVersion":1},{"id":"d35f44a2-54bb-4b96-b432-37001bcf7a2e","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[1632,-320],"parameters":{"color":7,"width":896,"height":800,"content":"## Conditional response branching\n\nBranches based on classification result: generates automated responses or sends alerts."},"typeVersion":1}],"pinData":{},"connections":{"If":{"main":[[{"node":"Get Ad Data","type":"main","index":0}]]},"Filter":{"main":[[{"node":"Get Commnet Details","type":"main","index":0}]]},"Switch":{"main":[[{"node":"Comment Generator","type":"main","index":0}],[{"node":"Inform User","type":"main","index":0}],[{"node":"Comment Generator","type":"main","index":0}],[]]},"Clean Data":{"main":[[{"node":"Comment Classifier","type":"main","index":0}]]},"Get Ad Data":{"main":[[{"node":"Clean Data","type":"main","index":0}]]},"Knowledge Base":{"ai_tool":[[{"node":"Comment Generator","type":"ai_tool","index":0}]]},"Comment Generator":{"main":[[{"node":"Reply to Comment","type":"main","index":0}]]},"Comment Classifier":{"main":[[{"node":"Switch","type":"main","index":0}]]},"Get Commnet Details":{"main":[[{"node":"If","type":"main","index":0}]]},"OpenRouter Chat Model":{"ai_languageModel":[[{"node":"Comment Classifier","type":"ai_languageModel","index":0},{"node":"Comment Generator","type":"ai_languageModel","index":0}]]},"Structured Output Parser":{"ai_outputParser":[[{"node":"Comment Classifier","type":"ai_outputParser","index":0}]]},"Trigger on Instagram Comment":{"main":[[{"node":"Filter","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":20,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.slack":{"count":1},"n8n-nodes-base.filter":{"count":1},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.httpRequest":{"count":3},"n8n-nodes-base.googleDocsTool":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":2},"@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":40,"icon":"file:slack.svg","name":"n8n-nodes-base.slack","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"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/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/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/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/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/slack/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Slack"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Slack","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"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":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":844,"icon":"fa:filter","name":"n8n-nodes-base.filter","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The Filter node can be used to filter items based on a condition. If the condition is met, the item will be passed on to the next node. If the condition is not met, the item will be omitted. Conditions can be combined together by AND(meet all conditions), or OR(meet at least one condition).","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.filter/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Filter","color":"#229eff"},"iconData":{"icon":"filter","type":"icon"},"displayName":"Filter","typeVersion":2,"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":48,"name":"AI RAG"}],"image":[]}}