AutomationFlowsAI & RAG › Draft and Manage Academic Research Papers with Gpt-4 and Pinecone

Draft and Manage Academic Research Papers with Gpt-4 and Pinecone

ByCheng Siong Chin @cschin on n8n.io

This workflow automates academic research processing by routing queries through specialized AI models while maintaining contextual memory. Designed for researchers, faculty, and graduate students, it solves the challenge of managing multiple AI models for different research…

Cron / scheduled trigger★★★★★ complexityAI-powered40 nodesHTTP RequestAgentOpenAI ChatOutput Parser StructuredMemory Buffer WindowIn-Memory Vector StoreOpenAI EmbeddingsDocument Default Data Loader
AI & RAG Trigger: Cron / scheduled Nodes: 40 Complexity: ★★★★★ AI nodes: yes Added:

This workflow corresponds to n8n.io template #12730 — we link there as the canonical source.

This workflow follows the Agent → Documentdefaultdataloader recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "M83azbrJGVzvFIxB",
  "name": "AI-Powered Academic Research Intelligence and Publication Management System",
  "tags": [],
  "nodes": [
    {
      "id": "c8d8047d-0f3f-41fb-bd17-607a40f77aa7",
      "name": "Schedule Research Monitoring",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -2144,
        408
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 6
            }
          ]
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "d73d19f7-f096-4fc0-9763-f80e95a9f05e",
      "name": "Workflow Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        -1920,
        408
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "arxivApiUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__ArXiv API endpoint URL__>"
            },
            {
              "id": "id-2",
              "name": "patentApiUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Patent API endpoint URL__>"
            },
            {
              "id": "id-3",
              "name": "datasetApiUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Dataset API endpoint URL__>"
            },
            {
              "id": "id-4",
              "name": "blogRssUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Technical blog RSS feed URL__>"
            },
            {
              "id": "id-5",
              "name": "searchKeywords",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Research keywords to monitor__>"
            },
            {
              "id": "id-6",
              "name": "referenceValidationApiUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Reference validation API URL__>"
            },
            {
              "id": "id-7",
              "name": "plagiarismCheckApiUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Plagiarism check API URL__>"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "a7b79205-eb6c-4f86-a1b3-827272502801",
      "name": "Fetch Academic Papers",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1696,
        120
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.arxivApiUrl }}",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "search_query",
              "value": "={{ $('Workflow Configuration').first().json.searchKeywords }}"
            },
            {
              "name": "max_results",
              "value": "50"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "bb8ea0ec-5fed-4506-a904-323992c575e5",
      "name": "Fetch Patents",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1696,
        312
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.patentApiUrl }}",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "query",
              "value": "={{ $('Workflow Configuration').first().json.searchKeywords }}"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "b3b5d2b0-3dad-412a-a7cc-5dd667ba28a1",
      "name": "Fetch Datasets",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1696,
        504
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.datasetApiUrl }}",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "search",
              "value": "={{ $('Workflow Configuration').first().json.searchKeywords }}"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "8b591be0-2d8b-4acd-99c6-6e40e2b081e1",
      "name": "Fetch Technical Blogs",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1696,
        696
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.blogRssUrl }}",
        "options": {}
      },
      "typeVersion": 4.3
    },
    {
      "id": "3582f641-2ed2-49a3-8514-c6825fb907b5",
      "name": "Combine All Sources",
      "type": "n8n-nodes-base.merge",
      "position": [
        -1472,
        376
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition",
        "numberInputs": 4
      },
      "typeVersion": 3.2
    },
    {
      "id": "1b3dc8fe-97b2-4678-b94a-63a5390e627f",
      "name": "Rate Limit Delay",
      "type": "n8n-nodes-base.wait",
      "position": [
        -1248,
        408
      ],
      "parameters": {
        "amount": 2
      },
      "typeVersion": 1.1
    },
    {
      "id": "6e80db4a-9560-4765-87b7-cbad7e2034ee",
      "name": "Research Analysis Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -472,
        408
      ],
      "parameters": {
        "text": "={{ $json }}",
        "options": {
          "systemMessage": "You are an advanced research intelligence agent specializing in academic analysis.\n\nYour task is to:\n1. Analyze the provided research papers, patents, datasets, and technical blogs\n2. Perform AI-driven summarization of each source\n3. Identify key themes and cluster related research\n4. Conduct citation graph analysis to identify influential works\n5. Detect novel contributions and research gaps\n6. Identify hypothesis gaps and potential research directions\n7. Extract methodological approaches and their consistency\n\nReturn your analysis in structured JSON format with fields: summary, themes, clusters, citations, novelty_score, research_gaps, hypothesis_gaps, methodology."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 3.1
    },
    {
      "id": "5e010ed1-caa3-4a0e-9ce9-0e4cd6261803",
      "name": "OpenAI GPT-4 Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -528,
        632
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {},
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "4beeb5a7-49e0-4f06-a098-cd4f302e6725",
      "name": "Analysis Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -272,
        632
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"summary\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Comprehensive summary of the research\"\n\t\t},\n\t\t\"themes\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"description\": \"Key themes identified\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"clusters\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"description\": \"Research clusters and groupings\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"citations\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"description\": \"Citation graph analysis results\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"novelty_score\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"description\": \"Novelty detection score 0-100\"\n\t\t},\n\t\t\"research_gaps\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"description\": \"Identified research gaps\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"hypothesis_gaps\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"description\": \"Hypothesis gaps for future research\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"methodology\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Methodological consistency analysis\"\n\t\t}\n\t}\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "cbcbfb84-7c38-4623-9a07-7be2c1762c65",
      "name": "Research Context Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -400,
        632
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "8ed3cd7e-af1e-402c-970b-c34fe8064fe6",
      "name": "Knowledge Base Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
      "position": [
        -992,
        408
      ],
      "parameters": {
        "mode": "insert",
        "memoryKey": {
          "__rl": true,
          "mode": "list",
          "value": "vector_store_key"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "997c0da8-bf44-4280-9f27-7d83e910d670",
      "name": "OpenAI Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        -1024,
        632
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "45aef773-e122-4cdc-be28-62a8ea7847e9",
      "name": "Document Loader",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        -896,
        632
      ],
      "parameters": {
        "options": {},
        "textSplittingMode": "custom"
      },
      "typeVersion": 1.1
    },
    {
      "id": "ea96fe39-e71a-4d26-99e4-31b6f49b32b9",
      "name": "Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        -816,
        840
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "4810d58b-6cac-42a6-8567-5130d1fe8153",
      "name": "Manuscript Drafting Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        96,
        128
      ],
      "parameters": {
        "text": "={{ $json }}",
        "options": {
          "systemMessage": "You are a manuscript drafting agent specialized in academic writing.\n\nYour task is to:\n1. Draft publication-ready manuscripts based on research analysis\n2. Ensure methodological consistency throughout the document\n3. Maintain proper citation integrity using the Citation Reference Store tool\n4. Structure the manuscript with: Abstract, Introduction, Methods, Results, Discussion, Conclusion\n5. Apply academic writing standards and clarity\n6. Ensure all claims are properly cited\n\nUse the Citation Reference Store tool to look up and verify citations. Return the manuscript in structured format with sections."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 3.1
    },
    {
      "id": "b9205d2b-96fc-46d7-9864-cc4d98508c66",
      "name": "OpenAI GPT-4 Drafting Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        80,
        320
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {},
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "d58f0bbb-c996-4827-9509-c4b4c04aba4f",
      "name": "Manuscript Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        448,
        352
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"title\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Manuscript title\"\n\t\t},\n\t\t\"abstract\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Abstract section\"\n\t\t},\n\t\t\"introduction\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Introduction section\"\n\t\t},\n\t\t\"methods\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Methods section\"\n\t\t},\n\t\t\"results\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Results section\"\n\t\t},\n\t\t\"discussion\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Discussion section\"\n\t\t},\n\t\t\"conclusion\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Conclusion section\"\n\t\t},\n\t\t\"references\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"description\": \"List of references cited\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t}\n\t}\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "44dd8a76-7345-4385-b7b2-854bf9b043eb",
      "name": "Citation Reference Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
      "position": [
        192,
        320
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "memoryKey": {
          "__rl": true,
          "mode": "list",
          "value": "vector_store_key"
        },
        "toolDescription": "Search and retrieve citation references from the knowledge base"
      },
      "typeVersion": 1.3
    },
    {
      "id": "484521db-9ecf-44e7-ace2-f0b24d97ba98",
      "name": "Citation Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        192,
        512
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f4eab033-b7b6-43ae-993d-54728aa5c78b",
      "name": "Validate References API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        576,
        224
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.referenceValidationApiUrl }}",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ { references: $json.references } }}",
        "sendBody": true,
        "specifyBody": "json"
      },
      "typeVersion": 4.3
    },
    {
      "id": "a9956d04-bfcd-4a7e-843d-b9fe927353f3",
      "name": "Plagiarism Check API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        800,
        224
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.plagiarismCheckApiUrl }}",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ { text: $json.abstract + ' ' + $json.introduction + ' ' + $json.methods + ' ' + $json.results + ' ' + $json.discussion + ' ' + $json.conclusion } }}",
        "sendBody": true,
        "specifyBody": "json"
      },
      "typeVersion": 4.3
    },
    {
      "id": "e2bdd907-3d61-4131-bbf0-1e9afe0043c5",
      "name": "Check Validation Results",
      "type": "n8n-nodes-base.if",
      "position": [
        1024,
        304
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": false,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "number",
                "operation": "lt"
              },
              "leftValue": "={{ $('Plagiarism Check API').item.json.plagiarismScore }}",
              "rightValue": "10"
            },
            {
              "id": "id-2",
              "operator": {
                "type": "boolean",
                "operation": "equals"
              },
              "leftValue": "={{ $('Validate References API').item.json.referencesValid }}",
              "rightValue": "true"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "96d29eed-5358-4714-9ea9-c5b85199c985",
      "name": "Save to Research Database",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        144,
        704
      ],
      "parameters": {
        "columns": {
          "value": {
            "themes": "={{ $json.themes }}",
            "summary": "={{ $json.summary }}",
            "novelty_score": "={{ $json.novelty_score }}",
            "research_gaps": "={{ $json.research_gaps }}"
          },
          "schema": [
            {
              "id": "summary",
              "required": false,
              "displayName": "summary",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "themes",
              "required": false,
              "displayName": "themes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "novelty_score",
              "required": false,
              "displayName": "novelty_score",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "research_gaps",
              "required": false,
              "displayName": "research_gaps",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "summary"
          ]
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Research Analysis"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__Google Sheets document ID for research database__>"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "29e2854e-6813-4901-b0cb-fdc79ee9b041",
      "name": "Track Submission Deadlines",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1600,
        304
      ],
      "parameters": {
        "columns": {
          "value": {
            "title": "={{ $json.title }}",
            "status": "={{ $json.status }}",
            "deadline": "={{ $json.deadline }}",
            "target_venue": "={{ $json.target_venue }}"
          },
          "schema": [
            {
              "id": "title",
              "required": false,
              "displayName": "title",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "target_venue",
              "required": false,
              "displayName": "target_venue",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "deadline",
              "required": false,
              "displayName": "deadline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "status",
              "required": false,
              "displayName": "status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "title"
          ]
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Submission Deadlines"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__Google Sheets document ID for submission tracking__>"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "a2eb4119-ba63-4037-b9e8-f3635b960a65",
      "name": "Log Reviewer Feedback",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1824,
        304
      ],
      "parameters": {
        "columns": {
          "value": {
            "decision": "={{ $json.decision }}",
            "feedback_date": "={{ $json.feedback_date }}",
            "manuscript_id": "={{ $json.manuscript_id }}",
            "reviewer_comments": "={{ $json.reviewer_comments }}"
          },
          "schema": [
            {
              "id": "manuscript_id",
              "required": false,
              "displayName": "manuscript_id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "reviewer_comments",
              "required": false,
              "displayName": "reviewer_comments",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "decision",
              "required": false,
              "displayName": "decision",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "feedback_date",
              "required": false,
              "displayName": "feedback_date",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "manuscript_id"
          ]
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Reviewer Feedback"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__Google Sheets document ID for reviewer feedback__>"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "0f639c1b-86c3-47cb-97bc-bbfdf930be56",
      "name": "Format Adaptation Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1248,
        304
      ],
      "parameters": {
        "text": "={{ $json }}",
        "options": {
          "systemMessage": "You are a format adaptation agent for academic manuscripts.\n\nYour task is to:\n1. Adapt the manuscript to different journal or conference formats\n2. Apply specific formatting guidelines (IEEE, ACM, APA, Nature, etc.)\n3. Adjust citation styles according to target venue\n4. Modify structure to match venue requirements\n5. Ensure compliance with word limits and section requirements\n\nReturn the formatted manuscript maintaining all content integrity."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 3.1
    },
    {
      "id": "d023aacf-0676-46cc-bc60-faa7aaad5aea",
      "name": "OpenAI Format Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1248,
        528
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {},
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "6d81b3dc-44b8-42c3-90c5-13f840ddc93d",
      "name": "Format Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1376,
        528
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"formatted_manuscript\": \"Formatted manuscript text\",\n\t\"format_style\": \"Applied format style\",\n\t\"word_count\": 0\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "f91456be-f86f-4e52-a32c-0548b5d8d86b",
      "name": "Learning Optimization Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2048,
        304
      ],
      "parameters": {
        "text": "={{ $json }}",
        "options": {
          "systemMessage": "You are a learning optimization agent that analyzes publication outcomes.\n\nYour task is to:\n1. Analyze acceptance and rejection patterns from reviewer feedback\n2. Identify successful research directions and methodologies\n3. Extract insights on what makes manuscripts successful\n4. Recommend optimization strategies for future research\n5. Track trends in reviewer preferences and requirements\n6. Suggest improvements to research approach and writing style\n\nReturn actionable insights and recommendations in structured format."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 3.1
    },
    {
      "id": "4461d584-256a-4d8a-a7ca-33a7c52f64b0",
      "name": "OpenAI Learning Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2048,
        528
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {},
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "cfb7e42a-a5b7-4c87-ac62-daa02cfa08ca",
      "name": "Learning Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2176,
        528
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"success_patterns\": [\"Pattern 1\", \"Pattern 2\"],\n\t\"rejection_reasons\": [\"Reason 1\", \"Reason 2\"],\n\t\"optimization_recommendations\": [\"Recommendation 1\", \"Recommendation 2\"],\n\t\"trending_topics\": [\"Topic 1\", \"Topic 2\"],\n\t\"reviewer_preferences\": \"Preference analysis summary\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "caf2492e-e56e-440d-bba1-3384bce15eaa",
      "name": "Store Learning Insights",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2400,
        304
      ],
      "parameters": {
        "columns": {
          "value": {
            "trending_topics": "={{ $json.trending_topics }}",
            "success_patterns": "={{ $json.success_patterns }}",
            "optimization_recommendations": "={{ $json.optimization_recommendations }}"
          },
          "schema": [
            {
              "id": "success_patterns",
              "required": false,
              "displayName": "success_patterns",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "optimization_recommendations",
              "required": false,
              "displayName": "optimization_recommendations",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "trending_topics",
              "required": false,
              "displayName": "trending_topics",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "success_patterns"
          ]
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Learning Insights"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "<__PLACEHOLDER_VALUE__Google Sheets document ID for learning insights__>"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "0e4d4dbd-f0f8-4ca2-b568-b2b226a0b366",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2208,
        -48
      ],
      "parameters": {
        "color": 7,
        "width": 1104,
        "height": 1040,
        "content": "## Document Ingestion \nExtracts text from PDFs and academic papers using multiple extraction methods for reliability.\n## Why:\nEnsures comprehensive text capture from diverse document formats, preventing data loss from complex academic formatting."
      },
      "typeVersion": 1
    },
    {
      "id": "ab6e5669-52ef-4143-914d-9a99a0b4b6e8",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        -352
      ],
      "parameters": {
        "color": 6,
        "width": 544,
        "height": 288,
        "content": "## Prerequisites\nActive accounts and API keys for Pinecone, OpenAI \n## Use Cases\nLiterature review automation with semantic paper discovery. \n## Customization\nModify AI model selection logic for domain-specific optimization.\n## Benefits\nReduces research processing time by 60% through automated routing."
      },
      "typeVersion": 1
    },
    {
      "id": "f6be4f03-7a78-486f-a0ec-611f1e365481",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1216,
        -352
      ],
      "parameters": {
        "width": 432,
        "height": 288,
        "content": "## Setup Steps\n1. Configure Pinecone credentials  \n2. Add OpenAI API key for GPT-4 access and embeddings\n3. Set up Anthropic Claude API credentials for advanced reasoning\n4. Configure NVIDIA NIM API key for specialized academic models\n5. Connect Google Sheets for query logging and result tracking\n6. Set Gmail OAuth credentials for automated result delivery\n7. Configure webhook URL for query submission endpoint"
      },
      "typeVersion": 1
    },
    {
      "id": "a85fe669-0920-4747-ab31-f7c29cc589be",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2208,
        -320
      ],
      "parameters": {
        "width": 928,
        "height": 240,
        "content": "## How It Works\nThis workflow automates academic research processing by routing queries through specialized AI models while maintaining contextual memory. Designed for researchers, faculty, and graduate students, it solves the challenge of managing multiple AI models for different research tasks while preserving conversation context across sessions. The system accepts research queries via webhook, stores them in vector databases for semantic search, and intelligently routes requests to appropriate AI models (OpenAI, Anthropic Claude, or NVIDIA NIM). Results are consolidated, formatted, and delivered via email with full citation tracking. The workflow maintains conversation history using Pinecone vector storage, enabling follow-up queries that reference previous interactions. This eliminates manual model switching, context loss, and repetitive credential management\u2014streamlining research workflows from literature review to hypothesis generation."
      },
      "typeVersion": 1
    },
    {
      "id": "5fdfd941-adc9-4c74-bc1b-8d2661075143",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1072,
        -48
      ],
      "parameters": {
        "color": 7,
        "width": 960,
        "height": 1024,
        "content": "## Vector Storage \nEmbeds processed content into Pinecone vector database with metadata tagging.\n## Why:\nEnables semantic search across research corpus, allowing contextually relevant retrieval rather than keyword matching."
      },
      "typeVersion": 1
    },
    {
      "id": "c0b55cdb-61e2-41d2-abf9-5155f3191b77",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -64,
        -48
      ],
      "parameters": {
        "color": 7,
        "width": 2704,
        "height": 1056,
        "content": "## AI Routing \nAnalyzes query complexity and routes to OpenAI GPT-4, Claude, or NVIDIA models based on task requirements.\n## Why: \nOptimizes cost and performance by matching specialized models to specific research tasks."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "441f0811-1c16-4f44-aec4-e3e48fc23fa7",
  "connections": {
    "Fetch Patents": {
      "main": [
        [
          {
            "node": "Combine All Sources",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Text Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "Document Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Datasets": {
      "main": [
        [
          {
            "node": "Combine All Sources",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Document Loader": {
      "ai_document": [
        [
          {
            "node": "Knowledge Base Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Rate Limit Delay": {
      "main": [
        [
          {
            "node": "Knowledge Base Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Embeddings": {
      "ai_embedding": [
        [
          {
            "node": "Knowledge Base Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI GPT-4 Model": {
      "ai_languageModel": [
        [
          {
            "node": "Research Analysis Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Citation Embeddings": {
      "ai_embedding": [
        [
          {
            "node": "Citation Reference Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Combine All Sources": {
      "main": [
        [
          {
            "node": "Rate Limit Delay",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Format Model": {
      "ai_languageModel": [
        [
          {
            "node": "Format Adaptation Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Format Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Format Adaptation Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Plagiarism Check API": {
      "main": [
        [
          {
            "node": "Check Validation Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Academic Papers": {
      "main": [
        [
          {
            "node": "Combine All Sources",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Technical Blogs": {
      "main": [
        [
          {
            "node": "Combine All Sources",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "Log Reviewer Feedback": {
      "main": [
        [
          {
            "node": "Learning Optimization Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Learning Model": {
      "ai_languageModel": [
        [
          {
            "node": "Learning Optimization Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Analysis Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Research Analysis Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Learning Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Learning Optimization Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Workflow Configuration": {
      "main": [
        [
          {
            "node": "Fetch Academic Papers",
            "type": "main",
            "index": 0
          },
          {
            "node": "Fetch Patents",
            "type": "main",
            "index": 0
          },
          {
            "node": "Fetch Datasets",
            "type": "main",
            "index": 0
          },
          {
            "node": "Fetch Technical Blogs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Adaptation Agent": {
      "main": [
        [
          {
            "node": "Track Submission Deadlines",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Research Analysis Agent": {
      "main": [
        [
          {
            "node": "Save to Research Database",
            "type": "main",
            "index": 0
          },
          {
            "node": "Manuscript Drafting Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Research Context Memory": {
      "ai_memory": [
        [
          {
            "node": "Research Analysis Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Validate References API": {
      "main": [
        [
          {
            "node": "Plagiarism Check API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Validation Results": {
      "main": [
        [
          {
            "node": "Format Adaptation Agent",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Manuscript Drafting Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Citation Reference Store": {
      "ai_tool": [
        [
          {
            "node": "Manuscript Drafting Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Manuscript Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Manuscript Drafting Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Manuscript Drafting Agent": {
      "main": [
        [
          {
            "node": "Validate References API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Track Submission Deadlines": {
      "main": [
        [
          {
            "node": "Log Reviewer Feedback",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Knowledge Base Vector Store": {
      "main": [
        [
          {
            "node": "Research Analysis Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Learning Optimization Agent": {
      "main": [
        [
          {
            "node": "Store Learning Insights",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI GPT-4 Drafting Model": {
      "ai_languageModel": [
        [
          {
            "node": "Manuscript Drafting Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Research Monitoring": {
      "main": [
        [
          {
            "node": "Workflow Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow automates academic research processing by routing queries through specialized AI models while maintaining contextual memory. Designed for researchers, faculty, and graduate students, it solves the challenge of managing multiple AI models for different research…

Source: https://n8n.io/workflows/12730/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow automates patient communication for medical clinics using the WhatsApp Business API. It supports appointment booking, rescheduling, service inquiries, follow-ups, and document submission

Google Sheets, Data Table, Data Table Tool +12
AI & RAG

WooriFisa 최종. Uses memoryMongoDbChat, agent, httpRequest, documentDefaultDataLoader. Scheduled trigger; 68 nodes.

Memory Mongo Db Chat, Agent, HTTP Request +14
AI & RAG

This workflow automates end-to-end customer journey management by intelligently routing queries through multiple AI models (OpenAI, Claude) based on complexity and context. Designed for customer succe

HTTP Request, Agent, OpenAI Chat +7
AI & RAG

Ditch the endless scroll for AI trends. Meet Archi, your personal AI research assistant that hits you up once a week with everyone you need to know. 🧑🏽‍🔬

Weaviate Vector Store, Document Default Data Loader, HTTP Request +8
AI & RAG

This n8n workflow enables an AI agent to interact with users through GoHighLevel SMS, leveraging a knowledgebase dynamically built by scraping the company's website.

In-Memory Vector Store, OpenAI Embeddings, Document Default Data Loader +8