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.
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.
| Measure | Reported figure | Source |
|---|---|---|
| Dormant leads converted to booked appointments | 4.4% on average, 8.9% in the best campaign | LeadsNow, measured across its own campaigns |
| Cost to work 1,000 existing contacts | $300 to $1,500 | Octavius, author's estimate |
| Cost to buy 1,000 new paid leads | $5,000 to $15,000 | Octavius, author's estimate |
| Reactivated contacts who convert, against new cold leads | 10 to 25% against 3 to 8% | Octavius, author's estimate, no data shown |
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 2: Check you are allowed to make the call
This section is a plain-English summary of United States federal rules as we understand them. It is not legal advice. State laws add to these rules and other countries have their own. Ask a lawyer about your list before you call it.
This is the step most reactivation guides skip, and it matters more with an AI agent than with a human caller.
An AI voice is an artificial voice
The Telephone Consumer Protection Act restricts calls that use an artificial or prerecorded voice. In February 2024 the FCC confirmed that AI-generated voices count. A marketing call placed by an AI agent to a mobile phone therefore needs the called person's prior express written consent: an agreement, a ticked box is enough, that clearly authorises marketing calls using an automated system or an artificial voice from your business to that number, and that was not a condition of buying.
A past relationship is not consent
People often quote two windows: 18 months after a purchase and three months after an enquiry. Those come from the National Do Not Call Registry rules, and they help only with live calls dialled by a person. The exemption that once allowed prerecorded marketing calls to existing customers was removed in 2013. “They were a customer last year” does not permit an AI call.
What you can do with each kind of contact
| Contact | AI voice call | Marketing text | |
|---|---|---|---|
| Agreed in writing to automated or AI calls and texts from you | Yes | Yes | Yes |
| Gave a number on a form with no such wording | Not until they opt in | Not until they opt in | Yes, with an unsubscribe |
| Past customer, no written consent | Not until they opt in. A live call from a person may be allowed | Not until they opt in | Yes, with an unsubscribe |
| Asked you to stop | No | No | No, if they unsubscribed |
| Bought or scraped list | No | No | Not recommended |
The way back in for contacts without consent
Commercial email in the United States works on an opt-out basis under the CAN-SPAM Act: you may email a past lead as long as the message is honest about who sent it, carries your postal address and has an unsubscribe you honour. So start the no-consent segment with an email. Link to a short form where the person can ask for a call and tick a consent box. Have that form send the contact to SuperCampaign through the contacts API with a tag, and the call campaign starts for exactly the people who asked for it.
Hours, registries and opt-outs
- Calling hours are 8 am to 9 pm in the called person's local time. Some states are stricter. SuperCampaign's quiet hours run in your organization's time zone and the default call window ends at 10 pm, so set it to end at 9 pm or earlier. If your list spans the continental United States, a window of 11 am to 8 pm Eastern keeps every time zone inside the federal hours.
- Scrub the list against the National Do Not Call Registry and your own do-not-call list. SuperCampaign does not check any registry.
- Honour every opt-out, however it arrives. A person who tells the agent to stop is set to do-not-call automatically. A person who replies STOP to a text is blocked from further texts by Twilio, but SuperCampaign does not read text replies, so mark them do-not-call yourself before the call goes out.
The TCPA rules for AI voice calls, in plain English
What SuperCampaign enforces and what stays your responsibility
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.
| Segment | Typical age | Opening angle | Order of channels |
|---|---|---|---|
| No-shows and cancelled meetings | Under 90 days | “We never got to speak.” | Text, call, email |
| Quoted, never decided | 3 to 12 months | “Has anything changed since the quote?” | Text, call, email |
| Enquired, never booked | 3 to 12 months | “You asked about this in the spring.” | Text, call, email |
| Past customers | 12 months or more since purchase | A check-in and one new thing | Email first, call those with consent |
| Old leads | 12 to 24 months | Name the event that created the lead | Email first, call those with consent |
| Older than 24 months, or source unknown | 2 years or more | Ask permission to stay in touch | Email 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.
| When | Touch | Purpose |
|---|---|---|
| Day 0 | Heads-up text | Says who you are, why you are getting in touch and that a call is coming |
| Day 0, two hours later | AI call | One question, and a booking on the call if the answer is yes |
| Day 2, a different time of day | Second call attempt | Reaches the people who could not pick up the first time |
| Day 5 | Email with a booking link | The low-pressure option for people who will not take a call |
| After that | Stop | Tag 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.
- 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.
- 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.
- 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
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.
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
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
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
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
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 day | Booking rate | Contacts to release per day | Working days for 2,000 contacts |
|---|---|---|---|
| 12 | 4% | 300 | 7 |
| 12 | 2% | 600 | 4 |
| 6 | 4% | 150 | 14 |
| 20 | 4% | 500 | 4 |
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.
- 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.
- 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.
- 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.
- Paste the prompt from Step 5 into the prompt box on the AI call node, and leave “honor customer callback requests” switched on.
- Set quiet hours for calls and texts so they end at 9 pm or earlier in your organization's time zone.
- 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.
- 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.
What to measure
| Measure | How to work it out | Where to find it |
|---|---|---|
| Contact rate | Connected calls ÷ call attempts | Call outcomes on the logs page |
| Booking rate | Meetings booked ÷ contacts released | Contacts with the booked tag |
| Show rate | Meetings held ÷ meetings booked | Your calendar and your closers |
| Opt-out rate | People who asked to stop ÷ contacts released | Contacts marked do-not-call, plus STOP replies in Twilio |
| Cost per held meeting | (Call minutes × your per-minute rate + texts) ÷ meetings held | Vapi 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.
- LeadsNow: database reactivation, 4.4% conversion on dormant leads
- LeadsNow: how to run a database reactivation campaign
- Octavius: database reactivation is cheaper than new leads
- FCC: AI-generated voices in robocalls are artificial voices under the TCPA (February 2024)
- 47 CFR 64.1200: consent, calling hours and do-not-call rules
- FCC Reassigned Numbers Database
- FTC: CAN-SPAM Act compliance guide for business
- Vapi pricing