{"workflow":{"id":13713,"name":"Generate AI research papers with Claude, arXiv, Google Scholar and DOCX export","views":299,"recentViews":2,"totalViews":299,"createdAt":"2026-02-25T15:51:47.633Z","description":"## How It Works\nThis workflow streamlines academic paper development through a multi-agent AI architecture that collects references, drafts individual sections autonomously, compiles the manuscript, and exports a professionally formatted DOCX file. Tailored for researchers, faculty members, and postgraduate students, it reduces the effort required to plan, write, and format scholarly articles from the ground up. Upon receiving a paper title and abstract, the system initiates web-based literature retrieval and reference extraction, handled by a Research Agent leveraging tools such as Google Scholar. A central Orchestration Agent then coordinates six dedicated writing agents, covering the Introduction, Related Work, Methodology, Results, Discussion, and Conclusion. The generated sections are consolidated with an automatically formatted bibliography, converted into a DOCX document via a document automation script, and prepared for download.\n\n## Setup Steps\n1. Configure Research Paper Input node with topic, keywords, and paper parameters.\n2. Add Anthropic (Claude) API credentials to all Claude Model nodes.\n3. Set up Google Scholar Search Tool credentials or API key for literature retrieval.\n4. Connect Google Docs Script node with service account for DOCX generation.\n5. Configure workflow output path for DOCX file download or Drive storage.\n \n## Prerequisites\n- Google Scholar API or search tool access\n- Google Docs Script or DOCX generation service\n## Use Cases\n- Automated first-draft generation for academic journal submissions\n## Customization\n- Swap Claude for OpenAI GPT-4 or NVIDIA NIM across writing agents\n## Benefits\n- Generates complete, structured research papers fully automatically","workflow":{"id":"HJsFTTxpqMIq7c8OxnI7V","meta":{"instanceId":"b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"},"name":"AI research paper generator with multi-agent section writing and export","tags":[],"nodes":[{"id":"1166b3bc-7ddc-42e1-9522-978bbc4d2a3a","name":"Research Paper Input Form","type":"n8n-nodes-base.formTrigger","position":[-816,800],"webhookId":"240a2411-dd24-44fb-8971-80741ca3601d","parameters":{"options":{},"formTitle":"Academic Research Paper Generator","formFields":{"values":[{"fieldName":"paperTitle","fieldLabel":"Paper Title"},{"fieldName":"abstract","fieldType":"textarea","fieldLabel":"Abstract"},{"fieldName":"researchKeywords","fieldLabel":"Research Keywords"}]}},"typeVersion":2.5},{"id":"527c330a-0922-4f37-ba7c-13b5189abf39","name":"Workflow Configuration","type":"n8n-nodes-base.set","position":[-592,800],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"targetReferences","type":"number","value":35},{"id":"id-2","name":"arxivSearchUrl","type":"string","value":"http://export.arxiv.org/api/query"},{"id":"id-3","name":"maxTokens","type":"number","value":8000}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"296aaa86-a30d-4741-bbdc-04a06c084b5f","name":"Search arXiv API","type":"n8n-nodes-base.httpRequest","position":[-368,800],"parameters":{"url":"={{ $('Workflow Configuration').first().json.arxivSearchUrl }}","options":{},"sendQuery":true,"queryParameters":{"parameters":[{"name":"search_query","value":"={{ 'all:' + $json.Paper_Title.split(' ').join('+') }}"},{"name":"max_results","value":"={{ $('Workflow Configuration').first().json.targetReferences }}"},{"name":"sortBy","value":"relevance"},{"name":"sortOrder","value":"descending"}]}},"typeVersion":4.3},{"id":"d71df2a1-93ee-497f-b5d2-eec4030b2438","name":"Parse and Format References","type":"n8n-nodes-base.code","position":[-144,800],"parameters":{"jsCode":"// Parse arXiv XML response and extract paper metadata\nconst items = $input.all();\nconst results = [];\n\nfor (const item of items) {\n  // Get the XML response from the HTTP Request node\n  const xmlResponse = item.json.body || item.json;\n  \n  // Get original form inputs\n  const paperTitle = item.json.Paper_Title || '';\n  const abstract = item.json.Abstract || '';\n  const researchKeywords = item.json.Research_Keywords || '';\n  \n  // Parse XML to extract entries\n  const entries = [];\n  \n  // Simple XML parsing for arXiv feed entries\n  const entryMatches = xmlResponse.matchAll(/<entry>(.*?)<\\/entry>/gs);\n  \n  for (const match of entryMatches) {\n    const entry = match[1];\n    \n    // Extract title\n    const titleMatch = entry.match(/<title>(.*?)<\\/title>/s);\n    const title = titleMatch ? titleMatch[1].trim().replace(/\\n/g, ' ') : '';\n    \n    // Extract authors\n    const authorMatches = entry.matchAll(/<author>.*?<name>(.*?)<\\/name>.*?<\\/author>/gs);\n    const authors = [];\n    for (const authorMatch of authorMatches) {\n      authors.push(authorMatch[1].trim());\n    }\n    \n    // Extract abstract/summary\n    const summaryMatch = entry.match(/<summary>(.*?)<\\/summary>/s);\n    const abstractText = summaryMatch ? summaryMatch[1].trim().replace(/\\n/g, ' ') : '';\n    \n    // Extract published date\n    const publishedMatch = entry.match(/<published>(.*?)<\\/published>/);\n    const publishedDate = publishedMatch ? publishedMatch[1].trim() : '';\n    const year = publishedDate ? new Date(publishedDate).getFullYear() : '';\n    \n    // Extract arXiv ID from the id field\n    const idMatch = entry.match(/<id>(.*?)<\\/id>/);\n    const arxivUrl = idMatch ? idMatch[1].trim() : '';\n    const arxivIdMatch = arxivUrl.match(/arxiv\\.org\\/abs\\/(.*?)$/);\n    const arxivId = arxivIdMatch ? arxivIdMatch[1] : '';\n    \n    // Create structured reference object\n    entries.push({\n      title: title,\n      authors: authors,\n      year: year,\n      abstract: abstractText,\n      arxivId: arxivId,\n      url: arxivUrl\n    });\n  }\n  \n  // Return formatted output with references and original form data\n  results.push({\n    json: {\n      Paper_Title: paperTitle,\n      Abstract: abstract,\n      Research_Keywords: researchKeywords,\n      references: entries\n    }\n  });\n}\n\nreturn results;"},"typeVersion":2},{"id":"2be4b7ff-3c44-48c5-a5cb-5f986d50d8c7","name":"Claude Sonnet Model","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[80,1024],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{"temperature":0.3,"maxTokensToSample":8000}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"425c15b9-5ebc-4cc7-9ebf-fc3a275f0703","name":"Google Scholar Search Tool","type":"@n8n/n8n-nodes-langchain.toolSerpApi","position":[208,1024],"parameters":{"options":{}},"typeVersion":1},{"id":"9eb9c10b-4233-4f90-ba3d-2412e901927a","name":"Research Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[336,1024],"parameters":{"schemaType":"manual","inputSchema":"{\"type\":\"object\",\"properties\":{\"additionalReferences\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"title\":{\"type\":\"string\"},\"authors\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"year\":{\"type\":\"string\"},\"source\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"},\"relevance\":{\"type\":\"string\"}}}},\"totalReferencesFound\":{\"type\":\"number\"}},\"required\":[\"additionalReferences\",\"totalReferencesFound\"]}"},"typeVersion":1.3},{"id":"6379bf73-79c9-4e23-8ac4-c53fc09fd055","name":"Research Gathering Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[136,800],"parameters":{"text":"={{ 'Research topic: ' + $json.Paper_Title + '\\n\\nAbstract: ' + $json.Abstract + '\\n\\nKeywords: ' + $json.Research_Keywords + '\\n\\nExisting references from arXiv: ' + JSON.stringify($json.references) }}","options":{"systemMessage":"You are a research assistant specialized in academic literature search and citation management.\n\nYour task is to:\n1. Use the Google Scholar Search Tool to find additional relevant scholarly sources beyond the arXiv papers provided\n2. Search for papers from IEEE Xplore, ACM Digital Library, and other academic databases\n3. Aim to identify approximately 35 total high-quality references (including the arXiv papers already provided)\n4. For each additional source found, extract: title, authors, publication year, source/venue, URL, and brief relevance note\n5. Prioritize recent publications (last 5-10 years) and highly-cited works\n6. Ensure diversity of sources across different research perspectives\n\nReturn structured data with all additional references found."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"43b612bf-6c62-415a-b248-0dd22965ddb7","name":"Claude Model for Writing Agents","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[688,1056],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{"temperature":0.4,"maxTokensToSample":8000}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"50764b38-f462-43ff-a66b-c41ffe580ef1","name":"Introduction Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[832,1056],"parameters":{"schemaType":"manual","inputSchema":"{\"type\":\"object\",\"properties\":{\"content\":{\"type\":\"string\",\"description\":\"Introduction section content with in-text citations\"},\"citations\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"content\",\"citations\"]}"},"typeVersion":1.3},{"id":"bfb32768-029a-4bd7-a51d-f9db6ce23778","name":"Introduction Writer Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[672,848],"parameters":{"text":"={{ 'Paper title: ' + $fromAI('paperTitle', 'The research paper title', 'string') + '\\n\\nAbstract: ' + $fromAI('abstract', 'The paper abstract', 'string') + '\\n\\nAvailable references: ' + $fromAI('references', 'All collected references for citation', 'json') }}","options":{"systemMessage":"You are an expert academic writer specializing in Introduction sections.\n\nYour task is to:\n1. Write a comprehensive Introduction section (800-1200 words) for the research paper\n2. Establish the research context and motivation\n3. Clearly state the research problem and objectives\n4. Highlight the significance and contributions of the work\n5. Provide a brief overview of the paper structure\n6. Include accurate in-text citations in APA format (Author, Year) from the provided references\n7. Ensure originality - write in your own words, do not copy from sources\n8. Use formal academic language and maintain logical flow\n\nReturn the Introduction content with proper citations."},"hasOutputParser":true,"toolDescription":"Writes the Introduction section with proper academic structure and citations"},"typeVersion":3},{"id":"515979f9-2fa4-4d64-a994-3b57072236cd","name":"Claude Model for Related Work","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[960,1056],"parameters":{"model":{"__rl":true,"mode":"id","value":"claude-sonnet-4-5-20250929"},"options":{"temperature":0.4,"maxTokensToSample":8000}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"7f209370-9c39-4e76-b6db-a0293cc00837","name":"Related Work Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1120,1056],"parameters":{"schemaType":"manual","inputSchema":"{\"type\":\"object\",\"properties\":{\"content\":{\"type\":\"string\",\"description\":\"Related Work section content with in-text citations\"},\"citations\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"content\",\"citations\"]}"},"typeVersion":1.3},{"id":"13ee8998-b21e-463e-a5c1-139c28ce7fc7","name":"Related Work Writer Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[960,848],"parameters":{"text":"={{ 'Paper title: ' + $fromAI('paperTitle', 'The research paper title', 'string') + '\\n\\nAbstract: ' + $fromAI('abstract', 'The paper abstract', 'string') + '\\n\\nAvailable references: ' + $fromAI('references', 'All collected references for citation', 'json') }}","options":{"systemMessage":"You are an expert academic writer specializing in Related Work sections.\n\nYour task is to:\n1. Write a comprehensive Related Work section (1500-2000 words) for the research paper\n2. Organize literature into thematic categories or chronological progression\n3. Critically analyze and compare existing approaches\n4. Identify gaps in current research that this work addresses\n5. Position the current work within the broader research landscape\n6. Include accurate in-text citations in APA format (Author, Year) from the provided references\n7. Ensure originality - synthesize information, do not copy from sources\n8. Use formal academic language and maintain critical perspective\n\nReturn the Related Work content with proper citations."},"hasOutputParser":true,"toolDescription":"Writes the Related Work section with critical analysis and comprehensive citations"},"typeVersion":3},{"id":"a4d97b24-efef-487a-8fb9-a4e638ddb076","name":"Claude Model for Methodology","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[1248,1056],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{"temperature":0.4,"maxTokensToSample":8000}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"b282cc10-4061-4699-bbfe-0967c2940ef5","name":"Methodology Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1408,1056],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"content\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Methodology section content with in-text citations\"\n\t\t},\n\t\t\"citations\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t}\n\t},\n\t\"required\": [\"content\", \"citations\"]\n}"},"typeVersion":1.3},{"id":"b7280a2d-81ff-491b-90c7-db936b994476","name":"Methodology Writer Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[1248,848],"parameters":{"text":"={{ 'Paper title: ' + $fromAI('paperTitle', 'The research paper title', 'string') + '\n\nAbstract: ' + $fromAI('abstract', 'The paper abstract', 'string') + '\n\nAvailable references: ' + $fromAI('references', 'All collected references for citation', 'json') }}","options":{"systemMessage":"You are an expert academic writer specializing in Methodology sections.\n\nYour task is to:\n1. Write a detailed Methodology section (1200-1500 words) for the research paper\n2. Describe the research design and approach\n3. Explain data collection methods and procedures\n4. Detail analysis techniques and tools used\n5. Justify methodological choices with citations to established practices\n6. Include accurate in-text citations in APA format (Author, Year) from the provided references\n7. Ensure reproducibility - provide sufficient detail for replication\n8. Use formal academic language and maintain clarity\n\nReturn the Methodology content with proper citations."},"hasOutputParser":true,"toolDescription":"Writes the Methodology section with detailed procedures and justifications"},"typeVersion":3},{"id":"83465ad9-5472-4cdc-9518-7c113a640d78","name":"Claude Model for Results","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[1536,1056],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{"temperature":0.4,"maxTokensToSample":8000}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"88ffe587-370f-4bc7-868f-91c260aa64c3","name":"Results Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1696,1056],"parameters":{"schemaType":"manual","inputSchema":"{\"type\":\"object\",\"properties\":{\"content\":{\"type\":\"string\",\"description\":\"Results section content with in-text citations\"},\"citations\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"content\",\"citations\"]}"},"typeVersion":1.3},{"id":"13ddff3f-11dc-4a42-82ef-6829dd10d6ae","name":"Results Writer Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[1536,848],"parameters":{"text":"={{ 'Paper title: ' + $fromAI('paperTitle', 'The research paper title', 'string') + '\\n\\nAbstract: ' + $fromAI('abstract', 'The paper abstract', 'string') + '\\n\\nAvailable references: ' + $fromAI('references', 'All collected references for citation', 'json') }}","options":{"systemMessage":"You are an expert academic writer specializing in Results sections.\n\nYour task is to:\n1. Write a comprehensive Results section (1000-1500 words) for the research paper\n2. Present findings objectively and systematically\n3. Organize results logically (by research question, theme, or chronology)\n4. Reference tables, figures, and statistical analyses (describe them textually)\n5. Highlight key findings without interpretation (save for Discussion)\n6. Include accurate in-text citations in APA format (Author, Year) when comparing to prior work\n7. Ensure clarity and precision in reporting\n8. Use formal academic language\n\nReturn the Results content with proper citations."},"hasOutputParser":true,"toolDescription":"Writes the Results section with objective presentation of findings"},"typeVersion":3},{"id":"42f1267a-ba38-4afc-99e2-513da5e0580a","name":"Claude Model for Discussion","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[1824,1056],"parameters":{"model":{"__rl":true,"mode":"id","value":"claude-sonnet-4-5-20250929"},"options":{"temperature":0.4,"maxTokensToSample":8000}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"856b03b3-3591-42a1-80c5-02a059693fb1","name":"Discussion Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1984,1056],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"content\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Discussion section content with in-text citations\"\n\t\t},\n\t\t\"citations\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t}\n\t},\n\t\"required\": [\"content\", \"citations\"]\n}"},"typeVersion":1.3},{"id":"c05eb678-882d-4737-be80-284b6beeee92","name":"Discussion Writer Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[1824,848],"parameters":{"text":"={{ 'Paper title: ' + $fromAI('paperTitle', 'The research paper title', 'string') + '\n\nAbstract: ' + $fromAI('abstract', 'The paper abstract', 'string') + '\n\nAvailable references: ' + $fromAI('references', 'All collected references for citation', 'json') }}","options":{"systemMessage":"You are an expert academic writer specializing in Discussion sections.\n\nYour task is to:\n1. Write a comprehensive Discussion section (1200-1500 words) for the research paper\n2. Interpret the results and explain their significance\n3. Compare findings with existing literature (with citations)\n4. Discuss implications for theory and practice\n5. Address limitations of the study\n6. Suggest directions for future research\n7. Include accurate in-text citations in APA format (Author, Year) from the provided references\n8. Ensure critical analysis and thoughtful interpretation\n9. Use formal academic language\n\nReturn the Discussion content with proper citations."},"hasOutputParser":true,"toolDescription":"Writes the Discussion section with interpretation and critical analysis"},"typeVersion":3},{"id":"5b72a581-0502-43b6-abee-453a40f2052a","name":"Claude Model for Conclusion","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[2112,1056],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{"temperature":0.4,"maxTokensToSample":8000}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"2c0bee9c-e52b-44df-bf05-de7cab89e52e","name":"Conclusion Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[2256,1056],"parameters":{"schemaType":"manual","inputSchema":"{\"type\":\"object\",\"properties\":{\"content\":{\"type\":\"string\",\"description\":\"Conclusion section content with in-text citations\"},\"citations\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"content\",\"citations\"]}"},"typeVersion":1.3},{"id":"dd072e25-7309-4b24-94cd-17c919008744","name":"Conclusion Writer Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[2112,848],"parameters":{"text":"={{ 'Paper title: ' + $fromAI('paperTitle', 'The research paper title', 'string') + '\\n\\nAbstract: ' + $fromAI('abstract', 'The paper abstract', 'string') + '\\n\\nAvailable references: ' + $fromAI('references', 'All collected references for citation', 'json') }}","options":{"systemMessage":"You are an expert academic writer specializing in Conclusion sections.\n\nYour task is to:\n1. Write a concise Conclusion section (600-800 words) for the research paper\n2. Summarize the main findings and contributions\n3. Restate the significance of the work\n4. Highlight practical and theoretical implications\n5. Provide final thoughts on future research directions\n6. Include minimal citations (only if essential)\n7. Ensure the conclusion provides closure without introducing new information\n8. Use formal academic language\n\nReturn the Conclusion content with proper citations if needed."},"hasOutputParser":true,"toolDescription":"Writes the Conclusion section summarizing contributions and implications"},"typeVersion":3},{"id":"ab821986-85f0-42f0-8b59-94d2a3a1a068","name":"Claude Model for Orchestrator","type":"@n8n/n8n-nodes-langchain.lmChatAnthropic","position":[544,848],"parameters":{"model":{"__rl":true,"mode":"list","value":"claude-sonnet-4-5-20250929","cachedResultName":"Claude Sonnet 4.5"},"options":{"temperature":0.2,"maxTokensToSample":8000}},"credentials":{"anthropicApi":{"id":"S8laStQPC1u3EYuZ","name":"Anthropic account"}},"typeVersion":1.3},{"id":"06a2d3cb-1f80-4cfa-8efe-8a0a8f9b6490","name":"Orchestrator Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[2400,848],"parameters":{"schemaType":"manual","inputSchema":"{\"type\":\"object\",\"properties\":{\"paperTitle\":{\"type\":\"string\"},\"abstract\":{\"type\":\"string\"},\"introduction\":{\"type\":\"string\"},\"relatedWork\":{\"type\":\"string\"},\"methodology\":{\"type\":\"string\"},\"results\":{\"type\":\"string\"},\"discussion\":{\"type\":\"string\"},\"conclusion\":{\"type\":\"string\"}},\"required\":[\"paperTitle\",\"abstract\",\"introduction\",\"relatedWork\",\"methodology\",\"results\",\"discussion\",\"conclusion\"]}"},"typeVersion":1.3},{"id":"597dcd7f-d94f-4d3f-9315-215957659a1c","name":"Paper Orchestrator Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[1400,624],"parameters":{"text":"={{ 'Paper title: ' + $json.Paper_Title + '\\n\\nAbstract: ' + $json.Abstract + '\\n\\nAll collected references: ' + JSON.stringify($json) }}","options":{"systemMessage":"You are a research paper orchestrator coordinating specialized AI writing agents.\n\nYour task is to:\n1. Call the Introduction Writer Agent Tool to generate the Introduction section\n2. Call the Related Work Writer Agent Tool to generate the Related Work section\n3. Call the Methodology Writer Agent Tool to generate the Methodology section\n4. Call the Results Writer Agent Tool to generate the Results section\n5. Call the Discussion Writer Agent Tool to generate the Discussion section\n6. Call the Conclusion Writer Agent Tool to generate the Conclusion section\n7. Pass the paper title, abstract, and all collected references to each agent\n8. Ensure consistency across all sections\n9. Return a complete structured paper with all sections\n\nCoordinate the agents to produce a cohesive, publication-ready academic paper."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"43c44ec8-8c60-49f2-a722-da3a0a658f1e","name":"Assemble Paper Sections","type":"n8n-nodes-base.code","position":[2608,624],"parameters":{"jsCode":"// Assemble all paper sections from the orchestrator output\nconst items = $input.all();\n\n// Extract the agent output from the first item\nconst agentOutput = items[0].json;\n\n// Extract all sections from the agent output\nconst paperTitle = agentOutput.paperTitle || 'Untitled Research Paper';\nconst abstract = agentOutput.abstract || '';\nconst introduction = agentOutput.introduction || '';\nconst relatedWork = agentOutput.relatedWork || '';\nconst methodology = agentOutput.methodology || '';\nconst results = agentOutput.results || '';\nconst discussion = agentOutput.discussion || '';\nconst conclusion = agentOutput.conclusion || '';\n\n// Combine sections into a single structured document with proper headings\nconst paperContent = `${paperTitle}\n\n` +\n  `Abstract\\n${abstract}\\n\\n` +\n  `1. Introduction\\n${introduction}\\n\\n` +\n  `2. Related Work\\n${relatedWork}\\n\\n` +\n  `3. Methodology\\n${methodology}\\n\\n` +\n  `4. Results\\n${results}\\n\\n` +\n  `5. Discussion\\n${discussion}\\n\\n` +\n  `6. Conclusion\\n${conclusion}`;\n\n// Return assembled paper content\nreturn [\n  {\n    json: {\n      paperContent: paperContent,\n      paperTitle: paperTitle,\n      sections: {\n        abstract: abstract,\n        introduction: introduction,\n        relatedWork: relatedWork,\n        methodology: methodology,\n        results: results,\n        discussion: discussion,\n        conclusion: conclusion\n      }\n    }\n  }\n];"},"typeVersion":2},{"id":"280e9ece-b06f-4b47-93e1-a9df3a8644a3","name":"Generate Bibliography","type":"n8n-nodes-base.code","position":[2608,976],"parameters":{"jsCode":"// Generate formatted bibliography from all collected references\n// Combine arXiv references and additional references from research agent\n// Format each reference in APA style with authors, year, title, source, and URL\n// Sort references alphabetically by first author's last name\n\nconst references = [];\n\n// Process all input items to collect references\nfor (const item of $input.all()) {\n  // Check for arXiv references\n  if (item.json.arxiv_references && Array.isArray(item.json.arxiv_references)) {\n    references.push(...item.json.arxiv_references);\n  }\n  \n  // Check for additional references from research agent\n  if (item.json.references && Array.isArray(item.json.references)) {\n    references.push(...item.json.references);\n  }\n  \n  // Check for individual reference fields\n  if (item.json.reference) {\n    references.push(item.json.reference);\n  }\n}\n\n// Function to format a single reference in APA style\nfunction formatAPAReference(ref) {\n  let formatted = '';\n  \n  // Format authors\n  if (ref.authors && Array.isArray(ref.authors) && ref.authors.length > 0) {\n    if (ref.authors.length === 1) {\n      formatted += ref.authors[0];\n    } else if (ref.authors.length === 2) {\n      formatted += `${ref.authors[0]}, & ${ref.authors[1]}`;\n    } else {\n      const lastAuthor = ref.authors[ref.authors.length - 1];\n      const otherAuthors = ref.authors.slice(0, -1).join(', ');\n      formatted += `${otherAuthors}, & ${lastAuthor}`;\n    }\n  } else if (ref.author) {\n    formatted += ref.author;\n  }\n  \n  // Add year\n  if (ref.year) {\n    formatted += ` (${ref.year}).`;\n  } else if (ref.published) {\n    const year = new Date(ref.published).getFullYear();\n    formatted += ` (${year}).`;\n  } else {\n    formatted += ' (n.d.).';\n  }\n  \n  // Add title\n  if (ref.title) {\n    formatted += ` ${ref.title}.`;\n  }\n  \n  // Add source/journal\n  if (ref.source) {\n    formatted += ` ${ref.source}.`;\n  } else if (ref.journal) {\n    formatted += ` ${ref.journal}.`;\n  } else if (ref.arxiv_id) {\n    formatted += ` arXiv preprint arXiv:${ref.arxiv_id}.`;\n  }\n  \n  // Add URL\n  if (ref.url) {\n    formatted += ` Retrieved from ${ref.url}`;\n  } else if (ref.arxiv_id) {\n    formatted += ` Retrieved from https://arxiv.org/abs/${ref.arxiv_id}`;\n  }\n  \n  return formatted;\n}\n\n// Function to extract first author's last name for sorting\nfunction getFirstAuthorLastName(ref) {\n  let firstAuthor = '';\n  \n  if (ref.authors && Array.isArray(ref.authors) && ref.authors.length > 0) {\n    firstAuthor = ref.authors[0];\n  } else if (ref.author) {\n    firstAuthor = ref.author;\n  }\n  \n  // Extract last name (assuming format \"Last, F.\" or \"First Last\")\n  if (firstAuthor.includes(',')) {\n    return firstAuthor.split(',')[0].trim().toLowerCase();\n  } else {\n    const parts = firstAuthor.trim().split(' ');\n    return parts[parts.length - 1].toLowerCase();\n  }\n}\n\n// Remove duplicates based on title\nconst uniqueReferences = [];\nconst seenTitles = new Set();\n\nfor (const ref of references) {\n  const title = (ref.title || '').toLowerCase().trim();\n  if (title && !seenTitles.has(title)) {\n    seenTitles.add(title);\n    uniqueReferences.push(ref);\n  }\n}\n\n// Sort references alphabetically by first author's last name\nuniqueReferences.sort((a, b) => {\n  const nameA = getFirstAuthorLastName(a);\n  const nameB = getFirstAuthorLastName(b);\n  return nameA.localeCompare(nameB);\n});\n\n// Format all references\nconst formattedReferences = uniqueReferences.map(ref => formatAPAReference(ref));\n\n// Create bibliography text\nconst bibliography = formattedReferences.join('\\n\\n');\n\n// Return the formatted bibliography\nreturn [{\n  json: {\n    bibliography: bibliography,\n    reference_count: formattedReferences.length,\n    references: formattedReferences\n  }\n}];"},"typeVersion":2},{"id":"afdde557-023a-452b-ba39-f010400420a2","name":"Combine Paper and Bibliography","type":"n8n-nodes-base.merge","position":[2832,800],"parameters":{},"typeVersion":3.2},{"id":"8299b80d-a705-4c82-9afa-0e4b2ccb5cd3","name":"Format as DOCX Content","type":"n8n-nodes-base.code","position":[3056,800],"parameters":{"jsCode":"// Format complete paper as DOCX-compatible content\n// Combines paper content and bibliography into structured academic format\n\nconst items = $input.all();\n\n// Extract paper content from first input (from Combine Paper and Bibliography node)\nconst paperData = items[0].json;\nconst paperContent = paperData.paperContent || {};\nconst bibliography = paperData.bibliography || '';\n\n// Extract metadata\nconst title = paperContent.title || 'Research Paper';\nconst authors = paperContent.authors || 'Author Name';\nconst affiliation = paperContent.affiliation || 'Institution';\nconst abstractText = paperContent.abstract || '';\nconst keywords = paperContent.keywords || '';\n\n// Extract sections\nconst introduction = paperContent.introduction || '';\nconst relatedWork = paperContent.relatedWork || '';\nconst methodology = paperContent.methodology || '';\nconst results = paperContent.results || '';\nconst discussion = paperContent.discussion || '';\nconst conclusion = paperContent.conclusion || '';\n\n// Build formatted DOCX content with proper academic structure\nlet docxContent = '';\n\n// Title Page\ndocxContent += `${title}\\n\\n`;\ndocxContent += `${authors}\\n`;\ndocxContent += `${affiliation}\\n\\n`;\ndocxContent += `---\\n\\n`;\n\n// Abstract\nif (abstractText) {\n  docxContent += `ABSTRACT\\n\\n`;\n  docxContent += `${abstractText}\\n\\n`;\n}\n\n// Keywords\nif (keywords) {\n  docxContent += `Keywords: ${keywords}\\n\\n`;\n}\n\ndocxContent += `---\\n\\n`;\n\n// Main Sections\nif (introduction) {\n  docxContent += `1. INTRODUCTION\\n\\n`;\n  docxContent += `${introduction}\\n\\n`;\n}\n\nif (relatedWork) {\n  docxContent += `2. RELATED WORK\\n\\n`;\n  docxContent += `${relatedWork}\\n\\n`;\n}\n\nif (methodology) {\n  docxContent += `3. METHODOLOGY\\n\\n`;\n  docxContent += `${methodology}\\n\\n`;\n}\n\nif (results) {\n  docxContent += `4. RESULTS\\n\\n`;\n  docxContent += `${results}\\n\\n`;\n}\n\nif (discussion) {\n  docxContent += `5. DISCUSSION\\n\\n`;\n  docxContent += `${discussion}\\n\\n`;\n}\n\nif (conclusion) {\n  docxContent += `6. CONCLUSION\\n\\n`;\n  docxContent += `${conclusion}\\n\\n`;\n}\n\n// References/Bibliography\nif (bibliography) {\n  docxContent += `---\\n\\n`;\n  docxContent += `REFERENCES\\n\\n`;\n  docxContent += `${bibliography}\\n`;\n}\n\n// Return formatted content\nreturn [\n  {\n    json: {\n      docxContent: docxContent,\n      title: title,\n      authors: authors,\n      sections: {\n        introduction: !!introduction,\n        relatedWork: !!relatedWork,\n        methodology: !!methodology,\n        results: !!results,\n        discussion: !!discussion,\n        conclusion: !!conclusion\n      },\n      hasBibliography: !!bibliography,\n      contentLength: docxContent.length\n    }\n  }\n];"},"typeVersion":2},{"id":"20dd753b-8ddd-4b7b-a580-8a2cdd1ff2da","name":"Generate DOCX File","type":"n8n-nodes-base.convertToFile","position":[3280,800],"parameters":{"options":{"fileName":"={{ $json.paperTitle.replace(/[^a-z0-9]/gi, '_') + '_Research_Paper.docx' }}"},"operation":"toBinary","sourceProperty":"docxContent"},"typeVersion":1.1},{"id":"8bc801f6-3f7e-4ddf-99b1-1b91b3ff4a83","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[640,144],"parameters":{"color":6,"width":496,"height":336,"content":"## Prerequisites\n- Google Scholar API or search tool access\n- Google Docs Script or DOCX generation service\n## Use Cases\n- Automated first-draft generation for academic journal submissions\n## Customization\n- Swap Claude for OpenAI GPT-4 or NVIDIA NIM across writing agents\n## Benefits\n- Generates complete, structured research papers fully automatically"},"typeVersion":1},{"id":"5e9606f5-f1c6-4d8d-bf6b-b31bb80abd22","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[32,240],"parameters":{"width":576,"height":224,"content":"## Setup Steps\n1. Configure Research Paper Input node with topic, keywords, and paper parameters.\n2. Add Anthropic (Claude) API credentials to all Claude Model nodes.\n3. Set up Google Scholar Search Tool credentials or API key for literature retrieval.\n4. Connect Google Docs Script node with service account for DOCX generation.\n5. Configure workflow output path for DOCX file download or Drive storage."},"typeVersion":1},{"id":"762a0f33-461a-4fe7-bb58-2c5b1155bb78","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-800,240],"parameters":{"width":784,"height":240,"content":"## How It Works\nThis workflow streamlines academic paper development through a multi-agent AI architecture that collects references, drafts individual sections autonomously, compiles the manuscript, and exports a professionally formatted DOCX file. Tailored for researchers, faculty members, and postgraduate students, it reduces the effort required to plan, write, and format scholarly articles from the ground up. Upon receiving a paper title and abstract, the system initiates web-based literature retrieval and reference extraction, handled by a Research Agent leveraging tools such as Google Scholar. A central Orchestration Agent then coordinates six dedicated writing agents, covering the Introduction, Related Work, Methodology, Results, Discussion, and Conclusion. The generated sections are consolidated with an automatically formatted bibliography, converted into a DOCX document via a document automation script, and prepared for download."},"typeVersion":1},{"id":"3faf6fb5-2989-4300-bcd5-5d967f4c0d94","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-896,608],"parameters":{"color":7,"width":880,"height":496,"content":"## Research Input & Web Search with Formatting\n**What** – Accepts paper topic and searches for sources via API and Google Scholar.\n**Why** – Grounds the paper in real, relevant academic references from the outset."},"typeVersion":1},{"id":"5477d6e9-80a6-4e05-bd3f-3483d4ff0389","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[496,544],"parameters":{"color":7,"width":2016,"height":224,"content":"## Paper Orchestration Agent\n**What** – Delegates writing tasks to six specialist section agents in parallel.\n**Why** – Maximises efficiency by generating all sections simultaneously."},"typeVersion":1},{"id":"2811b806-56b4-4643-be31-607289c69070","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[0,608],"parameters":{"color":7,"width":480,"height":624,"content":"## Research Gathering Agent\n**What** – Consolidates research outputs using Claude as the base model.\n**Why** – Provides a unified knowledge context before section writing begins."},"typeVersion":1},{"id":"aa00dd3c-25e3-4ce0-8638-db7f2ab23d7b","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[512,800],"parameters":{"color":7,"width":2016,"height":784,"content":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Section Writing Agents\n**What** – Each agent writes its assigned section—Introduction through Conclusion.\n**Why** – Specialist prompting per section ensures appropriate depth and academic tone."},"typeVersion":1},{"id":"ddc6610b-bdbb-4280-bb7c-b2a0fb254df6","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[2576,512],"parameters":{"color":7,"width":912,"height":880,"content":"## Assemble, Bibliography & DOCX Export\n**What** – Merges sections, generates bibliography, and exports formatted DOCX.\n**Why** – Delivers a complete, submission-ready document without manual formatting."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"5f7b1976-d778-4041-b279-97d73341a7d7","connections":{"Search arXiv API":{"main":[[{"node":"Parse and Format References","type":"main","index":0}]]},"Claude Sonnet Model":{"ai_languageModel":[[{"node":"Research Gathering Agent","type":"ai_languageModel","index":0}]]},"Generate Bibliography":{"main":[[{"node":"Combine Paper and Bibliography","type":"main","index":0},{"node":"Combine Paper and Bibliography","type":"main","index":1}]]},"Results Output Parser":{"ai_outputParser":[[{"node":"Results Writer Agent Tool","type":"ai_outputParser","index":0}]]},"Format as DOCX Content":{"main":[[{"node":"Generate DOCX File","type":"main","index":0}]]},"Research Output Parser":{"ai_outputParser":[[{"node":"Research Gathering Agent","type":"ai_outputParser","index":0}]]},"Workflow Configuration":{"main":[[{"node":"Search arXiv API","type":"main","index":0}]]},"Assemble Paper Sections":{"main":[[{"node":"Combine Paper and Bibliography","type":"main","index":0}]]},"Claude Model for Results":{"ai_languageModel":[[{"node":"Results Writer Agent Tool","type":"ai_languageModel","index":0}]]},"Conclusion Output Parser":{"ai_outputParser":[[{"node":"Conclusion Writer Agent Tool","type":"ai_outputParser","index":0}]]},"Discussion Output Parser":{"ai_outputParser":[[{"node":"Discussion Writer Agent Tool","type":"ai_outputParser","index":0}]]},"Paper Orchestrator Agent":{"main":[[{"node":"Assemble Paper Sections","type":"main","index":0}]]},"Research Gathering Agent":{"main":[[{"node":"Paper Orchestrator Agent","type":"main","index":0},{"node":"Generate Bibliography","type":"main","index":0}]]},"Methodology Output Parser":{"ai_outputParser":[[{"node":"Methodology Writer Agent Tool","type":"ai_outputParser","index":0}]]},"Research Paper Input Form":{"main":[[{"node":"Workflow Configuration","type":"main","index":0}]]},"Results Writer Agent Tool":{"ai_tool":[[{"node":"Paper Orchestrator Agent","type":"ai_tool","index":0}]]},"Google Scholar Search Tool":{"ai_tool":[[{"node":"Research Gathering Agent","type":"ai_tool","index":0}]]},"Introduction Output Parser":{"ai_outputParser":[[{"node":"Introduction Writer Agent Tool","type":"ai_outputParser","index":0}]]},"Orchestrator Output Parser":{"ai_outputParser":[[{"node":"Paper Orchestrator Agent","type":"ai_outputParser","index":0}]]},"Related Work Output Parser":{"ai_outputParser":[[{"node":"Related Work Writer Agent Tool","type":"ai_outputParser","index":0}]]},"Claude Model for Conclusion":{"ai_languageModel":[[{"node":"Conclusion Writer Agent Tool","type":"ai_languageModel","index":0}]]},"Claude Model for Discussion":{"ai_languageModel":[[{"node":"Discussion Writer Agent Tool","type":"ai_languageModel","index":0}]]},"Parse and Format References":{"main":[[{"node":"Research Gathering Agent","type":"main","index":0}]]},"Claude Model for Methodology":{"ai_languageModel":[[{"node":"Methodology Writer Agent Tool","type":"ai_languageModel","index":0}]]},"Conclusion Writer Agent Tool":{"ai_tool":[[{"node":"Paper Orchestrator Agent","type":"ai_tool","index":0}]]},"Discussion Writer Agent Tool":{"ai_tool":[[{"node":"Paper Orchestrator Agent","type":"ai_tool","index":0}]]},"Claude Model for Orchestrator":{"ai_languageModel":[[{"node":"Paper Orchestrator Agent","type":"ai_languageModel","index":0}]]},"Claude Model for Related Work":{"ai_languageModel":[[{"node":"Related Work Writer Agent Tool","type":"ai_languageModel","index":0}]]},"Methodology Writer Agent Tool":{"ai_tool":[[{"node":"Paper Orchestrator Agent","type":"ai_tool","index":0}]]},"Combine Paper and Bibliography":{"main":[[{"node":"Format as DOCX Content","type":"main","index":0}]]},"Introduction Writer Agent Tool":{"ai_tool":[[{"node":"Paper Orchestrator Agent","type":"ai_tool","index":0}]]},"Related Work Writer Agent Tool":{"ai_tool":[[{"node":"Paper Orchestrator Agent","type":"ai_tool","index":0}]]},"Claude Model for Writing Agents":{"ai_languageModel":[[{"node":"Introduction Writer Agent Tool","type":"ai_languageModel","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":42,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":4},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.stickyNote":{"count":8},"n8n-nodes-base.formTrigger":{"count":1},"n8n-nodes-base.httpRequest":{"count":1},"n8n-nodes-base.convertToFile":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":2},"@n8n/n8n-nodes-langchain.agentTool":{"count":6},"@n8n/n8n-nodes-langchain.toolSerpApi":{"count":1},"@n8n/n8n-nodes-langchain.lmChatAnthropic":{"count":8},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":8}}},"status":"published","readyToDemo":null,"user":{"name":"Cheng Siong Chin","username":"cschin","bio":"Dr. Cheng Siong CHIN is an n8n workflow creator specializing in AI-powered automation, agent orchestration, and intelligent system integrations. He designs and builds end-to-end workflows that combine LLMs, APIs, and data pipelines to streamline complex processes and deliver production-ready automation solutions. Contact me to discuss custom AI workflows and agent architectures.\n","verified":true,"links":["https://gravatar.com/mysticluminary9fa255f7f5"],"avatar":"https://gravatar.com/avatar/54544f98e839bb9dd9a764ad1e6823eeddb6db5138d201e42f291a7b0a73303f?r=pg&d=retro&size=200"},"nodes":[{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":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":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":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"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":1145,"icon":"file:anthropic.svg","name":"@n8n/n8n-nodes-langchain.lmChatAnthropic","codex":{"data":{"alias":["claude","sonnet","opus"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatanthropic/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Anthropic Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzdEN0Q4NyIgZD0iTTMyLjczIDBoLTYuOTQ1TDM4LjQ1IDMyaDYuOTQ1ek0xMi42NjUgMCAwIDMyaDcuMDgybDIuNTktNi43MmgxMy4yNWwyLjU5IDYuNzJoNy4wODJMMTkuOTI5IDB6bS0uNzAyIDE5LjMzNyA0LjMzNC0xMS4yNDYgNC4zMzQgMTEuMjQ2eiIvPjwvc3ZnPg=="},"displayName":"Anthropic Chat Model","typeVersion":1,"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":1199,"icon":"file:serpApi.svg","name":"@n8n/n8n-nodes-langchain.toolSerpApi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolserpapi/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Tools"],"Tools":["Other Tools"]}}},"group":"[\"transform\"]","defaults":{"name":"SerpAPI"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDQ2ODAgMTM0MCI+PHBhdGggZmlsbD0iIzdEN0Q4NyIgZD0iTTQ0NjMgMTIxdjExMGgyMDdWMTFoLTIwN3pNMzAwLjUgNDcuNmMtMi43LjItMTIuMi44LTIxIDEuNC02OC4yIDQuNi0xMjMuOCAxOC4xLTE2MSAzOS4yQzYwLjYgMTIxIDMxLjggMTc0LjIgMjQgMjYzYy0yLjcgMzEuNS0yLjIgOTguMyAxLjEgMTM1QzM1IDUwOS40IDcyLjggNTU1LjEgMTg1IDU5MS41YzI0IDcuNyA1NS4xIDE1LjggOTguMiAyNS41IDIwIDQuNSA0Ny4xIDEwLjkgNjAuMyAxNC4yIDcxLjggMTggOTUgMzIuNSAxMDIuNSA2My45IDUuMiAyMS45IDUuMiA3NC4zLjEgOTcuOS05IDQwLjktMzYuMSA1NS44LTEwNS44IDU3LjgtOTEuNiAyLjgtMTc3LTkuMy0yNzkuNi0zOS41LTEwLjQtMy0xOS4yLTUuMS0xOS43LTQuNy0uOSAxLjEtMzYuMyAxNjUuNC0zNS43IDE2NiAxLjMgMS4zIDM0LjQgMTQuMyA0OS43IDE5LjUgNTkuOSAyMC41IDEyMy4yIDMzLjMgMTk3LjUgNDAgMTkuMiAxLjcgOTIuMSAyLjMgMTE3IDEgMTMzLjYtNy4yIDIxMC0zNi40IDI1My4xLTk2LjggMzQuMy00OCA0Ni44LTExNy4yIDQyLjUtMjM1LjMtMi4zLTYyLjgtNy41LTkyLjEtMjEuNi0xMjEuNS0yNy41LTU3LjItODktOTAuMS0yMzUuNS0xMjYuMS05Mi44LTIyLjgtMTA0LjktMjYuMS0xMjMuMy0zMy40LTI1LjctMTAuMy0zNy41LTIyLTQyLjctNDIuNS0zLjctMTQuNS01LjItNTUuOS0yLjktNzkgNC0zOS45IDIwLjEtNTYuMyA2MS45LTYzIDMzLjctNS40IDExNC42LTMuNiAxODQuNSA0LjEgMjcgMyA3NC41IDkuNyAxMTAuOSAxNS43IDE2LjMgMi43IDI2IDMuOSAyNi4yIDMuMi42LTEuOSAyMS41LTE3OS44IDIxLjEtMTgwLjEtLjctLjgtNDAuNS04LjUtNjMuNi0xMi4zQzUzMS43IDU4IDQ4OS40IDUzIDQzMy41IDQ4LjljLTE0LjEtMS0xMjIuMS0yLjEtMTMzLTEuM20yNjk5IDE0LjZjLTEgMi45LTI5MS41IDk1Ni44LTI5MS41IDk1Ny4zIDAgLjMgNTAuNS40IDExMi4yLjNsMTEyLjMtLjMgMjUuMi05MWMxMy44LTUwLjEgMjUuNC05MiAyNS44LTkzLjNsLjUtMi4yIDE2MC44LjIgMTYwLjcuMyAyNS41IDkyYzE0LjEgNTAuNiAyNS44IDkyLjYgMjYgOTMuMy40IDEgMjMuNCAxLjIgMTEyLjYgMWwxMTItLjMtMTQ2LjYtNDc5LTE0Ni43LTQ3OS0xNDQuMi0uM2MtMTE0LjgtLjItMTQ0LjMgMC0xNDQuNiAxbTE5OS4zIDM5MGMyOS44IDEwOS42IDU0LjIgMTk5LjYgNTQuMiAyMDAgMCAuNS00OS41LjgtMTEwLjEuOC05MS4zIDAtMTEwLS4yLTEwOS42LTEuMy4zLS44IDI1LjItOTAuOCA1NS4zLTIwMCAzMC4xLTEwOS4zIDU1LjEtMTk4LjcgNTUuNC0xOTguN3MyNSA4OS43IDU0LjggMTk5LjJNMTA2MiAzMDQuNmMtMTcuNC45LTM4LjYgMi43LTQ4LjUgNC0xMjkuOCAxNy41LTIwNS44IDg1LjktMjI2LjUgMjA0LjEtNS4yIDI5LjctNS4zIDMwLjktNS43IDE0Mi44LS41IDExMC4xLS4xIDEyNi43IDMuOCAxNTQuNCA3LjEgNTAuOCAyNSA5NS43IDUxLjQgMTI4LjYgMzcuMyA0Ni42IDk0LjggNzYuOSAxNjguOSA4OC45IDM0LjEgNS42IDU3LjQgNyAxMDIuMSA2LjMgNTMuNC0uOSA5OC41LTUuOSAxNTMuNS0xNy4yIDM5LjItOCA5Ny0yNC42IDk3LTI3LjcgMC0xLjItMjguOS0xNTAuNi0yOS42LTE1Mi45LS40LTEuNS0uOS0xLjUtNS4yLS4zLTQwLjggMTIuNC0xMTAuNSAyMy45LTE2Ni45IDI3LjUtMjQuOCAxLjYtNzcuNC43LTkxLjEtMS41LTQxLTYuNy02MC41LTIwLjQtNzAuMy00OS43LTQuMS0xMi40LTUuOS0yNS4yLTYuNi00OS4ybC0uNi0yMC43SDEzNjZ2LTczLjhjMC03Ni42LS45LTEwOS40LTMuNi0xMzMuNS0xMi4yLTExMC43LTYwLjUtMTc4LjgtMTQ5LjYtMjEwLjgtMjIuNS04LTUzLjYtMTQuNi04Mi44LTE3LjMtMTUuNS0xLjUtNTUuNy0yLjctNjgtMm0zOSAxNjMuNGMyMS43IDIuNyAzNS42IDguNiA0Ny4xIDIwIDE2LjMgMTYuMyAyMS4yIDMzLjMgMjEuMyA3NC41bC4xIDI0aC0xODFsLS4zLTE1Yy0uOC00MS4yIDYuMy02NC43IDI0LjYtODEuNyAxMS4zLTEwLjQgMjUuMy0xNy4xIDQyLjMtMjAuMiAxNC42LTIuNyAzMi0zLjMgNDUuOS0xLjZtMTI5Ni41LTE2Mi45Yy0zOS4zIDIuNy04NSAxNC42LTEzMC43IDM0LTE3LjggNy42LTQ0LjQgMjEtNTguMSAyOS4ybC0xMC44IDYuNS0xLjItMy4xYy0uNy0xLjgtNS42LTE0LjMtMTAuOC0yNy45bC05LjQtMjQuOEgyMDE0djUwNi41YzAgNDY0LjcuMSA1MDYuNSAxLjYgNTA2LjUuOSAwIDQ3LTYuMyAxMDIuNC0xNCA1NS41LTcuNyAxMDEuMy0xNCAxMDEuOS0xNCAuOCAwIDEuMS00Mi40IDEuMS0xNDQuOHYtMTQ0LjlsOC4zIDEuOGMzNS42IDcuOSA4MiAxNCAxMjguNSAxNyAyNC4yIDEuNSA3Mi42LjcgODguNy0xLjUgNjcuOS05LjUgMTE1LjMtMzYuNSAxNDYuOS04My42IDcuNi0xMS4zIDE5LjUtMzUuNyAyNC40LTUwIDcuNi0yMi4yIDEyLjUtNDYuMSAxNS45LTc2LjUgMS4zLTExLjYgMS42LTM0LjkgMi0xMzYgLjUtMTIzLjkgMC0xNTEuNC0zLjItMTc3LjUtMTAtODIuMi00MS42LTEzOS43LTk0LjctMTcyLjYtMjguOC0xNy45LTYyLjgtMjcuNy0xMDUuMy0zMC40LTE2LjUtMS4xLTE5LTEuMS0zNSAuMU0yMzY0IDQ4NWMxOS45IDEuOSAzMi40IDYuOCA0My4xIDE2LjhzMTYuNiAyMiAxOS40IDM5LjVjMi4yIDEzLjcgMi4yIDI0Mi4yIDAgMjU1LTQuOCAyNy4zLTE3LjkgNDQuNS00MC40IDUyLjctMTIgNC40LTIxLjUgNS40LTQ2LjEgNC43LTIyLjUtLjYtNDQuOS0yLjktNzEtNy4xLTE1LjctMi42LTM3LjEtNi44LTQ0LjItOC42bC0zLjgtMS4xVjUzOS4ybDQuMy0zLjdjNi42LTUuNyAyNi4yLTE4LjYgMzcuOC0yNC44IDMwLjItMTYuMiA1Ny43LTI0LjQgODguNC0yNi42IDEuMSAwIDYuNy40IDEyLjUuOW0xNzE0LjUtMTgwLjRjLTU5IDMuNS0xMzQuNCAyOC4zLTE5My43IDYzLjdsLTEwLjcgNi40LTQuOS0xMi42Yy0yLjctNi45LTcuNS0xOS41LTEwLjctMjcuOWwtNS45LTE1LjJIMzY5MHY1MDYuNWMwIDQ2OCAuMSA1MDYuNSAxLjYgNTA2LjUuOSAwIDQ3LjEtNi4zIDEwMi42LTE0czEwMS4zLTE0IDEwMS44LTE0Yy42IDAgMS01My4zIDEtMTQ0Ljh2LTE0NC44bDE4LjMgMy43YzMwLjIgNi4xIDU2LjUgOS43IDk3LjcgMTMuNiAyMy41IDIuMiA4OC45IDIuNSAxMDUgLjUgMzEtMy45IDU5LjUtMTIgODIuOS0yMy45IDE5LjItOS42IDMwLjktMTguMSA0Ni4xLTMzLjMgMjkuMi0yOS4yIDQ3LTY1LjEgNTctMTE1IDcuNC0zNyA4LTUxLjMgOC0xOTEgMC0xMzguOS0uNi0xNTIuOC04LTE5MC0yMC4zLTEwMi04MC42LTE2MC44LTE3Ny0xNzIuNC0xMy0xLjUtMzguMS0yLjYtNDguNS0yTTQwNDEgNDg1YzEyLjYgMS4yIDE5LjggMy4yIDI5LjcgOCAxNS4zIDcuNSAyNS4yIDIwLjggMzAuNiA0MWwyLjIgOC41djI1M2wtMi4yIDguNGMtNi4yIDIzLjEtMjAuMiAzOS00MC4xIDQ1LjUtMTMuMSA0LjMtMTkuNyA0LjktNDQuMiA0LjMtMjIuMi0uNi0zNi4xLTEuOS02My41LTUuOC0xMy43LTItNDUuMy04LTUyLjctMTBsLTMuOC0xVjUzOWw1LjgtNC41YzMyLjctMjYuMSA3OC44LTQ2IDExNC41LTQ5LjQgMTEuNi0xLjIgMTMuMS0xLjIgMjMuNy0uMU0xODc5IDMwNy42Yy00NS4xIDExLjgtMTE1LjcgNDIuNi0xNjIuNSA3MC45LTcuOCA0LjgtMTIuMiA2LjktMTIuNiA2LjItLjMtLjctMy43LTE1LjctNy40LTMzLjVsLTYuOC0zMi4ySDE1MTd2NzAxaDIwN1Y1OTIuMmwxMC44LTdjMzUuNy0yMy4xIDk3LjctNTMuNyAxNTguNC03OC4yIDguNC0zLjQgMTUuNi02LjUgMTYtNi44LjQtLjQtMy4xLTQzLjctNy44LTk2LjItNC42LTUyLjUtOC40LTk2LjMtOC40LTk3LjMgMC0yLjMtMi40LTIuMi0xNCAuOW0yNTg0IDM2MS45VjEwMjBoMjA3VjMxOWgtMjA3eiIvPjwvc3ZnPg=="},"displayName":"SerpApi (Google Search)","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":1234,"icon":"file:convertToFile.svg","name":"n8n-nodes-base.convertToFile","codex":{"data":{"alias":["CSV","Spreadsheet","Excel","xls","xlsx","ods","tabular","encode","encoding","Move Binary Data","Binary","File","JSON","HTML","ICS","iCal","RTF","64","Base64"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.converttofile/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Files","Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Convert to File"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc2MTkgMkMxMy4yNDM3IDIgMTIuODIzNiAyLjQyMDA5IDEyLjgyMzYgMi45MzgzMVYxNS4yNTI2QzEzLjMxOTkgMTUuNDY0MyAxMy43ODUxIDE1Ljc3MiAxNC4xOTEgMTYuMTc1N0wyMS4yMjgzIDIzLjE3MzlDMjIuMDU0OCAyMy45OTU4IDIyLjUxOTUgMjUuMTEzMiAyMi41MTk1IDI2LjI3ODhDMjIuNTE5NSAyNy40NDQzIDIyLjA1NDggMjguNTYxOCAyMS4yMjgzIDI5LjM4MzdMMTQuMTkxIDM2LjM4MTlDMTMuNzg1IDM2Ljc4NTYgMTMuMzE5OSAzNy4wOTMyIDEyLjgyMzYgMzcuMzA1VjM3LjM1MjdDMTIuODIzNiAzNy44NzA5IDEzLjI0MzcgMzguMjkxIDEzLjc2MTkgMzguMjkxSDM5LjA2MTdDMzkuNTc5OSAzOC4yOTEgNDAgMzcuODcwOSA0MCAzNy4zNTI3TDQwIDE1Ljc5NEgyNy4xNDQzQzI2LjYyNjEgMTUuNzk0IDI2LjIwNiAxNS4zNzM5IDI2LjIwNiAxNC44NTU3VjJIMTMuNzYxOVoiIGZpbGw9IiMzQTQyRTkiLz4KPHBhdGggZD0iTTI4Ljg2NDUgMkMyOC43NzgxIDIgMjguNzA4MSAyLjA3MDAyIDI4LjcwODEgMi4xNTYzOVYxMi44MjI3QzI4LjcwODEgMTMuMDgxOCAyOC45MTgyIDEzLjI5MTkgMjkuMTc3MyAxMy4yOTE5SDM5Ljg0MzZDMzkuOTMgMTMuMjkxOSA0MCAxMy4yMjE5IDQwIDEzLjEzNTVMNDAgMTIuNjI2M0M0MCAxMi4zNzc4IDM5LjkwMTQgMTIuMTM5NSAzOS43MjYgMTEuOTYzNkwzMC4wNjEgMi4yNzU2MUMyOS44ODUgMi4wOTkxNiAyOS42NDYgMiAyOS4zOTY3IDJIMjguODY0NVoiIGZpbGw9IiMzQTQyRTkiLz4KPHBhdGggZD0iTTkuNzcyNjggMzQuNjAwM0M5LjA0MTg2IDMzLjg2NTQgOS4wNDUxNyAzMi42NzcyIDkuNzgwMDcgMzEuOTQ2NEwxMy42MzE1IDI4LjExNjNMMC45MzgzMTEgMjguMTE2M0MwLjQyMDA5NiAyOC4xMTYzIC0yLjI2NTE5ZS0wOCAyNy42OTYyIDAgMjcuMTc4TDguMjAyOTdlLTA4IDI1LjMwMTRDMS4wNDY4MmUtMDcgMjQuNzgzMiAwLjQyMDA5NSAyNC4zNjMxIDAuOTM4MzExIDI0LjM2MzFIMTMuNTUyOUw5Ljc4MDA3IDIwLjYxMTJDOS4wNDUxNyAxOS44ODA0IDkuMDQxODYgMTguNjkyMiA5Ljc3MjY4IDE3Ljk1NzNDMTAuNTAzNSAxNy4yMjI0IDExLjY5MTcgMTcuMjE5MSAxMi40MjY2IDE3Ljk0OTlMMTkuNDYzOSAyNC45NDgxQzE5LjgxODEgMjUuMzAwNCAyMC4wMTczIDI1Ljc3OTMgMjAuMDE3MyAyNi4yNzg4QzIwLjAxNzMgMjYuNzc4MyAxOS44MTgxIDI3LjI1NzIgMTkuNDYzOSAyNy42MDk1TDEyLjQyNjYgMzQuNjA3N0MxMS42OTE3IDM1LjMzODUgMTAuNTAzNSAzNS4zMzUyIDkuNzcyNjggMzQuNjAwM1oiIGZpbGw9IiMzQTQyRTkiLz4KPC9zdmc+Cg=="},"displayName":"Convert to File","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1310,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agentTool","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"categories":["AI","Langchain"],"subcategories":{"AI":["Tools"],"Tools":["Recommended Tools"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent Tool","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent Tool","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":31,"name":"Content Creation"},{"id":51,"name":"Multimodal AI"}],"image":[]}}