{
"meta": {
"instanceId": "workflow-bc348d66",
"versionId": "1.0.0",
"createdAt": "2025-09-29T07:07:55.329832",
"updatedAt": "2025-09-29T07:07:55.329850",
"owner": "n8n-user",
"license": "MIT",
"category": "automation",
"status": "active",
"priority": "high",
"environment": "production"
},
"nodes": [
{
"id": "a342005e-a88e-419b-b929-56ecbba4a936",
"name": "Structured Output Parser",
"type": "n8n-nodes-base.noOp",
"position": [
1300,
1180
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"learnings\": {\n \"type\": \"array\",\n \"description\": \"List of learnings, max of 3.\",\n \"items\": { \"type\": \"string\" }\n },\n \"followUpQuestions\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"description\": \"List of follow-up questions to research the topic further, max of 3.\"\n }\n }\n }\n}"
},
"typeVersion": 1.2,
"notes": "This outputParserStructured node performs automated tasks as part of the workflow."
},
{
"id": "126b8151-6d20-43b8-8028-8163112c4c5b",
"name": "Set Variables",
"type": "n8n-nodes-base.set",
"position": [
-1360,
-460
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "df28b12e-7c20-4ff5-b5b8-dc773aa14d4b",
"name": "request_id",
"type": "string",
"value": "={{ $execution.id }}"
},
{
"id": "9362c1e7-717d-444a-8ea2-6b5f958c9f3f",
"name": "prompt",
"type": "string",
"value": "={{ $json['What would you like to research?'] }}"
},
{
"id": "09094be4-7844-4a9e-af82-cc8e39322398",
"name": "depth",
"type": "number",
"value": "={{\n!isNaN($json['input-depth'][0].toNumber())\n ? $json['input-depth'][0].toNumber()\n : 1\n}}"
},
{
"id": "3fc30a30-7806-4013-835d-97e27ddd7ae1",
"name": "breadth",
"type": "number",
"value": "={{\n!isNaN($json['input-breadth'][0].toNumber())\n ? $json['input-breadth'][0].toNumber()\n : 1\n}}"
}
]
}
},
"typeVersion": 3.4,
"notes": "This set node performs automated tasks as part of the workflow."
},
{
"id": "1d0fb87b-263d-46c2-b016-a29ba1d407ab",
"name": "OpenAI Chat Model",
"type": "n8n-nodes-base.noOp",
"position": [
1120,
1180
],
"parameters": {
"model": {
"__rl": true,
"mode": "id",
"value": "o3-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 1.2,
"notes": "This lmChatOpenAi node performs automated tasks as part of the workflow."
},
{
"id": "39b300d9-11ba-44f6-8f43-2fe256fe4856",
"name": "OpenAI Chat Model1",
"type": "n8n-nodes-base.noOp",
"position": [
-860,
1760
],
"parameters": {
"model": {
"__rl": true,
"mode": "id",
"value": "o3-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 1.2,
"notes": "This lmChatOpenAi node performs automated tasks as part of the workflow."
},
{
"id": "018da029-a796-45c5-947c-791e087fe934",
"name": "OpenAI Chat Model2",
"type": "n8n-nodes-base.noOp",
"position": [
-1060,
-300
],
"parameters": {
"model": {
"__rl": true,
"mode": "id",
"value": "o3-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8gccIjcuf3gvaoEr",
"name": "OpenAi account"
}
},
"typeVersion": 1.2,
"notes": "This lmChatOpenAi node performs automated tasks as part of the workflow."
},
{
"id": "525da936-a9eb-4523-b27a-ff6ae7b0e5ef",
"name": "Structured Output Parser1",
"type": "n8n-nodes-base.noOp",
"position": [
-840,
-300
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"questions\": {\n \"type\": \"array\",\n \"description\": \"Follow up questions to clarify the research direction, max of 3.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n}"
},
"typeVersion": 1.2,
"notes": "This outputParserStructured node performs automated tasks as part of the workflow."
},
{
"id": "e6664883-cff4-4e09-881e-6b6f684f9cac",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
-1760,
-460
],
"webhookId": "026629c8-7644-493c-b830-d9c72eea307d",
"parameters": {
"options": {
"path": "deep_research",
"ignoreBots": true,
"buttonLabel": "Next"
},
"formTitle": " DeepResearcher",
"formFields": {
"values": [
{
"fieldType": "html"
}
]
},
"formDescription": "=DeepResearcher is a multi-step, recursive approach using the internet to solve complex research tasks, accomplishing in tens of minutes what a human would take many hours.\n\nTo use, provide a short summary of what the research and how \"deep\" you'd like the workflow to investigate. Note, the higher the numbers the more time and cost will occur for the research.\n\nThe workflow is designed to complete independently and when finished, a report will be saved in a designated Notion Database."
},
"typeVersion": 2.2,
"notes": "This formTrigger node performs automated tasks as part of the workflow."
},
{
"id": "6b8ebc08-c0b1-4af8-99cc-79d09eea7316",
"name": "Generate SERP Queries",
"type": "n8n-nodes-base.noOp",
"position": [
-1040,
820
],
"parameters": {
"text": "=Given the following prompt from the user, generate a list of SERP queries to research the topic.\nReduce the number of words in each query to its keywords only.\nReturn a maximum of {{ $('JobType Router').first().json.data.breadth }} queries, but feel free to return less if the original prompt is clear. Make sure each query is unique and not similar to each other: \n
\nAnswer the following clarification questions to assist the DeepResearcher better under the research topic.\n
\n\nTotal {{ $('Feedback to Items').all().length }} questions.\n
" }, "formFields": { "values": [ { "fieldType": "textarea", "fieldLabel": "={{ $json[\"output.questions\"] }}", "placeholder": "=", "requiredField": true } ] } }, "typeVersion": 1, "notes": "This form node performs automated tasks as part of the workflow." }, { "id": "1c2cf79b-f1a1-4ecc-bb45-3d4460c947bd", "name": "For Each Question...", "type": "n8n-nodes-base.splitInBatches", "position": [ -540, -460 ], "parameters": { "options": {} }, "typeVersion": 3, "notes": "This splitInBatches node performs automated tasks as part of the workflow." }, { "id": "0c9ffa99-2687-4df5-8581-0c5b0b2657a9", "name": "DeepResearch Subworkflow", "type": "n8n-nodes-base.executeWorkflowTrigger", "position": [ -1880, 820 ], "parameters": { "workflowInputs": { "values": [ { "name": "requestId", "type": "any" }, { "name": "jobType" }, { "name": "data", "type": "object" } ] } }, "typeVersion": 1.1, "notes": "This executeWorkflowTrigger node performs automated tasks as part of the workflow." }, { "id": "127ab95d-bf89-4762-bfb5-34521e620ae2", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ -1140, -680 ], "parameters": { "color": 7, "width": 1000, "height": 560, "content": "## 2. Ask Clarifying Questions\n[Read more about form nodes]({{ $env.WEBHOOK_URL }}\n\nTo handle the clarification questions generated by the LLM, I used the same technique found in my \"AI Interviewer\" template ([link]({{ $env.WEBHOOK_URL }}\nThis involves a looping of dynamically generated forms to collect answers from the user." }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "e87c0f19-6002-4aa2-931a-ca7546146a84", "name": "Clarifying Questions", "type": "n8n-nodes-base.noOp", "position": [ -1040, -460 ], "parameters": { "text": "=Given the following query from the user, ask some follow up questions to clarify the research direction. Return a maximum of 3 questions, but feel free to return less if the original query is clear:| Technology | Potential Impact |
|---|---|
| 5G Connectivity | Enables faster data speeds and advanced apps | \n
\nYour Report Is On Its Way!\n
\nDeepResearcher will now work independently to conduct the research and the compiled report will be uploaded to the following Notion page below when finished.\n
\nPlease click the \"Done\" button to complete the form.\n