Workflows

Processes that hold up on a bad day.

48 step types cover triggers, AI, human decisions, data, logic and communication. Every run is durable: it waits for a decision, with a deadline of up to 365 days or none at all, and resumes exactly where it paused. Retries and error paths are set per step, and transactions span steps.

30-day trial with Pro capabilities · no card required

48
workflow step types across triggers, AI, people, data, logic and output
7
trigger types, from a form or schedule to a data change, a webhook or another workflow
HMAC
signature verification you can require on an inbound webhook before its run starts, with an optional synchronous reply
Per step
retries, continue-on-fail and dedicated error branches

A run, step by step

Every run is a trace you can read.

A customer order arrives on a signed webhook. The order and its stock reservation are written in one transaction, a failing carrier call takes its error path, and the logistics coordinator decides how the order ships before the confirmation goes out.

orders / fulfillment · run 1187 Diagram
  1. Webhook trigger

    An order arrives

    The storefront calls the workflow's signed webhook. The signature is verified before the run starts.

  2. Transaction

    Order and stock are written together

    Create the order, reserve stock and log the reservation in one atomic batch.

    writes
    orders · stock_levels · reservations
    scope
    commit together or not at all
  3. Integration action

    The carrier API times out

    Two retries, then the error branch hands the booking to logistics.

    • Retry 1 → timeout
    • Retry 2 → timeout
    • Error branch → task for logistics
  4. Interactive form (a person decides)

    Logistics chooses the carrier

    Only this order's run waits. Every other order keeps moving.

    Assigned to Logistics coordinator (role)

    Decision required

    Why the run paused: The preferred carrier did not respond to two booking attempts.

    Order 1187 · 3 pallets · Rotterdam → Lyon · requested delivery Thursday

    Permitted decisions

    • Book the alternate carrier
    • Hold the order for 24 hours

    The decision picks the next branch of this run.

    No answer within 4 hours: the expired branch holds the order and notifies the account owner.

  5. PDF · Email

    Confirmation goes out

    Generate the order confirmation from its document template and email it to the customer.

  6. Run history

    Every step is on the trace

    Inputs, outputs, the error path taken and the decision stay inspectable in the run's history.

Run 1187Webhook → transaction → retries → error path → decision → documents

Diagram of a workflow built from shipped step types: a signed webhook trigger, a transaction scope, an integration action with retries and an error branch, a human decision, PDF generation and email. Names and values are sample data.

Want to see this on your own process? Our team will walk through it with you.

Walk through your process with us

What it does

How a run starts, waits, recovers and writes.

  1. Seven ways to start a run

    Start a run from a form submission, a schedule in its own timezone, a date field coming due, a record created, changed or deleted, an event in a connected system, a call from another workflow, or a launch from a screen button or the workflow's webhook.

    • Forms and screen buttons
    • Schedules in their own timezone
    • Date columns coming due
    • Record changes and external events
    • Calls from another workflow
    • Webhooks with HMAC, basic or header auth
  2. Runs that wait without losing their place

    A run pauses for a person or a timer, for days if needed, then resumes from the same step with its state intact. There is no scheduler, queue or worker for your team to keep alive.

  3. Data changes that hold together

    Create, update and delete steps commit in atomic batches keyed to the run, so a retried step never writes the same records twice. Transaction steps group writes from several steps so they commit together or not at all, with business rules enforced inside the same write.

  4. Failure is a path, not a surprise

    Set retries, continue-on-fail and a dedicated error branch on the steps that need them. When a call to another system fails, the process decides what happens next.

  5. Call other systems, send documents, answer callers

    Call typed actions on connected systems or any internet-reachable HTTP endpoint, generate PDFs from document templates, send email and in-app notifications, and answer the caller of a webhook directly.

See every run

Each run keeps its trace: what started it, what every step received and returned, where a step failed or took its error path, and who decided what. Record changes the run's data steps make are audited in the same transaction as the write, under the workflow's identity, with the old and new value of each changed field.

client_delivery / executions / run Product · captured Sep 2026
Bondi's run inspector for a completed run of the Prepare a client status update workflow: the execution outline with step timings, the human review and the branch it took, the AI cost and the values written.
Run inspector · a completed run in the Client delivery sample workspace

Under the hood

The mechanisms, in detail.

The mechanisms behind the page, for the architects and security reviewers evaluating it.

Read the technical documentation

Step catalog

7 triggers, 10 AI steps, 4 human-in-the-loop steps, 11 data steps and 16 logic, flow and output steps, including if, filter, switch, merge, wait, sub-workflows, respondToCaller, httpRequest, integrationAction, generatePdf, email and in-app notifications: 48 in all.

Execution and history

Runs execute on Cloudflare Workflows in the Production environment. Execution history is retained for 30 days, with step inputs and outputs stored as previews truncated at 10 KB by default. Schedules are timezone-aware with a five-minute minimum interval. On Pro, owners and admins can restore an earlier workflow version as a draft.

Failures, retries and transactions

retryOnFail, maxRetries (up to 10), continueOnFail and an error output are configured per step. Step-level retries happen only where you configure them; inside a step, some provider calls retry transient rate-limit or server errors on their own. Each atomic batch holds up to 100 record writes, and a larger write step commits in consecutive batches. Transaction steps collect up to 100 writes across steps into one atomic batch.

Run metering

Automation Runs = max(1, ceil(billable Actions / 20)). One step execution is one Action, and a step that runs once per item counts one Action per item. Retries that reach a provider and AI model or tool calls also count; triggers and skipped steps do not. Standard includes 2,500 Runs a month and Pro 15,000.

Designed boundaries

Where it starts and where it stops.

  • A transaction cannot span a pause for a person or a timer. Place the decision before or after the writes it governs.

  • Webhook traffic is rate-limited per workspace and per endpoint to protect the runs behind it.

    Read the technical documentation
  • Workflows run in Production and are metered in published Automation Runs; AI steps also use AI credit. In Development you build and review changes without running them.

    See how usage is metered

Availability

Standard
Every step type, with 2,500 Automation Runs a month
Pro
15,000 Runs a month and a Development environment to build and review workflow changes before they merge to Production
Enterprise
Custom Automation Run capacity and commercial terms
Compare plans and published usage

Questions buyers ask

Straight answers.

How are workflow runs metered?

One Automation Run covers up to 20 billable Actions: Runs = max(1, ceil(billable Actions / 20)). Each step execution is an Action, and a step that runs once per item counts one per item; retries that reach a provider and AI model or tool calls also count. Triggers are not billed. Capacity packs and a Wallet cover growth; an empty Wallet stops new over-capacity runs rather than creating a surprise charge.

Does Bondi retry failed steps automatically?

Step retries run only where you turn them on. Each step can retry up to the count you set, continue on failure or route to an error branch; a step with none of these stops the run and records the error. Create, update and delete steps are keyed to the run, so a retried write never lands twice. Some provider calls also retry transient rate-limit or server errors inside the step.

Can a run wait days for a person?

Yes. A human-task step assigns the decision to a user or role, shows them a form with the context you configure and suspends the run until they answer. You can set a deadline from one hour to 365 days, or none. A submitted answer continues the run on its submitted branch. If the expiry you set passes first, the run follows its expired branch, such as holding the order and notifying the account owner.

Can other systems start a workflow?

Yes: through a webhook on the workflow's launch trigger, which can require an HMAC signature, basic or header auth; through an event from a connected provider; or by creating or changing a record through the Data API, which fires a data-change trigger. A webhook caller can also get a synchronous reply from the run within 60 seconds.

What happens to records if a run fails halfway?

Writes inside a transaction scope commit together or not at all. Create, update and delete steps are keyed to the run, so a retried step never writes the same records twice. Writes committed before the failure stay in place. If the failing step has an error branch, that branch decides what happens next; otherwise the run stops and records the error.

Next step

Bring the process with the most exceptions.

We'll walk through the triggers, the exceptions and the decisions, and show you where the run holds and where it asks a person.