Procedure Editor
Build visual workflow graphs in the Rapidfolio editor. Add nodes, connect them, configure input mappings, and publish your procedure.
The editor
The editor is where you build your procedure as a visual graph. Three panels:
| Panel | Where | What it's for |
|---|---|---|
| Node list | Left sidebar | Browse and add node types |
| Canvas | Center | Your procedure graph — nodes and connections |
| Inspector | Right sidebar | Configure the selected node |
Open any procedure from the dashboard, or create one with New Procedure.
The canvas
The canvas is your graph. Nodes are boxes; edges (arrows) connect them and define execution order.
- Pan — drag the canvas background
- Zoom — scroll wheel or pinch
- Select a node — click it to open its config in the inspector
- Move a node — drag it
- Delete a node — select it and press
BackspaceorDelete
Every procedure has a Start node (the entry point) and one or more End nodes. The AI agent begins at Start and follows edges until it reaches an End.
Node types
Tool Call
Tool Call nodes are where your procedure talks to the outside world — Stripe, Plaid, Slack, Onfido, your own internal APIs.
Configure in the inspector:
| Field | What to set |
|---|---|
| Connection | Which authenticated account to use (e.g. "Stripe Sandbox") |
| Action | The specific operation (e.g. stripe.createPaymentIntent) |
| Inputs | Where each parameter comes from |
The result of the call is available to later nodes as {{steps.nodeName.result}}.
Example — charging a customer:
| Parameter | Value |
|---|---|
amount | {{inputs.amount}} |
currency | {{inputs.currency}} |
customer | {{inputs.stripeCustomerId}} |
You can also mark a Tool Call with Require approval before calling — this pauses the run before the API call happens and shows the reviewer the exact parameters. Useful for wire transfers or other high-impact operations.
Human Review
Human Review nodes pause execution and wait for a team member to approve or reject.
Configure in the inspector:
| Field | What to set |
|---|---|
| Instructions | Plain text for the reviewer — what to check, what criteria matter |
When the run reaches this node:
- Status changes to
awaiting_review - Run appears in the Pending Reviews queue
- Execution pauses until a decision is made
- Approved → execution continues; Rejected → run fails with the reason logged
→ See Human Review for the full guide.
Condition
Condition nodes branch the graph based on a boolean expression.
Configure in the inspector:
| Field | What to set |
|---|---|
| Expression | A boolean expression referencing inputs or step results |
| True branch | The edge to follow when the expression is true |
| False branch | The edge to follow when the expression is false |
Example expressions:
{{inputs.amount}} > 10000
{{steps.kycCheck.result.status}} === "approved"
{{steps.balanceCheck.result.available}} >= {{inputs.transferAmount}}
Expressions are evaluated as deterministic code — not by the AI. The result is always the same for the same inputs. This matters for financial thresholds and credit decisions.
Wait
Wait nodes pause execution for a set duration.
| Field | What to set |
|---|---|
| Duration | How long to wait — e.g. 30m, 24h, 7d |
Useful for multi-step workflows that span hours or days: wait 24 hours after sending an onboarding email, then check whether the customer completed verification.
Connecting nodes
To connect two nodes:
- Hover over the source node until its output port appears (a small circle on the right or bottom)
- Click and drag from the port
- Drop onto the input port of the destination node
Delete an edge by clicking it and pressing Backspace.
Condition nodes have two output ports — true and false — each must connect to a separate downstream node.
Input mappings
Each node's parameters can reference data from earlier in the procedure:
| Reference | Where the data comes from |
|---|---|
{{inputs.fieldName}} | The procedure's input schema |
{{steps.nodeName.result}} | The full result of a prior step |
{{steps.nodeName.result.fieldName}} | A specific field from a prior step |
The inspector provides autocomplete for available references. For example, after a Stripe customer lookup, you can type {{steps. and see steps.lookupCustomer.result.email suggested.
Saving and publishing
| Action | What it does |
|---|---|
| Save | Saves the current state as a draft. Doesn't affect live runs or triggers. |
| Publish | Makes this the default version. All unpinned triggers and API callers use it from now on. |
Save frequently. Publish when you've tested and are ready to ship. Published versions are immutable.
→ See Versions for the full versioning guide.
Simulation mode
Before using real integrations, click Simulate in the toolbar to do a dry-run:
- The graph executes using mock responses you configure per node
- Conditions are evaluated with your simulated data
- The step log is shown in the editor
- No real API calls are made
Simulation is the fastest way to check that input mappings resolve correctly and conditions route as expected — before connecting anything real.