A cold calling script is a short, written outline of what you say on an unplanned sales call: who you are, why you are calling this person, one question, one reason to keep talking, and a clear ask. It is not a speech to read word for word. The free way to run it is two documents: the script in a plain doc, and a call log in Google Sheets or Excel with drop-downs for outcomes and a highlighted follow-up date. That setup works well for one caller. It strains once several people dial from the same list.
What a cold calling script actually needs
Most call scripts for cold calling fail because they are written like brochures. The person on the other end gives you a few seconds before deciding whether to hang up. Your script has to earn the next sentence, not explain the company. Keep each part to one or two lines you can say out loud without sounding like you are reading. If you would not say it to a stranger at a trade show, cut it.
A working script has six parts, in this order:
- The opener. Your name, your company, and a plain admission that this is a cold call. Honesty lowers the guard faster than a fake how are you today.
- The reason for the call. One specific trigger: they just hired, opened a location, posted about a problem. This is where research pays.
- One question. Ask about the problem you solve, in their words. Then stop talking.
- The value line. One sentence on what changes for a business like theirs, with a customer type they recognize.
- The ask. A short meeting at a named time, not let me know if you're interested.
- The exits. Two or three objection replies and a voicemail version under 30 seconds.
For the strategy behind the call itself (who to call, when, and how many attempts), see our guide to cold calling.
Admitting it up front sounds honest and buys you the next sentence more often than a fake friendly opener.
A sample cold calling script you can adapt
Here is an illustration for a fictional bookkeeping firm calling a restaurant owner. Swap the details for your own trade.
Opener: "Hi Maria, this is Sam from Ledger Lane. This is a cold call. Can I take thirty seconds to tell you why I picked up the phone, and you can tell me if it's worth a minute more?"
Reason: "I saw you opened a second location in March. Most owners we talk to find the books get messy right around location two."
Question: "How are you handling payroll and sales tax across both places right now?"
Value line: "We take that off the owner's desk for restaurants with one to five locations, so month-end stops eating your Sundays."
Ask: "Would Thursday at 10 or Friday at 2 work for a 15-minute call to see if we're a fit?"
Voicemail: Name, company, the trigger, one benefit, your number twice. Nothing else.
Write two objection replies before you dial. We already have someone becomes a question about what they would change. Send me an email becomes a promise to send it plus a time to call back. Writing these down beforehand is what separates cold-calling scripts that get meetings from ones that only get hang-ups.
Prospects hear a script being read in the first sentence. Learn the six headings and talk from them.
Build a free call log in a spreadsheet
The script is only half of the job. Without a record of who you called, what happened and when to call back, the second attempt never happens. A call log in a spreadsheet fixes that for free. These steps use Google Sheets; the Excel version follows.
- Create columns: Name, Company, Phone, Date called, Outcome, Notes, Next call date.
- Select the Outcome column. In Google Sheets, click Insert > Dropdown (or Data > Data validation > Add rule), then under Criteria choose Dropdown and type your outcomes: No answer, Voicemail, Gatekeeper, Conversation, Meeting booked, Not interested, Do not call [1].
- In Advanced options, keep the setting that rejects entries not on the list, so everyone records outcomes the same way.
- Select the whole data range, then click Format > Conditional formatting. Under Format cells if, pick Custom formula is and write the rule for the first row, for example
=AND($G2<>"",$G2<=TODAY()), with a fill color [2]. Rows with a callback due today or earlier now light up. - Add a filter on the Outcome column so you can pull up every voicemail in one click.
The same log in Excel
Type your outcome list on a second sheet and turn it into a table with Ctrl+T, so the drop-down updates when you add an option. Then select the Outcome cells, go to Data > Data Validation, set Allow to List, and point Source at your list [3]. Microsoft notes that Data Validation is greyed out if the sheet is protected or shared.
Make it one of the drop-down options so a request to stop is recorded the same way every time and never dialed again.
How to use the script on a real call
Practice the script out loud until you can say it without looking. Then put it away and keep only the six headings in front of you. Callers who read word for word sound flat, and prospects hear it in the first sentence.
Make your calls in blocks. Research ten prospects, write each one's trigger in the Notes column, then dial all ten without stopping. Log the outcome before the next dial, not at the end of the session. Memory is the first thing a busy day erases.
Review the log every Friday. Sort by Outcome and count how often each line of the script leads to a real conversation. If almost every call dies after the opener, the opener is the problem. If conversations happen but no meetings follow, fix the ask. The log is how the script improves, which is why the two belong together.
One legal note. Cold calls to US consumers fall under the Telemarketing Sales Rule and the National Do Not Call Registry, which the Federal Trade Commission manages; its registry site has a section of answers for telemarketers and sellers [4]. If you record calls, consent rules vary by state. Keep the Do not call outcome in your drop-down and honor it every time.
When the spreadsheet call log stops working
The free setup has a clear ceiling, and you will feel it before you see it. The signs are specific.
- A second caller joins. Two people edit the same sheet, both call the same lead, and one overwrites the other's outcome.
- Logging becomes the job. Every dial means typing a date, an outcome and a note by hand. At a few dozen calls a day, that is a real share of your time.
- Callbacks depend on you opening the sheet. The highlight only shows when you look. Nothing reminds you on its own.
- There is no history. You see the last note, not every call, email and text with that person.
- Calls happen on your personal phone. Nothing connects the dial to the row.
At that point a CRM with built-in calling does the logging for you: the call is placed from the record, and the outcome lands on it.
Tools that log the call for you
The built-in phone is part of the product, and the free mobile app logs calls made from your phone automatically, so each call lands on the record without typing.
Calling, SMS and email are built in, and each call happens inside the lead record, so the outcome and history sit with the lead instead of in a sheet.
A built-in dialer on every plan, including Free, places calls inside the same CRM that holds your contacts and deals, and the dialer records and transcribes calls once you are on Professional.
Freshsales is the gentlest step up for a solo caller because its free mobile app logs calls from your phone automatically, with no typing. Close fits a team whose day is the phone, since the call happens inside the lead record. HubSpot is the choice if you also want email and deals in one free CRM before you add recording. For dialers that move through a list on their own, compare the options in our power dialer guide.
Frequently asked questions
How long should a cold-calling script be?+
Short enough to say in under a minute before your first question, which usually means a few lines per part. The rest of the call is listening and responding.
How many cold-calling scripts do I need?+
Usually one per type of buyer you call, since the trigger, the question and the value line change with the business. The opener, the ask and the voicemail format can stay the same across all of them.
Can I keep a call log in a spreadsheet with a team?+
You can, but shared editing causes collisions: two reps call the same lead and overwrite each other's notes. Assign leads by owner in a column, or move to a CRM once a second caller joins.
Do I need a different script for business and consumer calls?+
The structure stays the same, but calls to US consumers fall under the Telemarketing Sales Rule and the National Do Not Call Registry, so check the FTC's guidance before you dial consumers.
The bottom line
A good cold calling script is short, honest about being a cold call, built around one specific reason and one question, and ends with a concrete ask. Pair it with a free call log in Google Sheets or Excel: drop-downs for outcomes, a highlighted callback date, and a weekly review that tells you which line to rewrite. That combination costs nothing and works well for one caller. When a second person starts dialing, or typing the log takes longer than the calls, move the list into a CRM that logs each call on the record for you.
- [1] Google Docs Editors Help (Nov 2026) https://support.google.com/docs/answer/186103
- [2] Google Docs Editors Help (Nov 2026) https://support.google.com/docs/answer/78413
- [3] Microsoft Support (Nov 2026) https://support.microsoft.com/en-us/office/create-a-drop-down-list-7693307a-59ef-400a-b769-c5402dce407b
- [4] donotcall.gov (Nov 2026) https://www.donotcall.gov/faq.html