AutomationFlowsAI & RAG › AI Research Paper Analysis & Documentation with Decodo, Gpt & Google

AI Research Paper Analysis & Documentation with Decodo, Gpt & Google

ByYaron Been @yaron-nofluff on n8n.io

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Event trigger★★★★☆ complexityAI-powered26 nodesForm TriggerHTTP RequestAgent@Decodo/N8N Nodes DecodoOpenAI ChatGoogle DocsGoogle SheetsOutput Parser Structured
AI & RAG Trigger: Event Nodes: 26 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → Form Trigger 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": "CTfLuF1lMj4vayqs",
  "name": "Automated Research Intelligence System using decodo",
  "tags": [
    {
      "id": "uMBvoK3U8QYbRWJ5",
      "name": "done",
      "createdAt": "2025-11-18T13:27:52.572Z",
      "updatedAt": "2025-11-18T13:27:52.572Z"
    }
  ],
  "nodes": [
    {
      "id": "be760aa6-f166-4e8d-bb71-c373c62b3e1a",
      "name": "Enter Research URL",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -848,
        960
      ],
      "parameters": {
        "options": {},
        "formTitle": "Research Input Form",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Research URL"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "dedd3dd2-b8a5-4f12-a81a-6aea171ca582",
      "name": "Set Research URL",
      "type": "n8n-nodes-base.set",
      "position": [
        -592,
        960
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1a741c7f-6d39-438f-8725-4e023745a42e",
              "name": "URL",
              "type": "string",
              "value": "={{ $json['Research URL'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "1122cb2b-becb-4c0d-aeaf-c507a4f8b22a",
      "name": "Validate URL",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -320,
        960
      ],
      "parameters": {
        "url": "={{ $json.URL }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "72e3e1f4-9368-44e5-ba1d-2e41a6705f2a",
      "name": "Research Analysis Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -80,
        432
      ],
      "parameters": {
        "text": "=use decodo to scrape new articles and papers from AI research sites and create a summary\n\nURL: {{ $('Set Research URL').item.json.URL }}",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "954f7bde-6f5b-47ed-8204-c305e906264b",
      "name": "Decodo Research Scraper",
      "type": "@decodo/n8n-nodes-decodo.decodoTool",
      "position": [
        224,
        688
      ],
      "parameters": {
        "url": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', ``, 'string') }}"
      },
      "credentials": {
        "decodoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2d30d42d-48f6-488b-a922-27b246798f29",
      "name": "OpenAI Research Analyzer",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        224,
        848
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f79bc33f-a0b4-4a49-97b7-551aef719af0",
      "name": "Research Validation Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        208,
        432
      ],
      "parameters": {
        "text": "=Validate the summary for accuracy, completeness, and relevance to AI/LLM research. Improve if necessary, and output the validated summary as 'validated_output'.\n\nURL: {{ $('Set Research URL').item.json.URL }}\nOriginal Summary: {{ $json.output }}",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "c7ffd782-a7e2-4a9e-92b7-6eebfec1ce12",
      "name": "Insights Generation Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        496,
        432
      ],
      "parameters": {
        "text": "=Generate key insights from the validated summary. Output as 'insights' in bullet points.\n\nValidated Summary: {{ $json.output }}",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "54fede96-b006-46c1-babe-3d9683b8b79b",
      "name": "Format Output with Insights",
      "type": "n8n-nodes-base.set",
      "position": [
        896,
        960
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "new-id-for-format",
              "name": "formatted_output",
              "type": "string",
              "value": "=Summary for URL {{ $('Set Research URL').item.json.URL }}:{{ $('Research Validation Agent').item.json.output }}|Key Insights:{{ $json.output }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b15de84a-108b-4fa0-bb3c-0b2e2de33524",
      "name": "Update Research Document",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1344,
        960
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "text": "={{ $('Format Output with Insights').item.json.formatted_output }}",
              "action": "insert"
            }
          ]
        },
        "operation": "update",
        "documentURL": "={{ $json.id }}"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "2189d7b9-1435-4626-b84b-49106c75f1b4",
      "name": "Set Log Entry",
      "type": "n8n-nodes-base.set",
      "position": [
        1552,
        960
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "2c7e4229-e5c6-41e0-b10c-e147941e7df1",
              "name": "log_entry",
              "type": "string",
              "value": "=Processed URL: {{ $('Set Research URL').item.json.URL }} at {{ new Date().toISOString() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "3710c619-4161-4560-b430-b3677ddb4caa",
      "name": "Append to Log Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2736,
        784
      ],
      "parameters": {
        "columns": {
          "value": {
            "URL": "={{ $('Set Research URL').item.json.URL }}",
            "Summary": "={{ $('Format Output with Insights').item.json.formatted_output }}"
          },
          "schema": [
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MYYz9Uo0tl2Wsa6Y__pF154Ddto69Ww0nHmtP20o18k/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1MYYz9Uo0tl2Wsa6Y__pF154Ddto69Ww0nHmtP20o18k",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1MYYz9Uo0tl2Wsa6Y__pF154Ddto69Ww0nHmtP20o18k/edit?usp=drivesdk",
          "cachedResultName": "4. AI / LLM Research using decode scraper"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "85263f37-6728-4e63-9ec1-ef344f9cb0da",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2144,
        1168
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"rating\": 9,\n  \"scale\": \"1-10\",\n  \"criteria\": {\n    \"clarity\": 9,\n    \"comprehensiveness\": 9,\n    \"accuracy\": 10,\n    \"conciseness\": 8,\n    \"relevance\": 10\n  },\n  \"overall_feedback\": \"The summary is excellent, clearly explaining the TiDAR model, its architecture, key contributions, and results. It is comprehensive and accurate. It could be slightly more concise by avoiding some repetition in the key insights, but overall it is of high quality.\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "1b17f45a-cef3-4dcd-8d92-62851e9c5ccc",
      "name": "Create Research Document",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1104,
        960
      ],
      "parameters": {
        "title": "=Reasearch URL: {{ $('Set Research URL').item.json.URL }}",
        "folderId": "1JjWQ7Vmslz2Zm9KdNAm2Wfvfkz5TUuY1"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "250910cb-d5b8-4824-b63a-b7c86fa7c738",
      "name": "Research Quality Assessor",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2032,
        960
      ],
      "parameters": {
        "text": "=Rate the research paper summar out of 10\n\n{{ $('Format Output with Insights').item.json.formatted_output }}",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "93f066d2-5a49-4bcb-b7bb-361b5d0bc87b",
      "name": "OpenAI Quality Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2000,
        1168
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "125ee9e4-489a-4595-b7f4-aa3b4212d53d",
      "name": "Check Quality Threshold",
      "type": "n8n-nodes-base.if",
      "position": [
        2384,
        960
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "993a0236-58a1-47ca-9942-8b5e593e349b",
              "operator": {
                "type": "number",
                "operation": "gte"
              },
              "leftValue": "={{ $json.output.rating }}",
              "rightValue": 6
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "c8f7503d-2619-40e0-b75d-3af3d93d8a2b",
      "name": "Check High Quality for Slack",
      "type": "n8n-nodes-base.if",
      "position": [
        3056,
        624
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "14040420-23c6-425f-815c-8329b29f9392",
              "operator": {
                "type": "number",
                "operation": "gte"
              },
              "leftValue": "={{ $('Research Quality Assessor').item.json.output.rating }}",
              "rightValue": 9
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "86a10365-c307-4e81-8f64-d46dce693890",
      "name": "Skip Low Quality Research",
      "type": "n8n-nodes-base.noOp",
      "position": [
        2752,
        1184
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "08b2ab8a-d0e8-4faf-b4e6-b81fb033778c",
      "name": "Send Slack Alert",
      "type": "n8n-nodes-base.slack",
      "position": [
        3392,
        384
      ],
      "parameters": {
        "text": "=Research Paper URL: {{ $json.URL }}\n\nSummary: {{ $json.Summary }}",
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "94b82fb4-8c95-45a4-9421-3c29852e101c",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1520,
        128
      ],
      "parameters": {
        "width": 368,
        "height": 656,
        "content": "## How it works\nThis workflow helps you analyze research papers and articles. You enter a URL of a research paper, and it automatically reads the content, creates a summary, finds key insights, and saves everything to Google Docs and Sheets. It also checks the quality of the research and sends Slack alerts for high-quality findings.\n\n## Setup steps\n\nConnect your Decodo, OpenAI, Google Docs, and Google Sheets accounts\n\nSet up the form where users enter research URLs\n\nMake sure your Google Sheets log is ready for saving data\n\nTurn on the workflow and start entering research URLs\n\n\n\n## Use Coupon Code \"YARON\" and get 23k requests for testing\n\n### https://decodo.com/"
      },
      "typeVersion": 1
    },
    {
      "id": "46587405-36ea-4967-a819-93602affaec3",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -896,
        784
      ],
      "parameters": {
        "color": 7,
        "width": 704,
        "height": 320,
        "content": "## Start Research\nThis is where you enter the research paper URL. The workflow checks if the URL works and gets it ready for analysis."
      },
      "typeVersion": 1
    },
    {
      "id": "59d4c021-9930-480b-b4bf-6b0e8c4179ac",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        176
      ],
      "parameters": {
        "color": 7,
        "width": 864,
        "height": 448,
        "content": "## Read & Analyze\nThis part visits the research URL and reads the content. The AI creates a summary, checks if it's accurate, and finds the most important points from the research.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "994c0a48-1e23-4d62-835c-02b920b8fe3a",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        832,
        816
      ],
      "parameters": {
        "color": 7,
        "width": 864,
        "height": 336,
        "content": "## Save Research\nThis saves everything to Google Docs and Sheets. It creates a nice document with the summary and insights, and keeps a record of all researched URLs."
      },
      "typeVersion": 1
    },
    {
      "id": "2fbeed25-6b4e-4483-a253-38a2ec3b81c2",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1904,
        816
      ],
      "parameters": {
        "color": 7,
        "width": 608,
        "height": 496,
        "content": "## Check Quality\nThe AI rates each research summary from 1-10. Research scoring 6 or higher gets saved, while lower quality research is skipped."
      },
      "typeVersion": 1
    },
    {
      "id": "42e0ed05-d1c1-4f45-89a4-da9894cfdff5",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2960,
        208
      ],
      "parameters": {
        "color": 7,
        "width": 576,
        "height": 576,
        "content": "## Top Research Alerts\nFor very high quality research (score 9+), this sends a Slack message to your team so everyone knows about the best findings."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "0466b75e-2fb7-4f67-8486-5c58139d5cc4",
  "connections": {
    "Validate URL": {
      "main": [
        [
          {
            "node": "Research Analysis Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Log Entry": {
      "main": [
        [
          {
            "node": "Research Quality Assessor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Research URL": {
      "main": [
        [
          {
            "node": "Validate URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Enter Research URL": {
      "main": [
        [
          {
            "node": "Set Research URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append to Log Sheet": {
      "main": [
        [
          {
            "node": "Check High Quality for Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Quality Model": {
      "ai_languageModel": [
        [
          {
            "node": "Research Quality Assessor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Check Quality Threshold": {
      "main": [
        [
          {
            "node": "Append to Log Sheet",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Skip Low Quality Research",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Decodo Research Scraper": {
      "ai_tool": [
        [
          {
            "node": "Research Validation Agent",
            "type": "ai_tool",
            "index": 0
          },
          {
            "node": "Research Analysis Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Research Analysis Agent": {
      "main": [
        [
          {
            "node": "Research Validation Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Research Document": {
      "main": [
        [
          {
            "node": "Update Research Document",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Research Analyzer": {
      "ai_languageModel": [
        [
          {
            "node": "Research Analysis Agent",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Research Validation Agent",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Insights Generation Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Research Quality Assessor",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Update Research Document": {
      "main": [
        [
          {
            "node": "Set Log Entry",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Insights Generation Agent": {
      "main": [
        [
          {
            "node": "Format Output with Insights",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Research Quality Assessor": {
      "main": [
        [
          {
            "node": "Check Quality Threshold",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Research Validation Agent": {
      "main": [
        [
          {
            "node": "Insights Generation Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Output with Insights": {
      "main": [
        [
          {
            "node": "Create Research Document",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check High Quality for Slack": {
      "main": [
        [
          {
            "node": "Send Slack Alert",
            "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 contains community nodes that are only compatible with the self-hosted version of n8n.

Source: https://n8n.io/workflows/10415/ — 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

🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.

OpenAI, HTTP Request, Form Trigger +7
AI & RAG

🧠 Automate end-to-end SEO blog creation and WordPress publishing using a GPT-5 multi-agent workflow with real-time research, metadata generation, and optional featured images.

Output Parser Structured, HTTP Request, OpenAI +10
AI & RAG

YouTube Strategist. Uses formTrigger, splitOut, splitInBatches, agent. Event-driven trigger; 50 nodes.

Form Trigger, Agent, OpenRouter Chat +5
AI & RAG

This advanced multi-phase n8n workflow automates the complete research, analysis, and ideation pipeline for a YouTube strategist. It scrapes competitor channels, analyzes top-performing titles and thu

Form Trigger, Agent, OpenRouter Chat +5
AI & RAG

This workflow generates comprehensive B2B leads, from a selected Business type in ANY CITY IN THE WORLD, including: Company name; Website; Email (enriched with AI Agent); Phone number; Address; Main L

Output Parser Structured, Memory Buffer Window, Agent +8