> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waverunnerai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Building workflows

> Create, configure, and deploy automation workflows in the Wave Runner Composer canvas editor.

The Composer is a visual canvas where you build workflows by connecting nodes.

Each node is either a trigger (what starts the workflow) or an action (what the workflow does). Go to **Workflows** in the navbar and click **Create** to open the editor.

## Create a workflow

<Steps>
  <Step title="Name your workflow">
    Enter a name and optional description. Pick a category to keep your workflows organized.
  </Step>

  <Step title="Choose a starting point">
    Select **Start from scratch** for an empty canvas, or pick a template from the gallery. Templates come pre-wired — configure the fields specific to your account and deploy.
  </Step>

  <Step title="Open the editor">
    Click **Create** to open the canvas.
  </Step>
</Steps>

## The canvas layout

| Area            | Purpose                                                                         |
| --------------- | ------------------------------------------------------------------------------- |
| **Canvas**      | Where you place and connect nodes. Scroll or use trackpad gestures to navigate. |
| **Left panel**  | Opens when you click **+** — shows available triggers and actions to add.       |
| **Right panel** | Opens when you click a node — shows its configuration fields.                   |

Switch between **Structured** layout (nodes arranged automatically) and **Free** layout (position nodes manually) using the toolbar at the top.

## Add a trigger

Every workflow starts with exactly one trigger.

<Steps>
  <Step title="Click the trigger placeholder">
    On an empty canvas, click the prompt to add a trigger. The left panel opens showing trigger categories.
  </Step>

  <Step title="Select a trigger">
    Triggers are grouped by category: Campaigns, Voice & Calls, Leads & Contacts, and Integrations. Click a category to see the options, then select one.
  </Step>

  <Step title="Configure the trigger">
    The right panel opens with the trigger's settings. Fill in any required fields. The trigger node updates on the canvas as you configure it.
  </Step>
</Steps>

## Add action nodes

<Steps>
  <Step title="Click the + button">
    Below any node, click **+** to open the action selection panel. Actions are grouped by category: Communication, Logic & Flow, CRM, and Connections.
  </Step>

  <Step title="Select an action">
    Click an action to add it to the canvas.
  </Step>

  <Step title="Configure the node">
    Click the node to open its configuration in the right panel. Nodes with missing required fields show an incomplete indicator on the canvas.
  </Step>

  <Step title="Repeat">
    Add nodes until your workflow is complete. Insert a node between existing ones by clicking **+** on any connection line.
  </Step>
</Steps>

## Branch with conditions

Each connection between nodes can carry a condition that controls whether the next node runs. Click any connection line to set it.

| Condition                     | When the next node runs                         |
| ----------------------------- | ----------------------------------------------- |
| **Run Always**                | Every time, regardless of outcome               |
| **If Call Booked**            | Only when an appointment was booked             |
| **If Call Not Booked**        | Only when no appointment was booked             |
| **If Answered**               | Only when the contact picked up                 |
| **If No Answer**              | Only when the call went unanswered              |
| **If Voicemail**              | Only when the call reached voicemail            |
| **If Busy**                   | Only when the line was busy                     |
| **If Interested**             | Only when the contact expressed interest        |
| **If Not Interested**         | Only when the contact declined                  |
| **If Callback Requested**     | Only when the contact asked to be called back   |
| **If Do Not Call**            | Only when the contact opted out                 |
| **If Evaluation Success**     | Only when a Condition node evaluated to true    |
| **If Evaluation Failed**      | Only when a Condition node evaluated to false   |
| **Custom Variable Condition** | Only when a custom expression evaluates to true |

<Tip>
  Use connection conditions to branch without a Condition node. For example: send an SMS only if the call was booked, skip it otherwise.
</Tip>

## Link a workflow to an agent

For call-triggered workflows, open the **assistant selector** in the editor toolbar and choose which agent fires this workflow. You can assign the same workflow to multiple agents.

## Save and deploy

<Steps>
  <Step title="Save">
    Click **Save** in the toolbar. The editor also auto-saves as you work.
  </Step>

  <Step title="Deploy">
    Click **Deploy** (the rocket icon) to set the workflow from Draft to Active. Wave Runner executes it automatically from that point on.
  </Step>

  <Step title="Pause or reactivate">
    Click the status badge in the toolbar and select **Pause** to suspend the workflow without deleting it. Click again to set it back to Active.
  </Step>
</Steps>

<Warning>
  Deploying makes the workflow live immediately. Make sure all nodes are fully configured before deploying.
</Warning>

## Next steps

<CardGroup cols={2}>
  <Card title="Triggers" icon="bolt" href="/workflows/triggers/overview">
    Every trigger type and how to configure each one.
  </Card>

  <Card title="Actions" icon="play" href="/workflows/actions/overview">
    Every action node and its configuration options.
  </Card>
</CardGroup>
