Testing & Debugging
Test Steps and full paths on the canvas before enabling live triggers. Draft is not a sandbox: clicking Run sends real messages, writes real records, and spends credits. Only Testing data, a pinned Step, and AI Agent Preview prevent external writes.
- Use it to
- Test one Step, run from a specific Step, pin outputs, or preview writes before going Live
- Find it
- Step drawer → Test & Debug tab, or bottom dock → Run
- Cost
- Free for pinned Steps, Testing data, and writeMode preview · Live tests use Step credits
- Limits
- 256 KB UTF-8 JSON per Step Testing data · Polling sample fetch pulls up to 5 newest events (6/min)
At a glance
| Mode | Where to start it | What runs | Writes | Credits |
|---|---|---|---|---|
| Testing data | Step → Test & Debug → Testing data | Saved sample stands in for the Step’s output. | No | No |
| Pin output for tests | Step → Test & Debug → Pin output | Test runs skip the Step and pass on Testing data. | No | No |
| AI Agent → Preview | AI Agent → Test & Debug → Preview | Real model and read-only tools; writes show Proposed. | No | Yes |
| AI Agent → Live test | AI Agent → Test & Debug → Live test | Agent only, with real tool calls and approvals. | Yes | Yes |
| Run workflow from here | Step → Test & Debug → Run from here | This Step and later Steps; earlier Steps reuse saved output. | Yes | Yes |
| Run (dock) | Bottom dock → Run | Full path from starting Step (Draft triggers use sample). | Yes | Yes |
| Live | Top status control → Live | Every live trigger event, schedule, and webhook call. | Yes | Yes |
Draft and Live
- Trigger card shows Draft mode. Active on manual Run.
- Webhook URLs are paused and return 202 without starting a run.
- Manual Run clicks execute real app actions and spend credits.
- Arms schedules, polling triggers, and public Webhook URLs.
- Switching to Draft stops new events without undoing past runs.
- Pinned Steps execute for real during Live trigger runs.
Test without touching real data
- Seed the trigger: Open Test & Debug → Testing data (or Load latest execution) with an edge case.
- Pin write Steps: Save Testing data on write Steps and enable Pin output for tests.
- Preview AI Agents: Run Preview first to inspect proposed recipients and payloads.
- Verify the app: Point unpinned Steps at test destinations, click Run, and check the app.
What tests cost
Live tests and AI Agent Preview bill model and action credits under your credit guardrail. Testing data and pinned Steps cost 0 credits (Credits & Allowances).
Common surprises
| Expectation | What happens | Fix |
|---|---|---|
| “Draft is safe to click Run” | Run sends real messages and writes records. | Pin write Steps or use test destinations. |
| Preview remembers the conversation | Preview starts fresh without reading or saving memory. | Use Live test to verify memory. |
| Webhook URL works in Draft | Draft pauses webhook URLs until Live. | Test with Testing data and Run, or switch to Live. |
| Run from step 5 replays steps 1 to 4 | Steps 1 to 4 reuse their latest output or Testing data. | Start from the trigger to test the full path. |
| Approval-gated actions auto-pass in tests | Live test and Run pause in Executions. | Approve or Reject in Executions or Approvals. |
Running automations and single steps
- Freezes a single-execution action Step using saved Testing data (256 KB JSON).
- Manual canvas and MCP test runs skip the Step at 0 credits and 0 ms.
- Live runs, subflows, and single-Step tests still execute the Step for real.
- Starts at the chosen action Step and runs everything connected after it.
- Seeds up to 50 upstream Steps from latest output or saved Testing data.
- Not available on Combine, await: all Steps, or Steps inside a Repeater.
Set a Run Point
Setting a run point
Glow sets the default run point on the trigger Step. Right-click a Step and select Set run point, or pick from Manual run starting step beside Run in the dock.
When Live at a deployed polling trigger, Run fetches live data. Starting at a Draft trigger uses its Testing data (or Load latest execution).

On-canvas Setup Guide & AI repair
- Connect your apps: Connects the account, binds waiting Steps, and resumes parked Assistant builds.
- Run a quick test: Runs from the starting point with Reconnect or Open step shortcuts.
- Publish when ready: Switches the automation to Live once checks pass.
AI debug automation (“Use AI to fix”)
When an assistant-built or imported draft fails validation, click Use AI to fix in the Setup Guide to repair structural, semantic, and non-account issues while preserving disabled Steps.
Before going Live, review the Before you turn it on checklist. Track runs and spend in Activity and Billing & Usage.
Inspecting data with Executions
Use the Execution Log to find the first unexpected output, not just the final red Step:
Open the matching execution
Select the Step, open Executions, and expand the run matching your timestamp and execution ID.
Read the returned data or error
Inspect the JSON payload, click Copy output, or open Show full error.
Check the fields used downstream
Compare returned fields against downstream references to spot missing or mistyped keys.
Before you retry a write
If a write Step fails or times out, check the connected app first to avoid duplicate records or charges (Connections and External APIs).
Visual step statuses
Each Step updates its badge and outline to match the Execution Log and Step-Level Executions:
| Status | Badge / colour | Meaning | Charged? |
|---|---|---|---|
| Running | Blue (Execution in progress) | Executing now. | Yes |
| Waiting | Blue (Running… / paused) | Paused on Wait, Human Review, or tool approval. | No wait charge; excluded from cap |
| Completed | Green (Execution succeeded) | Finished; output saved in Executions. | Yes |
| Failed | Red (Execution failed) | Stopped with error (partial loop failures show Amber Execution issue found). | Only work before failure |
| Skipped: not charged | Grey (Skipped) | Branch not taken or stopped upstream. | No |
| Stopped | Grey (Stopped) | Stopped manually. | Only work before stop |
Execution counters
Step cards show lifetime run and retry counts. Clear them via Reset counters in the canvas utilities menu.
Debugging code and HTTP steps
- Code editor: Use
print()in a Code editor Step ({{ 4.result.executionOutput }}; valid JSON last line parses intoresult.output). - HTTP Request: Turn on Include Full Response to inspect status codes and headers alongside the body.
- Run
- Open Test & Debug on a Step, save sample JSON in Testing data, and enable Pin output for tests
- You should see
- A push-pin badge appears on the card, and manual Run tests use the saved sample at 0 credits.
What’s Next?
- 👉 Test an AI Agent →: Preview, Live test, and approvals in detail.
- Execution Log: read a run Step by Step.
- Error Handling & Retries: what happens when a Step fails.
- Step-Level Executions: inspect input and output payloads for individual Steps.