# Testing & versions

> Every workflow is versioned: edit a draft, test it against a test person with expanded run logs, then publish. Production never sees an untested change.

Workflows run against real customers, so the editor is built like software releases: a **staging version** you edit and test, and a **production version** that answers the real traffic. Publishing promotes staging; until then, production doesn't move.

## Testing a flow

1. **Open the test panel** — Chat with the draft version right in the editor — no phone call needed, even for voice flows.
2. **Watch the expanded log** — Each turn shows the node that ran, the route the AI chose and why, the variables extracted, and each webhook's status and response.
3. **Fire a test event** — For triggered workflows, run it against a **test person** (name, email, phone you control) — the SMS really sends, to you.
4. **Publish** — Promote staging to production. The old version stays in history; roll back by promoting it again.

## Run logs in production

Every production run keeps the same expanded log — node fired, route chosen, extraction, webhook results, notification outcomes (including "skipped: DND"). When a customer says "I never got the text", the answer is one click away.

> **TEST THE FAILURE ROUTE TOO:** Webhook nodes have conditional routes for a reason. Point the failure branch somewhere honest — a ticket, an owner alert — and test it by aiming the webhook at a wrong URL once. Silent failure is the only unacceptable outcome.
