Skip to content
SuperCampaign

Playbook · Database reactivation

How to run a database reactivation campaign: the steps, the scripts and the maths

Your CRM is full of people who once asked for a quote, a call or a brochure and then went quiet. This playbook shows how to work that list properly: who you are allowed to contact, what to say on each channel, how fast to release contacts so your calendar can keep up, and what results to expect without the hype.

By The SuperCampaign team · Published · 17 minute read

Key takeaways

  • Plan on low single digits. The one published average we could trace to a named source is 4.4% of dormant leads booking an appointment, so a 2,000-contact list is roughly 80 meetings, not 800.
  • In the United States an AI voice is an artificial voice. A marketing call from an AI agent needs prior express written consent, and an old customer relationship does not replace it.
  • Two call attempts and one email is enough. Stop after that, and take anyone who asks out of every future campaign.
  • Release contacts at the rate your calendar can absorb: meetings your team can take per day, divided by your expected booking rate.
  • Every script on this page says who is calling, why now, and how to make it stop. That is what keeps opt-outs below bookings.

What a database reactivation campaign is

A database reactivation campaign is a short, planned sequence of texts, calls and emails to people who already gave you their details and then stopped responding: old enquiries, quotes that were never accepted, no-shows, webinar sign-ups, lapsed customers. The goal is one thing, a booked conversation with the people whose situation has changed since you last spoke.

It is different from cold outreach because every person on the list knows who you are, and different from a nurture sequence because it ends. You contact each person a small number of times over about a week, book the ones who are ready, and leave the rest alone.

It works for an unglamorous reason: timing. Most leads who did not buy were not saying no. They were busy, short of budget or waiting on someone else. Some of those blockers have gone away since, and nobody asked again.

See the reactivation campaign as a SuperCampaign workflow

What results to expect, honestly

Most figures quoted for database reactivation come from companies that sell it, including us. These are the ones we could trace to a named source. Treat them as vendor-reported, not audited.

MeasureReported figureSource
Dormant leads converted to booked appointments4.4% on average, 8.9% in the best campaignLeadsNow, measured across its own campaigns
Cost to work 1,000 existing contacts$300 to $1,500Octavius, author's estimate
Cost to buy 1,000 new paid leads$5,000 to $15,000Octavius, author's estimate
Reactivated contacts who convert, against new cold leads10 to 25% against 3 to 8%Octavius, author's estimate, no data shown
Links to each source are at the end of this guide.

Notice the spread: one vendor measures 4.4% and another suggests 10 to 25%. They are not counting the same thing, which is the usual problem with reactivation statistics. In this guide the booking rate always means meetings booked divided by contacts released.

We use 4% for the maths in this guide because it is close to the only measured average we found. Run your plan at 2% as well. If the campaign still pays for itself at half the expected booking rate, it is worth running; if it only works at 9%, it is not a plan.

Three things move the number more than any script: how recently the lead last heard from you, whether they came to you or you bought their details, and whether the phone number still belongs to them.

SuperCampaign is a young product and we do not yet have enough campaign data to publish a benchmark of our own. When we do, it will replace the vendor figures above.

Step 1: Clean the list before anything else

The list decides the result. An hour here saves the campaign from the three things that ruin it: calling people who told you to stop, calling numbers that now belong to someone else, and calling your own active customers.

Take these people out

  • Anyone who has opted out of calls, texts or email, on any system you have ever used. Check the old dialer and the old email tool, not only the current CRM.
  • Current customers and anyone with an open deal or an open support ticket. They should hear from their account owner, not a campaign.
  • Anyone who complained, disputed a charge or asked for their data to be deleted.
  • Duplicates. The same person with two email addresses gets two calls.
  • Rows with no first name if your text uses it. An empty merge field sends “Hi ,”.

Fix the phone numbers

Put every number in international format, +1 followed by the ten digits for the United States. Remove landlines from anything that will be texted. For lists older than about a year, check the numbers against the FCC's Reassigned Numbers Database, which tells you whether a number has been disconnected since the date the person gave it to you. A reassigned number means your consent belongs to someone who no longer has the phone.

Keep the columns that explain the lead

Keep the source and the date of last contact for every row. You will not import them, SuperCampaign's CSV wizard maps name, email, phone, company, job title and address, but you need them for the next two steps: deciding who you may contact, and splitting the file into segments.

Step 3: Segment by age and source

One list with one message performs worse than four small lists with four first lines. The opening sentence has to name the thing the person actually did, and that differs by segment. Split the file before you import it and give each part its own tag.

SegmentTypical ageOpening angleOrder of channels
No-shows and cancelled meetingsUnder 90 days“We never got to speak.”Text, call, email
Quoted, never decided3 to 12 months“Has anything changed since the quote?”Text, call, email
Enquired, never booked3 to 12 months“You asked about this in the spring.”Text, call, email
Past customers12 months or more since purchaseA check-in and one new thingEmail first, call those with consent
Old leads12 to 24 monthsName the event that created the leadEmail first, call those with consent
Older than 24 months, or source unknown2 years or moreAsk permission to stay in touchEmail only

Start with the warmest, smallest segment, 200 to 300 contacts. It gives you a booking rate, an opt-out rate and twenty transcripts to read before the larger segments go out.

Step 4: Choose the sequence

Four touches over about a week is enough. More attempts add complaints faster than they add meetings.

WhenTouchPurpose
Day 0Heads-up textSays who you are, why you are getting in touch and that a call is coming
Day 0, two hours laterAI callOne question, and a booking on the call if the answer is yes
Day 2, a different time of daySecond call attemptReaches the people who could not pick up the first time
Day 5Email with a booking linkThe low-pressure option for people who will not take a call
After thatStopTag the contact and leave them out of the next campaign for at least 90 days

Three limits to design around

We would rather you knew these before you build than discovered them in the logs.

  1. A SuperCampaign workflow can branch on whether a meeting exists in Calendly or iClosed, and on tags and lists. It cannot branch on what was said in the call. So the second attempt goes to everyone without a booking who has not asked to be left alone, including someone who answered and said “not now.” Handle that in the script: have the agent offer a callback at a better time, and ask anyone who declines whether they would like no further calls. Both answers are captured automatically. If you would rather not risk a second call to someone who declined, run a single attempt and go straight to the email.
  2. Text replies are not read. Replies land in your Twilio account, not in SuperCampaign. Write the first text as a heads-up that needs no answer, and have someone check the Twilio inbox before the calls go out.
  3. The booking check exists for Calendly and iClosed. If your agent books on Google Calendar, use a single call attempt, because the workflow cannot see who already booked.

The most useful feature for this kind of campaign is the callback. When a lead says “call me after the holidays” or “try me Thursday at four,” the agent captures the time, the run waits, and the call goes out then, up to 90 days ahead by default. Old leads say “not now” more than anything else, and a callback turns that into a date.

Step 5: Write the scripts

Each script below does three things: says who is calling and that it is an AI assistant, names the specific thing the person did, and gives an easy way out. Change the names and the offer; keep those three.

The heads-up text

SMSEnquired, never booked

Hi {{contact.firstName}}, it's Riley, the AI assistant at Northstar Coaching. You asked about the growth program a while back. I'll give you a quick call this afternoon to see if it's still on your list. Reply STOP to opt out.

SMSQuoted, never decided

Hi {{contact.firstName}}, Riley here, the AI assistant at Brightline Solar. We sent you a quote last year and prices have moved since. I'll call later today with the updated figure. Reply STOP to opt out.

Merge fields such as {{contact.firstName}} are filled in for texts and emails. A missing value becomes an empty space, which is why Step 1 removes rows with no first name.

The first thing the agent says

VoiceAgent's first message

Hi, this is Riley, an AI assistant calling from Northstar Coaching. Have I caught you at an okay moment?

Keep the name out of the agent's saved first message: merge fields are not filled in there. Put the name in the prompt on the AI call node instead, where they are.

The agent prompt

PromptPrompt on the AI call node

You are Riley, an AI assistant calling on behalf of Northstar Coaching. You are calling {{contact.firstName}}, who asked about the growth program some time ago and has not spoken to us since. Goal: find out whether growing the business is still a priority. If it is, book a 30-minute strategy call with Marcus. How to run the call: 1. Say who you are, that you are an AI assistant, and why you are calling, in one sentence. 2. Ask one question: is this still on their list this year, or has it moved on? 3. If it is still on their list, check the calendar, offer two open times, and book the one they choose. 4. If the timing is wrong, ask when would be better and tell them you will call back then. 5. If they are not interested, thank them. Ask whether they would like you to make sure nobody calls again. If they say yes, confirm it and end the call. 6. If they ask whether you are a real person, say you are an AI assistant. Rules: one question at a time. Never argue with a no. Never offer a time you have not checked on the calendar. Keep the call under three minutes unless they want to keep talking.

The voicemail

VoicemailMessage left when nobody answers

Hi, it's Riley, the AI assistant at Northstar Coaching, following up on the growth program you asked about. Nothing urgent. I'll send a link by email so you can pick a time if it's useful. Take care.

The last email

EmailFinal touch, with a booking link

Subject: Still on your list, {{contact.firstName}}? Hi {{contact.firstName}}, You asked about the growth program a while ago, and I tried to reach you by phone this week. If it's still something you want to look at, you can pick a time with Marcus here: [your booking link] If it has moved on, no reply needed. This is the last message you'll get from us about it. Riley AI assistant, Northstar Coaching [your postal address] To stop emails from us, reply with “unsubscribe”.

SuperCampaign does not add an unsubscribe line to emails for you, so keep that last line in, and mark anyone who uses it as unsubscribed from email on their contact record.

Step 6: Pace the campaign to your calendar

The mistake that wastes a good list is releasing all of it on Monday. The bookings land ten days out, half of them forget, and your no-show rate swallows the result. Release contacts at the rate your team can meet them.

Contacts to release per day = meetings your team can take per day ÷ expected booking rate.

Meetings you can take per dayBooking rateContacts to release per dayWorking days for 2,000 contacts
124%3007
122%6004
64%15014
204%5004

The levers you control

  • The size of each daily import. Every contact you import with the campaign tag starts a run, so the daily file is the throttle.
  • The wait between the text and the call, and between the first and second attempt.
  • The quiet-hours window. Sends that fall outside it are held until it opens.
  • The platform also limits how many AI calls are in progress at once and queues the rest, so calls go out a few at a time rather than in one burst.

What the calls cost

SuperCampaign adds nothing per minute; you pay your voice and telephony providers. Adding up Vapi's published component rates for hosting, transcription, a language model, a voice and Twilio telephony gives roughly $0.09 to $0.14 a minute. A 2,000-contact list with one retry is at most 4,000 call attempts. If attempts average one minute, most are short, that is about 4,000 minutes, or $360 to $560, plus Twilio's fee for the texts. At a 4% booking rate that is 80 meetings and about $4.50 to $7 of provider cost per booked meeting. These are assumptions, not a quote: measure your first batch and redo the sum.

Protect the number you call from

A number that places hundreds of short, unanswered calls in an hour gets labelled as spam by carriers, and answer rates fall for every campaign after it. Pacing protects you. So does registering your business and numbers in Twilio so your calls are signed, and texting first so the call is expected.

Step 7: Build it in SuperCampaign

Everything above works with any dialer, or with a person and a spreadsheet for a list of 200. If you want the sequence to run itself, this is the build. It takes an afternoon.

  1. Connect your accounts. Add your Vapi key, your Twilio numbers and your calendar: Calendly or iClosed if you want the booking check and the retry.
  2. Create the agent. Pick the model and the voice, paste the first message and the voicemail message, and attach three tools: get free slots, book a meeting, and contact history, so a second call can pick up where the first one ended.
  3. Draw the workflow. Tag added, send SMS, wait two hours, check for a meeting. Not booked: AI call, then a loop counter set to two. While the loop is not complete: wait two days and go back to the check. When it completes: check once more, then send the email and add a no-booking tag. Booked, at any check: add a booked tag and end.
  4. Paste the prompt from Step 5 into the prompt box on the AI call node, and leave “honor customer callback requests” switched on.
  5. Set quiet hours for calls and texts so they end at 9 pm or earlier in your organization's time zone.
  6. Import the first segment with the CSV wizard. Map the columns, match existing contacts by phone, add the campaign tag, and switch on “Run automations for imported contacts.” It is off by default so that an ordinary import never starts calls.
  7. Read the first twenty calls before you release the next batch: the logs page has each call's outcome and summary, and each run has the full transcript. Fix the script, then import tomorrow's file.

How the workflow engine runs a campaign, step by step

What to measure

MeasureHow to work it outWhere to find it
Contact rateConnected calls ÷ call attemptsCall outcomes on the logs page
Booking rateMeetings booked ÷ contacts releasedContacts with the booked tag
Show rateMeetings held ÷ meetings bookedYour calendar and your closers
Opt-out ratePeople who asked to stop ÷ contacts releasedContacts marked do-not-call, plus STOP replies in Twilio
Cost per held meeting(Call minutes × your per-minute rate + texts) ÷ meetings heldVapi and Twilio invoices

Judge the campaign on cost per held meeting, not on bookings. A booking that does not show costs you a slot. If shows are weak, add a confirmation call the day before and a no-show recovery campaign behind this one.

One rule of thumb for the first batch: if more people ask you to stop than book a meeting, pause. The list is colder than you thought, or the first line does not explain why you are calling.

When database reactivation backfires

  • The list was bought. Nobody on it knows you, so it is cold calling with a different name, and none of the consent you need exists.
  • The agent pretends to be a person. People forgive an AI assistant that says what it is. They do not forgive finding out halfway through.
  • The opener is “just checking in.” With no reason for the call, the honest answer is “no thanks.”
  • There are too many attempts. A third and fourth call to someone who has not answered reads as harassment, and some states cap attempts by law.
  • The numbers are stale. On a three-year-old list a meaningful share of numbers now belong to strangers.
  • The calendar is full. If the first open slot is two weeks away, the interest you just revived will not last until then.
  • Nobody reads the transcripts. The first twenty calls tell you what the script gets wrong. Skipping them repeats the mistake 2,000 times.

If you are deciding whether these calls should be made by an agent or by a person, the trade-offs are set out in AI appointment setter vs human setter.

Sources

Reviewed on 5 October 2026. Vendor figures are the vendor's own and have not been independently audited.

FAQ

Questions about database reactivation campaign

What is a database reactivation campaign?

It is a short sequence of texts, calls and emails to people who already gave you their details and then went quiet: old enquiries, unanswered quotes, no-shows and lapsed customers. The aim is to book a conversation with the ones whose timing has changed, then stop contacting the rest.

How many old leads will book a meeting?

Plan on low single digits. LeadsNow reports 4.4% of dormant leads converting to booked appointments on average across its own campaigns, and 8.9% in its best one. Those are vendor figures, not audited. Run your numbers at 2% and at 4%; recent leads who came to you directly do better than old or purchased ones.

Is it legal to call old leads with an AI voice agent?

In the United States an AI-generated voice is an artificial voice under the TCPA, so a marketing call from an AI agent needs the person's prior express written consent. A past purchase or enquiry does not replace that consent. Contacts without it can be emailed and invited to opt in. This is a summary, not legal advice; check your own list with a lawyer.

How long should a reactivation campaign run for each contact?

About a week: a text and a call on day 0, a second call attempt on day 2, and an email with a booking link on day 5. After that, stop and leave the contact out of the next campaign for at least 90 days. Leads who ask for a later callback are called at the time they chose.

What should the first message say?

Who you are, that you are an AI assistant, the specific thing the person did, and that a call is coming, with a way to opt out. For example: “Hi Sarah, it's Riley, the AI assistant at Northstar Coaching. You asked about the growth program a while back. I'll give you a quick call this afternoon. Reply STOP to opt out.”

How much does a reactivation campaign cost to run?

With SuperCampaign you pay your providers directly. Vapi's published component rates add up to roughly $0.09 to $0.14 a minute, so a 2,000-contact list with one retry, at about a minute per attempt, is in the region of $360 to $560 plus Twilio's fee for the texts. Measure your first batch; your average call length will differ.

How old is too old for a lead?

Past two years, or when you no longer know where the lead came from, treat the list as email-only and ask permission to stay in touch. Phone numbers change hands, consent is hard to prove, and people do not remember you. The best segments are under twelve months old.

Do I need SuperCampaign to do this?

No. The steps, the consent check, the scripts and the pacing maths work with any dialer, and a person with a spreadsheet can work a list of 200. SuperCampaign is for when you want the text, the call, the retry, the callback and the email to run on their own inside your calling hours.

Hear it before you believe it.

Drop your number and our agent will call you in about 30 seconds. Or create a free account and publish your first workflow today.

One automated demo call from our AI agent. We only use your number for this call.