Platform/Forms

Forms are nodes. Not pop-ups.

Approval and data forms are first-class on the canvas. Drag upstream fields onto a form. Each button you draw becomes its own outgoing edge. Route to roles, emails, or data values — not static names.

A form, in one node

Three buttons. Three outgoing edges.

Most platforms stuff approvals into a sidebar. Here a form is a node with its own inputs, its own outputs, and a separate outgoing edge for every button — so the graph stays readable at a glance.

APPROVAL FORM · onboarding/manager-review
Customer
Acme Corp · enterprise tier
Risk score
0.84 (high) · explanation included
Reviewer notes
type to add comment…
Approve→ provision
Request info→ back to sales
Deny→ notify, end
What's different

Six things you can do because forms are real nodes.

01

Drag upstream fields in.

The form designer sees every typed output from upstream nodes. Drop "risk score" or "customer name" onto the form — bound, not copy-pasted.

02

One edge per button.

"Approve" and "Deny" go to different graphs. The branching is visible on the canvas, not hidden in form config.

03

Route by data, not name.

Assign to {{customer.account_manager}} instead of "Sarah." When the data changes, the routing follows.

04

Editable + read-only fields.

Show the LLM's risk explanation as read-only. Capture the reviewer's notes as editable. Both flow downstream.

05

SLAs & reminders.

Per-form SLA. Auto-escalate after N hours. Reminder cadence. All visible in the run timeline; no Slack workflow off to the side.

06

Replayable.

Form submissions are graph state. Replay walks past completed forms with the same answers — or lets you edit and rerun from there.

Build an approval flow

Bring an approval. We'll model it on the canvas.

30 minutes. We pick a multi-step approval from your stack and build it on the canvas — forms, routing, SLAs, the whole thing.