> For the complete documentation index, see [llms.txt](https://docs.distro.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.distro.so/workflows/create-a-workflow.md).

# Create a workflow

Build a workflow around the outcome you want the prospect or seller to reach. Start with a small flow, test it, then add optional actions.

## 1. Create the workflow

Open **Workflows** and choose the create action. Enter a **Workflow name**, such as “Inbound demo requests,” then select **Create workflow**.

The builder opens with a canvas. The header shows the draft or published version and whether new events are accepted.

## 2. Choose the trigger

Choose what starts the workflow. For a website journey, use **New form submission** and select a saved form or connect an existing one.

For a seller-led flow, use **Browser extension**. For your own backend, use **API call** or **Webhook received**.

Configure the trigger before adding steps that depend on its fields. See [Triggers](/workflows/triggers.md).

## 3. Add a step

Use the add control on the canvas or connection to open **Add a step**. Search by name or choose a category.

Select a step, open its settings, and choose its resources and input values. For example, **Show Scheduler** needs an event type and host source.

Use the data picker to insert trigger values or outputs from earlier steps. See [Use data in steps](/workflows/use-data.md).

## 4. Connect the outcomes

A step may have several outcomes. Connect each outcome to its intended next step.

For example, **Assign from Queue** has **Assigned**, **Unassigned**, and **Error**. **Show Scheduler** has **Booked** and **Not booked**.

A disconnected outcome can end the path. Review it deliberately so an unassigned lead does not disappear from your process.

## 5. Save and validate

Changes save to the draft. Wait for **All changes saved**, or use **Save draft** if needed.

Select **Validate** and resolve the reported issues. A step may need a connection, published resource, required value, or input from an earlier step.

## 6. Simulate, publish, and activate

Select **Simulate**, enter representative inputs, and supply samples for external actions. Review the paths before publishing.

Select **Publish** and turn the workflow **On** when it is ready to accept events. Complete the source's activation or installation steps.

See [Test, publish, and versions](/workflows/test-and-publish.md).

## Example: qualify before booking

```
New form submission
  → Branch
      Qualified → Show Scheduler
                    Booked → Create CRM activity
                    Not booked → Notify in Slack
      Otherwise → Redirect to a follow-up page
```

Use your actual qualification conditions and event type. Add ownership matching before scheduling if existing accounts should reach their current owner.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.distro.so/workflows/create-a-workflow.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
