Update wiki

This commit is contained in:
Dries Augustyns
2025-12-07 10:25:18 +01:00
parent b2ecf60a13
commit 0003e44db8
23 changed files with 3336 additions and 5 deletions
@@ -0,0 +1,258 @@
---
title: Visual Workflow Builder
description: Build workflows with drag-and-drop
icon: Workflow
---
## Overview
The workflow builder is a node-based visual editor for creating email automation. Each node is a step (send email, delay, condition, etc.) and connections define the flow.
## Canvas controls
- **-** / **+** - Zoom out/in
- **Fit** - Center and zoom to show entire workflow
- **Auto-Layout** - Automatically arrange nodes
- **Minimap** - Toggle overview map (bottom right)
## Step types
### Trigger
The starting point. Every workflow has one trigger.
**Types:**
- Event (e.g., `user_signed_up`)
- Segment entry/exit
- Schedule (cron)
Cannot be deleted.
### Send Email
Sends an email to the contact.
**Configuration:**
- Template (required)
- Variables (optional overrides)
Contact must be subscribed for marketing templates. Transactional templates send regardless.
### Delay
Pauses execution for a specified time.
**Configuration:**
- Duration: Number
- Unit: Minutes, Hours, or Days
**Example:** Delay 24 hours before next email.
### Wait for Event
Pauses until an event occurs or timeout is reached.
**Configuration:**
- Event name
- Timeout duration (optional)
**Requires two outgoing connections:**
- Event triggered path
- Timeout path
**Example:**
```
[Wait for: purchase_completed, timeout: 48h]
├─ Purchased → Send thank you
└─ Timeout → Send discount reminder
```
### Condition
Branches workflow based on contact data.
**Configuration:**
- Field to check
- Operator (equals, contains, greaterThan, etc.)
- Value to compare
**Requires two outgoing connections:**
- True path
- False path
**Example:**
```
[Condition: plan equals "premium"]
├─ True → Send premium features
└─ False → Send upgrade offer
```
### Webhook
Sends HTTP request to external URL.
**Configuration:**
- URL
- Method (GET, POST, PUT, DELETE)
- Headers (optional)
- Body (JSON, optional)
**Example:** Update CRM when workflow completes.
### Update Contact
Updates contact data fields.
**Configuration:**
- Fields: Key-value pairs
**Example:**
```
Fields:
onboardingCompleted: true
lastWorkflowStep: "welcome_series_done"
```
### Exit
Ends workflow execution. Can have multiple exit points for different paths.
## Building a workflow
### Add a step
**Method 1:** Click **+** button below any node
**Method 2:** Drag step type from sidebar onto canvas
### Configure a step
1. Click node to select
2. Right panel opens
3. Fill required fields
4. Save
### Connect steps
Connections auto-create when using + button. To manually connect:
1. Drag from node's bottom handle
2. Drop on another node's top handle
### Arrange layout
Click **Auto-Layout** for automatic top-to-bottom arrangement.
## Example workflows
### Linear sequence
```
[Trigger: user_signed_up]
[Send: Welcome]
[Delay: 24h]
[Send: Feature tour]
[Exit]
```
### With condition
```
[Trigger: trial_started]
[Send: Welcome]
[Condition: plan equals "enterprise"]
├─ True → [Send: Enterprise onboarding]
└─ False → [Send: Standard onboarding]
```
### With event wait
```
[Trigger: cart_abandoned]
[Delay: 1h]
[Send: First reminder]
[Wait for: purchase_completed, timeout: 23h]
├─ Purchased → [Exit]
└─ Timeout → [Send: Discount offer] → [Exit]
```
## Validation
The builder validates in real-time. Red border = error.
**Common errors:**
- "No outgoing connections" → Add connection to next step
- "Wait for Event requires two paths" → Add event + timeout paths
- "Condition requires true and false paths" → Add both paths
- "Template not found" → Select valid template
## Testing
### Manual execution
1. **Workflows** → Your workflow → **Executions**
2. **Create Execution**
3. Select test contact
4. Provide test data (JSON)
5. **Start**
Watch execution progress in real-time.
### Faster testing
For testing delays:
- Temporarily change to 5 minutes instead of days
- Test the flow
- Change back to real durations
## Keyboard shortcuts
| Key | Action |
|-----|--------|
| Delete | Delete selected node |
| Cmd/Ctrl + Z | Undo |
| Cmd/Ctrl + Shift + Z | Redo |
| + / - | Zoom |
| F | Fit to screen |
| Esc | Deselect |
## Troubleshooting
**Workflow not triggering**
- Workflow is enabled (toggle ON)
- Event name matches exactly (case-sensitive)
- Contact exists and is subscribed
**Execution stuck**
- Check delay configuration
- Verify wait timeout hasn't expired
- No circular references
**Email not sending**
- Template exists
- Contact is subscribed
- Variables in data match template
## Best practices
**Keep it simple** - 5-10 steps per workflow. Break complex flows into multiple workflows.
**Descriptive names** - "Send Welcome Email - Day 0" not "Email 1"
**Test first** - Always test with a test contact before enabling.
**Space emails** - Minimum 12-24 hours between emails to avoid fatigue.
## Next steps
- [Build your first workflow](/tutorials/welcome-series-workflow)
- [Workflow patterns](/automation-patterns/workflow-patterns)
- [Conditional branching](/automation-patterns/conditional-branching)