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

# Workflow APIs Overview

> Build multi-step outreach sequences that combine voice agent calls, WhatsApp messages, API calls, waits and retries, then run them over one contact or thousands.

<Note>
  Workflows are in beta. The APIs documented here are stable to build against, but details may evolve before general availability.
</Note>

## What are Workflows?

A workflow is a graph of nodes — agent calls, WhatsApp messages, API requests, waits, retries and endings — connected by conditions. Once published, you run contacts through it: each contact becomes an **execution** that walks the graph, branching on call outcomes, extracted values and API responses.

```
Workflow
 ├── Draft                  mutable definition you edit and validate
 ├── Published versions     immutable, frozen at publish (v1, v2, ...)
 │     └── Campaigns        each pins one published version
 │           └── Executions one per contact, walks the graph
 └── Single runs            one contact through the latest version
```

## Key Features

* **Versioned definitions** — edits go to a draft; publishing freezes an immutable version, so running campaigns are never changed underneath.
* **Condition-based branching** — every node routes onward through ordered cases evaluating call status, extracted fields, API responses or contact data.
* **Native retries and waits** — `retry` nodes re-dial unreachable contacts on a schedule; `time` nodes pause between steps.
* **Two ways to run** — a single-contact run endpoint for event-driven use, and campaigns with CSV/JSON contact uploads for batches.
* **Full observability** — per-execution node-by-node history, and per-campaign reports with a node funnel keyed to your definition.

Start with the [workflow guides](/docs/guides/workflows/introduction) for concepts, the definition schema and worked examples.

## Endpoints

```
POST   /workflows                                Create a workflow
GET    /workflows                                List workflows
GET    /workflows/{workflow_id}                  Get a workflow with its versions
PATCH  /workflows/{workflow_id}                  Rename a workflow
DELETE /workflows/{workflow_id}                  Delete a workflow
GET    /workflows/{workflow_id}/draft            Get the draft definition
PUT    /workflows/{workflow_id}/draft            Save the draft definition
POST   /workflows/{workflow_id}/validate         Validate the draft
POST   /workflows/{workflow_id}/publish          Publish the draft as a version
GET    /workflows/{workflow_id}/versions/{v}     Get a published version
POST   /workflows/{workflow_id}/run              Run one contact
GET    /workflow-node-types                      Node-type catalog
```

Batch runs live under the [Workflow Campaign APIs](/docs/api-reference/workflow-campaigns/overview), and per-contact progress under the [Workflow Execution APIs](/docs/api-reference/workflow-executions/overview).
