Orchestrate anything that speaks HTTP.

Dispatched runs your workflows. You describe the steps as HTTP calls, wire them into a graph, and we handle the retries, rollbacks, fan-out, secrets, and scheduling. Your data is encrypted end-to-end — we couldn't read it if we wanted to.

validate check-inventory check-fraud authorize notify analytics

Everything the glue code used to do

Define your workflow, deploy it, watch it run. Skip the plumbing.

{}

Workflows as data

Write them in JSON or YAML. Draw them in the editor. Or describe them in English and let the AI draft one.

Smart execution

Fan-out, race, scatter, batch. Concurrency limits you can actually reason about. The scheduler walks the DAG so you don't have to.

Built-in reliability

Retries with backoff. Sagas that roll back when things go sideways. Wait on a signal for hours or days. Idempotency keys, so a retry doesn't double-charge anyone.

🔒

Zero-knowledge encryption

Your private key stays on your device. Every record is wrapped with its own key. A stolen database dump is gibberish.

🔑

Secrets management

Drop secrets in once, reference them as {{ secrets.NAME }} anywhere in a request. Redacted everywhere they'd otherwise leak.

Real-time dashboard

Watch steps turn green (or red) as they run. Inspect every event. Send signals by hand when you need to. AI generator for when you're starting from scratch.

How it works

From nothing to a live run in three steps.

1

Define

Hand-write JSON or YAML, or describe what you want and let the AI draft it.

2

Deploy

Push it via the API, or paste it into the editor. Secrets stay encrypted the whole way.

3

Trigger

POST to the trigger URL. Steps light up on the dashboard as they run.

{
  "name": "order-flow",
  "version": 1,
  "triggers": [{"type": "http"}],
  "steps": {
    "validate": {
      "request": {
        "method": "POST",
        "url": "https://api.example.com/validate",
        "body": "{{ trigger.body }}"
      }
    },
    "charge": {
      "after": ["validate"],
      "request": {
        "method": "POST",
        "url": "https://payments.example.com/charge",
        "headers": {
          "authorization": "Bearer {{ secrets.STRIPE_KEY }}"
        }
      },
      "retry": {"on": [500, 503], "max": 3}
    },
    "notify": {
      "after": ["charge"],
      "request": {
        "method": "POST",
        "url": "https://api.example.com/notify",
        "body": "{{ steps.charge.response.body }}"
      }
    }
  }
}

This is not a hello world

An actual e-commerce fulfillment flow — parallel branches, retries, and saga rollback if payment capture blows up.

http validate-order POST /orders/validate check-fraud POST /v1/radar/early_fraud_warnings retry check-inventory POST /v2/inventory/check authorize-payment POST /v1/payment_intents retry saga reserve-stock POST /v2/inventory/reserve saga capture-payment POST /v1/payment_intents/.../capture retry create-shipment POST /shipments emit-analytics POST /v1/track update-crm PATCH /crm/v3/objects/deals/... send-confirmation POST /v3/mail/send retry end
Click a step to see its configuration

Pay for the minutes you use

No tiers. No feature gates. Every account gets everything.

Run time
Balance-based

Your balance is measured in minutes of run time. Each run draws it down. Top up when you need to.

  • All features included
  • Zero-knowledge encryption
  • Unlimited workflows & secrets
  • 5 free minutes on signup
  • Auto top-up hooks available
Get started free