Skip to main content

Updated Sep 30, 2026

Testing and runs

FunnelStory gives you step-level tests, trigger previews, Chat tryouts, and a run history so you can ship agents confidently.

Build with AI

MCP run_flow is ideal for regression checks after your assistant edits JSON—see Vibe coding.

Step testing​

In the agent builder, select a step and use Test to execute it with the current variable context. Fix SQL, templates, and missing globals before wiring more complexity.

Trigger preview​

The trigger panel in the agent builder can preview what would match before you rely on the trigger in production. What you see depends on the trigger type:

Trigger typeWhat preview shows
QuerySample rows the SQL would return
Activity / Signal / Needle mover / ConversationMatching events (where the product supports preview for that type)
Schedule / IntervalUpcoming run times in a window
ManualNothing — manual triggers have no automatic matches to preview

You typically need a saved trigger configuration to preview. If the list is empty, check that the trigger is configured correctly and that matching data exists in your workspace.

Test runs​

Start a test run from the builder to stream logs and intermediate LLM output without waiting for production schedules. This uses the same runtime as production but is initiated explicitly from the UI.

When testing a trigger-driven agent, you can supply sample trigger data in the test run panel. The sample must match the trigger type you are building for:

  • A query-shaped sample uses row with column values from your SQL.
  • An activity-shaped sample uses activity with fields like activity_id, account_id, timestamp.
  • Other event types follow the same pattern — see Variables and data — trigger data by type.

If the sample shape does not match the trigger type, steps that reference $.trigger.row (or the wrong event path) will see empty values.

Chat testing​

From the Agents list, open Chat on an agent to supply inputs and stream responses. Chat-capable graphs should finish by writing to @.response (LLM steps).

Run history​

Click an agent in the Agents list to open its detail panel, then click View runs (or View all → under Recent Runs) to inspect past executions, statuses, and event timelines for a selected run. Run lists load when you open them and don't update live — reopen the panel to pick up newer runs.

For a quick status check without opening each agent, the Last run badge on agent cards and the Last run column in list view show the outcome of each agent's most recent production run (test runs are excluded) — see Organizing agents.

Statuses you will see​

StatusMeaning
RUNNINGWork is still executing or waiting within limits.
COMPLETEDAll paths finished successfully.
FAILEDAn error stopped the run (check events for the failing step).
WAITING_APPROVALA step requested human approval before continuing.

Runtime limits (selected)​

Exact numbers belong in the flow authoring guide; highlights for operators:

AreaBehavior
CALL outputLarge function results fail the step—keep SQL selective.
GlobalsVery large @. state fails the run—avoid storing unbounded query results when possible.
LoopsCapped at 1000 iterations.
Background ticksLong runs may pause between runner cycles—design idempotent retries.

Debugging checklist​

  • Templates show up empty → wrong variable path or missing quotes for object passthrough.
  • SQL returns nothing → verify table/column names against the semantic schema resource.
  • Chat is silent → confirm the final AGENT writes @.response.
  • Loop appears "out of order" → remember breadth-first scheduling (Operations).
  • $.trigger.row is empty → the run was not started by a query trigger; use the matching trigger path (see Variables and data).