Workflows & Processes

Deterministic workflows — that can wait a month

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.

Workflow Engine

Designed visually, executed identically

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.

  • Trigger from forms, webhooks, schedules, inbound email or SMS, data changes, system events, and message brokers
  • Conditional branching, loops, paged iteration, lookups, and reusable subflows
  • Declarative mappings reshape a document in one step instead of a chain of extracts and merges
  • Native PDF and image rendering, email, SMS, native push, and app notifications
  • Metric-threshold alert rules fire a flow the moment something crosses a line
  • Groovy scripting exists — disabled by default, and almost never needed
 Quote-to-Cash Flow
⚡ Webhook: deal closed Trigger
🔀 If value > $25k Branch
👤 CFO approval · due in 2 business days human_task
📄 Generate contract PDF → email Action
⏳ Wait for e-signature event (14 days) wait_event
Durable Processes

Flows that outlive the server they started on

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_timer

Minutes, hours, days, or weeks — or until a date, in business days if you like. Survives restarts; costs nothing while waiting.

wait_event

Park 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_task

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

compensate

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

SLAs & escalation

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.

Correlation that can't diverge

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.

Operable

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.

Event Ingestion

One flow run per message, at least once

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.

  • The enqueue is the ack boundary — offsets advance only after the message is durably queued; a crash redelivers rather than drops
  • Exactly-once effect via idempotency keys — a redelivered message is a no-op
  • Ordered sources keep per-source FIFO with head-of-line poison handling: advance or halt, your choice
  • Condition expressions and input mappings shape the message into flow input before it runs
  • Retry budgets, dead-letter queues with payload inspection and bulk replay, and an ingestion overview across all sources
  • Outbound, too: subscribe HTTP callbacks to platform events with signed payloads and retry policies
Kafka topic: orders.createdordered
Amazon SQS: returns-queueat-least-once
Google Pub/Sub: telemetryat-most-once
AMQP: erp.eventsordered
Poll: https://vendor/api/shipmentsevery 60 s
Webhook: /hook/stripesigned
Observability

A trace for every run, a span for every step

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.

  • Runs and spans with status, duration, counts, and error codes — never payloads, headers, or secrets
  • Metrics query over runs, steps, egress, processes, and models; alert rules fire edge-triggered on thresholds
  • Data lineage — a graph from source field to target column across mappings, connectors, and steps, up to ten hops
  • Head-based sampling, retention, and per-run span caps you control; a truncated trace degrades a report, never a run
  • Webhook delivery logs, job history with one-click retry, and app health checks round it out
 Trace 9b2f — onboarding · 1.8 s
crud_record · 12 msok
execute_flow: verify-identity · 640 mssubflow
connector: idverify.check · 590 msegress
score: fraud-risk · 3 msok
human_task · suspendedwaiting
Step Library

84 built-in step types

Every one typed, documented, and discoverable through get_capabilities — so people and AI agents build with the same vocabulary. A sample:

Data

crud_recordtable_bulk_insertanalyze_tabledocument_storekv_storedatabasefilesystemrecord_difffk_planwalk_chain

Control & process

if_blocklooploop_pagesexecute_flowwait_timerwait_eventhuman_taskcompensateasync_job_drain

Transform & functions

transformmergeparse_jsonlist_fnstring_fndate_fnmath_fnlookupid_remaparchive

Communication

sendemail_replysend_smssend_pushsend_notificationhttpconnectorsoapcheck_mailbox

AI & ML

agentmcpscorescore_batchmodel_train

Enrichment

validate_emailgeocode_addressnormalize_phonevalidate_urldns_lookupenrich_record

Documents & integrity

generate_pdfrender_imagechunk_writechunk_assembleintegrity_verifytext_diff

Crypto & hybrid

hash_fncrypto_fntenant_encrypttenant_decryptcanonical_jsonatomexec

…and any step type published to the Marketplace →

Bring a process that waits on people

Approvals, signatures, shipments, month-end — we'll build it as a durable process and show you it surviving a restart.

Start Free Trial Schedule a Demo