Design a process visually from 84 built-in step types. Run it on a schedule, a webhook, a data change, an inbound email, or a Kafka topic. Let it pause for a signature or a shipment and resume weeks later, exactly where it left off, with every step traced.
Build automations on a drag-and-drop canvas from a library of typed steps covering data, logic, transformation, documents, communications, AI, and cryptography — extended without limit through the Marketplace. The same input produces the same process, every time, with every step recorded.
The moment a flow reaches a waiting step it becomes a durable process: its state is checkpointed to the database, the wait is registered, and the run is parked. Resumption re-enters at the wait — not at the beginning — on any instance, after any restart or deploy.
wait_timerMinutes, hours, days, or weeks — or until a date, in business days if you like. Survives restarts; costs nothing while waiting.
wait_eventPark on a named event and a correlation key — an order id, a case number. Join several events with any/all/majority. Always with a timeout, never forever.
human_taskAssign to a person, a group, or the flow's approvers. Policies of any/all/majority, custom outcomes, due dates, reminders, and escalation to a person or another flow.
compensateRegister undo work after a step succeeds. On failure or cancel, the compensation stack unwinds in reverse — the refund after the charge, the release after the reservation.
Per-process SLA, escalation after a delay to a user, group, or flow, reminders with a cap, and a process timeout — declared once on the flow, enforced by the job queue.
Inbound events, signals from the API, and MCP process_signal all route through one correlation path, so a waiting process is woken exactly once by exactly one message.
List, inspect, signal, cancel, and replay processes over REST and MCP. Dead-letter queues hold what could not be delivered, with bulk replay and discard. 90-day process retention by default.
Attach an event source to a flow and FlowClick consumes the stream for you — Kafka, Amazon SQS, Google Pub/Sub, AMQP, a polled HTTPS endpoint, or a reliable webhook — and fires one run per message through the durable job queue.
Every sampled execution writes one durable run record and one span per step, threaded with a W3C-shaped trace identity that follows the run through sub-flows, job hops, resumes, and outbound calls. A trace is complete or absent — never a fragment.
Every one typed, documented, and discoverable through get_capabilities — so people and AI agents build with the same vocabulary. A sample:
Approvals, signatures, shipments, month-end — we'll build it as a durable process and show you it surviving a restart.