CallTurbo Build an agent

Field guide · 2026-07-26

How to Test an AI Voice Agent Before Real Customer Calls

Use a risk-based pre-launch protocol to test normal, ambiguous, interrupted, transfer and failure paths, capture evidence and make a clear launch decision.

Operator testing a phone workflow at a desk with a headset, two handsets and a branching call-flow display.

Before sending an AI voice agent real customer calls, test it as an operational workflow rather than as a voice demo. Define the outcomes it may produce, map the routes that lead to them, challenge each route with normal and difficult caller behaviour, and capture evidence against an expected result. Do not launch while a failed test could misroute a caller, lose essential information, block a human handoff or create an unsafe outcome.

A useful readiness decision has three states:

  • Launch: every required path has been exercised; no critical or major defect remains open; handoffs and failure behaviour meet their written criteria.
  • Revise: the core flow is sound, but at least one major defect, incomplete required case or inconsistent outcome remains.
  • Stop: a critical defect can produce an unsafe, unauthorised or irrecoverable result, or the team cannot obtain enough evidence to evaluate a required path.

These are operational guidelines, not universal certification rules. Adapt the gate to the risk, jurisdiction and purpose of the call.

The ROUTE readiness framework

Use ROUTE to turn a vague instruction to “test the agent” into an evidence-based release gate.

R — Results

List the finite results the workflow is allowed to produce. Examples might include “request captured”, “routed to a person”, “caller asked to try again” and “call ended without action”. Use the exact internal result names your operations team recognises.

For each result, specify the minimum information needed to make it valid. A booking request, for example, may be invalid if the flow lacks a contact method. This prevents a polite conversation from being mistaken for a successful operation.

O — Obligations and boundaries

Write down what the agent must do, may do and must never do. Include consent language, identity checks, restricted actions, escalation conditions and data-minimisation rules where they apply. Assign an owner to review requirements that depend on law, policy or professional judgement.

A test cannot prove that the underlying policy is correct. It can only show whether the tested flow follows the policy you supplied.

U — Utterance variation

Test the same intent in materially different forms rather than repeating one ideal script. Include:

  • a direct, complete request;
  • an incomplete or ambiguous request;
  • a correction after the agent has captured a detail;
  • an interruption while the agent is speaking;
  • a change of intent midway through the call;
  • silence, background noise or an unclear answer;
  • an unsupported request.

The purpose is not to generate a huge phrase library. It is to discover whether meaning, state and route stay aligned when the caller departs from the happy path.

T — Transfers and terminal states

Exercise every handoff and every way the interaction can end. Confirm what should happen if the intended recipient is available, unavailable or reached after the caller has changed their mind. Also define the acceptable terminal state when the workflow cannot continue.

A transfer test is incomplete if it checks only that a route was attempted. The acceptance criterion should cover the caller context that must survive the handoff, the result that should be recorded and the recovery path if the handoff cannot complete.

E — Evidence and exit decision

Decide what evidence the tester must capture before making calls. Depending on the system and your operating process, evidence may include a timestamp, test-case identifier, observed route, visible call status, outcome, notes and the tester’s pass/fail decision.

CallTurbo’s public platform information says its visual flows contain prompts, routing, actions and handoffs; live operations show calls, queues, transfers and outcomes; and call history, outcomes and notes remain in its CRM workspace. That makes the CallTurbo platform a natural place to compare an intended flow with operational records. This does not imply an automated test harness or a substitute for a tester’s written acceptance criteria.

Build a risk-based test pack

Start with a route inventory, not a list of conversational prompts. Give each branch a stable identifier such as INTENT-BOOK, TRANSFER-HUMAN or FAIL-NO-INPUT. Then create at least one test for every allowed terminal result and every high-consequence transition.

Use this reusable test-case matrix:

Field What to write
Case ID Stable identifier that survives wording changes
Scenario The operational condition being tested
Caller wording The exact opening plus planned variations
Starting state Number, route, hours state and any permitted test context
Expected branch The flow node or decision that should be reached
Expected outcome The valid terminal result and required information
Handoff expectation Recipient or team, context to preserve and fallback
Evidence Timestamp, observed route, outcome and tester notes
Severity if failed Critical, major or minor
Result Pass, fail or blocked; never leave blank

Keep “blocked” separate from “pass”. A transfer that could not be tested because no recipient was available is unknown, not successful.

Required scenario set

The following set is intentionally small but structurally complete. Add domain-specific cases when the workflow can affect money, access, health, safety, legal rights or urgent services.

Scenario Test action Pass condition Default severity if failed
Normal path Give a clear, complete request Correct branch, required details and intended outcome Major
Ambiguous intent Give a request that plausibly fits two routes Agent clarifies without committing to the wrong route Major
Correction Replace a previously supplied detail Final state uses the corrected value Major
Interruption Speak during an agent turn, then continue Conversation recovers without losing the active task Major
Mid-call intent change Start one task and request another Flow follows the written change-of-intent policy Major
Human transfer Trigger an escalation condition Intended transfer and context criteria are met, or the defined fallback occurs Critical or major
Recipient unavailable Trigger handoff when the recipient cannot accept it Defined fallback occurs; no false completion is recorded Major
Silence or unclear input Withhold or obscure an answer Retry and exit behaviour stay within the written limit Minor or major
Unsupported request Ask for an action outside scope No unauthorised action; safe route or clear boundary Critical if action is consequential
Dependency failure Make an approved dependency unavailable in a controlled test environment Defined failure outcome; no misleading success Critical or major

Only induce failures in an authorised test setup. Do not disrupt production services or contact a real emergency destination as a test.

Example: a hypothetical service-booking intake

This is an illustrative planning example, not a real customer, executed test or claimed result.

Assume the intended workflow collects a caller’s service type, area and preferred callback window. It may produce one of three internal results: REQUEST-CAPTURED, TRANSFERRED or NEEDS-FOLLOW-UP. The written boundary says the agent must not promise availability. A person is required when the caller describes an urgent safety concern.

The tester prepares these cases:

Case Caller wording Expected route Expected result Evidence to capture
SB-01 normal “I need routine maintenance in North District next Tuesday morning.” Collect service, area, window and contact method REQUEST-CAPTURED, with all required fields Route, outcome and notes
SB-02 ambiguous “I need someone soon.” Ask what service is needed and what “soon” means No result until ambiguity is resolved Clarification route and final state
SB-03 correction Give “Tuesday”, then change it to “Thursday” Replace the earlier preference Valid result contains Thursday only Final notes and outcome
SB-04 interruption Interrupt the area question with a callback number Preserve the number and return to the missing area No premature completion Route sequence and missing-field check
SB-05 escalation Describe the predefined urgent-safety condition Follow the approved human escalation route TRANSFERRED or the written unavailable fallback Transfer status, outcome and notes
SB-06 boundary Ask the agent to guarantee a time slot Decline to promise availability and continue approved intake REQUEST-CAPTURED only if required fields are complete Notes and final outcome

Now apply the decision gate to possible observations. If SB-05 routes as routine intake, classify it as critical and stop. If SB-03 retains both dates, classify it as major and revise. If all required cases pass, no critical or major issue remains, and each minor issue has an owner and accepted disposition, the protocol permits launch. These are conditional decisions, not reported test results.

The value of the example is traceability: each phrase challenges a specific rule, every rule has an expected route, and every route ends in evidence that can be reviewed.

Run the protocol step by step

  1. Freeze the candidate version. Record which flow, route configuration and test data are under review. If the flow changes, mark affected cases for rerun.
  2. Separate test contacts from customers. Use authorised numbers, recipients and data. Make it obvious to human recipients that the interaction is a test.
  3. Review the route map. Confirm that every intended result, handoff and fallback has a case ID.
  4. Write acceptance criteria before calling. A criterion should be observable: “routes to Team A and records TRANSFERRED” is clearer than “handles escalation well”.
  5. Run one controlled case at a time. Follow the script first, then run the planned variation. Avoid improvising so much that the result cannot be reproduced.
  6. Capture evidence immediately. Record the timestamp, case ID, observed route, outcome and notes. Do not rely on memory or conversational quality alone.
  7. Triage defects by consequence. Use critical for unsafe, unauthorised or irrecoverable outcomes; major for a failed required task, wrong route or broken handoff; minor for recoverable friction that does not change the valid outcome.
  8. Fix causes, not wording symptoms. Determine whether the issue belongs to the prompt, route condition, action, handoff, test data or underlying policy.
  9. Rerun the failed case and its neighbours. A routing fix can affect the normal path, fallback and transfer path. Regression scope should follow shared branches.
  10. Sign the exit decision. Name the person accepting residual risk, list open minor defects and preserve the completed matrix with the tested version.

Launch, revise or stop checklist

Use this as the final decision table. The thresholds are first-party operational guidance and should be made stricter where consequences are higher.

Gate Launch Revise Stop
Coverage Every required route and terminal result tested One or more required cases blocked or incomplete A high-consequence path cannot be evaluated
Critical defects None open Not applicable Any open critical defect
Major defects None open Any open major defect Major defect becomes critical in context
Human handoff Passes availability and fallback criteria Context or fallback is inconsistent Unsafe or prohibited routing is possible
Outcomes and notes Match the defined valid result Recoverable mismatch or missing information Misleading success could trigger consequential action
Minor defects Owned and explicitly accepted Unowned, recurring or numerous enough to obscure readiness Escalate if combined impact is consequential
Approval Named owner accepts residual risk Owner requests changes or more evidence Owner withholds release approval

Do not average away a critical failure with many easy passes. The gate is severity-based, not a percentage score.

Limitations

A scripted pre-launch protocol samples behaviour; it does not prove how every caller, accent, device, network condition or open-ended conversation will behave. Passing the matrix means the tested candidate met the written cases under the observed conditions—nothing more.

This protocol also does not establish legal compliance, security, accessibility or fitness for a regulated purpose. Consent, call recording, privacy, retention, identity, emergency routing and sector rules vary by jurisdiction and use case. Obtain qualified review where those duties apply.

Operational records can show what the system recorded, but they may not by themselves explain why a route occurred. Investigators still need a versioned flow, clear expectations and reproducible inputs. The supplied public signals do not verify an automated CallTurbo test harness, sandbox or call-recording feature, so none is assumed here.

Finally, a laboratory-style test cannot replace controlled post-launch observation. Start with a scope and exposure level your team can reverse safely, define who can pause the route, and continue reviewing outcomes against the same case taxonomy.

FAQ

How many test calls should I make before launch?

There is no universal number. Build coverage from routes, outcomes, handoffs, fallbacks and risk rather than choosing an arbitrary total. Every required path needs evidence, and higher-consequence branches deserve more variation and regression testing.

Should a natural conversation be enough to pass?

No. Naturalness matters to callers, but readiness also depends on correct state, routing, handoff and outcome. A fluent call that records the wrong result or loses a correction is a failed operational test.

What should automatically block launch?

Block launch when an unresolved defect could cause an unsafe or unauthorised action, defeat a required escalation, produce an irrecoverable outcome, or make a high-consequence path impossible to evaluate. Define these conditions before testing.

What evidence should I keep?

Keep the tested version, case ID, timestamp, input wording, expected branch, observed route, expected and observed outcome, handoff status, severity, notes, owner and disposition. Collect only data your policy permits.

Do I need to retest after a small prompt change?

Retest the changed case and every case that shares the affected prompt, condition, route or handoff. A seemingly local wording change can alter ambiguity handling or branch selection, so use the route map to determine regression scope.

Can I launch with minor defects?

Possibly, if no required outcome is compromised, each defect has an owner, the release owner explicitly accepts the residual risk and your context permits it. Reclassify combined minor issues if together they make outcomes unreliable or evidence difficult to interpret.

Build and test the route

Turn the framework into a working CallTurbo flow.

Build an agent