How It Works Use Cases Features Pricing Blog About
Sign In Start Free Trial
Back to Blog

How to Script a Voice Agent That Sounds Like Your Best Rep

Person writing a script on a whiteboard

When we first started testing voice agents with businesses in our early-access program, the feedback we kept hearing was not about the technology itself. It was about the script. An agent with a mediocre underlying model but a sharp, well-structured script consistently outperformed a better model running a generic or poorly thought-out script.

That is a useful calibration point. It means you have more control over agent quality than you might think. You do not need to solve a hard AI problem to get a great-sounding voice agent. You need to write it properly.

Start by listening to your best rep, not writing from scratch

The most effective way to script a voice agent is to record and transcribe three to five calls from your most reliable team member. Not the most enthusiastic, not the most talkative. The one who consistently gets to "yes" and does not waste anyone's time doing it.

When you read those transcripts, you will notice patterns. They probably open with a greeting that includes the company name and a first name. They probably ask an early clarifying question rather than launching into a pitch. They probably have a specific phrase they use when they need to put someone on hold or transfer them. They probably handle "I'm just shopping around" differently from "I need this done this week."

Your voice agent script is built from those patterns, not invented from a template. Generic scripts sound generic because they were not written for your business, your callers, or your specific context.

Structure the opening with precision

The first five seconds of a call determine whether a caller stays on the line or hangs up. For a voice agent, those five seconds need to accomplish three things: identify the business, introduce the agent by name, and create an expectation that this will be a useful conversation.

A weak opening sounds like this: "Thank you for calling. Please hold while we connect you." That says nothing about what the caller is about to get.

A strong opening sounds like this: "Thanks for calling Pacific Plumbing. This is Breez. I can help you with scheduling, quotes, or any questions you have. What brings you in today?"

Notice what the strong version does. It names the business. It names the agent. It pre-answers the question "can this thing actually help me" by naming three specific things it can do. And it asks an open-ended question that invites the caller to express intent in their own words, which is much more informative than a yes/no question.

Write qualifier questions that feel like conversation

One of the most common scripting mistakes is writing qualifier questions that sound like a checklist being read out loud. "What is your name? What is your phone number? What is your address? What is the nature of your inquiry?" That is a form, not a conversation.

Real conversations gather the same information through a different cadence. You ask one thing, you respond to what you hear, then you ask the next thing. The script needs to account for this by being branchy rather than linear.

For example, if a caller says "I need a quote for some electrical work," a good qualifier question is not "What kind of electrical work?" A better one is "Got it, I can get someone from the team to connect with you on that. Is this for a home or a commercial space?" That question gathers useful information while also signaling that a real person will follow up, which reduces caller anxiety about talking to an automated system.

We recommend keeping qualifier questions to three or four per flow. Beyond that, callers start to feel interrogated. Get the essentials: name, callback number, and one or two scope questions that will help the human who follows up actually be prepared for the conversation.

Write for how people actually speak, not how they write

This is the single biggest gap between scripts that sound natural and scripts that sound mechanical. When you write in full formal sentences, the agent sounds like it is reading. Real speech is fragmented, full of fillers, and heavily context-dependent.

Write agent responses as you would actually say them out loud. "Sure, I can get that sorted for you" instead of "That request has been noted and will be addressed." "Let me grab your number so we can call you back" instead of "Please provide your callback number for our records."

Read every line of your script out loud before finalizing it. If it makes you feel like you are reading a legal document, rewrite it. If it sounds like something a friendly, competent person would actually say to a stranger on the phone, it is probably right.

The boundary statement: what the agent explicitly does not do

Every voice agent script needs at least one clear handoff point where the agent says it cannot handle something and passes the caller to a human. This is not a failure state. It is a feature. Callers trust a system more when it is honest about its limits than when it tries to handle everything and does it poorly.

Write this explicitly into your script: "For anything that needs a human decision, like pricing negotiations or complex scheduling, I'll make sure the right person calls you back within [time window]." That sentence does two things: it sets a clear expectation, and it demonstrates that the business has thought about what the agent is actually for.

We are not saying every call should end in a transfer. For many common calls, a well-scripted agent can handle the entire interaction. But the script should have a graceful exit for anything outside that range, and it should trigger that exit proactively, before the caller has to ask for a human.

Test with adversarial callers before going live

The weakest spot in any voice agent script is usually not the main flow. It is what happens when a caller says something unexpected. "What is your hourly rate?" when the script only handles appointment booking. "Can I speak to the owner?" when the script expects a service inquiry. "I already called about this last week" when the script has no history lookup.

Before going live, run the agent through a set of deliberately difficult inputs. Have someone call in as an impatient caller, a confused caller, a caller with an unusual request, and a caller who is rude. Note every point where the agent either stumbles or handles it well. Each stumble is a script revision.

What we have found after doing this with dozens of scripts is that the issues tend to cluster. There are usually two or three edge cases that account for most of the rough spots, and fixing those brings the agent from "good enough" to "genuinely impressive." The best-rep comparison is useful here too: your best rep has probably already developed graceful responses to all of those edge cases over years on the phone. When you transcribed their calls, you probably saw those responses. Put them in the script.

Put these ideas to work today

Start a free 14-day trial. Your voice agent goes live in under 5 minutes.