Workflows
Workflows overview
Automate what happens after a form is submitted — approvals, notifications, integrations, and more.
Anatomy of a workflow
- Trigger —
submission.created,schedule, or an inboundwebhook. - Nodes — discrete units of work: send email, call HTTP, route approval, transform data, etc.
- Edges — conditional transitions between nodes.
- Runs — each execution, with structured logs and per-node timing.
Example definition
typescript
{
trigger: "submission.created",
nodes: [
{
id: "notify",
type: "email",
to: "ops@acme.com",
subject: "New {{form.title}} submission",
},
{
id: "slack",
type: "slack",
channel: "#sales",
message: "New lead from {{data.email}}",
},
],
edges: [{ from: "notify", to: "slack" }],
}Execution semantics
Runs are durable and idempotent — if the server restarts mid-run, the engine resumes from the last completed node. Failed nodes are retried with exponential backoff (configurable per node).