Summary
What this framework is and who it is for
This framework is a reference graph for a research synthesis pipeline: a workflow that takes a research brief as input, uses AI agents to gather, analyse, and synthesise information, routes the output through human review gates, and produces a structured deliverable ready for publication or decision-making.
It is designed for teams that run research processes on a recurring basis: content teams producing market or competitive intelligence reports, product teams synthesising user research, analysts turning raw source material into structured summaries, and operations teams that need a repeatable, auditable research process rather than an ad-hoc one.
The framework is expressed as a sequence of DAVE node types. Each node maps directly to a step you drag from the Node Palette in the Workflow Editor and configure in the Properties Panel. You do not need to adapt the node types to fit the framework: the framework is designed around the ten node types DAVE ships with.
You will need the Admin or Curate role to build this workflow in the editor. Users with the Use role can run instances of the completed workflow and complete human tasks within it.
The complete node graph
The research synthesis workflow uses eight nodes connected by directed edges. The graph below describes each node in order, its type, its purpose in the pipeline, and the key configuration to set in the Properties Panel.
Start (
start, green). The entry point. Every workflow requires exactly one Start node. No configuration is needed beyond confirming it is present on the canvas. All edges flow out from this node.Collect Research Brief (
user_interaction, blue). Pauses the workflow and creates a human task. The assigned user provides the research brief: the topic, scope, sources to include or exclude, output format requirements, and any constraints. Configure the User Assignment section in the Properties Panel to assign this task to the user or role responsible for commissioning research. Configure the Fields section to capture the brief as structured input that downstream agent nodes can read from the workflow context.Source Gathering Agent (
agent_interaction, purple). Invokes an AI agent automatically. The agent reads the research brief from the workflow context and gathers relevant source material: web search results, document extracts, database queries, or API-retrieved content depending on your agent configuration. Configure the Agent Assignment section to select the agent responsible for source gathering. The agent writes its output back to the workflow context for the next node to consume. No human task is created at this step.Synthesis Agent (
agent_interaction, purple). A second agent interaction node. The agent reads the gathered source material from the workflow context and produces a structured synthesis: a summary, a comparative analysis, a thematic grouping, or whatever output format the brief specified. Configure a separate agent in the Agent Assignment section, or reuse the same agent with a different prompt configuration if your agent supports it. The synthesis output is written to the workflow context.Quality Check (
agent_review, pink). An AI-powered automated quality check. An agent evaluates the synthesis output against defined criteria: completeness, factual consistency with the source material, adherence to the requested format, and absence of hallucinated citations. Configure the Agent Assignment section with a review agent. This node produces a pass or fail result on its output port, which the next node uses for routing. No human task is created.Route on Quality (
routing, purple). A logic-only branching node. It reads the pass/fail result from the Quality Check node and routes execution down one of two paths: pass routes to the Human Review gate; fail routes back to the Synthesis Agent to regenerate the output. Configure the Routing Configuration section with two output ports: one for the pass condition and one for the fail condition. Set the routing rules to evaluate the quality check result field in the workflow context. This node creates no tasks and invokes no agents.Human Review (
human_review, amber). Creates a review task for a human reviewer. The reviewer reads the synthesised output and the source material from the workflow context and makes one of three decisions: Approve (the synthesis is ready for delivery), Reject (the synthesis needs to be restarted from source gathering), or Request Changes (the synthesis needs targeted revision). Configure the User Assignment section to assign this task to the appropriate reviewer or role. Connect three outgoing edges from this node: one for Approve (to the Deliver Results node), one for Reject (back to the Source Gathering Agent), and one for Request Changes (back to the Synthesis Agent).Deliver Results (
api_call, cyan). Calls an external REST API to deliver the approved synthesis. This might post the result to a content management system, a project management tool, a Slack channel, a document store, or any system with an HTTP endpoint. Configure the API Configuration section with the method, URL, headers, body template (referencing the synthesis output from the workflow context), and response mapping. If you do not need an external delivery step, replace this node with a second User Interaction node that presents the final output to the commissioning user for download.End (
end, red). The terminal node. Marks workflow completion. Connect the outgoing edge from the Deliver Results node to this node. The workflow instance moves tocompletedstatus when execution reaches the End node.
Total: 9 nodes (including the End node), connected by directed edges. The graph contains two feedback loops: one from the Route on Quality node back to the Synthesis Agent, and one from the Human Review node back to the Source Gathering Agent on a Reject decision.
Building this workflow in the Workflow Editor
Open the Workflow Editor by navigating to Workflows in the sidebar, creating a new workflow (click New Workflow, enter a name such as "Research Synthesis", click Create Workflow), and then clicking the workflow name link to open the editor.
The editor opens with a blank canvas. If the canvas is blank, no versions have been saved yet: this is expected for a new workflow.
Building the graph:
- Drag a Start node from the Node Palette onto the canvas. Place it at the top of the canvas to establish a top-to-bottom reading direction.
- Drag each subsequent node type from the palette in order, placing them below the previous node. Use the node labels from the framework above: rename each node in the Properties Panel by clicking the node and editing the Label field.
- Connect nodes by hovering over the source handle (bottom circle) of the upstream node, dragging to the target handle (top circle) of the downstream node, and releasing. The edge appears as an animated line.
- For the two feedback loops (Route on Quality back to Synthesis Agent, and Human Review back to Source Gathering Agent on Reject), draw edges from the appropriate output port of the routing or review node back up to the target node. Use the mini-map in the bottom-right corner to navigate the canvas if the graph becomes large.
- Configure each node by clicking it to open the Properties Panel. Set the Label, Agent Assignment (for agent nodes), User Assignment (for interaction and review nodes), Fields, Routing Configuration (for the Routing node), and API Configuration (for the API Call node) as described in the node graph above.
- Add Information nodes next to complex sections of the graph to document the intent of each feedback loop. Information nodes do not affect execution but make the graph self-documenting for future editors.
- Click Save Version in the top-right corner when the graph is complete. Each click of Save Version creates a new immutable snapshot. Save frequently: there is no auto-save and no confirmation prompt when navigating away.
Once the workflow has at least one saved version, change its status from draft to active in the Workflows list page to make it available for instantiation.
Adapting this framework to your research process
This framework is a starting point, not a fixed specification. Every research process has different source types, output formats, review requirements, and delivery destinations. The node types are fixed: DAVE ships ten node types and this framework uses eight of them. What you adapt is the configuration inside each node, the number of agent nodes, and the routing logic.
Common adaptations:
- Add a Safety node before the Human Review gate if your research output may contain sensitive content, personal data, or material that needs compliance checking before a human sees it. The Safety node (
safety, teal) runs content safety checks and can flag or block content that violates configured policies. Connect it between the Route on Quality node's pass path and the Human Review node. - Add a second Synthesis Agent for multi-format output. If your research process requires both an executive summary and a detailed technical report, add a second
agent_interactionnode after the first synthesis step, configured with a different agent or prompt that produces the second format. Both outputs are written to the workflow context and are available to the Human Review node. - Replace the API Call delivery node with a User Interaction node if your delivery process is manual. The User Interaction node pauses the workflow and presents the final output to the commissioning user, who can then download or copy it. This is simpler to configure than an API Call node and requires no external endpoint.
- Add a second Human Review gate for high-stakes research. If your process requires both a subject-matter expert review and a final editorial approval, add a second Human Review node after the first, assigned to a different role. The workflow only proceeds to delivery after both reviewers approve.
- Adjust the feedback loop limit in the Routing node configuration. If you want to cap the number of times the synthesis can be regenerated before escalating to a human, add a counter field to the workflow context and a routing rule that routes to a Human Review node when the counter exceeds a threshold.
Each adaptation follows the same pattern: drag the node type from the palette, label it descriptively, configure it in the Properties Panel, connect it with edges, and save a new version. Previous versions are always preserved: you can iterate without risk.
Frequently asked questions
Do I need a separate agent for source gathering and synthesis, or can one agent do both?
You can use the same agent for both steps if your agent is configured to handle both tasks. The two separate Agent Interaction nodes allow you to configure different prompts or parameters for each step, which typically produces better results than a single agent trying to do both in one call. If your agent supports system prompt variation per node, one agent with two different node configurations is a practical approach.
What happens if the Quality Check agent always returns a fail result?
The Route on Quality node will keep routing execution back to the Synthesis Agent indefinitely. To prevent an infinite loop, add a counter field to the workflow context that increments each time the synthesis is regenerated, and add a routing rule that routes to the Human Review node when the counter exceeds a defined threshold. This escalates to a human reviewer after a configurable number of failed attempts.
Can I run multiple research synthesis instances simultaneously?
Yes. Each instance is an independent execution of the workflow version. Multiple instances can run in parallel without interfering with each other. Each maintains its own context, tasks, and status.
Who can build this workflow?
Only users with the Admin or Curate role can open the Workflow Editor, add and connect nodes, and save versions. Users with the Use role can run instances and complete human tasks (the Collect Research Brief and Human Review steps) but cannot edit the workflow graph.
How do I test the workflow before making it active?
Create a new instance from the workflow while it is still in draft status. Draft workflows can be instantiated for testing. Run the instance through the full graph, including the feedback loops, to verify that routing rules work correctly and that agent outputs are written to the expected context fields. Once you are satisfied, change the workflow status to active in the Workflows list page.
What node type should I use if I want to notify a Slack channel when the research is complete?
Use an API Call node (api_call, cyan). Configure the API Configuration section with Slack's incoming webhook URL as the endpoint, POST as the method, and a body template that references the synthesis output from the workflow context. The API Call node sends the HTTP request automatically when the instance reaches it, with no human task required.