← Back to blogcannabis

Dispensary Win-Back Texts: The Lapsed Customer Playbook

October 30, 2026 · Android Texter

Dispensary Win-Back Texts: The Lapsed Customer Playbook

You have a POS export with a few thousand phone numbers on it, and a third of those people have not walked in since spring. Some moved, some found a cheaper shop, and some have been buying delta-8 gummies at the gas station. You do not need an ad budget to get them back. You need to sort that list, send three good texts in the right order, and have someone ready when the replies land.

The timing is unusually good this month. Ohio moved intoxicating hemp THC behind the dispensary counter when Senate Bill 56 took effect in March 2026, and MJBizDaily reported on October 29 that Ohio cannabis sales are up 25% since. Nationally, the hemp redefinition in H.R. 5371, Section 781, takes effect on November 12, 2026 and pushes most intoxicating hemp products over a 0.4 mg total THC per container line. Some of your lapsed customers are about to lose the thing they left you for.

Sort the List by Days Since Last Visit

Dispensary manager reviewing a lapsed customer list at a back office desk The win-back that underperforms is usually one text sent to everyone. Pull last-visit date from your POS and split the list into buckets, each with its own opening message.

  • 30 to 45 days. They are drifting, not gone. These are your best returns.
  • 46 to 90 days. They have a new habit. They need a reason, and usually an offer.
  • 91 to 180 days. Treat it as a re-introduction. Something has changed at your shop or they would have come back on their own.
  • Over 180 days. Confirm the number still belongs to the same person before you sell anything.

The cut at 45 days is backed by data. Springbig, a cannabis loyalty vendor, analyzed win-back campaigns reaching over a million customers and reported that win-backs work best up to 45 days since the last visit, with visit rates falling under 3%, and toward 1% by 90 days. Those are a vendor's own numbers, so treat them as a direction. The older the bucket, the smaller the result you should expect.

In Android Texter's contacts, tag each person with their bucket (lapsed-45, lapsed-90, lapsed-180, lapsed-old) so the segments stay straight across two weeks of sends.

The Three-Message Win-Back Sequence

Three messages per bucket, then stop. Wait four or five days after the first message, then eight to ten more before the last. Anyone who visits at any point comes off the sequence. Check the POS each morning before the next batch goes out.

Message 1, day 0: a reason, no offer

The first text tells them something is different. A new grower on the menu, a new pickup window, lower prices on a category, or a product they used to buy back in stock. Leading with a discount teaches the list to wait for discounts.

Hi [First name], it's [Store] on [Street]. We brought back [brand] live resin and added [grower] flower this month. Menu: [link]. Reply STOP to opt out.

For the 180-day bucket, swap it for a check that the number is still right:

Hi, this is [Store] dispensary. Is this still [First name]'s number? We have some menu changes you'd like, but want to be sure first. Reply STOP to opt out.

Anyone who answers "wrong number" comes off the list today.

Message 2, day 4 or 5, if no visit: the offer, with a date on it

Now the offer. Make it specific, give it an end date, and keep the redemption simple at the counter.

[First name], come back this week and get [offer] on your next order. Show this text or say code BACK45 at the register. Good through Sunday. [Store]

Use a different code per bucket (BACK45, BACK90, BACK180). That code is how you will measure the campaign later, so do not skip it.

Message 3, day 12 to 14, still no visit: last call, with an easy out

The last message closes the loop politely and gives them a way to tell you what they want.

Last reminder from [Store]: your [offer] ends tonight. Want us to only text you for big drops? Reply DROPS. Prefer no texts? Reply STOP.

A DROPS reply moves that person to a smaller list you only text on restock days, the cadence our drop day playbook covers, instead of losing them to an opt-out.

The hemp switcher variant

If you are in a market where the gas station hemp shelf is about to empty, run one extra message to the 46 to 180 day buckets in the week before November 12:

Hi [First name], [Store] here. Hemp THC products are coming off convenience store shelves in November. If that's where you've been shopping, our licensed menu has [category] starting at [price]: [link]. Reply STOP to opt out.

Keep it to facts about where products are sold and what you carry. Skip health and effect claims entirely. Your state's cannabis advertising rules apply to a text the same way they apply to a billboard.

Sending It From One Handset Without Burning the Line

Android Texter sends from a real Android phone on a real carrier line, so your win-back goes out as person-to-person SMS. Send it the way a person would: a few thousand identical texts in ten minutes from one personal line looks nothing like a person's day.

Use scheduled messages to queue each bucket in chunks across the afternoon. The composer's scheduled-send picker handles this, and the REST API accepts a scheduled_at timestamp if your POS export runs through a script. The API also takes up to 500 phones per broadcast call, which maps neatly onto one chunk.

If the list is large, pair a second or third Android phone to the same account and split the buckets across devices. Every reply still lands in the same dashboard inbox. For how much a single line can realistically carry, see our breakdown of SMS sending limits per phone number.

Send between late morning and early evening, when the replies will hit a staffed store. A win-back that lands at 9 p.m. gets answered at 9 p.m., by nobody.

What the Inbox Looks Like the Day After

Dispensary shift lead answering customer texts on an Android phone A win-back produces replies, and they are mostly the same five replies:

  1. "What's on the menu / do you have X?"
  2. "What are your hours?"
  3. "Does the deal work on [product]?"
  4. "Who is this?"
  5. "STOP" or some version of it.

Do not leave these to whichever budtender picks up the phone between customers. Give one person the inbox for the 48 hours after each send, ideally a shift lead or the opener who is off the floor for part of the day. Their job is to answer within the hour, mark anyone who says wrong number, and record every opt-out.

Build a quick reply for each common question before the first message goes out. In Android Texter these are slash shortcuts that expand to the full answer:

  • /menu: "Here's today's menu: [link]. Let me know if you want anything held."
  • /hours: "We're open [hours] today at [address]. See you soon."
  • /deal: "The deal covers [categories]. It doesn't stack with other discounts. Just say the code at the register."
  • /who: "This is [Store] on [Street]. You signed up for texts at our counter. Reply STOP anytime and we'll stop."

The dashboard tracks how often each quick reply gets used, so after two campaigns you will know which questions your message failed to answer. If /deal is the most used, the offer in message 2 was unclear. Rewrite it.

If the manager wants to watch replies without logging into the dashboard, a forwarding rule can mirror inbound texts to a Telegram channel.

Measuring It: Redemptions, Not Replies

Returning dispensary customer paying at the register after a win-back text Replies feel like results. Redemptions are the result. Here is how to count them honestly:

  • Count codes at the register. Each bucket code (BACK45, BACK90) in your POS discount report tells you how many people came back from each bucket.
  • Hold out a slice. Before sending, pull a random tenth of each bucket and do not text them. After two weeks, compare how many of the texted group visited with how many of the held-out group visited anyway. The difference is what the texts actually did.
  • Track opt-outs per bucket. If the 180-day bucket opts out far more often than it redeems, drop that bucket next time and spend the effort on the 45-day list instead.

Then run the sequence monthly on whoever newly crossed 30 days.

Age, Consent and STOP: What Changes Your Behaviour

We have covered the rules elsewhere. The parts that change how you run a win-back:

  • Text only people who gave you their number for texts. A phone number on a sales receipt is not consent to marketing texts. The FCC's consumer guide states that commercial texts require written consent, and that obligation is yours whatever tool sends them.
  • Keep the list 21+. Your sign-up process should verify age, and the win-back list should only ever contain verified adults.
  • Honor STOP yourself. Android Texter does not automatically suppress a number that replied STOP. You can set an auto-reply rule that confirms the opt-out, but removing that number from every future send is your job. Keep a do-not-text tag and check it before every broadcast.

Android Texter changes the carrier side: P2P traffic is not run through the A2P 10DLC campaign approval that gets dispensaries filtered at Twilio-style providers. It does not change your legal obligations at all. Our post on why carriers block dispensary texts covers the carrier picture, and TCPA SMS opt-out rules covers what counts as a STOP.

Frequently Asked Questions

How long before a dispensary customer counts as lapsed?

Most shops start at 30 days without a visit, because cannabis customers tend to buy every week or two. Base it on your own data: find the typical gap between visits for your regulars and treat anyone at roughly twice that gap as lapsed. Springbig's figures suggest win-backs lose most of their pull after about 45 days, so start early rather than late.

Should the first win-back text include a discount?

Usually not. A first message that gives a reason to come back, such as a new grower, a restocked product or a new pickup option, keeps your list from learning that silence earns a coupon. Save the offer for message two, give it an end date, and use a bucket-specific code so you can see which group it actually moved.

How many win-back texts should I send before stopping?

Three per bucket over about two weeks, then stop. Anyone who does not respond after the third message should move to a lighter cadence, such as drop-day texts only, or come off marketing texts entirely if they ask. More messages to a cold list raise opt-outs faster than they raise visits.

Can I text customers whose numbers are only in my POS?

Only if they agreed to receive texts from you. A number captured for a receipt or loyalty account is not automatically consent to marketing texts. Check what your sign-up form actually said. If it did not cover texts, ask for consent in person at the counter before adding the number to any win-back list.

Bring Your Lapsed List Back This Month

Your POS export is already the most valuable list in the building, and the hemp changes give it a reason to come back now. Sort it into buckets, write three messages per bucket, and staff the inbox for the two days after each send.

If your current SMS provider filters your dispensary's texts, Android Texter sends them from your own Android phone with a shared web inbox, quick replies and scheduling built in. Pair a phone and run your first bucket this week.