Workflow separates editing from execution. You build and save a draft graph, test it without side effects, and publish an immutable version only when every path is ready.

## Before you start

Prepare the resources the graph will reference:

- A verified sender for every email step
- Tags or fields used by triggers, conditions, goals, or exits
- A clear entry event, such as a subscriber being created or receiving a tag
- One measurable definition of success
- A decision about whether the same subscriber may enroll again

## Create a Workflow draft

1. Open **Workflow** from the organization sidebar.
2. Select **Create workflow**.
3. Choose a template or start from an empty graph.
4. Give the workflow a name that describes the audience and outcome.
5. Keep it in **Draft** while building.

A draft cannot enroll subscribers. Saving changes the editable graph only; it does not send email or replace the currently published version.

## Understand the editor

![Workflow editor with the graph canvas, toolbar, and configuration rails](/docs/workflows/editor-overview.png)

The editor has three working areas:

| Area              | What it controls                                                 |
| ----------------- | ---------------------------------------------------------------- |
| Canvas            | Steps, routes, and the order in which subscribers move           |
| Step panel        | The selected trigger, email, wait, branch, action, goal, or exit |
| Workflow settings | Name, repeats, group, global exit rules, and success goals       |

The canvas also surfaces **Exit conditions** in the upper-right and **Success goals** in the lower-right so global behavior stays visible while editing the graph.

## Add and connect steps

Click the plus control after a step or on a branch placeholder. Lumail shows only supported workflow step types.

![Add-step menu with email, wait, branch, action, goal, and exit choices](/docs/workflows/add-step-menu.png)

A practical first sequence is:

1. **Trigger** — Subscriber created
2. **Email** — Welcome
3. **Wait** — 1 day
4. **Condition** — Subscriber has the customer tag
5. **Yes** — Goal: Purchased
6. **No** — Email: Product reminder

Branching steps create explicit route placeholders. Replace each placeholder with the first real step for that path. A branch may end naturally, with an **Exit** step, or with a terminal **Goal** step.

## Configure workflow settings

Open **Settings** and review:

- **Allow repeats**: permits a new run after the cooldown; it never duplicates an already active run.
- **Cooldown minutes**: defaults to 1,440 minutes between runs.
- **Workflow group**: applies mutual-exclusion behavior to future enrollments.
- **Exit**: repeatedly stops runs whose subscriber state now matches an exit rule.
- **Goals**: records conversions used by workflow and A/B results.

See [Workflow Groups](/docs/workflows/workflow-groups), [Goals](/docs/workflows/workflow-goals), and [Exit Rules](/docs/workflows/workflow-exit-rules) before enabling those settings.

## Save, test, then publish

Use this order:

1. Save the draft.
2. Resolve every validation message.
3. Open **Test run** and choose one subscriber.
4. Inspect the dry-run timeline and every branch decision.
5. Send tests for each workflow email and verify links, variables, sender, and unsubscribe footer.
6. Publish as a new version.
7. Activate only when new subscribers should begin enrolling.

Publishing and activation are separate decisions. Read [Publishing and Versions](/docs/workflows/workflow-publishing) for the exact lifecycle.

## First-workflow checklist

- Every non-trigger step is reachable.
- Every condition has **Yes** and **No** paths.
- Every event wait has **Matched** and **Timeout** paths.
- A/B percentages total exactly 100%.
- Every goal step is terminal.
- Every email has a verified sender and an unsubscribe link.
- Waits use incremental timing, not absolute campaign-day numbers.
- Exit rules and success goals use the intended AND/OR logic.
- A dry run reaches the expected terminal state on every path.

## Next steps

- [Configure triggers](/docs/workflows/workflow-triggers)
- [Manually enroll subscribers](/docs/workflows/workflow-manual-enrollment)
- [Build branches](/docs/workflows/workflow-branching)
- [Create an A/B test](/docs/workflows/workflow-ab-testing)
- [Test runs and inspect timelines](/docs/workflows/workflow-testing)
