{"workflow":{"id":13379,"name":"Track competitor pricing and features with BrowserAct and Google Sheets","views":29,"recentViews":0,"totalViews":29,"createdAt":"2026-02-13T14:20:45.415Z","description":"# Track competitor pricing and features from BrowserAct to Google Sheets\n\n## Introduction\n\nThis workflow automates competitive intelligence by continuously monitoring competitor websites for pricing and feature updates. It scrapes current data using BrowserAct, compares it against historical records using AI to identify specific changes (like price increases or removed features), and archives the findings in a new Google Sheet tab every week.\n\n## Target Audience\n\nProduct managers, pricing analysts, and market researchers who need to stay updated on competitor moves without manually checking websites.\n\n## How it works\n\n1. **Scheduling:** A **Weekly Trigger** initiates the workflow to ensure regular monitoring.\n2. **Database Retrieval:** The workflow fetches a list of competitor URLs and their previous scrape data from a **Google Sheet**.\n3. **Data Extraction:**\n\n\nA **BrowserAct** node visits each URL and extracts the current pricing plans and feature lists using the \"AI Competitor Spy\" template.\n4.  **AI Comparison:** An **AI Agent** (using Google Gemini Flash via OpenRouter) compares the live data against the historical data stored in the sheet. It identifies exactly what changed (e.g., \"Basic plan increased by $5\").\n5.  **Database Update:** The workflow updates the main database with the new \"Last Scrape Content\" and the date, establishing a new baseline for the next run.\n6.  **Report Generation:** After processing all competitors, a second **AI Agent** (using Google Gemini Pro) aggregates the findings into a comprehensive text report.\n7.  **Archiving:** The workflow creates a new tab in the **Google Sheet** (named with the current date) and appends the full comparative report.\n8.  **Notification:** A **Slack** message is sent to notify the team that the weekly analysis is complete.\n\n## How to set up\n\n1. **Configure Credentials:** Connect your **BrowserAct**, **OpenRouter**, **Google Sheets**, and **Slack** accounts in n8n.\n2. **Prepare BrowserAct:** Ensure the **AI Competitor Spy: Pricing & Feature Tracker** template is active in your BrowserAct library.\n3. **Prepare Google Sheet:** Create a Google Sheet with the headers listed below. Populate the `Competitor Name`, `URL`, and `row_number` columns with your targets. Leave the other columns blank initially.\n4. **Configure IDs:** Select your Google Sheet in the **Fetch links & history**, **Update Database**, and **Create New Sheet** nodes.\n\n## Google Sheet Headers\n\nTo use this workflow, create a Google Sheet with the following headers in the first row:\n\n* `row_number` (Must be populated, e.g., 1, 2, 3...)\n* `Competitor Name`\n* `URL`\n* `Last_Scrape_Content`\n* `Last_Scrape_Date`\n* `Comparison`\n\n## Requirements\n\n* **BrowserAct Account:** Required for scraping. Template: **AI Competitor Spy: Pricing & Feature Tracker**.\n* **OpenRouter Account:** Required to access Google Gemini models for analysis.\n* **Google Sheets:** Used as the database and report archive.\n* **Slack Account:** Used for notifications.\n\n## How to customize the workflow\n\n1. **Change the AI Model:** The workflow currently uses Google Gemini models. You can swap this for GPT-4 or Claude within the **OpenRouter** nodes for different analytical styles.\n2. **Add Email Alerts:** Replace or augment the **Slack** node with a **Gmail** or **SendGrid** node to email the weekly report to stakeholders.\n3. **Filter Minor Changes:** Modify the System Prompt in the **Analyze target pages** node to ignore small price changes (e.g., less than 5%) or specific formatting updates.\n\n## Need Help?\n\n* [How to Find Your BrowserAct API Key & Workflow ID](https://www.youtube.com/watch?v=pDjoZWEsZlE)\n* [How to Connect n8n to BrowserAct](https://www.youtube.com/watch?v=RoYMdJaRdcQ)\n* [How to Use & Customize BrowserAct Templates](https://www.youtube.com/watch?v=CPZHFUASncY)\n\n---\n### Workflow Guidance and Showcase Video\n\n* #### [How to Track Competitors Automatically (n8n + AI + Slack + Google Sheets)](https://youtu.be/yBGtCt4gIdA)\n\n","workflow":{"id":"QQcM4ZwqXsd75fiT","meta":{"instanceId":"6fcb279fd6b00187153abdc6d8b627acfd9fe31f84b387f64b56a0996e8ea182","templateCredsSetupCompleted":true},"name":"Track competitor pricing and features from BrowserAct to Google Sheets","tags":[],"nodes":[{"id":"aa0249f3-4365-4148-81d7-fafaacd022d1","name":"Loop Over Items","type":"n8n-nodes-base.splitInBatches","position":[512,224],"parameters":{"options":{}},"typeVersion":3},{"id":"a166259b-5ea7-4395-8fb7-fc70aa25e1e2","name":"Aggregate","type":"n8n-nodes-base.aggregate","position":[1072,-32],"parameters":{"options":{},"aggregate":"aggregateAllItemData"},"typeVersion":1},{"id":"c9b8a456-537a-44ae-b6d7-c2b951590e4d","name":"Weekly Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[0,224],"parameters":{"rule":{"interval":[{"field":"weeks"}]}},"typeVersion":1.3},{"id":"b4f8640e-50b4-41c6-a27a-0aa8d0f19acd","name":"Update Database","type":"n8n-nodes-base.googleSheets","position":[1600,368],"parameters":{"columns":{"value":{"URL":"={{ $('Loop Over Items').item.json.URL }}","Comparison":"={{ $json.output.comparison }}","row_number":"={{ $('Loop Over Items').item.json.row_number }}","Competitor Name":"={{ $('Loop Over Items').item.json[\"Competitor Name\"] }}","Last_Scrape_Date":"={{ $('Weekly Trigger').first().json[\"Readable date\"] }}","Last_Scrape_Content":"={{ $json.output.content }}"},"schema":[{"id":"Competitor Name","type":"string","display":true,"required":false,"displayName":"Competitor Name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"URL","type":"string","display":true,"required":false,"displayName":"URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Last_Scrape_Content","type":"string","display":true,"required":false,"displayName":"Last_Scrape_Content","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Last_Scrape_Date","type":"string","display":true,"required":false,"displayName":"Last_Scrape_Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Comparison","type":"string","display":true,"required":false,"displayName":"Comparison","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E/edit#gid=0","cachedResultName":"Data"},"documentId":{"__rl":true,"mode":"list","value":"1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E/edit?usp=drivesdk","cachedResultName":"AI Competitor Spy: Pricing & Feature Tracker"}},"credentials":{"googleSheetsOAuth2Api":{"id":"BSirjWRAwIzOFp7c","name":"Google Sheets account"}},"typeVersion":4.7},{"id":"4da38ef6-f46b-48e7-b59e-92f2b43b8a75","name":"Extract page content","type":"n8n-nodes-browseract.browserAct","position":[832,240],"parameters":{"type":"WORKFLOW","workflowId":"75660998074542379","workflowConfig":{"value":{"input-Tracking_Site":"={{ $json.URL }}"},"schema":[{"id":"input-Tracking_Site","type":"string","display":true,"removed":false,"required":false,"description":"If left blank, the default value defined in BrowserAct will be used.","displayName":"Tracking_Site","defaultMatch":true}],"mappingMode":"defineBelow","matchingColumns":["input-Tracking_Site"],"attemptToConvertTypes":false,"convertFieldsToString":false}},"credentials":{"browserActApi":{"id":"G1U5ih38TKU5wcI5","name":"BrowserAct account"}},"typeVersion":1},{"id":"56da0406-37ef-4144-be18-70809949babe","name":"Analyze target pages","type":"@n8n/n8n-nodes-langchain.agent","position":[1056,240],"parameters":{"text":"=Current Data: {{ $json.output.string }}\nHistorical Data:{{ $('Loop Over Items').item.json.Last_Scrape_Content }}\nLast Scrape Date:{{ $('Loop Over Items').item.json.Last_Scrape_Date }}","options":{"systemMessage":"You are a Pricing Plan Analyzer designed for an n8n automation workflow.\n\n**YOUR GOAL:**\nAnalyze the provided \"Current Data\" (JSON pricing plans) and compare it against the \"Historical Data\". You must return the result as a strict, valid JSON object.\n\n**INPUTS:**\n1. \"Current Data\": JSON string of the latest plans.\n2. \"Historical Data\": Text or JSON of the previous analysis (may be empty or null).\n\n**OUTPUT SCHEMA:**\nYou must return a single JSON object with exactly two keys: \"content\" and \"comparison\".\n\n{\n  \"content\": \"A formatted string analyzing the current plans...\",\n  \"comparison\": \"A formatted string listing changes OR current prices if no history...\"\n}\n\n**INSTRUCTIONS FOR KEY \"content\":**\n* Create a clean, readable summary of every plan in the \"Current Data\".\n* For each plan, include the Plan Name, Price, and Features.\n* Use standard text formatting (newlines like \\n) within the string to make it readable.\n* Do NOT use Markdown formatting (like **bold**) inside the string.\n\n**INSTRUCTIONS FOR KEY \"comparison\":**\n* Check if \"Historical Data\" exists and is not empty.\n* **SCENARIO A: Historical Data EXISTS**\n    * Compare \"Current Data\" vs \"Historical Data\".\n    * List specific changes in Price, Features, or Plans.\n* **SCENARIO B: Historical Data is MISSING/NULL**\n    * Do NOT attempt to compare.\n    * Instead, simply list the current price for each plan.\n    * End the section with the exact phrase: \"No historical data available. No changes detected.\"\n\n**CRITICAL FORMATTING RULES:**\n1.  **Output RAW JSON only.**\n2.  **Do NOT** wrap the output in markdown code blocks (e.g., do not use ```json ... ```).\n3.  Ensure all newlines in the text are properly escaped (`\\n`) so the JSON remains valid."},"promptType":"define","hasOutputParser":true},"typeVersion":3},{"id":"09ffb3c0-bdd2-4fc2-8663-2829e98f5775","name":"Retrieve \"loop\" results","type":"n8n-nodes-base.googleSheets","position":[848,-32],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E/edit#gid=0","cachedResultName":"Data"},"documentId":{"__rl":true,"mode":"list","value":"1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E/edit?usp=drivesdk","cachedResultName":"AI Competitor Spy: Pricing & Feature Tracker"}},"credentials":{"googleSheetsOAuth2Api":{"id":"BSirjWRAwIzOFp7c","name":"Google Sheets account"}},"executeOnce":true,"typeVersion":4.7},{"id":"9d639aec-b759-4f57-8fa5-30e6fba52cd9","name":"Analyze competitor data & generate report","type":"@n8n/n8n-nodes-langchain.agent","position":[1296,-128],"parameters":{"text":"=Input data : {{ $json.data}}","options":{"systemMessage":"Generate a comprehensive, structured text report analyzing a competitor's pricing based on scraped data. You must output a single JSON object with one key named \"text\".\n\nINPUTS: You will receive aggregated data containing:\n\nCompetitor Name\n\nURL\n\nLast_Scrape_Content: The current pricing and features.\n\nComparison: A summary of changes between the current scrape and historical data.\n\nOUTPUT SCHEMA: Return exactly one JSON object. Do not include markdown code blocks. { \"text\": \"Your formatted report string here...\" }\n\nINSTRUCTIONS FOR THE \"text\" VALUE: The value of the \"text\" key must be a single string using \\n for line breaks. Follow this structure for each competitor provided:\n\nSECTION 1: CURRENT PLAN ANALYSIS\n\nHeader: ANALYSIS FOR [COMPETITOR NAME]\n\nSource: [URL]\n\nFor every plan in \"Last_Scrape_Content\", list:\n\nPLAN: [Name]\n\nPRICE: [Price]\n\nKEY FEATURES: [Summary of features]\n\nSECTION 2: COMPARISON SUMMARY\n\nHeader: COMPARISON AND CHANGE LOG\n\nUse the data in the \"Comparison\" field to identify:\n\nPRICE CHANGES: (e.g., \"Basic increased from $25 to $28\")\n\nFEATURE UPDATES: (e.g., \"Features significantly reduced in the Free plan\")\n\nPLAN SHIFTS: (e.g., \"Free plan has been removed\")\n\nIf \"Comparison\" indicates no historical data or no changes, state: \"No changes detected. Current data set as baseline.\"\n\nCRITICAL FORMATTING RULES:\n\nOutput RAW JSON only. Do NOT use ```json blocks.\n\nEscape all newlines as \\n and all double quotes as \" inside the string.\n\nNO MARKDOWN formatting inside the string (no #, **, or _). Use ALL CAPS for headers and dashes for lists to ensure compatibility with plain-text systems.\n\nProcess all competitors included in the input.\n\nOutput Example : \n{\n  \"text\": \"ANALYSIS FOR TYPEFORM\\n\\nPLAN: Basic\\nPRICE: $29/month\\nFEATURES: Unlimited forms, 100 responses/mo\\n--\\nPLAN: Plus\\nPRICE: $59/month\\nFEATURES: Everything in Basic, 1,000 responses/mo, Remove branding\\n\\nCOMPARISON\\nNo historical data available. Setting current data as baseline.\"\n}"},"promptType":"define","hasOutputParser":true},"typeVersion":3},{"id":"e2843d79-8a8f-4ba2-924b-cb3c5c675e93","name":"Structured Output","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1184,400],"parameters":{"autoFix":true,"jsonSchemaExample":"{\n  \"content\": \"A formatted string analyzing the current plans...\",\n  \"comparison\": \"A formatted string listing changes...\"\n}"},"typeVersion":1.3},{"id":"c5f39358-d80c-4a14-b628-a8c7dc74399c","name":"Structured Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1376,80],"parameters":{"autoFix":true,"jsonSchemaExample":"{\n  \"text\": \"ANALYSIS FOR TYPEFORM\\n\\nPLAN: Basic\\nPRICE: $29/month\\nFEATURES: Unlimited forms, 100 responses/mo\\n--\\nPLAN: Plus\\nPRICE: $59/month\\nFEATURES: Everything in Basic, 1,000 responses/mo, Remove branding\\n\\nCOMPARISON\\nNo historical data available. Setting current data as baseline.\"\n}"},"typeVersion":1.3},{"id":"e6198a1e-d9a4-49d7-9fa5-b6cf81d6e40b","name":"Create New Sheet","type":"n8n-nodes-base.googleSheets","position":[1856,-32],"parameters":{"title":"={{ $('Weekly Trigger').first().json[\"Readable date\"] }}","options":{},"operation":"create","documentId":{"__rl":true,"mode":"list","value":"1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E/edit?usp=drivesdk","cachedResultName":"AI Competitor Spy: Pricing & Feature Tracker"}},"credentials":{"googleSheetsOAuth2Api":{"id":"BSirjWRAwIzOFp7c","name":"Google Sheets account"}},"typeVersion":4.7},{"id":"e49f86d3-abeb-4405-a784-c4b9fa0bb186","name":"Define Headers","type":"n8n-nodes-base.set","position":[2096,-32],"parameters":{"options":{},"assignments":{"assignments":[{"id":"4330b9be-e949-47ca-882e-f12c197f712f","name":"Comparative Reports","type":"string","value":""}]}},"typeVersion":3.4},{"id":"da2b2c8b-d0a8-4f38-8551-e8d179bc146d","name":"Add Headers","type":"n8n-nodes-base.googleSheets","position":[2320,-32],"parameters":{"columns":{"value":{},"schema":[],"mappingMode":"autoMapInputData","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"id","value":"={{ $('Create New Sheet').first().json.sheetId }}"},"documentId":{"__rl":true,"mode":"list","value":"1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E/edit?usp=drivesdk","cachedResultName":"AI Competitor Spy: Pricing & Feature Tracker"}},"credentials":{"googleSheetsOAuth2Api":{"id":"BSirjWRAwIzOFp7c","name":"Google Sheets account"}},"typeVersion":4.7},{"id":"c709d54c-1204-4494-ada1-d0407ca73b84","name":"Update records","type":"n8n-nodes-base.googleSheets","position":[2544,-32],"parameters":{"columns":{"value":{"Comparative Reports":"={{ $('Analyze competitor data & generate report').first().json.output.text }}"},"schema":[{"id":"Comparative Reports","type":"string","display":true,"removed":false,"required":false,"displayName":"Comparative Reports","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Comparative Reports"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"id","value":"={{ $('Create New Sheet').first().json.sheetId }}"},"documentId":{"__rl":true,"mode":"list","value":"1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E/edit?usp=drivesdk","cachedResultName":"AI Competitor Spy: Pricing & Feature Tracker"}},"credentials":{"googleSheetsOAuth2Api":{"id":"BSirjWRAwIzOFp7c","name":"Google Sheets account"}},"typeVersion":4.7},{"id":"ebec6544-8d56-4d9d-b93b-35ec679d3934","name":"Notify on completion","type":"n8n-nodes-base.slack","position":[2784,-32],"webhookId":"240b217b-35ea-4b0f-a3bb-7732bd91d51a","parameters":{"text":"The weekly updates to the competitor price and feature comparison are complete.","select":"channel","channelId":{"__rl":true,"mode":"list","value":"C09KLV9DJSX","cachedResultName":"all-browseract-workflow-test"},"otherOptions":{}},"credentials":{"slackApi":{"id":"y5CGeG09MENm5J7q","name":"Slack account 2"}},"typeVersion":2.4},{"id":"ad7f458c-0dde-4513-85d7-2539d12ad968","name":"OpenRouter","type":"@n8n/n8n-nodes-langchain.lmChatOpenRouter","position":[1264,80],"parameters":{"model":"google/gemini-2.5-pro","options":{}},"credentials":{"openRouterApi":{"id":"x6ohV3n8b2Kjebtm","name":"OpenRouter account"}},"typeVersion":1},{"id":"50bbe9bc-776a-444c-9fa7-5a332643c5f6","name":"OpenRouter Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenRouter","position":[1040,416],"parameters":{"model":"google/gemini-2.5-flash","options":{}},"credentials":{"openRouterApi":{"id":"x6ohV3n8b2Kjebtm","name":"OpenRouter account"}},"typeVersion":1},{"id":"c17038d3-e815-45e4-9e8d-f62674f32a70","name":"Documentation","type":"n8n-nodes-base.stickyNote","position":[-400,-352],"parameters":{"width":380,"height":536,"content":"## ⚡ AI Competitor Spy: Pricing & Feature Tracker\n\n**Summary:** This automation continuously monitors competitor websites for pricing and feature updates. It scrapes current data, compares it against historical records using AI, generates a detailed change report, and archives the findings in Google Sheets.\n\n### Requirements\n* **Credentials:** BrowserAct, OpenRouter, Google Sheets, Slack.\n* **Mandatory:** BrowserAct API (Template: **AI Competitor Spy: Pricing & Feature Tracker**)\n\n### How to Use\n1.  **Credentials:** Set up API keys for all services.\n2.  **BrowserAct Template:** Ensure the **AI Competitor Spy: Pricing & Feature Tracker** template is active.\n3.  **Google Sheet:** Prepare a sheet with columns for `Competitor Name`, `URL`, `Last_Scrape_Content`, and `Last_Scrape_Date`.\n4.  **Execution:** The workflow runs automatically on a weekly schedule.\n\n### Need Help?\n[How to Find Your BrowserAct API Key & Workflow ID](https://docs.browseract.com)\n[How to Connect n8n to BrowserAct](https://docs.browseract.com)\n[How to Use & Customize BrowserAct Templates](https://docs.browseract.com)"},"typeVersion":1},{"id":"eea22642-2dee-4113-92ea-69c500dfeadc","name":"Step 1 Explanation","type":"n8n-nodes-base.stickyNote","position":[0,48],"parameters":{"color":7,"width":620,"height":140,"content":"### 🎯 Step 1: Target Retrieval\n\nThe workflow triggers weekly. It connects to a Google Sheet database to fetch a list of competitor URLs and their previously recorded data (Last Scrape Content) to establish a baseline for comparison."},"typeVersion":1},{"id":"0fe135c4-c91a-4555-81d9-4c0de3ea18a4","name":"Step 2 Explanation","type":"n8n-nodes-base.stickyNote","position":[464,576],"parameters":{"color":7,"width":1272,"height":152,"content":"### 🕵️ Step 2: Live Scraping\n\nBrowserAct visits each competitor's pricing page in real-time. It extracts the current plan names, prices, and feature lists, ensuring the data is fresh and accurate.An AI agent compares the *live* scraped data against the *historical* data. It identifies specific changes (e.g., \"Price increased by $5\", \"Feature X removed\") and generates a concise status report for each competitor."},"typeVersion":1},{"id":"37d8f4f4-5442-47f6-9c1b-c0aaddc8d52e","name":"Step 4 Explanation","type":"n8n-nodes-base.stickyNote","position":[1856,-176],"parameters":{"color":7,"width":1032,"height":120,"content":"### 💾 Step 4: Archiving & Reporting\n\nThe workflow creates a new tab in the Google Sheet for the current week's report. It saves the AI's comparative analysis and updates the main database with the new \"Last Scrape\" content for the next run."},"typeVersion":1},{"id":"da56e279-f0e6-4468-bc9e-80b17bf804d2","name":"Fetch links & history","type":"n8n-nodes-base.googleSheets","position":[256,224],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E/edit#gid=0","cachedResultName":"Data"},"documentId":{"__rl":true,"mode":"list","value":"1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ONMcbA-JC46rLlHovGdczR-t63nSOz4SBTbKneJXk7E/edit?usp=drivesdk","cachedResultName":"AI Competitor Spy: Pricing & Feature Tracker"}},"credentials":{"googleSheetsOAuth2Api":{"id":"BSirjWRAwIzOFp7c","name":"Google Sheets account"}},"typeVersion":4.7},{"id":"da00c87f-43d1-4a6a-83d5-f2bfb6cec300","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[0,-352],"parameters":{"color":6,"width":624,"height":368,"content":"@[youtube](yBGtCt4gIdA)"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"8f5edfc3-0d8e-43dc-be59-c9d135748827","connections":{"Aggregate":{"main":[[{"node":"Analyze competitor data & generate report","type":"main","index":0}]]},"OpenRouter":{"ai_languageModel":[[{"node":"Analyze competitor data & generate report","type":"ai_languageModel","index":0},{"node":"Structured Output Parser","type":"ai_languageModel","index":0}]]},"Add Headers":{"main":[[{"node":"Update records","type":"main","index":0}]]},"Define Headers":{"main":[[{"node":"Add Headers","type":"main","index":0}]]},"Update records":{"main":[[{"node":"Notify on completion","type":"main","index":0}]]},"Weekly Trigger":{"main":[[{"node":"Fetch links & history","type":"main","index":0}]]},"Loop Over Items":{"main":[[{"node":"Retrieve \"loop\" results","type":"main","index":0}],[{"node":"Extract page content","type":"main","index":0}]]},"Update Database":{"main":[[{"node":"Loop Over Items","type":"main","index":0}]]},"Create New Sheet":{"main":[[{"node":"Define Headers","type":"main","index":0}]]},"OpenRouter Model":{"ai_languageModel":[[{"node":"Analyze target pages","type":"ai_languageModel","index":0},{"node":"Structured Output","type":"ai_languageModel","index":0}]]},"Structured Output":{"ai_outputParser":[[{"node":"Analyze target pages","type":"ai_outputParser","index":0}]]},"Analyze target pages":{"main":[[{"node":"Update Database","type":"main","index":0}]]},"Extract page content":{"main":[[{"node":"Analyze target pages","type":"main","index":0}]]},"Fetch links & history":{"main":[[{"node":"Loop Over Items","type":"main","index":0}]]},"Retrieve \"loop\" results":{"main":[[{"node":"Aggregate","type":"main","index":0}]]},"Structured Output Parser":{"ai_outputParser":[[{"node":"Analyze competitor data & generate report","type":"ai_outputParser","index":0}]]},"Analyze competitor data & generate report":{"main":[[{"node":"Create New Sheet","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":23,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.slack":{"count":1},"n8n-nodes-base.aggregate":{"count":1},"n8n-nodes-base.stickyNote":{"count":5},"n8n-nodes-base.googleSheets":{"count":6},"n8n-nodes-base.splitInBatches":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":2},"n8n-nodes-base.scheduleTrigger":{"count":1},"n8n-nodes-browseract.browserAct":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenRouter":{"count":2},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":2}}},"status":"published","readyToDemo":null,"user":{"name":"Madame AI Team | Kai","username":"madame-ai","bio":"I’m a PhD in Physics turned AI enthusiast, passionate about uncovering how AI is transforming content creation, business, and daily life.","verified":true,"links":["https://www.youtube.com/@AI.madame.english"],"avatar":"https://gravatar.com/avatar/44c0d2b4b78d8dda7685aea70ef92b2c2339ca9478738c6ed8049cc70e3af32d?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"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-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/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"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/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"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/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"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/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-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/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"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":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"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/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"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","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":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":839,"icon":"fa:clock","name":"n8n-nodes-base.scheduleTrigger","codex":{"data":{"alias":["Time","Scheduler","Polling","Cron","Interval"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\",\"schedule\"]","defaults":{"name":"Schedule Trigger","color":"#31C49F"},"iconData":{"icon":"clock","type":"icon"},"displayName":"Schedule Trigger","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":1236,"icon":"file:aggregate.svg","name":"n8n-nodes-base.aggregate","codex":{"data":{"alias":["Aggregate","Combine","Flatten","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.aggregate/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Aggregate"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjRkY2RDVBIiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMyIDE0OGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE0NmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJINDRjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTAgOTZjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNDZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDQ0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0wIDk2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTQ2YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg0NGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Ik03NCA3NmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDExNi4yMTdjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMydjU2YzAgMjYuOTc4IDEwLjI3MiA1MS41NTcgMjcuMTE5IDcwLjAzOSA1LjA1NSA1LjU0NSA1LjA1NSAxNC4zNzcgMCAxOS45MjItMTYuODQ3IDE4LjQ4Mi0yNy4xMTkgNDMuMDYxLTI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMySDg2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTE2LjIxN2M0NC4xODMgMCA4MC0zNS44MTcgODAtODB2LTU2YzAtMzAuOTI4IDI1LjA3Mi01NiA1Ni01NmE1Ljc4MyA1Ljc4MyAwIDAgMCA1Ljc4My01Ljc4M3YtMzYuNDM0YTUuNzgzIDUuNzgzIDAgMCAwLTUuNzgzLTUuNzgzYy0zMC45MjggMC01Ni0yNS4wNzItNTYtNTZ2LTU2YzAtNDQuMTgzLTM1LjgxNy04MC04MC04MEg4NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zNzYgMjQ0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgzODhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUxMnY1MTJIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4="},"displayName":"Aggregate","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"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":32,"name":"Market Research"},{"id":49,"name":"AI Summarization"}],"image":[]}}