Build it in four blocks: a greeting that identifies the business and sets expectations, qualification questions asked one at a time, a booking flow that confirms details back, and explicit escalation and failure handling. This tool assembles those blocks into a copy-pasteable script and a system prompt.
This is a structured template assembler. It takes your inputs and arranges them into the four blocks a working voice script needs, applying conversational rules that are stated in full below. It writes a starting script; it does not test one, and no script is finished before it has been heard on real calls.
Greeting, qualification, booking, and guardrails. Scripts that fail are almost always missing the fourth. The greeting does three jobs in under six seconds: name the business so the caller knows they dialled correctly, say what is about to happen, and ask one question that starts the conversation. If calls are recorded, the disclosure belongs here, before anything substantive is said. Qualification is where the value is. Each question should change what happens next; if an answer would not change the routing, the price or the appointment, do not ask it. Callers tolerate a surprising number of questions when each one is obviously purposeful and none of them are asked twice. Booking converts. It needs availability rules the agent can actually honour, a readback of every captured detail, and an unambiguous confirmation. Guardrails are what stop a confident system from inventing a price, promising a Sunday visit or answering a legal question. They are the least fun block to write and the one that determines whether you can leave the agent running unattended.
Brevity, identification, and one question. The greeting is where callers decide whether to stay on the line, and the decision takes about four seconds. Name the business first, because a caller who is not sure they reached the right place is not listening to anything else you say. Then set expectation in one clause: that you can help book, answer questions, or take details. Then ask one open question and stop talking. Two things to avoid. Do not stack the greeting with a menu; if you need routing, ask one question and route on the answer. And do not pretend to be human. An agent that says a human name and gets challenged spends the rest of the call recovering, whereas one that is straightforwardly an assistant almost never gets challenged at all. Callers mind being deceived considerably more than they mind talking to software. If calls are recorded, disclose it in the greeting. Requirements vary by jurisdiction, and the cost of getting it wrong is not commercial.
Ask only questions whose answers change what happens next, and ask them in the order identify, need, fit, budget, logistics. Identify first, because everything else depends on knowing whether this is an existing customer, a tenant rather than an owner, or someone at an address you do not serve. Need second, in the caller's own words, because their description tells you more than a menu selection would and because people want to explain the problem before they are processed. Fit third: service area, property type, whether they are the decision-maker, whether a warranty or insurer is involved. These are the disqualifiers, and finding them here saves a wasted truck roll. Budget fourth, gently and only where relevant: disclosing a call-out fee, offering a typical range, asking whether they are gathering quotes. Asking about money before understanding the problem reads as transactional and raises hang-ups. Logistics last, once the appointment is essentially agreed. Access, pets, preferred window, best contact number. One question per turn throughout. Stacked questions get one answer, and recovering costs more turns than asking separately would have.
Offer a small number of concrete options rather than asking an open question. Two or three specific windows converts better than what day works for you, because an open question makes the caller do work the agent could have done. Only offer what the agent can genuinely honour. If it cannot see a live calendar, it should be taking a request rather than making a commitment, and it should say which of those it is doing. An agent that books an appointment that does not exist creates a worse problem than a missed call. Read everything back before you close: name, number, address, the problem in one line, the day and window. Ask for a yes. This single step catches most transcription errors, and transcription errors on a street name are common. Close by saying what happens next and when. A caller who knows they will get a text confirmation in five minutes and a technician call thirty minutes ahead does not phone back to check, and that call is one you would otherwise have to answer.
The never list is short and non-negotiable: never quote a price it has not been given, never diagnose, never promise a time it cannot see, never give legal, medical or financial advice, and never argue with a caller. Escalation should trigger on four conditions. An angry or distressed caller, because nothing an agent says improves that situation. An explicit request for a person, immediately and without friction, because refusing that request is the fastest way to turn a customer into a complaint. Anything outside defined scope. And three consecutive turns where the agent has failed to understand. Define what escalation actually does. Warm transfer during hours, a callback commitment with a stated window outside them, or an emergency number if that applies. An escalation path that ends in an unmonitored voicemail is not an escalation path. Write the failure sentence explicitly and make it plain: that the agent could not help with this, that a person will call back, and by when. Handled well, a caller who gets a clear handoff is not lost.
Yes. An agent that presents as an assistant is almost never challenged; one that uses a human name and gets caught spends the rest of the call recovering. Callers object to being deceived far more than to talking to software.
There is no fixed number. Callers tolerate a surprising amount when every question is obviously purposeful and none is asked twice. The test is whether the answer changes routing, price or the appointment. If not, cut it.
Identify, need, fit, budget, logistics. Asking about money before understanding the problem reads as transactional and increases hang-ups; asking about logistics before fit wastes both parties' time.
Only prices it has been explicitly given, and only as a stated range with the conditions attached. An agent that infers a price from context will eventually infer one you have to honour.