Skip to content
FlowHubFluxonLab
B
AI Automationfree

Host Your Own AI Deep Research Agent with n8n, Apify and OpenAI o3

by Jimleukadapted from n8n official workflow galleryUpdated Aug 2026
RequiresBBasic LLM ChainCCodeGoogle Gemini Chat ModelHTTP RequestHTTP RequestNotionNotionOpenAI Chat ModelOpenAI Chat ModelStructured Output ParserStructured Output Parser
Share Post Share
OPStructured Output ParserStructured Outp…SeSet VariablesOpenAI Chat ModelOpenAI Chat Mod…OpenAI Chat Model1OpenAI Chat Mod…OpenAI Chat Model2OpenAI Chat Mod…OPStructured Output Parser1Structured Outp…FoOn form submissionOn form submiss…CLGenerate SERP QueriesGenerate SERP Q…OPStructured Output Parser2Structured Outp…OpenAI Chat Model3OpenAI Chat Mod…SeSet Initial QuerySet Initial Que…SOSERP to ItemsNOItem RefSeResearch Goal + LearningsResearch Goal +…SeAccumulate ResultsAccumulate Resu…SeDeepResearch ResultsDeepResearch Re…SOResults to ItemsSeSet Next QueriesSIFor Each Query...For Each Query.…SOFeedback to ItemsFeedback to Ite…FoAsk Clarity QuestionsAsk Clarity Que…SIFor Each Question...For Each Questi…EWDeepResearch SubworkflowDeepResearch Su…CLClarifying QuestionsClarifying Ques…FoEnd FormEWInitiate DeepResearchInitiate DeepRe…EDExecution DataSwJobType RouterOpenAI Chat Model4OpenAI Chat Mod…SeGet Initial QueryGet Initial Que…OPStructured Output Parser4Structured Outp…Create RowCLReport Page GeneratorReport Page Gen…IfIs Depth Reached?Is Depth Reache…SeGet Research ResultsGet Research Re…Get Existing RowSet In-ProgressSet DoneSOTags to ItemsMaConvert to HTMLSeHTML to ArrayCLNotion Block GeneratorNotion Block Ge…Google Gemini Chat ModelGoogle Gemini C…SeParse JSON blocksParse JSON bloc…HRUpload to Notion PageUpload to Notio…Get Existing Row1Get Existing Ro…CLDeepResearch ReportDeepResearch Re…CLDeepResearch LearningsDeepResearch Le…EWGenerate ReportEWGenerate LearningsGenerate Learni…FoConfirmationFoResearch RequestFiValid BlocksMeAppend BlocksCoURL Sources to ListsURL Sources to …SeEmpty ResponseIfHas Content?AgCombine & Send back to LoopCombine & Send …SIFor Each Block...For Each Block.…FiValid ResultsHRRAG Web BrowserSeGet Markdown + URLGet Markdown + …IfIs Apify Auth Error?Is Apify Auth E…SAStop and Error
1/5
FLOWS
STEPS · 51
Called by another workflow

This template attempts to replicate OpenAI's DeepResearch feature which, at time of writing, is only available to their pro subscribers. > An agent that uses reasoning to synthesize large amount of online information and complete multi-step research tasks for you. Source Though the inner workings of DeepResearch have not been made public, it is presumed the feature relies on the ability to deep search the web, scrape web content and invoking reasoning models to generate reports. All of which n8n is really good at! Using this workflow, n8n users can enjoy a variation of the Deep Research experience for themselves and their teams at a fraction of the cost. Better yet, learn and customise this Deep Research template for their businesses and/or organisations. Check out the generated reports here: https://jimleuk.notion.site/19486dd60c0c80da9cb7eb1468ea9afd?v=19486dd60c0c805c8e0c000ce8c87acf How it works A form is used to first capture the user's research query and how deep they'd like the researcher to go. Once submitted, a blank Notion page is created which will later hold the final report and the researcher gets to work.

Tags

n8nreference-onlychain-llmlm-chat-google-geminilm-chat-open-ainotionoutput-parser-structured
Connects
BBasic LLM ChainCCodeGoogle Gemini Chat ModelWHTTP RequestnotionNotionopenaichatmodelOpenAI Chat Model
CategoryAI Automation
Triggermanual
Complexityadvanced
Nodes64
AddedFeb 11, 2025

Related workflows

See all AI Automation
BCgmail
free

Verify Japanese invoice registration numbers from Gmail using Gemini, NTA API, Sheets and Slack

Quick Overview This workflow monitors Gmail for unread invoice emails with PDF attachments, extracts invoice details with Google Gemini, verifies Japanese qualified invoice registration numbers against the National Tax Agency (NTA) Invoice Web-API, logs results to Google Sheets, and sends Slack alerts for invalid, missing, or inconclusive checks. How it works Polls Gmail hourly for unread emails matching “has:attachment invoice” and downloads the first attachment. Extracts text from the attached invoice PDF. Uses Google Gemini to parse the invoice text into structured fields such as the T-registration number, issuer name, invoice date, and amounts. Normalizes and validates the registration number to ensure it matches the required “T + 13 digits” format. If the format is valid, calls the NTA Invoice Web-API to verify the registration number and interprets the response as valid, invalid, or not found. Appends the invoice details and verification status to a Google Sheets worksheet. Routes the outcome by sending the appropriate Slack alert for invalid/not found/inconclusive results or marking the invoice email as read when the number is valid. Setup Connect your Gmail OAuth2 credentia

by Oka Hironobu
BCgmail
free

Check Japanese ad copy compliance with Google Gemini, Sheets, Slack and Gmail

Quick Overview This workflow runs daily to review Japanese ad copy in Google Sheets using Google Gemini, writes compliance risk results back to the sheet, and alerts the right team in Slack (and drafts a Gmail revision request) based on high/medium/low risk. How it works Runs every day at 9:00 on a schedule. Reads ad copy rows from Google Sheets to find items that still need a compliance check. Sends each copy item to Google Gemini with the configured product category, target laws, and extra rules to generate a risk level, violations, and a compliant rewrite. Parses and normalizes the Gemini output into fields like risk level, violation count, and safe rewrite, and posts a Slack alert if the AI check fails. Updates the corresponding Google Sheets row with the compliance results to keep a record of the review. Routes the item by risk level and posts to Slack for legal blocking (high), marketing review (medium), publish-ready notification (low), or manual review when the result is inconclusive. For high-risk copy, also creates a Gmail draft requesting the author to revise the copy using the suggested compliant rewrite. Setup Add credentials for Google Sheets, Google Gemini (PaLM) API

by Oka Hironobu
autofixingoutputparserBopenaichatmodelstructuredoutputparser
free

Force AI to use a specific output format

This workflow is for anyone looking to automatically fetch, validate, and parse complex language-based queries into a structured format. Its unique capability lies in not only processing language but also fixing invalid outputs before structuring them. Note that to use this template, you need to be on n8n version 1.19.4 or later.

by n8n Team