Huashu Design
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
An n8n workflow that researches a technical question on the web and writes a cited report. It asks follow-up questions, searches with Tavily in up to three passes, has OpenAI write each answer, and sends the reports to a converter that makes Google Docs.
Deep research report writer with follow-up questions is an n8n workflow in the Productivity category, listed by Mindket. It is free. This is version 2, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
POST https://YOUR_MARKDOWN_TO_DOC_ENDPOINT output = the report, in Markdown fileName = the report’s title
Research form
It starts when someone opens the DeepResearcher form, presses Next and sends:
Cited research reports as Google Docs: one after pass 1, one after pass 2, and one covering all three passes when a third runs
What you need before you start.
Language models
Asks the follow-up questions, picks the pages, writes and checks each answer and writes the reports. gpt-4.1 writes the first search phrase.
NeedsOpenAI API key
JSON repair
Runs Claude 3.7 Sonnet in four auto-fixing parsers, which repair an answer when its JSON is broken.
NeedsAnthropic API key, or OpenAI models in their place
Web search
Searches the web for each pass and returns up to ten results with the full text of each page.
NeedsTavily API key, in three HTTP Request nodes
Reports
Receives each Markdown report through your converter, which builds the Google Doc.
NeedsGoogle Docs OAuth2 credential, and a converter address
Checked by Mindket on 13 Nov 2026
This n8n workflow researches a question on the web and writes a cited report. Its prompts are tuned for technical questions, such as which tool fits a set of limits, so they ask for tutorials, code examples and implementation steps. A form takes the question, and an OpenAI model asks up to three follow-up questions, one form page each. Your answers join the question into one brief. gpt-4.1 turns the brief into a search phrase. Tavily returns up to ten pages with their full text, and a model keeps up to five of the most useful. One call reads them and writes an answer with numbered citations. A check then decides whether the question is answered. If not, a second search on a new phrase follows, and a third after that. Markdown reports then go to a converter you supply, which makes the Google Docs.
Developers, tech leads and automation builders who want a cited first answer to a how-do-I or which-tool question, with sources to check. It fits questions that end in something to build, because the page filter favors tutorials and implementation guides. Skip it for news, market sizing or opinion research, whose best sources are not guides. Skip it for quick facts too. A run makes roughly six to thirteen model calls and up to three Tavily searches.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Software development | Developers and tech leads | Ask which library, API or open-source tool meets a set of limits, and read the cited report before choosing | A developer asks for a self-hosted way to turn meeting audio into text and gets sources to compare. |
| Automation consulting | Freelancers who build automations | Research what a client asked for before quoting the job | A consultant runs a client’s request through the form and brings the report to the scoping call. |
| Product teams | Product managers | Check which ready-made tools exist before the team builds its own | A product manager asks what already covers invoice reminders and what is missing. |
| IT and operations | IT managers | Compare ways to meet a rule, such as keeping data on your own servers | An IT manager asks how to run a chat assistant without sending files to a cloud service. |
| Training and study | Teachers and self-taught developers | Get a sourced starting point for a new topic | A student asks how n8n loops work and reads the guides the report cites. |
Any n8n that can reach OpenAI, Anthropic, Tavily and a Google Docs converter will run it. The form is the front door. Share its address with whoever has the questions.
deep_research, so a team can bookmark itGet it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Its author puts setup at about 16 minutes. Have these ready before you import it.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key. Fifteen nodes use it: fourteen chat models and one call to the Responses API |
| Anthropic | An API key for four chat models that repair broken JSON, or OpenAI models in their place |
| Tavily | An API key, pasted into three HTTP Request nodes |
| An account for a Google Docs OAuth2 credential, and a converter address for three nodes |
workflow.json.OpenAI Chat Model and OpenAI Chat Model1 to OpenAI Chat Model13, and in HTTP Request.Anthropic Chat Model and Anthropic Chat Model1 to Anthropic Chat Model3. Or swap those four for OpenAI chat models.Tavily Search, Loop2_Tavily Search1 and Loop3_Tavily Search2, replace <YOUR_TAVILY_KEY> in the Authorization header with your key. The brackets go too.HTTP Request1, HTTP Request2 and HTTP Request3, replace YOUR_MARKDOWN_TO_DOC_ENDPOINT with your converter’s address and select a Google Docs OAuth2 credential.Start, then press Publish.The converter is not in the file. The original copy’s three nodes called one on its author’s own domain, so this copy leaves the address blank. Each node sends two fields and expects a service that builds a Google Doc from them:
POST https://YOUR_MARKDOWN_TO_DOC_ENDPOINT output = the report, in Markdown fileName = the report’s title
The nodes use your Google Docs credential, so n8n sends that credential’s access token with the request. Point them only at a service you run yourself. Or replace each one with a Google Docs node set to Create, then one set to Update that inserts the Markdown as plain text.
Open the form from Start, press Next and write your question in What would you like to research?. Be specific. Name the tools, the limits and the outcome you want. Then answer each follow-up page. After the last one the form says thank you. You can close it, because the research goes on behind it. Reports arrive in Google Docs through your converter, so check Drive for more than one document.
| To change | Where |
|---|---|
| Pages searched and read | max_results and search_depth in the three Tavily nodes, and the up to 5 links line in the three relevance prompts |
| Follow-up questions | The limit of three in Clarifying Questions |
| When another pass starts | The criteria in Evaluate Answer Completeness and Loop2_Evaluate Answer Completeness1 |
| Report layout | The section list in the three report generators’ prompts |
| Subject area | The examples in Prepare GPT-4.1 Input and the relevance prompts, which lean toward tutorials and code |
You write this question:
Which self-hosted tool can transcribe meeting recordings to text without sending the audio to a cloud service, and how do I call it from n8n?
The model might ask what language the meetings use, how long they run and what hardware you have, one page each. After that, pass 1 writes its answer in the parser’s shape, trimmed here:
{
"question": "…",
"search_query": "…",
"answer": "… with citations such as [1] and [3] …",
"sources": [{ "id": 1, "title": "…", "url": "…" }]
}The check replies in a second shape. On no, the new phrase starts pass 2:
{ "answered": "no", "next_search_query": "…" }If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This file has 90 of them, but most are three near copies of the same search-and-read stage, one per pass, so it reads shorter than it looks. A credential is a key n8n stores for you and hands to the node you select it in. Run the form from its test address first. Each node then shows what it received and sent, which is where a wrong key or a blank converter address turns up.
For experts. Two vendors’ models share the work, and a few nodes exist only to repair JSON.
| Step | Model | What to know |
|---|---|---|
Clarifying Questions, the relevance filters, the page filters, the evaluations and the report generators | chatgpt-4o-latest, in 14 chat model nodes | An alias OpenAI moves. Structured parsers hold the replies to a JSON shape |
Prepare GPT-4.1 Input and HTTP Request | gpt-4.1 through the Responses API, with its web search tool on | One call writes the first search phrase, and store is true |
| Three page filters and the pass 2 report | claude-3-7-sonnet-20250219, in four chat model nodes | Each sits behind an auto-fixing parser and runs only when the JSON is broken |
| The pass 1 and three-pass reports | The same OpenAI model, in two chat model nodes | Their auto-fixing parsers repair through OpenAI instead |
Merge1 and Merge2 gather the three passes’ answers so that Merge Deep Research Answers can hand them to the last report generator. Pass 3 has no check, so no fourth pass follows.
A run costs money on three accounts, and it can leave several documents.
advanced depth with full page text, so check its pricing for that depthDone and Done1 are Stop and Error nodes with the message Success, so a finished run shows as failed in ExecutionsPrepare Keywords (Code) reads one spot in the reply and falls back to the words fallback search query, so read the first run’s phraseAn n8n workflow that researches a technical question on the web and writes a cited report. It asks follow-up questions
first, searches with Tavily in up to three passes, and turns each report into a Google Doc through a converter you supply.
workflow.json: the workflow as n8n exports it, 90 nodes, no sticky notes. It holds no credential, no key and nothingREADME.md: these notes.workflow.json.OpenAI Chat Model and OpenAI Chat Model1 to OpenAI Chat Model13, and inHTTP Request, the call to api.openai.com.Anthropic Chat Model and Anthropic Chat Model1 toAnthropic Chat Model3. To skip Anthropic, replace those four with OpenAI chat models: OpenAI Chat Model1 andOpenAI Chat Model13 already do that job for two of the repair parsers.Tavily Search, Loop2_Tavily Search1 and Loop3_Tavily Search2. In each Authorization header, replace<YOUR_TAVILY_KEY> with your key. The brackets go too, so the value reads Bearer, a space, then the key.HTTP Request1, HTTP Request2 and HTTP Request3. Replace YOUR_MARKDOWN_TO_DOC_ENDPOINT in each addresschatgpt-4o-latest, claude-3-7-sonnet-20250219, gpt-4.1) against what n8n and yourStart (its path is deep_research) and run one question through it. Then pressThe file does not include it. Each of the three nodes sends two form fields and expects a service that answers by making a
Google Doc:
| Field | What the node sends |
|---|---|
| output | the report in Markdown |
| fileName | the report's title |
The nodes use a Google Docs credential, so n8n adds that credential's access token to the request. Point them at a
service you run yourself. Or delete each of the three and put a Google Docs node set to Create there, with the title
as the document's name, followed by one set to Update that inserts the Markdown as text. The headings then show as
plain text, but no outside service sees your token.
| Stage | Nodes | What happens |
|---|---|---|
| Question | Start, Research Request | A welcome page with a Next button, then a page that asks What would you like to research? |
| Follow-ups | Clarifying Questions to Get Initial Query | The model asks up to three questions, one form page each, or answers No clarification needed. The question and answers become one text. |
| Search phrase | End Form to Prepare Keywords (Code) | The form says thank you and closes. gpt-4.1 through the Responses API, with web search switched on, writes one search phrase. |
| Pass 1 | Tavily Search to Filter Relevant Content per Page | Tavily returns up to ten pages with full text. LLM Relevance Filter keeps up to five. One call reads them and writes an answer with numbered citations. |
| Check | Evaluate Answer Completeness, Check If Query Fully Answered | Answers yes or no. On no, it also writes a new search phrase. |
| Pass 2 | the Loop2_ nodes | The same stage on the new phrase, with its own check, Check Loop2 Answered. |
| Pass 3 | the Loop3_ nodes | The same stage once more. No check follows it. |
| Reports | Prepare Final Report, Final Report Generator and its two copies, HTTP Request1 to HTTP Request3 | Each report is Markdown with a title. The nodes post it to the converter. |
max_results and search_depth in the three Tavily nodes (10 and advanced), and theup to 5 links line in the three relevance prompts.Clarifying Questions and in the description ofStructured Output Parser1.Evaluate Answer Completeness and Loop2_Evaluate Answer Completeness1.Final Report Generator, Final Report Generator1 andFinal Report Generator2.model in Prepare GPT-4.1 Input.Prepare GPT-4.1 Input and the relevance prompts ask forjoin('n') orjoin('nn') where a line break was meant, and the two Parse LLM Output to JSON nodes had the pattern /{[sS]*}/.\n, \n\n and [\s\S]. The twelve are Get Initial Query, the three relevancePrepare Final Report and Prepare Final Report Input1.Start said reports were saved to Notion. The file saves through Google Docs, so it now says a Google Doc.Final Report Generator2 holds all three.Done and Done1 are Stop and Error nodes with the message Success, so a run that ends there shows as failed inPrepare Keywords (Code) reads only the first item of the reply's output list. When it finds no search phrase there,fallback search query. If the model runs its own web search first, the message may comeGet Initial Query still writes one stray line into the brief: question: output andanswer: [object Object].Filter Relevant Content per Page and its two copies put up to five full pages into one prompt. One long page canadvanced depth with full page text. OpenAI, Tavily and, for repairs only, Anthropic each bill their part.chatgpt-4o-latest is an alias OpenAI moves, and the Responses API call sets store to true.README.md 8 KB workflow.json 96 KB
Updated by Mindket to the current version of this kit.
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
op7418 · Skill
Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
zarazhangrui · Skill
Builds HTML presentations from scratch or from a PowerPoint file and shows visual style previews to pick from, for people who want web slides with no CSS or Ja…
iptv-org · Kit
Collects publicly available live TV channels from many countries into playlists that any video player with live streaming can open. Made for viewers and for de…
uwg · Kit
Holds a set of image upscaling models gathered from the OpenModelDB community, for people who want to enlarge low-resolution pictures with AI on their own comp…