> This page is part of the [Customer.io documentation](https://docs.customer.io). For the complete index, see [llms.txt](https://docs.customer.io/llms.txt).
> Last updated: June 8, 2026

# Campaign workflow builder

Our visual workflow builder helps you construct message and action sequences on an open canvas. After you create a campaign, you’ll land on the workflow builder.

[![Visual workflow builder for a campaign](https://docs.customer.io/images/workflow-builder.png)](#6e0e563776082a483af8db269c35dfc4-lightbox)

1.  **Campaign settings**: edit the name, goal, exit conditions, and message settings. You can even screenshot your workflow or review keyboard shortcuts.
2.  **Add menu**: drag and drop message and action blocks onto the canvas to create your workflow.
3.  **Canvas**: drag blocks here to add them to your workflow. The canvas flows top to bottom.
4.  **Builder features**: open/close the add menu, zoom in or out, or add a sticky note for your teammates. After you click a block, this menu expands to show **Copy**, **Copy to**, **Move** and **Delete** actions, too.

## How to use the builder[](#how-to-use-the-builder)

To add a block to your workflow, drag an item from the sidebar onto the canvas. The canvas shows you where you can drop a workflow block with the indicator.

### Moving the canvas[](#moving-the-canvas)

If your workflow stretches beyond the margins of your browser, you can scroll around the canvas.

You can hold *spacebar* and move your mouse to scroll around the canvas as well.

### Select items on the canvas[](#select-items-on-the-canvas)

Click a workflow item to configure it.

Hold shift and click workflow blocks to select them for *Move*, *Delete* or *Copy* operations. You can also click and drag to select multiple workflow blocks. Selecting a branch this way also selects all of the items in the branch.

### Moving items[](#moving-items)

To move a block in your workflow, simply drag it anywhere you see a indicator.

Click and drag to select multiple items. You can either drag items to a new spot in the workflow or click **Move** and select where you want to drop them.

If you want to move items to a spot in your workflow that doesn’t fit on your screen, just drag the item to the edge of the canvas, and the workflow will scroll.

### Keyboard shortcuts[](#keyboard-shortcuts)

The workflow builder supports a few keyboard shortcuts to help you complete some repetitive actions quickly and easily. You can review them within your campaign by clicking keyboard shortcuts (`?`) in the campaign settings menu.

Function

Key

Description

Add

`A`

Opens or closes the Add menu

Goal

`G`

Opens the Goal settings

Messages

`M`

Opens the Message settings

Exit conditions

`E`

Opens the Exit conditions

Review

`R`

Opens the Review sidebar

Select multiple

`shift` + click

To select multiple blocks

Copy

`option` / `alt` + drag

Hold while selecting items to automatically copy them

Copy (keyboard)

`⌘` + `C`

Copy item

Paste

`⌘` + `V`

Paste item

Delete

`del` / `backspace`

Delete workflow items

Pan

`spacebar` + drag; right-click + drag

To move the canvas

Zoom in/out

`command` + `+` / `-`

Zoom in or out

Zoom to fit

`command` + `0`

Zoom to fit your workflow to the canvas

Show/hide notes

`shift` + `N`

Show or hide sticky notes

Zen mode

`shift` + `Z`

Toggles zen mode

Keyboard shortcuts

`?`

Shows keyboard shortcuts

### Sticky notes[](#sticky-notes)

As workflows become increasingly complex, you may want to leave notes for yourself and other team members to help explain workflow logic, actions, delays, etc.

[![Drag a note into the workflow](https://docs.customer.io/images/sticky-note-2.png)](#49d4f02129b1e1e3ad8e50ba926c5ab6-lightbox)

To leave notes, drag sticky notes from the bottom menu onto your workflow. Click a note to add or edit the text. You can drag notes around the workflow to place them exactly where you want them.

Hover a note and drag the icon to a relevant workflow action to link the sticky note to the action. Then when you move the action, your note moves with it.

[![Link a sticky note to a workflow action](https://docs.customer.io/images/sticky-note-link.png)](#81bb6d76fe317782a667adf187da872d-lightbox)

You can click to delete a note or click the icon to change its color. You might color coordinate notes written by different members of your team or differentiate between informational notes and warnings.

## Configuring workflow items[](#configuring-workflow-items)

After you drag a block into the workflow, click it to configure it—set a delay timer or add content to a message.

Messages and data blocks that you haven’t configured are marked: `'You still have work to do'`.

[![you still have work to do](https://docs.customer.io/images/vwb_upclose_item.png)](#a459847195a602c8f8db9f1ed2fedad3-lightbox)

### Messages[](#messages)

For each message block—Email, Push, Slack, SMS—you can:

*   Edit the item’s name: this is not a subject line, just a shorthand name for the workflow item that will appear in the workflow builder.
*   Click to add content.
*   Turn it into an [A/B test](/journeys/send/workflows/a-b-test-campaigns/).
*   Edit [sending behaviour](/journeys/send/timezones/queue-draft/): whether it queues as a draft, sends automatically, or doesn’t send at all.
*   Edit unsubscribe behaviour: by default, these will not send to unsubscribed. Please be careful with this setting!
*   Add [action conditions](/journeys/send/workflows/action-conditions/), in case you’d like the item to be skipped.
*   Track links. (Emails only)
*   Choose a specific platform. (Push notifications only)

If you’ve added content to a message, you’ll be able to get a preview of it. Here’s a screenshot:

[![edit email menu](https://docs.customer.io/images/vwb-email-preview-settings.png)](#d9bfa5af5a8ae7af2fe35600371ca268-lightbox)

### Data blocks[](#webhooks-and-attributes-updates)

[![the list of data blocks on the add menu](https://docs.customer.io/images/build-data-blocks.png)](#ac44188f287150c83bce8000de13f6bb-lightbox)

With data blocks, you can update people, send events, query collections, and create webhooks. Editing a *Send and receive data block* (a webhook) is similar to editing a message block. For each data block, you can:

*   Set the block name
*   Add details or add a request
*   (Send and receive data blocks only) manage sending behaviour (queue drafts, send automatically, don’t send)
*   Set [action conditions](/journeys/send/workflows/action-conditions/).

### Delays[](#delays)

There are three types of delays you can add to your campaign workflows: *Time Delays*, *Time Windows*, and *Wait Until…*. After you add a delay to the workflow, you can click it to edit the following:

*   **Time Delay:** edit how long the delay is and add an action condition.
*   **Time Window:** configure the window’s day and specific time.
*   **Wait Until…:** add the condition that needs to be met and/or a maximum wait time.

You can add an [action condition](/journeys/send/workflows/action-conditions/) to any delay.

### Flow control[](#branches)

[Branches](/journeys/send/workflows/branches/types/) let you send people down different paths in your workflow depending on various conditions. You can split people into a true/false branch, multi-split branch, or random cohort branch, depending on the types of conditions you want to apply.

After you add a branch to your workflow, click it to define conditions for the branch.

*   **True/false branch:** edit the name of the branch and the conditions determining whether people go down the true or false path.
*   **Multi-split branch:** edit the name of the branch, choose the data type you want to split paths on, and then pick the values of that data type for each path.
*   **Random cohort branch:** you won’t add conditions. Rather, specify the number of paths and what percentage of people should move down each.
*   **Exit:** Reconnect the branch’s exit block to another path in the branch.

### Screenshot your workflow[](#export)

Click **Screenshot workflow** in the campaign settings menu to download a PNG of your workflow that you can share with teammates or other stakeholders who don’t have access to Customer.io.

## Copying workflow items[](#copying-workflow-items)

You can [copy items to/from campaigns](/journeys/send/workflows/copying-workflow-items/) in any of your workspaces when you want to re-use specific sequences of actions, their conditions, and content.

You can also [duplicate campaigns](/journeys/send/campaigns/statuses/#duplicate-a-campaign) to re-use not only an entire workflow, but also campaign settings like trigger conditions and goal and exit criteria.

You cannot, however, copy campaigns across accounts.