> ## 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.

# Graph agents vs workflows: which one to use

> Graph agents control what happens inside a single conversation; workflows orchestrate steps across calls and channels. Pick the right Bolna builder.

Bolna has two visual builders, and they solve different problems.

<CardGroup cols={2}>
  <Card title="Graph agents" icon="circle-nodes" href="/docs/graph-agent/introduction">
    Control **what happens inside one conversation**. Nodes are conversation states; transitions decide when the caller moves between them.
  </Card>

  <Card title="Workflows (beta)" icon="arrow-progress" href="/docs/workflows/introduction">
    Orchestrate **a sequence of steps around calls** — run a call, branch on the result, wait, message, call again.
  </Card>
</CardGroup>

***

## Choosing

| If you need to | Use |
| - | - |
| Force the agent through verification before it discloses anything | Graph agent |
| Ask a fixed question set and refuse to skip ahead | Graph agent |
| Route to different scripts based on what the caller says | Graph agent |
| Inject a real-time event mid-call | Graph agent ([event injection](/docs/graph-agent/event-injection)) |
| Retry tomorrow if nobody answered | Workflow |
| Send a WhatsApp message after a call ends | Workflow ([AiSensy](/docs/workflows/aisensy-whatsapp)) |
| Run a multi-step outreach campaign over days | Workflow ([campaigns](/docs/workflows/campaigns)) |
| Neither — one prompt handles the conversation | Neither. Use a [standard agent](/docs/agent-setup/overview) |

<Info>
  They compose. A workflow step can run a graph agent, so a strict in-call script and a multi-day sequence are not competing choices.
</Info>

***

## A rule of thumb

Ask where the branching lives.

* Branching **inside the call**, decided by what the caller says → graph agent.
* Branching **between calls**, decided by the call outcome → workflow.
* Branching only in your own backend, because you already have an orchestrator → neither. Use a standard agent and drive it from the [API](/docs/api-reference/introduction).

***

## Cost of each choice

A graph agent adds design work up front and makes behavior predictable and testable — see [testing](/docs/graph-agent/testing) and [validation](/docs/graph-agent/validation). Workflows are in **beta**: the builder, the [API surface](/docs/api-reference/workflows/overview) and campaign behavior are still changing, so prefer them for internal or lower-risk sequences until they are generally available.

***

## Next steps

<CardGroup cols={3}>
  <Card title="Build a graph agent" icon="circle-nodes" href="/docs/graph-agent/introduction">
    Nodes, transitions, routing
  </Card>

  <Card title="Build a workflow" icon="arrow-progress" href="/docs/workflows/introduction">
    Steps, conditions, campaigns
  </Card>

  <Card title="Just use one prompt" icon="wand-magic-sparkles" href="/docs/agent-setup/overview">
    The simplest option that works
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.