Test your agent

Try an agent before it ever talks to a real customer - type as the caller, talk to it in your browser, or have it ring your own phone.

Never publish an agent you haven’t heard. The good news: you don’t have to launch a campaign and dial a stranger to find out whether your agent actually works. oyehello gives you three ways to test a call agent first: type as the caller, talk to it through your computer’s microphone, or have it ring your own phone.

The golden rule is simulate first, listen second. A text simulation costs nothing and catches almost every problem - a fuzzy opening, a wrong turn, a tool that fires at the wrong moment. Only once the logic is right do you spend time hearing it out loud.

Where you’ll find this: the tests live in the Test panel inside the flow builder. A call agent has three tabs: Simulate, Voice and Test call. Chat agents have Simulate, and WhatsApp agents add On your phone. You can test a draft - nothing has to be published first.


Way 1 - Simulate by typing as the caller

A simulation runs your agent’s flow without placing a phone call. No phone rings, no one is dialed. It’s the fastest way to check that:

  • The greeting and persona sound right.
  • The call takes the branches you expect.
  • Tools fire at the right moments - and not the wrong ones.
  • The agent stays in language and handles a “no” gracefully.
  • The right information actually gets captured.

How the Simulate tab works

A flow agent has branching logic, so its simulation is interactive. Open the Test panel, go to the Simulate tab, and hit Start test. Then you type what a caller would say, turn by turn, and watch the agent respond. It runs the real flow engine against your typed replies, so it follows the same steps a live call would - just in text.

What makes this tab powerful for debugging:

  • “At node” header - a live badge at the top always tells you which node the agent is currently running on. This is how you confirm the call is taking the branch you intended, not sliding into the wrong one.
  • Captured so far - a running panel of every variable the flow is meant to capture, showing its value or “not set” as the conversation fills them in.
  • Start at step - you don’t have to replay the whole call to test one branch. Jump straight to any node (“Objection handling”, “Book meeting”) and exercise just that part.
  • Test variables - a real call fills placeholders like {name} or {amount} from your calling list. Here you type sample values so the agent doesn’t voice a blank {variable} while you’re testing.

If “Start test” is greyed out: your flow has blocking errors. The builder lists exactly what to fix - a node with no way out, a dangling transition. Fix those first; you can’t simulate (or publish) a broken flow.

The adversarial stress test (AI-generated flows)

If you built your flow with the Generate flow AI helper, it was already stress-tested for you before you ever saw it. Behind the scenes, the platform role-plays your flow against a whole cast of difficult callers, then automatically fixes the weak spots and tries again until it passes.

The personas it throws at your flow:

  • Interested - a normal, terse caller who says “sure”, “go on”, and expects you not to ask the same thing twice.
  • Curious - wants details before committing, and asks questions first.
  • Not interested - politely but firmly declines and won’t be talked round.
  • Bad time - is busy and wants you to not proceed right now.
  • Skeptical - suspects a scam and demands to know who’s calling and how you got their number.
  • Wants a callback - can’t talk now and asks you to call back later.

The reason this matters: it’s easy to build a flow that works beautifully for the one person who says yes to everything, and dead-ends the moment someone declines or asks a question. This test catches exactly that. You can’t run it on demand as a separate button - it’s baked into flow generation - but it’s why an AI-generated flow tends to handle a “no” gracefully out of the box.

  • Do this yourself in the Simulate tab: you don’t need the AI to think like those personas. Run the flow a few times and be each one - a cooperative caller, a confused one, someone in a hurry, someone annoyed, someone who just says “no”. If the agent recovers cleanly every time, you’re in good shape.

What to check while you simulate

Whichever kind of simulation you’re running, look for these:

  • First impression - does the opening make sense in the first five seconds? Who’s calling and why should be clear immediately.
  • The branches - does a “yes” go one way and a “no” go another, cleanly? Nobody should get stuck on one node being re-asked the same question.
  • Objections and questions - if the caller pushes back or asks “what is this about?”, does the agent answer and stay in the conversation, rather than hanging up on an engaged person?
  • Language - the agent should stay in its configured language, and switch only if you clearly ask it to.
  • The goal - does the call actually reach the outcome you wanted, and capture the fields you need?
  • The ending - does it wrap up with a proper goodbye, and not hang up mid-question (“what time works for - “ click)?

The most common bug we see: a flow that ends while still asking something. Any “ask” - a callback time, a phone number, a qualifier - belongs before the closing line, not on it. If a simulated call ends on a question, move that step earlier.


Way 2 - Talk to your agent in the browser

Simulation checks the logic. To hear the voice, open the Voice tab and press Start voice test. Your browser asks for microphone access (allow it), and you talk to the agent live through your computer’s mic and speakers. Press Hang up when you’re done.

This runs your draft flow, so you don’t have to publish first. It’s the quickest way to check the voice, the pauses, and whether the agent talks over you.

If it can’t start: a message tells you the microphone was blocked. Allow mic access for the console in your browser, then start again.


Way 3 - Place a real test call to your phone

A real test call puts the agent on an actual phone line. It rings your own phone, so you hear exactly what a customer would.

  1. Open the Test call tab and enter your mobile number under Call this number.
  2. Verify the number. For security you may be asked to enter a 6-digit code sent by SMS the first time you use a number - this stops anyone dialing a number they don’t own.
  3. Pick a caller ID under Call from if you own more than one phone number.
  4. Fill in the variables. If your flow uses placeholders such as {name}, type sample values under Pre-call variables.
  5. Press Place test call. Your phone rings and you’re talking to the agent live.

A few things to know before you dial:

  • You need an active phone number on your account. If you don’t have one, the tab links you to Numbers to buy one.
  • It runs your latest draft. Publish to put changes live on real calls.
  • A real call always starts at the greeting. The “Start at step” jump is a simulation-only convenience; you can’t begin a live call halfway through a flow.

Chat and WhatsApp agents

Chat and WhatsApp agents are tested in the Simulate tab. A WhatsApp agent also has an On your phone tab with a QR code, so you can message the agent from your own WhatsApp.


Then iterate, and publish

Editing is cheap - that’s the whole point of testing before you go live. Adjust a step, a transition, a global rule, or a tool, then simulate again. Because a simulation is free, there’s no excuse for publishing a flow you haven’t watched succeed against a cooperative caller and a difficult one.

When it behaves the way you want across your test cases, hit Publish. Now your campaigns (outbound) and phone numbers (inbound) can point at it, and it’s live on real calls. Changed something later? Test again, then Republish to push the update.


Next: Campaigns → - point your tested agent at a calling list and start dialing for real.