Visual Workflows

Build powerful automations with drag-and-drop simplicity

Workflows are visual automation pipelines that connect triggers, actions, and AI agents to automate complex business processes.

What is a Workflow?

A workflow in ArcanFlows is a visual representation of an automated process. It consists of:

  • Triggers: Events that start the workflow
  • Nodes: Individual steps that process data
  • Connections: Links that define the flow of data
  • Branches: Conditional paths based on logic

The Visual Builder

The workflow builder provides a drag-and-drop canvas where you design your automations:

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   Trigger   │────▶│   Action    │────▶│   Action    │
│  (Webhook)  │     │ (AI Agent)  │     │(Send Email) │
└─────────────┘     └─────────────┘     └─────────────┘
                           │
                           ▼
                    ┌─────────────┐
                    │  Condition  │
                    └─────────────┘
                      ╱         ╲
                     ▼           ▼
              ┌──────────┐ ┌──────────┐
              │  Yes     │ │   No     │
              │ (Slack)  │ │ (Email)  │
              └──────────┘ └──────────┘

Node Types

Triggers

Events that start your workflow:

TriggerDescriptionUse Case
ManualStart on demandTesting, one-off tasks
WebhookHTTP requestExternal integrations
ScheduleCron expressionDaily reports, cleanup
FormForm submissionLead capture, surveys
EventSystem eventUser actions, data changes
ChatAgent conversationChatbot triggers

Actions

Tasks your workflow performs:

ActionDescription
HTTP RequestCall external APIs
Send EmailSend via SMTP or providers
Send NotificationSlack, Teams, Discord, SMS
Database QueryRead/write data
Execute CodeRun JavaScript/Python
AI AgentInvoke an agent for processing
Sub-WorkflowCall another workflow

Logic & Control

Control the flow of execution:

NodeDescription
ConditionIf/else branching
SwitchMulti-way branching
LoopIterate over arrays
DelayWait for time period
TransformModify data structure
VariablesSet/get variables
ApprovalHuman-in-the-loop
ParallelExecute branches simultaneously

Building a Workflow

Step 1: Add a Trigger

Every workflow starts with a trigger. Drag a trigger node onto the canvas:

javascript
// Webhook trigger example payload
{
  "trigger": "webhook",
  "method": "POST",
  "headers": { "Content-Type": "application/json" },
  "body": {
    "customer_id": "cust_123",
    "event": "subscription_created",
    "data": {
      "plan": "pro",
      "amount": 49.00
    }
  }
}

Step 2: Add Processing Nodes

Add nodes to process the incoming data:

  1. Transform: Extract and reshape data
  2. Condition: Make decisions based on values
  3. AI Agent: Use AI for complex processing

Step 3: Add Actions

Add output nodes to complete the workflow:

javascript
// Send notification action configuration
{
  "action": "send_notification",
  "channel": "slack",
  "config": {
    "channel_id": "#sales-notifications",
    "message": "New {{input.data.plan}} subscription! Amount: ${{input.data.amount}}"
  }
}

Step 4: Connect Nodes

Draw connections between nodes to define the data flow. Each connection passes the output of one node to the input of the next.

Step 5: Test and Debug

Use the built-in debugger to:

  • Set breakpoints on any node
  • Inspect data at each step
  • Step through execution
  • Modify inputs on the fly

Variables and Expressions

Reference data throughout your workflow using expressions:

Input Data

javascript
{{ input.customer_id }}
{{ input.data.plan }}

Previous Node Output

javascript
{{ nodes.http_request_1.response.data }}
{{ nodes.ai_agent.response.content }}

Built-in Functions

javascript
{{ now() }}                    // Current timestamp
{{ formatDate(input.date) }}   // Format date
{{ input.name | uppercase }}   // Transform text
{{ input.items | length }}     // Array length
{{ env.API_KEY }}              // Environment variable

Error Handling

Handle failures gracefully:

Try-Catch Pattern

Wrap risky operations in error handling:

┌──────────────┐
│   Try Block  │
└──────────────┘
       │
    Success?
    ╱      ╲
   ▼        ▼
[Continue] [Catch Block]
              │
              ▼
       [Error Handler]

Retry Configuration

Configure automatic retries:

SettingDescription
Max RetriesNumber of retry attempts
DelayTime between retries
BackoffExponential backoff multiplier

Execution Monitoring

Track workflow execution in real-time:

Execution Log

View detailed logs for each run:

  • Start time and duration
  • Status of each node
  • Input/output data
  • Error messages

Metrics

Monitor workflow health:

  • Success/failure rate
  • Average execution time
  • Node-level performance
  • Error frequency

Best Practices

Design

  • Keep workflows focused on one goal
  • Use sub-workflows for reusable logic
  • Add descriptive names to nodes
  • Document complex flows

Performance

  • Minimize HTTP calls
  • Use parallel execution where possible
  • Cache frequently accessed data
  • Set appropriate timeouts

Reliability

  • Add error handling to all workflows
  • Configure appropriate retries
  • Set up monitoring alerts
  • Test with edge cases

Next Steps