AI Cold Calling Scripts: One Prompt, Eight Templates, and a Voice Agent Flow

AI cold calling script branching into a voice agent flow
AI cold calling script branching into a voice agent flow

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:

InputWhat to provideSafe example
Ideal customer profileIndustry, size, location, and operating modelUS business-to-business (B2B) software-as-a-service (SaaS) companies with 50 to 250 employees
PersonaRole, priorities, and decision scopeVP of Sales who owns pipeline creation
TriggerA verified event that changes the conversationThe company posted five sales development roles
Pain hypothesisOne plausible problem, clearly framed as a hypothesisNew-rep ramp time may be limiting outbound capacity
ProofAn approved fact that supports the offerA published case study or a verified internal result
OfferThe product or service in one plain sentenceA system that standardizes call coaching and practice
Qualification goalThe single most useful fact to learnWhether the team is changing its onboarding process this quarter
Call to actionOne low-friction next stepA 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 contextRelevance statementDiscovery 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.

StateDetected intent or eventAgent actionRequired outcome
ConnectionHuman answersIdentify caller and request permissionContinue or end
GatekeeperCaller is not the target contactState purpose and request the correct ownerContact, route, or end
RelevancePermission grantedDeliver one relevance statement and ask one questionDiscovery answer
BusyProspect cannot talkOffer a specific callback or approved follow-upCallback time or end
InterestedProspect confirms a relevant needAsk qualification questionQualified, unqualified, or unclear
ObjectionNot interested, competitor, or priceAcknowledge and use the matching branch onceContinue or end
Human requestProspect asks for a person or policy requires reviewTransfer with contextTransfer status
Stop requestProspect asks not to be calledConfirm, suppress future outreach, and endDo-not-call flag
CloseProspect accepts the next stepSchedule, confirm details, and summarizeMeeting or transfer
FailureLow confidence, tool error, silence, or repeated misunderstandingClarify once, then hand off or endFailure 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:

JSON
{ "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.

  1. Create test fixtures. Include different personas, missing fields, invalid numbers, existing customers, and suppressed contacts.
  2. Exercise every branch. Test permission, gatekeeper, busy, objection, price, competitor, voicemail, transfer, booking, silence, and stop requests.
  3. Interrupt every long response. Confirm that the agent stops, handles the new intent, and does not repeat itself.
  4. Force tool failures. Make the calendar, customer relationship management system, and transfer destination unavailable. Confirm the fallback never invents a successful action.
  5. Review the record. Inspect audio, transcript, tool executions, detected outcome, and data written to downstream systems.
  6. 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.

Share

Subscribe

Sign up to our e-mail list to get the best of the Dasha blog sent directly to your inbox.

We use cookies for functional and analytical purposes. Please refer to our Privacy Policy for details.