Building a Business Rule Flow on the Canvas

Created by Alexandru Sirbu, Modified on Tue, 17 Mar at 3:46 PM by Alexandru Sirbu

Every Rulebook has exactly one root rule - the first node in the flow, which has no incoming connections. All other rules are connected to this root, either directly or through intermediate rules. When HEDDA.IO processes a row, it starts at the root rule and follows the connections based on each rule's outcome.


Each rule node has two exit handles at the bottom:

  • Checkmark (✓): The path followed when the rule passes (conditions met, or the rule is a Dataflow Rule whose condition was true)
  • Warning (!): The path followed when the rule fails (conditions not met, or the Dataflow Rule's condition was false)


A rule can have downstream connections on both handles simultaneously, allowing branching flows. Rules that have no downstream connection on a given handle simply end the flow for that outcome - no further rules are evaluated for that row on that path.


Adding a Subsequent Business Rule

  1. On the canvas, locate the existing rule you want to extend the flow from
  2. Click the checkmark icon (✓) at the bottom of the node to add a rule that runs when the current rule passes
  3. Click the warning icon (!) at the bottom of the node to add a rule that runs when the current rule fails
  4. The Add Business Rule drawer opens. Configure the new rule's Metadata, Preparation, Conditions, and Actions as described in the preceding guides
  5. Save the rule. The new node appears on the canvas, connected to the rule you clicked from
Think about your flow design before building it. Sketch the branch structure in a notepad or paper first: which rules must always run, which only run after a specific outcome, and where branches converge. A well-designed flow is much easier to maintain than one built by trial and error.


Using the Advanced Flow Editor

The standard canvas interface is sufficient for most flows. For complex scenarios - rearranging many connections, creating convergent paths, or diagnosing structural issues - switch to the Advanced Flow Editor by clicking the button in the top-right corner of the canvas.


The Advanced Flow Editor collects all changes you make and only persists them when you click Save. This means you can make multiple structural changes and then validate the entire flow before committing. The available operations are:

  • Validate: Checks the current flow for errors and highlights problematic nodes in red
  • Format: Automatically arranges all nodes using the Network Simplex Algorithm - useful for cleaning up a visually messy canvas
  • Add Connection: Drag from the ✓ or ! handle of any node onto another node's input handle to create a connection
  • Add Business Rule: Drag from a ✓ or ! handle onto an empty space in the canvas to create a new rule node at that position. Alternatively, use Ctrl+Click on an empty space
  • Remove Connection: Click the X icon on any connection line to delete it
  • Remove Business Rule: Click the trash icon on a node to delete it
  • Rename: Double-click a node's label to rename it inline. Press Enter or click away to confirm
  • Multi-select: Hold Shift and draw a rectangle over nodes, or hold Ctrl and click individual nodes. Multi-selected nodes can be copy-pasted between Rulebooks in the same Knowledge Base
  • Discard: Resets the canvas to the last saved state, abandoning all unsaved changes
  • Cancel: Returns to the standard canvas view without saving


Canvas Node Indicators

Node border colours, in the Advanced Flow Editor, communicate the current status of each rule at a glance:


Indicator

Description

Red fill

The node has a structural problem: it is part of a cycle (loop), it is one of multiple root nodes, or it has a duplicate name. The flow cannot be saved while red nodes exist.

Orange left border

The rule has unsaved changes in the current Edit Version.

Gray left border

This is a newly added rule that has not yet been saved.

Blue bottom border

The rule is currently selected (part of a multi-selection).


There must be exactly one root rule - one node with no incoming connections. If you have multiple nodes with no incoming connections, the canvas will flag both as red. Connect all non-root nodes to the flow to resolve this.


Solving Common Flow Issues

Cycles

A cycle occurs when a connection creates a loop - Rule A connects to Rule B, which connects back to Rule A. HEDDA.IO will not execute cyclic flows. Identify the connection that closes the loop (flagged in red) and remove it using the X icon on the connection line in the Advanced Flow Editor.


Orphaned Rules

An orphaned rule is a node that exists on the canvas but has no incoming connection from any other rule (and is not the root). HEDDA.IO never evaluates orphaned rules. In the Advanced Flow Editor, connect the orphan to the appropriate point in the flow, or delete it if it is no longer needed.


Duplicate Names

Business Rule names must be unique within a Knowledge Base - not just within a Rulebook. If two rules anywhere in the Knowledge Base share a name, both nodes will be flagged in red. Rename at least one of them to resolve the conflict.


Copying Rules Between Rulebooks

Business Rules can be copied from one Rulebook and pasted into another within the same Knowledge Base. In the Advanced Flow Editor, multi-select the rules you want to copy (Shift+drag or Ctrl+click), then use standard copy/paste (Ctrl+C, Ctrl+V). The pasted rules appear as new nodes in the target Rulebook's canvas, preserving their Metadata, Preparation, Conditions, and Actions. Connections between the copied rules are preserved; connections to rules outside the selection are not.


Copying rules is the fastest way to reuse a well-tested condition or action pattern across multiple Rulebooks without rebuilding it from scratch. After pasting, review the Preparation and Condition references - Domain names in the target Rulebook must match those referenced in the copied rules.



If you have any further questions, please feel free to Contact Us.

You can also refer to the HEDDA.IO End User Documentation.


Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article