Configure workflow triggers and steps
Set the trigger and entry filters in the Info tab, connect action and decision steps on the Flow canvas, and verify execution with one test event.
After this taskThe matching workflow and step runs show intended outcomes without duplicate execution.
Starting conditions and inputs
Verify actor permissions, the test event, and expected side effects before activating the workflow.
Values for this task
entry_url, workflow_id, trigger, source_conditions, step_inputs, schedule, workflow_run_url
Command sequence
open "$entry_url" && snapshot -i
click "$workflow_row" && snapshot -i
click "$info_tab" && snapshot -i
click "$trigger_picker" && snapshot -i
click "$cron_option" && snapshot -i
fill "$schedule_input" "$schedule" && press 'Tab' && snapshot -i
click "$flow_tab" && snapshot -i
click "$step_node" && snapshot -i
get text body
# Outside browser: Generate one test source event. Restrict sending workflows to the designated test recipients.
open "$workflow_run_url" && snapshot -i
get text bodyRef targets and expected results
| # | Command / ref | Target and verification |
|---|---|---|
| 1 | click $workflow_row | Workflow record to configure |
| 2 | click $info_tab | Info tab in the workflow pane header (or click the top trigger card on the canvas) |
| 3 | click $trigger_picker | Trigger picker |
| 4 | click $cron_option | Cron or event option for this test |
| 5 | fill $schedule_input | Schedule input (or Filter chips for a db trigger) |
| 6 | press | Leave the configuration input to save. |
| 7 | click $flow_tab | Flow tab in the workflow pane header |
| 8 | click $step_node | Step node card (#1, #2) on the flow canvas |
| 9 | get text | Inspect the step's feature, when condition, each loop path, and inputs. |
| 10 | Outside browser | Generate one test source event. Restrict sending workflows to the designated test recipients. |
| 11 | open | Workflow run for this test |
| 12 | get text | Compare executed steps and resulting records for the same source event. |
Check the result
The matching workflow and step runs show intended outcomes without duplicate execution.
Resuming after interruption
Read the same IDs again. Preserve correct settings and update only differences.
Workflows automate recurring operations such as sending confirmation notices or checking overdue reservations. Opening a workflow displays two tabs: Flow and Info. Flow renders an interactive node canvas of the trigger and steps, while Info edits the workflow status and trigger rules.
This guide explains how to configure triggers and filter chips in Info. You will also connect action and decision steps on the Flow canvas and verify the workflow with a test event.
Example trigger: Daily schedule (
0 9 * * *) or reservation status enteringconfirmed(db)Example steps: Query or classify records with Decide (
workflows.decide), then run the matching follow-up action
Keep the workflow in draft status while editing so unfinished steps do not run on live customers. Switch the status to active only after verifying one test run.
How the Flow and Info tabs work
Select Workflows in the left menu and click a workflow row to open its workspace.
| Workspace area | Role | Main actions |
|---|---|---|
| Flow tab (canvas) | Displays the top trigger card, numbered step cards (#1, #2), and conditional branch edges with filter chips. | Click the trigger card to open Info. Click any step card to open its step editor in the next pane. |
| Top action buttons (Insert / Decide) | Adds a new step to the current workflow. | Insert creates a feature step (list, create, update, or send). Decide creates a workflows.decide classification step. |
| Info tab | Edits the workflow name, description, status (draft, active, paused), and trigger fields. | Choose the trigger type and add Filter chips for db triggers. |
Choose the trigger
Open the Info tab (or click the top trigger card on the Flow canvas) and select a Trigger type.
| Trigger type | When it fires | Typical use case |
|---|---|---|
db (database change) | A row is inserted, updated, or deleted in a watched table (customers, reservations, conversations, messages, purchases, form_submissions, calls). | Send a notice as soon as a reservation becomes confirmed. |
cron (schedule) | At the configured cron schedule (such as 0 9 * * *). | Run a morning check for today's scheduled reservations. |
heartbeat (periodic check) | On each periodic sweep to find records that still need processing. | Find confirmed reservations whose start time passed 30 minutes ago. |
reply (conversation reply) | At a specific conversation reply phase (Before generation, After tools, or Before delivery). | Classify inquiry urgency before AI generates a reply. |
When you choose db, use the Filter button under source_query to add condition chips just like table filters. On an update event, the workflow fires only when the record newly enters the filter set. Active filter chips also appear on the trigger card in the Flow canvas.
Define steps and inputs
Return to the Flow tab and click Insert or Decide in the top bar. Click a step node on the canvas to configure its fields in the detail pane.
1. Feature steps, list queries (*.list), and fan-out loops (each)
- Select the feature: Pick the capability to run, such as
reservations.list,reservations.update, or template message delivery. - Build list queries: When the feature ends with
.list, the Input section provides visual controls for Filter (where), Sort by (order), and Limit (limit). Add filter chips to narrow the target rows. - Loop over rows (
each): Set Each to a prior list step's row array (such as${steps.step_1.rows}) to run once per row. The canvas node displays a↻ ${steps.step_1.rows}badge and binds each element to${item}.
2. Decision steps (workflows.decide) and branch conditions (when)
Click Decide in the top bar to add a workflows.decide step that classifies data and branches the flow.
- Decision state and question key: Select the input data to evaluate (such as
Trigger (${trigger})orLoop item (${item})) and name each question key (such asurgency). - Question type and evaluator:
- Choose Choice, Boolean, Score, or Resource field.
- Select AI (LLM) to evaluate with natural-language instructions, or Rules to match filter chips and return a typed answer.
- Connect branch conditions (
when): Click the follow-up step card on the canvas and add a condition under When. Select the decision question (such asDecision: Decision 1 - urgency) or trigger data as the source, then set the matching filter chip. The Flow canvas renders these condition chips directly on the incoming branch edge.
Check execution permissions
Each workflow executes with the permissions of its owning member. Confirm that the owner's role allows every feature used in the steps under organization and data permissions.
Wording inside a prompt or description never grants database access. Recheck workflow execution whenever a member's role changes.
Prevent repetition and handle errors
Design conditions and follow-up updates so recurring heartbeat or cron workflows do not select the same record again on the next tick.
- Update state after processing: When a step processes a pending reservation, update its status or tracking field so the next query excludes it.
- Guard external side effects: Before sending messages, placing calls, or creating payments, ensure duplicate events cannot trigger a second send to the same customer.
Test the saved result
Test the workflow with one synthetic record before switching it to active.
- Trigger the event with a single test customer or reservation. Restrict any message or call step to a test recipient.
- Open Workflow runs in the left menu and confirm that the run status is
succeeded. - Open the run to inspect each step run's inputs, outputs, decision
values, and anyskippedbranches. - Repeat the event once to verify that no duplicate side effect occurs, then set the workflow status to
activein the Info tab.
If the result differs from what you expected
Editing a record did not trigger a db workflow
For update triggers with source_query filter chips, the workflow runs only when the row transitions from not matching to matching. Editing another field on a row that already matched does not fire the trigger again. Also check that the workflow status is active in the Info tab.
A new step does not connect under the expected branch on the canvas
The Flow canvas positions steps based on references in When (when), Each (each), and Input (input). To branch from a decision step, select that decision question as the condition source in the follow-up step's When field.
A loop step (each) is skipped with zero items
Inspect the prior .list step run to see whether its query returned zero rows. Also check that the step slug in ${steps.<slug>.rows} matches the list step's name.
A step fails with a permission error
Check the owning member's role permissions for the step's feature. After updating permissions, follow workflow failure recovery.
Workflow configuration and execution
From trigger configuration to execution evidence. Shared actions with feature-specific inputs and evidence.
Inspect workflow failures and recovery
Find failed workflow runs, inspect step inputs and completed side effects, and recover without repeating messages or payments.