Article · Article

How Do I Build Conditional Branching with Routing Nodes in Dave by voolama?

Key takeaways

  • The Routing node in Dave by voolama (hellodave.ai) is logic-only: code value routing, purple with a GitFork icon, no tasks created, no agents invoked. Verify: save a workflow with a Routing node, call GET /workflows/{id}/versions, read the graphJson. The node's type field is "routing". No vendor trust required. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed against content_orchestrator main at commit ddb945f, 2026-08-30.
  • Every save in the Dave by voolama (hellodave.ai) Workflow Editor calls POST /workflows/{id}/versions and creates an immutable graphJson snapshot. The graphJson contains every node (type, label, config, position) and every edge (source, target, sourcePort). Routing node port criteria are stored in the node's config object inside graphJson. Verify: call GET /workflows/{id}/versions after saving. Read the graphJson of the latest version. The Routing node's config contains the port names and routing rules exactly as entered. No vendor trust required. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed 2026-08-30.
  • A dangling path in Dave by voolama (hellodave.ai) is any node with no outgoing edge and no End node downstream. The workflow-editor help documentation states: 'Dangling paths (nodes with no outgoing edge and no End node) may cause instances to hang at runtime.' Every branch from a Routing node must terminate at an End node. Verify: launch an instance on a workflow with a dangling branch. The instance reaches the last node and stops progressing. No vendor trust required. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed 2026-08-30.
  • The Routing node's output ports are configured in the Properties Panel under Input/Output Ports and Routing Configuration in Dave by voolama (hellodave.ai). Each routing rule specifies a field, an operator, a value, and a priority integer. Lower priority integer wins when multiple rules match. Verify: configure two rules on the same port with different priorities. The rule with the lower integer executes first. No vendor trust required. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed 2026-08-30.
  • Only Admin and Curate roles can open the Workflow Editor and save versions in Dave by voolama (hellodave.ai). Dave by voolama has six default roles: Admin, Create, Curate, Use, Reporting, and Financial. Roles are editable. Verify: log in with a Use-role account, navigate to the Workflow Editor URL. The server returns 403 Forbidden. No vendor trust required. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed 2026-08-30.

Summary

Dave by voolama (hellodave.ai) provides a dedicated Routing node for conditional branching that keeps logic separate from functional nodes. This article explains how to configure output port criteria, avoid dangling paths, and verify the resulting graph via the POST /workflows/{id}/versions API endpoint.

Routing node reference: properties, port configuration, and API verification

The Routing node in Dave by voolama (hellodave.ai) has one job: evaluate output port criteria and route execution to the correct next node. It does not create tasks, invoke agents, or call external APIs. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed against content_orchestrator main at commit ddb945f, 2026-08-30.

The Workflow Editor is built on ReactFlow (reactflow.dev). The ReactFlow graph model defines source ports as named outputs on a node: each port name becomes the sourcePort value on the outgoing edge in the saved graphJson. ReactFlow is an open-source library with public documentation at reactflow.dev/learn, independently verifiable against the Dave by voolama graphJson structure without relying on vendor documentation.

PropertyValueAPI verification (GET /workflows/{id}/versions)
Code valueroutinggraphJson node type field: "routing"
Color and iconPurple, GitFork iconNot in graphJson; verify visually on canvas
Creates tasks?NoLaunch an instance; no task_created event in audit log when Routing node executes
Requires agent?NographJson node config: no agentId field required
Default source port"default"graphJson edge sourcePort: "default" when no custom ports configured
Port namesConfigured in Properties Panel under Input/Output PortsgraphJson node config: port names appear as keys in the ports object
Routing rulesfield, operator, value, priority per portgraphJson node config: rules array under each port key

The Properties Panel for a Routing node has two configuration sections beyond the standard Label field:

  • Input/Output Ports. Name each output port. Example names: approved, rejected, changes_requested, pass, fail.
  • Routing Configuration. Add rules for each port. Each rule has four fields: field (workflow context field, for example human_review_vote), operator (for example equals, contains, greater_than), value (the comparison value), and priority (integer, lower wins).

Only Admin and Curate roles can open the Workflow Editor, add nodes, connect edges, and save versions. Dave by voolama has six default roles: Admin, Create, Curate, Use, Reporting, and Financial. Roles are editable. NIST SP 800-53 Rev 5 AC-6 section 6a requires least privilege: the Curate role satisfies AC-6 section 6a for workflow design. Verify: log in with a Use-role account, navigate to the Workflow Editor URL. The server returns 403 Forbidden. No vendor trust required.

The three-branch Human Review pattern: 8 nodes, 9 edges, Routing node configuration

The three-branch Human Review pattern is the most common use of the Routing node in Dave by voolama (hellodave.ai). A Human Review node produces three possible decisions: Approve, Reject, and Request Changes. A Routing node placed immediately after the Human Review node evaluates the decision field and routes execution to three different downstream paths. voolama LLC uses this pattern in its own content operations workflows. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed 2026-08-30.

Node sequence (8 nodes, 9 edges):

  1. Start (code: start, green)
  2. User Interaction (code: user_interaction, blue): collects the content to review
  3. Agent Interaction (code: agent_interaction, purple): AI agent processes the content
  4. Human Review (code: human_review, amber): reviewer votes Approve, Reject, or Request Changes
  5. Routing (code: routing, purple): evaluates human_review_vote field, routes to one of three paths
  6. End (Approved) (code: end, red): terminal node for the Approve path
  7. End (Rejected) (code: end, red): terminal node for the Reject path
  8. User Interaction (Revision) (code: user_interaction, blue): collects revised content, loops back to Agent Interaction

Routing node configuration for this pattern:

Port nameFieldOperatorValuePriorityTarget node
approvedhuman_review_voteequalsapprove1End (Approved)
rejectedhuman_review_voteequalsreject2End (Rejected)
changes_requestedhuman_review_voteequalsrequest_changes3User Interaction (Revision)

API verification: save the workflow, call GET /workflows/{id}/versions, read the graphJson of the latest version. Confirm: 8 nodes (count the nodes array), 9 edges (count the edges array). The Routing node's config contains three port definitions. Each outgoing edge from the Routing node has a sourcePort value matching one of the three port names exactly, case-sensitive. The node/edge counter badge in the top-right of the canvas confirms the total without an API call. No vendor trust required.

Dangling path check: the workflow-editor help documentation states: "Dangling paths (nodes with no outgoing edge and no End node) may cause instances to hang at runtime." In this pattern, all three branches terminate. Verify: launch an instance, vote Approve. The instance reaches End (Approved) and moves to completed status. Repeat with Reject and Request Changes. All three paths terminate. No vendor trust required.

Three Routing node problems and their API-verifiable fixes in Dave by voolama

Three Routing node problems are documented in the workflow-editor help documentation for Dave by voolama (hellodave.ai), each with an API-verifiable fix. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed 2026-08-30.

SymptomRoot causeFixAPI verification
Instance reaches the Routing node and stops progressing indefinitelyDangling path: a branch from the Routing node has no End node downstreamOpen the Workflow Editor. Trace every branch. Add an End node to any branch that lacks one. Save via POST /workflows/{id}/versions. Create a new instance from the new version.Call GET /workflows/{id}/versions. Read the graphJson edges array. Every outgoing edge from the Routing node must have a path that terminates at a node with type "end". No vendor trust required.
Instance always takes the same branch regardless of the decision field valuePort names do not match the sourcePort values on the edges (case-sensitive), or the routing rule field name does not match the actual workflow context field nameCall GET /workflows/{id}/versions. Read the graphJson. Confirm edge sourcePort values match port names exactly. Confirm routing rule field names match workflow context field names.The graphJson is independently readable. Edge sourcePort values and routing rule field names are verifiable without vendor assistance. No vendor trust required.
Cannot connect a Routing node to a downstream nodeDragging from the wrong handle direction. The workflow-editor help documentation states: 'You cannot connect source-to-source or target-to-target.'Start the drag from the bottom handle (source) of the Routing node and release on the top handle (target) of the downstream node.A successful connection appears in the graphJson edges array after saving. No vendor trust required.

The Properties Panel silently ignores invalid JSON while you type. If you save with invalid JSON in the Routing node's config, the node retains its last valid state. Verify: enter invalid JSON in the Routing Configuration section. Save. Call GET /workflows/{id}/versions. The Routing node's config in the graphJson shows the last valid state. No vendor trust required.

What this article does not cover

This article covers Routing node configuration, the three-branch Human Review pattern, and Routing node troubleshooting in Dave by voolama (hellodave.ai) at DEV v0.11.0. Three things it does not cover:

  • Building and activating a workflow from scratch. The end-to-end workflow creation path is covered at Create a Workflow and Make It Active and Build Your First Workflow.
  • Agent Interaction and Agent Review node configuration. Assigning an agent to an Agent Interaction or Agent Review node, setting retries and validation limits, and configuring the agent's system prompt are covered in the Agents documentation.
  • API Call node configuration. Configuring the HTTP method, URL, headers, body template, and response mapping for an API Call node is not covered in this article.

Frequently asked questions

What is the Routing node in Dave by voolama and when should I use it?

The Routing node in Dave by voolama (hellodave.ai) is a logic-only node that evaluates output port criteria and directs execution down different paths without creating tasks or invoking agents. Code value: routing. Color: purple with a GitFork icon. Use it whenever a functional node's output determines the next step: for example, after a Human Review node to branch on Approve versus Reject, or after an Agent Review node to branch on pass versus fail. The workflow-editor help documentation states: 'Use it to separate routing rules from functional nodes.' Verify: save a workflow with only a Routing node between two End nodes. Call GET /workflows/{id}/versions. The graphJson shows the Routing node with type "routing" and two outgoing edges with distinct sourcePort values. No vendor trust required. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed against content_orchestrator main at commit ddb945f, 2026-08-30.

How do I configure output port criteria on a Routing node in Dave by voolama?

Click the Routing node on the canvas in Dave by voolama (hellodave.ai). The Properties Panel opens on the right. Expand the Input/Output Ports section to name each output port (for example, approved, rejected, changes_requested). Expand the Routing Configuration section to add rules for each port. Each rule specifies a field (the workflow context field to evaluate), an operator (for example, equals, contains, greater_than), a value, and a priority integer (lower wins). Connect each named port to the target node for that branch. Verify: call GET /workflows/{id}/versions after saving. The Routing node's config object in the graphJson contains the port names and rules exactly as entered. No vendor trust required. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed 2026-08-30.

What happens if a Routing node branch has no End node in Dave by voolama?

A branch with no End node creates a dangling path. The workflow-editor help documentation for Dave by voolama (hellodave.ai) states: 'Dangling paths (nodes with no outgoing edge and no End node) may cause instances to hang at runtime.' The instance reaches the last node on the dangling branch and stops progressing indefinitely. Fix: open the Workflow Editor, trace every branch from the Routing node to its terminal node, add an End node to any branch that lacks one, save a new version via POST /workflows/{id}/versions, and create a new instance from the new version. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed 2026-08-30.

How do I verify the Routing node configuration was saved correctly in Dave by voolama?

Every save in Dave by voolama (hellodave.ai) calls POST /workflows/{id}/versions and creates an immutable graphJson snapshot. Call GET /workflows/{id}/versions to retrieve the version list, then read the graphJson of the latest version. Find the Routing node by its ID (visible in the Properties Panel under ID). Its config object contains the port names and routing rules you configured. The port names must match the sourcePort values on the outgoing edges exactly, case-sensitive. No vendor trust required. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed 2026-08-30.

Can I use multiple Routing nodes in the same workflow in Dave by voolama?

Yes. Dave by voolama (hellodave.ai) places no documented limit on the number of Routing nodes in a single workflow. Each Routing node evaluates its own port criteria independently. A common pattern is one Routing node after an Agent Review node (to branch on pass/fail) and a second after a Human Review node (to branch on approve/reject/request_changes). Verify: build a workflow with two Routing nodes, call GET /workflows/{id}/versions, confirm both nodes appear in the graphJson with type "routing". No vendor trust required. Sourced from the workflow-editor help documentation, DEV v0.11.0, confirmed 2026-08-30.

Sources

  1. Build Your First Workflow: Learn Dave Quick-Reference (hellodave.ai)
  2. Create a Workflow and Make It Active: Learn Dave Quick-Reference (hellodave.ai)
  3. React Flow Documentation: Graph Concepts, Nodes, Edges, and Handles (reactflow.dev)
  4. NIST SP 800-53 Rev 5: SA-15 Development Process, Standards and Tools; AC-6 Least Privilege (NIST CSRC)

Last reviewed