Building Workflows
This guide walks you through the essential steps for creating workflows in the Workflow Builder V2. You will learn how to add tasks, connect them, configure their behavior, and use advanced features like conditional branching.
Adding Tasks
Tasks are the building blocks of your workflow. Each task performs a specific operation, from fetching data to making decisions.
Using the Components Menu
-
Open the Components Menu using one of these methods:
- Click the + button in the toolbar
- Right-click on an empty area of the canvas
- Press
Cmd+K(Mac) orCtrl+K(Windows)
-
Browse by category to find the task you need:
- Control Flow: Conditional, Loop, Parallel, Wait, End
- Actions: API Call, Update Borrower, Send Notification, Generate Document
- Operations: Transform Data, Calculate, Aggregate, Filter
- Utilities: Comment, Set Variable, Log, Debug
-
Add the task by clicking on it or dragging it to the canvas
Use the search bar at the top of the Components Menu to quickly find tasks. Type keywords like "email", "condition", or "data source" to filter the list.
Positioning Tasks
- Click to add: The task appears at the center of the visible canvas area
- Drag to place: Drop the task exactly where you want it
- Reposition later: Click and drag any task to move it
Tasks added to the canvas are not connected by default. You must explicitly create connections between them.
Connecting Nodes
Connections define the flow of data and execution order between tasks.
Creating Connections
-
Locate the handles: Each task has connection handles:
- Input handle (left side): Receives data from previous tasks
- Output handle (right side): Sends data to subsequent tasks
-
Draw a connection:
- Click and hold on an output handle (right side of a task)
- Drag the connection line to an input handle (left side of another task)
- Release to create the connection
-
Connection validation: The system automatically prevents invalid connections:
- Circular dependencies (a task cannot connect back to itself through any path)
- Incompatible handle types (some tasks have typed outputs)
- Multiple connections to single-input handles
Connection Behavior
- Data flows left to right: Connections visually represent both execution order and data flow
- Sequential execution: Connected tasks execute in order, with each task waiting for its predecessors to complete
- Data availability: Output data from a completed task becomes available to all downstream connected tasks
You can connect one output to multiple inputs, creating parallel branches. All downstream tasks will receive the same data from the source task.
Removing Connections
- Click on a connection line to select it, then press
Delete - Right-click on a connection and select "Delete Connection"
- Drag the connection endpoint away from its handle and release on empty space
Configuring Tasks
Each task requires configuration before it can execute properly.
Opening the Properties Panel
Click on any task to select it and open the Properties Panel on the right side of the screen.
Using the Configure Tab
The Configure tab contains all task-specific settings. Common elements include:
Task Name
- Provide a descriptive name that explains what this task does
- Names appear on the canvas and in logs, making debugging easier
- Example: "Fetch Credit Bureau Report" instead of "API Call 1"
Required Fields
- Marked with an asterisk (*)
- The workflow cannot be saved or executed until all required fields are completed
- Validation errors appear below each field
Task-Specific Options
- Data Source tasks: Select the source, configure query parameters
- Conditional tasks: Define branch conditions using expressions
- Transform tasks: Specify input/output mappings
- Action tasks: Configure target systems, authentication, payloads
Save your workflow frequently while configuring tasks. Unsaved changes are indicated by a dot next to the workflow name in the toolbar.
Input Mappings
Most tasks need input data from previous tasks. Configure input mappings in the Advanced tab:
Common patterns:
$.input.borrower_id- Reference the workflow's initial input$.tasks.fetch_borrower.output.name- Reference output from a specific task$.tasks.calculate_score.output.score.value- Reference nested fields$.variables.threshold- Reference a workflow variable
Using Conditional Branches
Conditional tasks allow your workflow to take different paths based on data values.
Adding a Conditional Task
- Add a Conditional task from the Control Flow category
- The task appears with multiple output handles, one for each branch
Configuring Conditions
- Select the Conditional task and open the Configure tab
- Define conditions for each branch:
Condition Structure:
- Label: A descriptive name for the branch (e.g., "High Risk", "Approved")
- Expression: A boolean expression that determines when this branch is taken
- Priority: When multiple conditions match, the highest priority wins
Expression Examples:
Default (Else) Path
Every Conditional task has a default path that executes when no other conditions match:
- The default path is labeled "Else" or "Default"
- It cannot be deleted but can be configured
- Always ensure your logic accounts for the default case
Design your conditions to be mutually exclusive when possible. This makes the workflow logic easier to understand and debug.
Worked Example: Risk-Based Routing
Let's walk through a practical example. Imagine you want to automatically route loan applications based on credit scores:
- Excellent credit (750+): Approve automatically
- Good credit (700-749): Send to a team member for review
- Lower credit (below 700): Decline automatically
Step 1: Add the Conditional Task
- From the Components Menu, drag a Conditional task onto your canvas
- Click on it to open the Properties Panel
- Give it a clear name like "Route by Credit Score"
Step 2: Set Up Your Branches
In the Configure tab, you'll see options to add branches. Create two branches:
| Branch | Name | When to use this path |
|---|---|---|
| 1 | Auto Approve | Credit score is 750 or higher |
| 2 | Manual Review | Credit score is between 700 and 749 |
| Default | Auto Deny | All other cases (below 700) |
For each branch, you'll enter a simple rule. The system checks these in order from top to bottom.
Step 3: How the Routing Works
When a borrower comes through:
- First, the system checks: Is their score 750 or above? If yes, they go to "Auto Approve"
- If not, it checks: Is their score 700 or above? If yes, they go to "Manual Review"
- If neither condition is met, they automatically go to the Default path ("Auto Deny")
Step 4: Connect Each Path to the Next Step
You'll notice each branch now has its own output handle on the right side:
- Connect "Auto Approve" to a task that updates the borrower's status to approved
- Connect "Manual Review" to a task that creates a review assignment for your team
- Connect "Auto Deny" to a task that updates the status to declined
Connecting Branch Outputs
Each branch has its own output handle:
- Connect each branch output to the appropriate downstream task
- Branches can lead to completely different task sequences
- Branches can merge back together by connecting to the same downstream task
Adding Notes and Comments
Document your workflow logic using Comment tasks.
Purpose of Comments
- Explain complex business logic
- Document assumptions or requirements
- Leave notes for other team members
- Mark areas that need review
Adding a Comment
- Add a Comment task from the Utilities category
- Enter your note text in the Configure tab
- Position the comment near the relevant tasks
Comment characteristics:
- Comments do not execute and have no impact on workflow logic
- They cannot be connected to other tasks
- They are visible on the canvas and in exported workflow documentation
- Use markdown formatting for rich text
Comments are preserved across versions. Use them to document why certain decisions were made, which can be invaluable when revisiting workflows months later.
Auto-layout Feature
Keep your workflow visually organized with the auto-layout feature.
When to Use Auto-layout
- After adding many tasks quickly
- When connections have become tangled
- Before sharing or presenting the workflow
- When importing or duplicating a workflow
Using Auto-layout
- Click the Auto-layout button in the vertical toolbar (left side)
- The system automatically arranges all nodes:
- Tasks flow left-to-right based on execution order
- Parallel branches are stacked vertically
- Spacing is optimized for readability
- Comments maintain their relative positions
Customizing After Auto-layout
Auto-layout provides a starting point. You can:
- Fine-tune individual task positions by dragging
- Group related tasks closer together
- Create visual separation between logical sections
Auto-layout rearranges all nodes. If you have carefully positioned certain tasks, consider moving only the disorganized sections manually instead.
Complete Worked Example: Credit Decision Workflow
Let's build a complete workflow together. This example shows how to create a simple credit decision process that looks up a borrower, checks their credit score, and makes an approval decision.
What We're Building
By the end of this tutorial, you'll have a workflow that:
- Looks up a borrower's information
- Retrieves their credit score
- Automatically approves or denies based on the score
- Returns the final decision
Step 1: Create Your New Workflow
-
Click the Create Workflow button
-
Fill in the basic details:
- Alias:
credit-decision(this is a short identifier) - Label:
Credit Decision Workflow(this is the display name) - Description:
Checks borrower credit score and returns approval decision
- Alias:
-
Click Create to open your new workflow canvas
Step 2: Set Up the Input
Your workflow needs to know which borrower to evaluate. Let's tell it to expect a borrower ID.
- Look for the Elements Panel at the bottom of the canvas
- Click the Variables tab
- Click Add Variable and enter:
- Name:
borrower_id - Type: Text
- Description:
The borrower to evaluate
- Name:
This tells the workflow "when someone runs this workflow, they need to provide a borrower ID."
Step 3: Add a Task to Look Up the Borrower
- Open the Components Menu and drag a Fetch Borrower task onto the canvas
- Click on the task to open its settings
- In the Properties Panel:
- Name:
Fetch Borrower Data - Borrower ID: Select the
borrower_idvariable you created in Step 2
- Name:
This task will retrieve all the borrower's information from your system.
Step 4: Add a Task to Get the Credit Score
- Drag an AltData Enrichment task onto the canvas (this connects to credit bureaus and data sources)
- Configure it:
- Name:
Get Credit Score - Data Source: Choose your credit bureau from the dropdown
- National ID: Select the national ID field from the borrower data (the system will show you available fields from the previous task)
- Name:
Step 5: Add the Decision Point
Now let's add the logic that decides whether to approve or deny.
- Drag a Conditional task onto the canvas
- Name it
Evaluate Score - Set up one branch:
- Name:
Approved - Condition: Score is 700 or higher
- Name:
The Default path will automatically handle scores below 700 (denied).
Step 6: Add the Ending Points
Your workflow needs to end somewhere. Since we have two possible outcomes, we need two End tasks.
- Drag an End task onto the canvas and name it
Approved Result - Drag another End task and name it
Denied Result
For each End task, you can configure what information gets returned. For example, you might include the decision, the score, and the borrower ID.
Step 7: Connect All the Tasks
Now draw lines to connect everything in order:
- Start connects to Fetch Borrower Data
- Fetch Borrower Data connects to Get Credit Score
- Get Credit Score connects to Evaluate Score
- From Evaluate Score, connect the "Approved" branch to Approved Result
- Connect the "Default" branch to Denied Result
Your workflow should now flow from left to right, with a fork at the decision point.
Step 8: Test Your Workflow
Time to see it in action!
- Click the Play button in the toolbar
- A form appears asking for the borrower ID - enter one from your system
- Click Execute
- Watch as each task lights up in sequence showing the progress
- When it finishes, click on the final End task to see the result
What You Should See
If the borrower has a credit score of 700 or higher, the workflow follows the "Approved" path. Otherwise, it follows the "Denied" path. You can see exactly which path was taken by looking at the highlighted tasks on your canvas.
This is a simplified example to help you learn. Real-world workflows often include additional steps like manual review queues, multiple approval tiers, or additional data checks. Once you're comfortable with the basics, you can expand your workflows to match your business needs.
Best Practices
Naming Conventions
- Use descriptive task names that explain the action
- Include the data type or source when relevant
- Keep names concise but meaningful
Good examples:
- "Fetch Borrower from BC"
- "Calculate Debt-to-Income Ratio"
- "Check Credit Score Threshold"
Avoid:
- "Task 1", "API Call", "Conditional"
Workflow Organization
- Arrange tasks in a logical left-to-right flow
- Group related tasks visually
- Use comments to separate major sections
- Keep the number of parallel branches manageable
Error Handling
- Consider what happens when tasks fail
- Use conditional branches to handle error states
- Configure retry settings for unreliable external calls
- Add logging tasks at critical points
Next Steps
- Learn about Variables for dynamic data
- Explore Testing and Debugging your workflows
- Understand Publishing workflows to production