A useful AI cold-calling script works as a branching talk track. It needs a relevant opener, one discovery question, concise objection paths, an explicit next step, and safe exits. Use the reusable prompt and templates to draft that system, then map it to intent detection, interruption handling, human handoff, and outcome capture for a production voice agent.
Copy this AI cold-calling script prompt
The quality of an AI-generated script depends on the constraints and source facts you provide. A vague request produces a generic pitch. A structured prompt produces a usable talk track with clear branches.
Replace every bracketed field in this prompt. Delete any instruction that does not fit your campaign.
You are writing a cold-calling talk track for [a human representative / an automated voice agent] at [company]. Use only the facts I provide. Do not invent customer names, results, features, prices, urgency, or familiarity with the prospect. Campaign inputs: - Ideal customer profile: [industry, company size, geography] - Prospect persona: [role and responsibilities] - Relevant trigger: [verified event or "none"] - Pain hypothesis: [one problem, framed as a hypothesis] - Offer: [what we provide] - Approved proof: [verified result, customer, or "none"] - Qualification goal: [one fact to learn] - Call to action: [specific next step] - Caller identity and required disclosure: [approved wording] - Tone: [direct, warm, concise, technical, etc.] - Phrases to avoid: [jargon, unsupported claims, pressure tactics] Write: 1. An opener of no more than 30 words that identifies the caller, acknowledges the unexpected call, and asks permission to continue. 2. A relevance statement tied to the persona, trigger, or pain hypothesis. 3. One open discovery question. 4. Separate responses for: interested, busy, not interested, already using a competitor, price question, wrong person, and do-not-call request. 5. A gatekeeper path that states the reason for the call without pretending a prior relationship exists. 6. A voicemail of no more than 45 words. 7. A meeting close with a specific duration and two scheduling options. 8. A list of missing facts or unsafe assumptions that require human review. Keep each turn to one or two sentences. Never argue with an objection. Ask no more than one question per turn. End politely after a repeated refusal.
The last output item matters. It makes the model flag gaps instead of filling them with plausible-sounding claims.
Give the AI eight campaign inputs
Personalization is useful when it explains why the call is relevant. A first name and company name alone do not do that. Build the script from these eight inputs:
| Input | What to provide | Safe example |
|---|---|---|
| Ideal customer profile | Industry, size, location, and operating model | US business-to-business (B2B) software-as-a-service (SaaS) companies with 50 to 250 employees |
| Persona | Role, priorities, and decision scope | VP of Sales who owns pipeline creation |
| Trigger | A verified event that changes the conversation | The company posted five sales development roles |
| Pain hypothesis | One plausible problem, clearly framed as a hypothesis | New-rep ramp time may be limiting outbound capacity |
| Proof | An approved fact that supports the offer | A published case study or a verified internal result |
| Offer | The product or service in one plain sentence | A system that standardizes call coaching and practice |
| Qualification goal | The single most useful fact to learn | Whether the team is changing its onboarding process this quarter |
| Call to action | One low-friction next step | A 15-minute technical discovery call |
Use [trigger] only when the underlying event is verified. Use phrases such as “Teams in your position often…” when you have segment-level context but no prospect-specific fact. Never turn an inference into “I noticed” or “I saw” language.
A complete cold-calling script template
This template separates the fixed message from the conversational branches. It works for a human caller or as the content layer for a voice agent. Automated agents should use the approved identity and disclosure language for each jurisdiction.
1. Opener
Hi [first name], this is [caller identity] with [company]. I know this is an unexpected call. Can I take 20 seconds to explain why I reached out, then you can tell me whether it is relevant?
If the prospect agrees, move to relevance. If they are busy, offer a precise callback. If they decline, thank them and end the call.
2. Relevance and discovery
We work with [persona or company type] that are dealing with [pain hypothesis]. [Verified trigger] made me think this might be timely for your team. How are you handling [process] today?
Without a verified trigger, omit that sentence:
We work with [persona or company type] that are dealing with [pain hypothesis]. How are you handling [process] today?
The discovery question should reveal fit. Avoid stacking questions about budget, timing, authority, and technical requirements into one turn.
3. Gatekeeper
Thanks. I am trying to reach the person responsible for [specific process]. The reason is [one-sentence relevance statement]. Who owns that area?
If asked to send information first:
Happy to. What should I include so it reaches the right person, and who should I address it to?
Do not claim the decision-maker expects the call or asked for information unless that is true.
4. “Not interested” objection
Understood. Before I let you go, is that because [problem] is not a priority, or because you already have it covered?
If the prospect repeats the refusal:
Got it. Thanks for being direct. I will end the call here.
The first response asks one clarifying question. The second respects the boundary. A script should never trap someone in an objection loop.
5. Competitor or price objection
For “we already use another provider”:
That makes sense. I am not asking you to replace a system on this call. What matters most in your current setup: [criterion A], [criterion B], or something else?
For “how much does it cost?” when an approved price is available:
Pricing starts at [approved price and unit], with [main variable] affecting the final cost. If that range is workable, I can schedule [next step] to scope it accurately.
When pricing cannot be stated accurately:
The price depends on [two or three real variables]. I do not want to give you a misleading number. Can I ask [one scoping question] so I can point you to the right range?
6. Discovery and qualification
Choose one primary question and up to two follow-ups:
What happens today when [pain event]?
How often does that occur?
What would need to change for this to become a priority?
Listen before selecting the next branch. A fixed sequence can make a call feel like a survey and may collect answers that have no bearing on the next step.
7. Voicemail
Hi [first name], this is [caller identity] with [company]. I called because [one relevant reason]. If [pain or goal] is on your roadmap, call me at [number] or reply to [follow-up channel]. Again, this is [name] at [number].
Leave out unverified personalization, long feature lists, and artificial urgency.
8. Meeting close
Based on what you said about [confirmed need], a [duration]-minute conversation with [right participant] makes sense. Would [option one] or [option two] work better?
Then confirm the time zone, attendee, contact details, and purpose. A voice agent should write the booking result back to the source system and read the final details aloud.
Adapt the script by buyer context
The conversation structure stays stable while the relevance statement changes. These variants show how to keep personalization specific without inventing a result.
| Buyer context | Relevance statement | Discovery question |
|---|---|---|
| VP of Sales at a SaaS company | “Teams adding sales development representatives often need a consistent way to coach new call behaviors.” | “How are you standardizing call practice as the team grows?” |
| Operations leader at a field-service company | “Operations teams with high inbound volume can lose time when every request needs manual triage.” | “Which call types create the most routing work today?” |
| Product leader building voice AI | “Teams moving from a demo to production often need better control over telephony, integrations, testing, and call inspection.” | “Which production layer is consuming the most engineering time?” |
Treat every line as a hypothesis to validate. If the buyer says the problem does not exist, move to a different approved branch or end the call.
Turn a static script into a voice-agent decision flow
A production voice agent needs more than a prompt. It needs explicit states, transition rules, tools, fallbacks, and stop conditions. This is where a generator output becomes an executable conversation flow.
| State | Detected intent or event | Agent action | Required outcome |
|---|---|---|---|
| Connection | Human answers | Identify caller and request permission | Continue or end |
| Gatekeeper | Caller is not the target contact | State purpose and request the correct owner | Contact, route, or end |
| Relevance | Permission granted | Deliver one relevance statement and ask one question | Discovery answer |
| Busy | Prospect cannot talk | Offer a specific callback or approved follow-up | Callback time or end |
| Interested | Prospect confirms a relevant need | Ask qualification question | Qualified, unqualified, or unclear |
| Objection | Not interested, competitor, or price | Acknowledge and use the matching branch once | Continue or end |
| Human request | Prospect asks for a person or policy requires review | Transfer with context | Transfer status |
| Stop request | Prospect asks not to be called | Confirm, suppress future outreach, and end | Do-not-call flag |
| Close | Prospect accepts the next step | Schedule, confirm details, and summarize | Meeting or transfer |
| Failure | Low confidence, tool error, silence, or repeated misunderstanding | Clarify once, then hand off or end | Failure reason |
Handle interruptions as state changes
When a prospect interrupts, the agent should stop speaking, retain the unfinished intent, and process the new utterance. It should not restart the paragraph. Short turns make this easier because each response has one job.
Define common barge-in paths before launch:
- “Who is this?” returns to caller identity.
- “How did you get my number?” uses the approved data-source response.
- “How much?” jumps to the price branch.
- “Send me an email” confirms the address and asks what information would be useful.
- “Stop calling” sets the suppression flag and ends immediately.
Bound free-form generation
Keep approved facts, prices, proof points, disclosures, and stop rules outside the model's discretion. Let the model vary phrasing within those boundaries. Tool calls should handle actions such as calendar booking, customer relationship management updates, suppression, and transfer routing.
With Dasha, you can configure outbound calls, connect external tools, transfer to human operators, test conversations in the browser, and inspect completed calls. Our guide to building an AI voice agent covers the broader production workflow.
Capture structured outcomes
A transcript alone is hard to analyze. Store a compact outcome record for each call:
{ "contact_id": "approved-source-id", "opening_path": "permission_granted", "qualification": {"current_process": "manual", "timing": "q4"}, "objections": ["existing_provider"], "outcome": "meeting_booked", "meeting_time": "confirmed-time-with-time-zone", "transfer_status": null, "do_not_call": false, "failure_reason": null }
Use a controlled set of values for outcomes and objections. Free-text notes can add context, but they should not replace the fields used for routing and reporting.
Test every branch before calling prospects
Testing should prove that the agent follows policy under ordinary, ambiguous, and adversarial conditions.
- Create test fixtures. Include different personas, missing fields, invalid numbers, existing customers, and suppressed contacts.
- Exercise every branch. Test permission, gatekeeper, busy, objection, price, competitor, voicemail, transfer, booking, silence, and stop requests.
- Interrupt every long response. Confirm that the agent stops, handles the new intent, and does not repeat itself.
- Force tool failures. Make the calendar, customer relationship management system, and transfer destination unavailable. Confirm the fallback never invents a successful action.
- Review the record. Inspect audio, transcript, tool executions, detected outcome, and data written to downstream systems.
- Run a controlled pilot. Start with a small, legally approved audience and expand only after transcript review shows that the branches behave as designed.
Measure the script as a flow. Track permission rate, discovery completion, qualification outcome, objection path, meeting or transfer result, opt-out rate, failed actions, and repeated misunderstandings. A single booking-rate number cannot show where the conversation breaks.
Put compliance before generation
Get jurisdiction-specific legal review before automated outreach. The review should cover business-to-business versus consumer calls, consent, do-not-call lists, calling windows, caller identification, recording, data sources, and required AI or prerecorded-voice disclosures.
In the United States, the Federal Communications Commission (FCC) has confirmed that AI-generated voices fall under the Telephone Consumer Protection Act rules for “artificial or prerecorded voice” calls in its 2024 declaratory ruling. The Federal Trade Commission (FTC) explains federal requirements for covered campaigns in its Telemarketing Sales Rule guide, including prompt disclosures, calling times, do-not-call controls, and prerecorded messages. State rules and non-US regimes add further requirements.
A compliant script cannot fix an unlawful contact list or dialing process. Treat suppression as an operational control: check it before every call, recognize stop requests during the call, write the result immediately, and prevent future scheduling. Our cold-calling compliance guide covers this topic in more detail.
Frequently asked questions
How long should an AI cold-calling script be?
Keep the fixed opener and relevance statement short enough to invite a response. The full script can be long because it contains branches, but the caller should deliver only the branch that matches the conversation. Limit each turn to one idea and one question.
How do you make an AI cold-calling script sound natural?
Use contractions, short sentences, spoken words, and explicit pauses. Give the agent permission to acknowledge an interruption and rephrase once. Remove paragraph-length pitches, stacked questions, exaggerated enthusiasm, and details the prospect did not ask for. Test the final wording aloud rather than judging it on the page.
Can an AI voice agent adapt the script during a live call?
Yes. The agent can classify the prospect's intent, choose an approved branch, call a tool, and adjust the next question using the conversation context. Keep identity, disclosures, facts, prices, stop conditions, and action confirmation under deterministic controls.
What should happen when the agent cannot understand the prospect?
Ask one concise clarifying question. If confidence remains low, offer a human handoff or end the call politely. Record the failure reason so the team can add a new test case and improve the affected branch.
Build the call flow on a production voice runtime
The prompt drafts the words. The production system controls who is called, which branch runs, when tools execute, how interruptions work, when a human takes over, and what gets recorded. With Dasha, you get a managed runtime, APIs, telephony, integrations, testing, monitoring, and large-scale call execution for that operating layer.
Start building with Dasha and test the complete flow before moving from a controlled pilot to production outreach.



