Skip to main content

Workflow Builder

The visual canvas for designing workflows — from laying out nodes on the canvas to configuring every field correctly.

Time to complete (configuration walkthrough): 15 minutes


Interface​

Canvas​

  • Infinite scrolling workspace
  • Zoom in/out controls
  • Mini-map navigation
  • Grid snap for alignment

Node Palette​

Drag nodes from categories:

  • Triggers: Start nodes
  • CRM Actions: Update contacts, deals, etc.
  • Channel: Email, SMS, WhatsApp
  • AI: LLM, knowledge search, agents
  • Logic: Conditions, loops, delays
  • Data: Transform, filter, aggregate
  • Integration: HTTP, webhooks, APIs

Properties Panel​

Configure the selected node:

  • Input mappings
  • Settings
  • Output preview

Node Categories​

CRM Actions​

  • Create/Update/Delete Contact
  • Create/Update/Delete Deal
  • Create Task
  • Add Note
  • Update Custom Field

Channel​

  • Send Email
  • Send SMS
  • Send WhatsApp
  • Make Voice Call

AI Nodes​

  • LLM (GPT, Claude, etc.)
  • Knowledge Base Search
  • Embedding Generator
  • AI Agent

Logic​

  • If/Else Condition
  • Switch (multiple branches)
  • Loop (iterate array)
  • Delay (wait time)
  • Human Input (pause for input)

Data​

  • Set Variable
  • Transform Data
  • Filter Array
  • Aggregate

Integration​

  • HTTP Request
  • Webhook Response
  • Database Query

Connections​

Creating​

  1. Click output port (right side)
  2. Drag to input port (left side)
  3. Release to connect

Data Flow​

  • Data passes through connections
  • Reference with {{node_id.field}}
  • Auto-complete suggestions

Configuring Nodes​

Every node needs configuration to know what to do. This section walks you through the configuration process, from opening the settings panel to filling in all the fields correctly.

The Configuration Panel​

When you click on a node, the configuration panel opens on the right side of the screen.

Panel Structure​

┌─────────────────────────────────────┐
│ 📧 Email Send ✕ │ ← Header with node name
├─────────────────────────────────────┤
│ Basic | Configuration | Advanced │ ← Tabs
├─────────────────────────────────────┤
│ │
│ Alias: emailsend_1 │
│ ───────────────────── │
│ │
│ To * │
│ ┌─────────────────────────────┐ │
│ │ {{contact.email}} {x}│ │ ← Field with variable picker
│ └─────────────────────────────┘ │
│ │
│ Subject * │
│ ┌─────────────────────────────┐ │
│ │ Welcome to our platform │ │
│ └─────────────────────────────┘ │
│ │
│ Body │
│ ┌─────────────────────────────┐ │
│ │ Hello {{contact.name}}, │ │
│ │ │ │
│ │ Welcome! │ │
│ └─────────────────────────────┘ │
│ │
└─────────────────────────────────────┘

Configuration Tabs​

Basic Tab​

General node settings:

FieldDescription
AliasUnique identifier for the node
DescriptionOptional notes about this node
EnabledToggle to enable/disable

Configuration Tab​

Node-specific settings - varies by node type.

Advanced Tab​

Error handling and performance:

FieldDescription
TimeoutMax execution time (seconds)
Retry on ErrorAutomatically retry failures
Retry CountNumber of retry attempts
Continue on ErrorDon't stop workflow on failure

Field Types​

Text Input​

Simple text entry field.

┌─────────────────────────────────────┐
│ Subject line text here │
└─────────────────────────────────────┘

How to use:

  • Type directly
  • Paste text
  • Insert variables with {{

Variable Field​

Field that accepts variables.

┌─────────────────────────────────┬───┐
│ {{contact.email}} │{x}│
└─────────────────────────────────┴───┘
↑
Variable picker

How to use:

  1. Type {{ to open variable picker
  2. Or click {x} icon
  3. Select variable from list

Choose from predefined options.

┌─────────────────────────────────┬───┐
│ OpenAI GPT-4 │ ▼ │
└─────────────────────────────────┴───┘

How to use:

  • Click to open dropdown
  • Select from options
  • Search if many options

Integration Selector​

Select a configured integration.

┌─────────────────────────────────┬───┐
│ My Gmail Connection │ ▼ │
└─────────────────────────────────┴───┘
⚙️ Configure Integration

How to use:

  1. Select existing integration
  2. Or click "Configure" to add new

Code Editor​

JavaScript or template code.

┌─────────────────────────────────────┐
│ 1 │ const email = input.payload.email│
│ 2 │ const name = input.payload.name; │
│ 3 │ │
│ 4 │ return { │
│ 5 │ greeting: `Hello ${name}` │
│ 6 │ }; │
└─────────────────────────────────────┘

Features:

  • Syntax highlighting
  • Line numbers
  • Auto-completion
  • Error indicators

Rich Text Editor​

For email bodies and formatted content.

┌─────────────────────────────────────┐
│ B I U │ 🔗 │ {x}│ ≡ │ • │ 1.│ │ ← Toolbar
├─────────────────────────────────────┤
│ Hello {{contact.name}}, │
│ │
│ Welcome to our platform! │
└─────────────────────────────────────┘

Features:

  • Bold, italic, underline
  • Links
  • Variable insertion
  • Lists

Toggle Switch​

On/off settings.

   ○──●  Enable retry

Number Input​

Numeric values with optional constraints.

┌─────────┐
│ 1000 │ tokens
└─────────┘
Min: 1 Max: 4096

Required vs Optional Fields​

Required Fields​

Marked with * (asterisk) or red indicator.

To *
┌─────────────────────────────────────┐
│ │ ← Must fill this
└─────────────────────────────────────┘

If missing:

  • Node shows validation error
  • Cannot save workflow
  • Won't execute properly

Optional Fields​

No asterisk, have reasonable defaults.

CC
┌─────────────────────────────────────┐
│ │ ← Can leave empty
└─────────────────────────────────────┘

If missing:

  • Uses default value
  • Node works normally

Step-by-Step Configuration​

Example: Configuring an Email Send Node​

Step 1: Select the node

  • Click on the Email Send node on canvas
  • Configuration panel opens on right

Step 2: Choose integration

Integration *
┌─────────────────────────────────┬───┐
│ Select email integration... │ ▼ │
└─────────────────────────────────┴───┘
  • Click dropdown
  • Select your Gmail, SMTP, or other email integration

Step 3: Set recipient

To *
┌─────────────────────────────────┬───┐
│ {{webhooktrigger_1.payload.email│{x}│
└─────────────────────────────────┴───┘
  • Type {{ to open picker
  • Navigate: webhooktrigger_1 → payload → email
  • Click to insert

Step 4: Write subject

Subject *
┌─────────────────────────────────────┐
│ Welcome to {{company.name}}, {{contact.first_name}}!│
└─────────────────────────────────────┘
  • Type text directly
  • Insert variables as needed

Step 5: Compose body

Body *
┌─────────────────────────────────────┐
│ Hello {{contact.first_name}}, │
│ │
│ Welcome to our platform! │
│ │
│ Your account: {{contact.email}} │
└─────────────────────────────────────┘

Step 6: Optional settings

  • CC/BCC if needed
  • Attachments if needed
  • Reply-To if different from sender

Step 7: Review

  • Check all required fields filled
  • Preview with test data
  • Save workflow

Using the Variable Picker​

The variable picker helps you find and insert variables correctly.

Opening the Picker​

Method 1: Type trigger

Field: {{          ← Typing {{ opens picker

Method 2: Click icon

┌─────────────────────────────────┬───┐
│ │{x}│ ← Click {x} icon
└─────────────────────────────────┴───┘
┌─────────────────────────────────────┐
│ 🔍 Search variables... │
├─────────────────────────────────────┤
│ ▼ webhooktrigger_1 │
│ ├── payload │
│ │ ├── email │
│ │ ├── name │
│ │ └── company │
│ ├── headers │
│ └── method │
│ │
│ ▼ transformdata_1 │
│ └── formatted_data │
└─────────────────────────────────────┘
  • Expand nodes to see their outputs
  • Search to filter variables
  • Click to insert

Variable Preview​

When you hover or select a variable, see its current value:

{{webhooktrigger_1.payload.email}}
Preview: "john@example.com"
Type: string

Validation Errors​

Common Validation Issues​

Missing required field:

❌ To: This field is required

→ Fill in the required field

Invalid variable:

❌ Invalid variable: {{contact.emial}} (typo)

→ Fix the variable path

Wrong data type:

❌ Expected number, got string

→ Use type conversion: {{value|int}}

Integration not selected:

❌ Please select an integration

→ Choose from dropdown or configure new

Fixing Validation Errors​

  1. Look for red indicators on fields
  2. Hover for error message
  3. Fix the issue
  4. Errors clear automatically

Configuration Patterns by Node Type​

Trigger Configuration​

Webhook Trigger:

FieldValue
WebhookSelect or create webhook
HTTP MethodsPOST (typical)

Database Trigger:

FieldValue
Entitycontacts, deals, etc.
OperationsINSERT, UPDATE, DELETE
FiltersOptional conditions

Scheduler:

FieldValue
Schedule TypeCron, Daily, Weekly
Time/ExpressionWhen to run
TimezoneYour timezone

Action Configuration​

Email Send:

FieldValue
IntegrationEmail service
To{{contact.email}}
SubjectEmail subject line
BodyEmail content

WhatsApp Send:

FieldValue
IntegrationWhatsApp BSP
Phone{{contact.phone}}
TemplateSelect template
VariablesTemplate variables

API Request:

FieldValue
URLAPI endpoint
MethodGET, POST, etc.
HeadersAuth, content-type
BodyRequest payload

Logic Configuration​

Condition:

FieldValue
Variable{{contact.lead_score}}
Operatorgreater_than
Value80

Loop:

FieldValue
Array{{data.items}}
Max Iterations100

AI Configuration​

LLM Integration:

FieldValue
IntegrationOpenAI, Claude, etc.
Modelgpt-4o-mini
System PromptAI instructions
Prompt{{message}}
Temperature0.7
Max Tokens1000

Tips for Better Configuration​

Use Descriptive Aliases​

Default:    emailsend_1
Better: send_welcome_email

This makes variables easier to understand:

{{emailsend_1.success}}         → unclear
{{send_welcome_email.success}} → clear

Add Descriptions​

Use the description field to document:

  • What this node does
  • Why it's configured this way
  • Any special considerations

Test with Sample Data​

Before finalizing:

  1. Fill in configuration
  2. Run a test with sample data
  3. Check outputs in node panel
  4. Adjust as needed

Use Defaults Wisely​

For optional fields:

  • Leave empty to use defaults
  • Only fill if you need different behavior
  • Document when using non-default values

Advanced Settings​

Timeout Configuration​

Timeout: 30 seconds

Set appropriate timeouts:

  • API calls: 30-60 seconds
  • AI generation: 60-120 seconds
  • Email sending: 30 seconds

Retry Logic​

☑ Retry on Error
Retry Count: 3
Retry Delay: 5 seconds

Use for:

  • External API calls (rate limits)
  • Email sending (temporary failures)
  • Database operations (lock contention)

Continue on Error​

☑ Continue on Error

When enabled:

  • Workflow continues even if this node fails
  • Error stored in {{node.error}}
  • Use condition to check and handle

Quick Reference​

Field Types​

Text Input      → Type directly or paste
Variable Field → Type {{ or click {x}
Dropdown → Click and select
Code Editor → Write JavaScript
Rich Text → Format with toolbar
Toggle → Click to switch
Number → Enter numeric value

Configuration Tabs​

Basic         → Alias, description, enabled
Configuration → Node-specific settings
Advanced → Timeout, retry, error handling

Variable Picker​

Type {{       → Opens picker
Click {x} → Opens picker
Navigate → Expand nodes, drill down
Search → Filter by name
Click → Insert variable

Validation Indicators​

*            → Required field
Red border → Validation error
Hover → See error message

Next Steps​

Now that you can lay out and configure nodes, continue with:

  1. Working with Variables - Advanced variable techniques
  2. Using Conditions - Add logic to workflows
  3. Testing Workflows - Verify your configuration