{"workflow":{"id":13435,"name":"Mine user complaints and generate insight reports with Olostep, Gemini and Google Docs","views":18,"recentViews":0,"totalViews":18,"createdAt":"2026-02-16T14:44:44.466Z","description":"# AI Complaint Mining & Insight Extraction  \n\nThis n8n template automates **complaint mining** from unstructured text sources and turns raw user feedback into **clear, actionable insights**.  \nIt uses AI to identify recurring complaints, pain points, and themes, helping teams understand what users are unhappy about and why.\n\n## Who’s it for  \n- Product managers identifying recurring user pain points  \n- Customer support and success teams  \n- Founders validating product-market fit issues  \n- UX researchers analyzing qualitative feedback  \n- Anyone dealing with large volumes of complaints or negative feedback  \n\n## How it works / What it does  \n1. **Trigger**  \n   - The workflow starts with a manual trigger, form submission, or imported text source containing user complaints.\n\n2. **Data Preparation**  \n   - Raw complaint text is cleaned, normalized, and split into individual complaint entries.  \n   - Ensures consistent input for AI processing.\n\n3. **AI Complaint Analysis**  \n   - An AI model analyzes each complaint to identify:  \n     - Core issue  \n     - Complaint category  \n     - Emotional tone  \n     - Severity or urgency  \n\n4. **Pattern Detection**  \n   - Complaints are grouped by similarity to uncover recurring issues and themes.  \n   - Highlights the most frequent and impactful problems.\n\n5. **Insight Extraction**  \n   - AI summarizes key insights such as:  \n     - Top recurring complaints  \n     - Root causes  \n     - Suggested improvement areas  \n\n6. **Structured Output**  \n   - Results are converted into structured data fields.  \n   - Ready to be stored, visualized, or shared with stakeholders.\n\n7. **Storage & Reporting**  \n   - Extracted complaints and insights are saved to a table or sheet for easy review and analysis.\n\nThis workflow transforms unstructured complaint data into a clear feedback loop you can act on.\n\n## How to set up  \n1. Import the template into your n8n workspace.  \n2. Connect your AI model credentials (OpenAI or Gemini).  \n3. Define your input source (text, form, or file).  \n4. Connect your storage destination (Google Sheets, Data Table, or database).  \n5. Run the workflow to start mining complaints automatically.\n\n## Requirements  \n- n8n account (cloud or self-hosted)  \n- AI model provider (OpenAI or Gemini)  \n- Storage destination (Google Sheets, Data Table, or database)\n\n## How to customize the workflow  \n- Adjust complaint categories and severity scoring.  \n- Add sentiment analysis or emotion classification.  \n- Connect a vector database to track complaints over time.  \n- Trigger alerts when critical issues are detected.  \n- Generate dashboards or weekly complaint summaries automatically.\n\n---\n\n👉 This template helps you turn complaints into insights — and insights into product improvements.\n","workflow":{"id":"bxXk728I3eSAUiLo","meta":{"instanceId":"6f81894254c2852bfe28b07fc1f6652b03481706dd714d6609cc88e8521956d2","templateCredsSetupCompleted":true},"name":"Complaint Mining","tags":[{"id":"xRJNyiRIpAsEzL8y","name":"Olostep","createdAt":"2026-01-31T11:17:46.807Z","updatedAt":"2026-01-31T11:17:46.807Z"}],"nodes":[{"id":"382b9a6f-3294-4c21-ae76-e3a7290431d0","name":"Structured Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[272,80],"parameters":{"jsonSchemaExample":"{\n  \"findings\": [\n    {\n      \"verbatim_quote\": \"I've been a user for 5 years. Great app, but I noticed a small bug where the dark mode doesn't work correctly after the last update.\",\n      \"url\": \"https://reddit.com/r/notetakingapps/comments/xxxxxx/bug_report_productivenote/\",\n      \"source_title\": \"Reddit r/saas\"\n    },\n    {\n      \"verbatim_quote\": \"I've been trying to export my data for three hours and the feature is completely broken. This is a nightmare.\",\n      \"url\": \"https://g2.com/reviews/productivenote-2024\",\n      \"source_title\": \"G2 Reviews\"\n    },\n    {\n      \"verbatim_quote\": \"The new UI is a bit confusing to navigate. It's clunky and I wish it had a simpler search function. Still, a solid app overall.\",\n      \"url\": \"https://twitter.com/johndoe/status/xxxxxx\",\n      \"source_title\": \"Twitter\"\n    }\n  ]\n}\n"},"typeVersion":1.3},{"id":"c1a279fb-6640-4b42-aaa5-2f650c07dd94","name":"Merge","type":"n8n-nodes-base.merge","position":[1344,-16],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition"},"typeVersion":3.2},{"id":"91a69753-ebd6-442f-851d-04500d4eb289","name":"Split Out","type":"n8n-nodes-base.splitOut","position":[496,-128],"parameters":{"options":{},"fieldToSplitOut":"output.findings"},"typeVersion":1},{"id":"f9b76f3f-07f3-4f75-9e68-376fc23d0b4a","name":"Pain Level Identifier","type":"@n8n/n8n-nodes-langchain.chainLlm","maxTries":2,"position":[672,-128],"parameters":{"text":"=list of verbatim quotes: {{ $json.verbatim_quote }}","batching":{},"messages":{"messageValues":[{"message":"=#Overview\n\nYou are a complaint mining agent. Your job is to analyze verbatim user feedback and classify the pain level expressed in each quote.\n\n##Pain Level Rubric:\n\n  -High: The quote expresses extreme frustration, anger, or mentions a significant roadblock. Keywords often include: frustrating, impossible, broken, can't, stuck, terrible, waste of time, nightmare. The user is prevented from completing a key task or describes the problem as a deal-breaker.\n  -Medium: The quote expresses annoyance or inconvenience. Keywords often include: annoying, difficult, clunky, wish it had, could be better, confusing. The problem is a point of friction but does not prevent them from using the product.\n  -Low: The quote expresses a minor issue, a simple suggestion, or a cosmetic complaint. The tone is neutral or polite. Keywords often include: minor bug, small, little, suggest, would be nice to have. The problem is not essential to the core function of the product.\n\n##instructions\n\n-Carefully read and analyze the user_quote.\n-Using only the criteria in the pain_level_rubric, determine the pain level expressed in the quote.\n-Do not use any external knowledge. Base your decision solely on the keywords, emotional cues, and expressed impact in the provided quote.\n\n##Output Format\nThe output must be one of the following exact words: \"High\", \"Medium\", or \"Low\". Do not include any other text or explanation in the final output."}]},"promptType":"define"},"retryOnFail":true,"typeVersion":1.7},{"id":"1b90c03d-54b6-48a2-85a1-2067e3515a17","name":"Google Gemini Chat Model2","type":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","position":[528,800],"parameters":{"options":{}},"credentials":{"googlePalmApi":{"id":"oMvbIs3B4qbtiwlg","name":"Gemini(PaLM) Api"}},"typeVersion":1},{"id":"fd77a21c-6da5-4dbc-a8ea-3b81588afa30","name":"Structured Output Parser1","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[160,656],"parameters":{"jsonSchemaExample":"{\n  \"problem_statement\": \"SaaS founders struggle with validation stage\",\n  \"keywords\": [\n    {\n      \"keyword\": \"Difficulty validating/struggle with idea validation\",\n      \"mentions\": 20\n    },\n    {\n      \"keyword\": \"No Market Demand/problem not big enough/customers don't care\",\n      \"mentions\": 12\n    },\n    {\n      \"keyword\": \"Time constraints/obstacles (time)\",\n      \"mentions\": 10\n    },\n    {\n      \"keyword\": \"Hard to get information/data\",\n      \"mentions\": 8\n    },\n    {\n      \"keyword\": \"Hard to interpret information/data\",\n      \"mentions\": 8\n    },\n    {\n      \"keyword\": \"Lack of technical/design resources/skills/team for prototypes\",\n      \"mentions\": 8\n    },\n    {\n      \"keyword\": \"Difficulty getting clear feedback/effectively communicate vision\",\n      \"mentions\": 8\n    }\n  ],\n  \"total_mentions\": 280\n}\n"},"typeVersion":1.3},{"id":"02b9e9f1-20ee-46d9-8eb5-6eb1eaf882e3","name":"Keyword Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[0,448],"parameters":{"text":"=Problem Statement or Keywords: {{ $json['Problem Statement or Keywords'] }}","options":{"systemMessage":"=#Overview\n\nYou are a specialized search and complaint mining expert. Your input should be a problem statement or keywords. Your job is to search relevant platforms like Reddit, Hacker News and specialized forums to find real complaints about the problem space. You do not analyze or summarize the information. You only find and collect it.\n\n##Instructions\n\n-Generate a list of the most effective search queries to find user feedback and complaints about the given product. Think about how a real user would phrase a search to find this information.\n-Perform a search for each query.\n-For each result, extract the most frequently mentioned keywords and a simple count of how many times a specific problem was mentioned.\n-You should also analyse and calculate the total mentions found for the problem provided in the input.\n\n##Final Notes\n\nYou must search for at least 3-5 queries.\nYou should do all the search first then extract the required output.\nhere's the current date: {{ $now }}"},"promptType":"define","hasOutputParser":true},"typeVersion":2.2},{"id":"daedbee0-11c3-46bd-9ffb-8bdc25017c86","name":"Verbatim Quotes Agent","type":"@n8n/n8n-nodes-langchain.agent","maxTries":2,"position":[0,-128],"parameters":{"text":"=Problem Statement Or Keywords: {{ $json['Problem Statement or Keywords'] }}","options":{"systemMessage":"=#Overview\n\nYou are a specialized search and complaint mining expert. Your input should be a problem statement or keywords. Your job is to search relevant platforms like Reddit, Hacker News and specialized forums to find real complaints about the problem space. You do not analyze or summarize the information. You only find and collect it.\n\n\n##Instructions\n\n-Generate a list of the most effective search queries to find user feedback and complaints about the given product. Think about how a real user would phrase a search to find this information.\n-Perform a search for each query.\n-For each result, extract a relevant snippet of user verbatim quote. This can be a full comment, a review, or a short post.\n-For each extracted snippet, you must also capture the URL and title of the source.\n-You must search for real user complaint not just blogs content and news. You should be searching in forums like:\n  .Reddit Search: Use the site:reddit.com operator.\n  .Review Site Search: Include specific review site names like G2 or Capterra.\n  .Forum Search: Include forum-specific phrases like \"forum\" or \"community\" in your queries.\n-Do not analyse or summarize the data. You just collect it.\n\n##Priority\n\n    -Highest Priority: Direct quotes from real users expressing an opinion, a frustration, or a specific experience. Look for these on forums, social media, and review sites.\n    -Lowest Priority: Articles, blog posts, or reports that talk about a problem in a general or abstract sense. Only use these if they contain a direct quote from a user or a specific, verifiable statistic.\n\n##Final Notes\n\nYou must output at least 10 items.\nYou should do all the search first then extract the required output.\nYou must search for at least 3-5 queries.\nthe source title should not be a full title, just the source title like \"Reddit r/saas\" or whatever the source is.\nhere's the current date: {{ $now }}\n"},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":2.2},{"id":"e5a92ecf-6fe2-4af9-9846-2d0434cfb7d9","name":"Merge1","type":"n8n-nodes-base.merge","position":[752,432],"parameters":{},"typeVersion":3.2},{"id":"70a189b9-a2bb-4ee6-9986-66faef7178b6","name":"Split Out1","type":"n8n-nodes-base.splitOut","position":[512,448],"parameters":{"options":{},"fieldToSplitOut":"output.keywords"},"typeVersion":1},{"id":"43e924a9-23cf-4ebd-b492-44e55c17432e","name":"Aggregate","type":"n8n-nodes-base.aggregate","position":[944,432],"parameters":{"options":{},"fieldsToAggregate":{"fieldToAggregate":[{"fieldToAggregate":"verbatim_quote"},{"fieldToAggregate":"source_title"},{"fieldToAggregate":"keyword"},{"fieldToAggregate":"mentions"},{"fieldToAggregate":"pain-level"}]}},"typeVersion":1},{"id":"fdcad28b-9668-4e1f-8369-eb0d533d7a25","name":"Merge2","type":"n8n-nodes-base.merge","position":[2016,416],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition","numberInputs":3},"typeVersion":3.2},{"id":"c71cef0e-bece-4f50-bdd3-df662070ab30","name":"Information Extractor","type":"@n8n/n8n-nodes-langchain.informationExtractor","position":[1488,208],"parameters":{"text":"={{ $json.text }}","options":{},"attributes":{"attributes":[{"name":"express frustration","required":true,"description":"this should be a percantage of the frustration expression"},{"name":"demand signal","required":true,"description":"this should be the demand signal for the problem"}]}},"typeVersion":1.2},{"id":"c84fa8ad-4931-46e8-862c-d4fc5508288c","name":"Merge3","type":"n8n-nodes-base.merge","position":[1808,320],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition"},"typeVersion":3.2},{"id":"16c39465-8d14-433f-909b-518965adcf65","name":"On form submission","type":"n8n-nodes-base.formTrigger","position":[-256,48],"webhookId":"189d55aa-27b9-44d9-8fef-88da35fefa92","parameters":{"options":{},"formTitle":"Mine Complaint","formFields":{"values":[{"fieldLabel":"Problem Statement or Keywords","requiredField":true}]}},"typeVersion":2.2},{"id":"bc824caf-6fcf-415e-85ea-296d37d0bb84","name":"olostep","type":"n8n-nodes-base.httpRequestTool","position":[96,176],"parameters":{"url":"https://api.olostep.com/v1/answers","method":"POST","options":{},"sendBody":true,"authentication":"predefinedCredentialType","bodyParameters":{"parameters":[{"name":"task","value":"={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters0_Value', `this is the search query field`, 'string') }}"}]},"toolDescription":"Makes an HTTP request for research and real-time data collection, and returns the response data.","nodeCredentialType":"olostepScrapeApi"},"credentials":{"olostepScrapeApi":{"id":"FJ1cjVsEF4o1TIVS","name":"Olostep Scrape account"}},"typeVersion":4.3},{"id":"df6b9bce-6b71-40f7-bcc6-137483654115","name":"Wait","type":"n8n-nodes-base.wait","position":[320,-128],"webhookId":"0c067b41-c4f4-4940-85c8-369dbf9e8143","parameters":{"amount":30},"typeVersion":1.1},{"id":"cf001578-ecc6-458d-bd3d-6b28222e52d8","name":"Wait1","type":"n8n-nodes-base.wait","position":[992,-128],"webhookId":"07c35ca2-2aa1-42c3-b29c-76e0accde687","parameters":{"amount":30},"typeVersion":1.1},{"id":"eb6fd158-4c08-48bf-bbc4-5007cf162af4","name":"Wait2","type":"n8n-nodes-base.wait","position":[320,448],"webhookId":"ae147cf6-59f7-4c0b-b752-b762d26951cb","parameters":{"amount":30},"typeVersion":1.1},{"id":"978698f2-0001-4df2-9daa-f299977d11e8","name":"AI Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[2208,432],"parameters":{"text":"=Express Frustration: {{ $json.output['express frustration'] }}\nDemand Signal: {{ $json.output['demand signal'] }}\nAnalysis: {{ $json.text }}\nVerbatim Quotes: {{ $json.verbatim_quote }}\nVerbatim Quotes Pain Level: {{ $json['pain-level'] }}\nSource Titles: {{ $json.source_title }}\nKeywords: {{ $json.keyword }}\nKeywords Mentions: {{ $json.mentions }}","options":{"systemMessage":"=# Overview\nYou are an expert doc writer, your role is to structure and write the final report without changing any of the information provided.\n\n## Instructions\n- Do Not change any of the incoming information or come up with new information.\n- Do Not summarize anything, just put the data in it's write place.\n- Your output must be in markdown."},"promptType":"define"},"typeVersion":3.1},{"id":"9c8a5dfd-b06f-4704-8895-54442ac383d3","name":"Create a document","type":"n8n-nodes-base.googleDocs","position":[2560,432],"parameters":{"title":"=Complaint Mining Report For: {{ $('On form submission').item.json['Problem Statement or Keywords'] }}","folderId":"default"},"credentials":{"googleDocsOAuth2Api":{"id":"n7L82LxAR6D6BOy2","name":"Google Docs account"}},"typeVersion":2},{"id":"6e3b0d11-a12c-45d4-b262-0c20d5de1660","name":"Update a document","type":"n8n-nodes-base.googleDocs","position":[2768,432],"parameters":{"actionsUi":{"actionFields":[{"text":"={{ $('AI Agent').item.json.output }}","action":"insert"}]},"operation":"update","documentURL":"={{ $json.id }}"},"credentials":{"googleDocsOAuth2Api":{"id":"n7L82LxAR6D6BOy2","name":"Google Docs account"}},"typeVersion":2},{"id":"d0f51c94-043e-4760-8587-c35d2c48c8ab","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1232,-576],"parameters":{"width":832,"height":1664,"content":"# AI Complaint Mining & Insight Extraction  \n\nThis n8n template automates **complaint mining** from unstructured text sources and turns raw user feedback into **clear, actionable insights**.  \nIt uses AI to identify recurring complaints, pain points, and themes, helping teams understand what users are unhappy about and why.\n\n## Who’s it for  \n- Product managers identifying recurring user pain points  \n- Customer support and success teams  \n- Founders validating product-market fit issues  \n- UX researchers analyzing qualitative feedback  \n- Anyone dealing with large volumes of complaints or negative feedback  \n\n## How it works / What it does  \n1. **Trigger**  \n   - The workflow starts with a manual trigger, form submission, or imported text source containing user complaints.\n\n2. **Data Preparation**  \n   - Raw complaint text is cleaned, normalized, and split into individual complaint entries.  \n   - Ensures consistent input for AI processing.\n\n3. **AI Complaint Analysis**  \n   - An AI model analyzes each complaint to identify:  \n     - Core issue  \n     - Complaint category  \n     - Emotional tone  \n     - Severity or urgency  \n\n4. **Pattern Detection**  \n   - Complaints are grouped by similarity to uncover recurring issues and themes.  \n   - Highlights the most frequent and impactful problems.\n\n5. **Insight Extraction**  \n   - AI summarizes key insights such as:  \n     - Top recurring complaints  \n     - Root causes  \n     - Suggested improvement areas  \n\n6. **Structured Output**  \n   - Results are converted into structured data fields.  \n   - Ready to be stored, visualized, or shared with stakeholders.\n\n7. **Storage & Reporting**  \n   - Extracted complaints and insights are saved to a table or sheet for easy review and analysis.\n\nThis workflow transforms unstructured complaint data into a clear feedback loop you can act on.\n\n## How to set up  \n1. Import the template into your n8n workspace.  \n2. Connect your AI model credentials (OpenAI or Gemini).  \n3. Define your input source (text, form, or file).  \n4. Connect your storage destination (Google Sheets, Data Table, or database).  \n5. Run the workflow to start mining complaints automatically.\n\n## Requirements  \n- n8n account (cloud or self-hosted)  \n- AI model provider (OpenAI or Gemini)  \n- Storage destination (Google Sheets, Data Table, or database)\n\n## How to customize the workflow  \n- Adjust complaint categories and severity scoring.  \n- Add sentiment analysis or emotion classification.  \n- Connect a vector database to track complaints over time.  \n- Trigger alerts when critical issues are detected.  \n- Generate dashboards or weekly complaint summaries automatically.\n\n---\n\n👉 This template helps you turn complaints into insights — and insights into product improvements.\n"},"typeVersion":1},{"id":"730f37f2-fd29-40da-885f-d63d24a5fb30","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-336,-48],"parameters":{"color":7,"width":256,"height":224,"content":"## Trigger\nStart the workflow with user feedback or complaint text."},"typeVersion":1},{"id":"610c9a8d-869c-4661-a493-d4b5d4ba3ab8","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-64,-240],"parameters":{"color":7,"width":688,"height":272,"content":"## Verbatim Quotes Agent\nUses Olostep /answer endpoint as a tool to searches for complaints about the problem statement/keywords directly from the mouth of potential customers from forums like Reddit, Hacker news, and other specialized forums."},"typeVersion":1},{"id":"54af0218-e461-4f77-bcdb-809e3d337153","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[624,-240],"parameters":{"color":7,"width":688,"height":272,"content":"## Pain Level Identifier\nTakes the raw verbatim quotes and identifies if this quote defines a high, medium, or low pain."},"typeVersion":1},{"id":"0ae1e91f-0415-4c9e-ad31-ed89a2e21897","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-48,336],"parameters":{"color":7,"width":688,"height":288,"content":"## Verbatim Quotes Agent\nUses Olostep /answer endpoint as a tool to searches for relevant keywords about the problem and defines how many times those keywords have been mentioned."},"typeVersion":1},{"id":"85c8976d-b1b7-44b1-8f3d-ae66ed7afa1e","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[448,720],"parameters":{"color":5,"height":224,"content":"## LLM Model\n"},"typeVersion":1},{"id":"97cf245c-8951-4df1-8bf4-adfad50486e8","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[16,112],"parameters":{"color":5,"height":208,"content":"## Olostep /answer enpoint"},"typeVersion":1},{"id":"57aa1136-3c30-4c4f-9155-99c620b56b0e","name":"pain level","type":"n8n-nodes-base.set","position":[1168,-128],"parameters":{"options":{},"assignments":{"assignments":[{"id":"93dfa8cf-cf63-41be-b175-b7d6cdfab92f","name":"pain-level","type":"string","value":"={{ $json.text }}"}]}},"typeVersion":3.4},{"id":"91d1d786-9540-45fa-b21d-2abcef24d292","name":"total mentions","type":"n8n-nodes-base.set","position":[1152,608],"parameters":{"options":{},"assignments":{"assignments":[{"id":"df556ba1-fc3e-438b-b9c8-f3aeb1f6069e","name":"total-mentions","type":"string","value":"={{ $json.output.total_mentions }}"}]}},"typeVersion":3.4},{"id":"7ed54c62-a4ce-4b19-a2c9-be312d5c3f13","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[640,336],"parameters":{"color":7,"width":448,"height":288,"content":"## Merge & Aggregate\nClean and prepare data for Analysis."},"typeVersion":1},{"id":"2a43f8ec-3f25-4d75-83c9-62ac7d4cf23a","name":"Analyzer Agent","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1152,336],"parameters":{"text":"=the problem statement: {{ $('On form submission').item.json['Problem Statement or Keywords'] }}\nlist of verbatim quotes: {{ $json.verbatim_quote }}\nsource_title: {{ $json.source_title }}\nkeywords: {{ $json.keyword }}\nnumber of mentions of every keyword (in order): {{ $json.mentions }}\ntotal mentions: {{ $('Keyword Agent').item.json.output.total_mentions }}","batching":{},"messages":{"messageValues":[{"message":"=#Overview\n\nYou are a data analysis specialist and expert. Your role is to analyze all the input data and show if the problem has a \"high demand signal\", \"medium demand signal\" or \"low demand signal\". Also provide key insights like the express frustration percantage and other valuable key insights."}]},"promptType":"define"},"typeVersion":1.7},{"id":"0b04de45-5c2a-4f69-9950-89fb29c248dc","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[1088,160],"parameters":{"color":7,"width":352,"height":464,"content":"## Analyzer Agent\nTakes the raw data and analyze it and determines if the problem has a high, medium, or low signal.\nAlso provides key insights like the express frustration percantage and other valuable key insights."},"typeVersion":1},{"id":"858cdff9-4a16-4eb1-be65-3507abe0cb25","name":"Sticky Note9","type":"n8n-nodes-base.stickyNote","position":[1440,96],"parameters":{"color":7,"width":352,"height":528,"content":"## Information Extractor\nExtracts the frustration percentage and the demand signal from the analysis provided by the analyzer agent."},"typeVersion":1},{"id":"d6cf5101-deb4-496c-8977-995e14166b21","name":"Sticky Note10","type":"n8n-nodes-base.stickyNote","position":[1792,208],"parameters":{"color":7,"width":352,"height":416,"content":"## Merge\nMerge all previous data and prepare it for the final report writing agent."},"typeVersion":1},{"id":"bb7f739f-6c86-4d43-ba93-cd2133a969ac","name":"Sticky Note11","type":"n8n-nodes-base.stickyNote","position":[2144,304],"parameters":{"color":7,"width":352,"height":320,"content":"## Writing agent\nWrites the final report gathering all the information and insights from previous steps, and structure it in a good format."},"typeVersion":1},{"id":"9834e191-4099-4f50-ba76-8764c8d396c6","name":"Sticky Note12","type":"n8n-nodes-base.stickyNote","position":[2496,304],"parameters":{"color":7,"width":416,"height":320,"content":"## Document creation\nCreates a new document and write the content of the final report into it."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"e5e6f3fa-8ba1-47bf-8faa-937640904517","connections":{"Wait":{"main":[[{"node":"Split Out","type":"main","index":0}]]},"Merge":{"main":[[{"node":"Merge1","type":"main","index":0}]]},"Wait1":{"main":[[{"node":"pain level","type":"main","index":0}]]},"Wait2":{"main":[[{"node":"Split Out1","type":"main","index":0}]]},"Merge1":{"main":[[{"node":"Aggregate","type":"main","index":0}]]},"Merge2":{"main":[[{"node":"AI Agent","type":"main","index":0}]]},"Merge3":{"main":[[{"node":"Merge2","type":"main","index":0}]]},"olostep":{"ai_tool":[[{"node":"Verbatim Quotes Agent","type":"ai_tool","index":0},{"node":"Keyword Agent","type":"ai_tool","index":0}]]},"AI Agent":{"main":[[{"node":"Create a document","type":"main","index":0}]]},"Aggregate":{"main":[[{"node":"Analyzer Agent","type":"main","index":0},{"node":"Merge2","type":"main","index":1}]]},"Split Out":{"main":[[{"node":"Pain Level Identifier","type":"main","index":0},{"node":"Merge","type":"main","index":1}]]},"Split Out1":{"main":[[{"node":"Merge1","type":"main","index":1}]]},"pain level":{"main":[[{"node":"Merge","type":"main","index":0}]]},"Keyword Agent":{"main":[[{"node":"total mentions","type":"main","index":0},{"node":"Wait2","type":"main","index":0}]]},"Analyzer Agent":{"main":[[{"node":"Information Extractor","type":"main","index":0},{"node":"Merge3","type":"main","index":1}]]},"total mentions":{"main":[[{"node":"Merge2","type":"main","index":2}]]},"Create a document":{"main":[[{"node":"Update a document","type":"main","index":0}]]},"On form submission":{"main":[[{"node":"Verbatim Quotes Agent","type":"main","index":0},{"node":"Keyword Agent","type":"main","index":0}]]},"Information Extractor":{"main":[[{"node":"Merge3","type":"main","index":0}]]},"Pain Level Identifier":{"main":[[{"node":"Wait1","type":"main","index":0}]]},"Verbatim Quotes Agent":{"main":[[{"node":"Wait","type":"main","index":0}]]},"Structured Output Parser":{"ai_outputParser":[[{"node":"Verbatim Quotes Agent","type":"ai_outputParser","index":0}]]},"Google Gemini Chat Model2":{"ai_languageModel":[[{"node":"Verbatim Quotes Agent","type":"ai_languageModel","index":0},{"node":"Keyword Agent","type":"ai_languageModel","index":0},{"node":"Pain Level Identifier","type":"ai_languageModel","index":0},{"node":"Analyzer Agent","type":"ai_languageModel","index":0},{"node":"Information Extractor","type":"ai_languageModel","index":0},{"node":"AI Agent","type":"ai_languageModel","index":0}]]},"Structured Output Parser1":{"ai_outputParser":[[{"node":"Keyword Agent","type":"ai_outputParser","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":38,"nodeTypes":{"n8n-nodes-base.set":{"count":2},"n8n-nodes-base.wait":{"count":3},"n8n-nodes-base.merge":{"count":4},"n8n-nodes-base.splitOut":{"count":2},"n8n-nodes-base.aggregate":{"count":1},"n8n-nodes-base.googleDocs":{"count":2},"n8n-nodes-base.stickyNote":{"count":13},"n8n-nodes-base.formTrigger":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":3},"n8n-nodes-base.httpRequestTool":{"count":1},"@n8n/n8n-nodes-langchain.chainLlm":{"count":2},"@n8n/n8n-nodes-langchain.lmChatGoogleGemini":{"count":1},"@n8n/n8n-nodes-langchain.informationExtractor":{"count":1},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":2}}},"status":"published","readyToDemo":null,"user":{"name":"Yasser Sami","username":"yassersami","bio":"AI Automation Architect building smart workflows with n8n. I help businesses save time by automating processes, connecting apps, and integrating AI. My focus is on creating efficient, reliable systems that streamline operations and reduce manual work.","verified":true,"links":["https://www.linkedin.com/in/yasser-sami-425333228/"],"avatar":"https://gravatar.com/avatar/e11e6f15924e7365111150fae6284b733d02fae20e05bd32cc026eee22d6a975?r=pg&d=retro&size=200"},"nodes":[{"id":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"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/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"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/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/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.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"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":495,"icon":"file:googleDocs.svg","name":"n8n-nodes-base.googleDocs","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googledocs/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Miscellaneous"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Google Docs"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSItMTggMCA5MCA4MCI+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iLjUiIHk9Ii41Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzU0OGRmNiIgZD0ibTM2IDAgMjIgMjJ2NTNhNC45OSA0Ljk5IDAgMCAxLTUgNUg1YTQuOTkgNC45OSAwIDAgMS01LTVWNWE0Ljk5IDQuOTkgMCAwIDEgNS01eiIvPjxwYXRoIGQ9Ik0xNCA0MGgzMHYzSDE0em0wIDdoMzB2M0gxNHptMCA4aDMwdjNIMTR6bTAgN2gyMXYzSDE0eiIvPjxwYXRoIGZpbGw9IiNhYmQwZmIiIGQ9Im0zNiAwIDIyIDIySDQxYy0yLjc3IDAtNS0yLjQ4LTUtNS4yNXoiLz48cGF0aCBmaWxsPSIjM2U1YmI5IiBkPSJNNDAuNzUgMjIgNTggMjkuMTI1VjIyeiIvPjwvZz48L3N5bWJvbD48L3N2Zz4="},"displayName":"Google Docs","typeVersion":2,"nodeCategories":[{"id":11,"name":"Miscellaneous"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1123,"icon":"fa:link","name":"@n8n/n8n-nodes-langchain.chainLlm","codex":{"data":{"alias":["LangChain"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Chains","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Basic LLM Chain","color":"#909298"},"iconData":{"icon":"link","type":"icon"},"displayName":"Basic LLM Chain","typeVersion":2,"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":1225,"icon":"file:form.svg","name":"n8n-nodes-base.formTrigger","codex":{"data":{"alias":["table","submit","post"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Other Trigger Nodes"]}}},"group":"[\"trigger\"]","defaults":{"name":"On form submission"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwQjdCQyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzQuOTc4IDM3LjczMmExLjU2IDEuNTYgMCAwIDEtMS41NjIgMS41NjNINi4yNmExLjU2IDEuNTYgMCAwIDEtMS41NjMtMS41NjNWOS42MDdjMC0uNDA1LjE1Ny0uNzk0LjQzOC0xLjA4Nmw2LjMwNC02LjUzMXY1LjM0NEg4LjIxM2ExLjE3MiAxLjE3MiAwIDEgMCAwIDIuMzQzaDQuNDNhMS4xNyAxLjE3IDAgMCAwIDEuMTcxLTEuMTcxVi4yMzJoMTkuNjAyYTEuNTYgMS41NiAwIDAgMSAxLjU2MiAxLjU2M3YxMC4zMjdsLTIuODYgMi44Ni04LjI1MiA4LjI3NmE0MTMuMDA2IDQxMy4wMDYgMCAwIDEtMS42NTQgMS42NjJsLS4zMzcuMzM3YTIgMiAwIDAgMC0uNTU3IDEuMDhMMjAuMyAzMS45MjJjLS4xMDguNjM4LS4yMTUgMS4wNzkuMjExIDEuNDE4LjQwMy4zMi45LjE3NCAxLjU0LjA2Nmw1LjQwOC0uOTI4YTIgMiAwIDAgMCAxLjA4LS41NTZsNi40NC02LjQyOXptLTI0LjAzLTIxLjI2NWExLjE4IDEuMTggMCAwIDAgMS4xNzEgMS4xNzJoMTMuMTYzYTEuMTcyIDEuMTcyIDAgMSAwIDAtMi4zNDRIMTIuMTE5YTEuMTcgMS4xNyAwIDAgMC0xLjE3MiAxLjE3Mm03LjI5NCAxNC43NjZhMS4xNyAxLjE3IDAgMCAwLTEuMTcyLTEuMTcySDEyLjEyYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNC45NTFhMS4xNyAxLjE3IDAgMCAwIDEuMTcyLTEuMTcybS44Ni03LjM5MWExLjE3IDEuMTcgMCAwIDAtMS4xNzItMS4xNzJoLTUuODExYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNS44MWExLjE2NCAxLjE2NCAwIDAgMCAxLjE3My0xLjE3MSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwQjdCQyIgZD0ibTMzLjUzMiAxNi4zOTcgNC4yODktNC4yODkgMy43NTggMy43MSAxLjYxNy0xLjYxNiAyLjI1OCAyLjI1N2MuMjE4LjIxOC4zNC41MTMuMzQzLjgyLS4wMDIuMzExLS4xMjUuNjA4LS4zNDQuODNsLTYuODA0IDYuNzk2YTEuMTMgMS4xMyAwIDAgMS0uODI4LjM0MyAxLjE1IDEuMTUgMCAwIDEtLjgyOC0uMzQzIDEuMTggMS4xOCAwIDAgMSAwLTEuNjU3bDUuOTc2LTUuOTY4LTEuMzEyLTEuMzEzLTEuMzgzIDEuNDE0LTEzLjE0OSAxMy4xMjUtNC42MTcuNzgyLjc4Mi00LjYxNy4zMzYtLjMzNyAyLjU2MiAyLjU1NWExLjEgMS4xIDAgMCAwIC44MjguMzQ0Yy4zMTIuMDA1LjYxMi0uMTIuODI4LS4zNDRhMS4xOCAxLjE4IDAgMCAwIDAtMS42NTZsLTIuNTYyLTIuNTYyek00NC43MzYgMTIuMjRjMCAuNDE0LS4xNjMuODEtLjQ1NCAxLjEwMmwtLjkyMi45MTQtMy44NTItMy44MjguOTMtLjkzYTEuNTYzIDEuNTYzIDAgMCAxIDIuMjAzIDBsMS42NCAxLjY0MWMuMjkxLjI5My40NTUuNjkuNDU1IDEuMTAyIi8+PC9zdmc+"},"displayName":"n8n Form Trigger","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"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":1239,"icon":"file:splitOut.svg","name":"n8n-nodes-base.splitOut","codex":{"data":{"alias":["Split","Nested","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitout/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Split Out"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjOUI2REQ1IiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4MCAxNDhjMC02LjYyNy01LjM3My0xMi0xMi0xMkgzMjJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxNDZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMCA5NmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDMyMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDE0NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0wIDk2YzAtNi42MjctNS4zNzMtMTItMTItMTJIMzIyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTQ2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBkPSJNNDM4IDc2YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMydjU2YzAgMjYuOTc4LTEwLjI3MiA1MS41NTctMjcuMTE5IDcwLjAzOS01LjA1NSA1LjU0NS01LjA1NSAxNC4zNzcgMCAxOS45MjIgMTYuODQ3IDE4LjQ4MiAyNy4xMTkgNDMuMDYxIDI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMySDQyNmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtNDQuMTgzIDAtODAtMzUuODE3LTgwLTgwdi01NmMwLTMwLjkyOC0yNS4wNzItNTYtNTYtNTZhNS43ODMgNS43ODMgMCAwIDEtNS43ODMtNS43ODN2LTM2LjQzNGE1Ljc4MyA1Ljc4MyAwIDAgMSA1Ljc4My01Ljc4M2MzMC45MjggMCA1Ni0yNS4wNzIgNTYtNTZ2LTU2YzAtNDQuMTgzIDM1LjgxNy04MCA4MC04MEg0MjZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzYgMjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik01MTIgMEgwdjUxMmg1MTJ6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+"},"displayName":"Split Out","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1262,"icon":"file:google.svg","name":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgooglegemini/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Google Gemini Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDggNDgiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNDQuNSAyMEgyNHY4LjVoMTEuOEMzNC43IDMzLjkgMzAuMSAzNyAyNCAzN2MtNy4yIDAtMTMtNS44LTEzLTEzczUuOC0xMyAxMy0xM2MzLjEgMCA1LjkgMS4xIDguMSAyLjlsNi40LTYuNEMzNC42IDQuMSAyOS42IDIgMjQgMiAxMS44IDIgMiAxMS44IDIgMjRzOS44IDIyIDIyIDIyYzExIDAgMjEtOCAyMS0yMiAwLTEuMy0uMi0yLjctLjUtNCIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMCAzN1YxMWwxNyAxM3oiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im0wIDExIDE3IDEzIDctNi4xTDQ4IDE0VjBIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Im0wIDM3IDMwLTIzIDcuOSAxTDQ4IDB2NDhIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00OCA0OCAxNyAyNGwtNC0zIDM1LTEweiIgY2xpcC1wYXRoPSJ1cmwoI2IpIi8+PC9zdmc+"},"displayName":"Google Gemini Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1273,"icon":"fa:project-diagram","name":"@n8n/n8n-nodes-langchain.informationExtractor","codex":{"data":{"alias":["NER","parse","parsing","JSON","data extraction","structured"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.information-extractor/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Chains","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Information Extractor"},"iconData":{"icon":"project-diagram","type":"icon"},"displayName":"Information Extractor","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":32,"name":"Market Research"},{"id":49,"name":"AI Summarization"}],"image":[]}}