{"id":11204,"date":"2026-09-02T15:15:35","date_gmt":"2026-09-02T15:15:35","guid":{"rendered":"https:\/\/cannabisindustryjournal.com\/?post_type=column&amp;p=39183"},"modified":"2026-09-02T15:15:35","modified_gmt":"2026-09-02T15:15:35","slug":"how-a-simple-3-email-sequence-drove-roi-for-this-dispensary","status":"publish","type":"post","link":"https:\/\/cannitrol.com\/blog\/how-a-simple-3-email-sequence-drove-roi-for-this-dispensary\/","title":{"rendered":"How a Simple 3-Email Sequence Drove ROI for This\u00a0Dispensary"},"content":{"rendered":"<div id=\"wp_fb_like_button\" style=\"margin:5px 0 5px 5px;float:right;height:100px;\"><script src=\"http:\/\/connect.facebook.net\/en_US\/all.js#xfbml=1\"><\/script><fb:like href=\"https:\/\/cannitrol.com\/blog\/how-a-simple-3-email-sequence-drove-roi-for-this-dispensary\/\" send=\"true\" layout=\"standard\" width=\"450\" show_faces=\"false\" font=\"arial\" action=\"like\" colorscheme=\"light\"><\/fb:like><\/div><div><img src=\"https:\/\/cannitrol.com\/blog\/wp-content\/uploads\/2026\/09\/how-a-simple-3-email-sequence-drove-roi-for-this-dispensary.png\" class=\"ff-og-image-inserted\" \/><\/div>\n<div class=\"elementToProof\">\n<p data-path-to-node=\"7\">How do you win back customers who drifted away? You know the type: they used to come into your dispensary regularly, then just stopped. No complaint, no goodbye. They found a shorter line, a better deal, or a store closer to home. Competition is fierce, but you don\u2019t need a massive ad budget to get them back through your door. In a market with a dispensary on every corner, that quiet drift is where most of your revenue is leaking out, and it\u2019s the easiest leak to plug.<\/p>\n<p data-path-to-node=\"8\">Think about what it cost you to acquire that customer in the first place: the ad spend, the first-visit discount, the labor of capturing their email and phone number. You did all the hard work already. Then you let them lapse and spend their money three blocks away. That isn\u2019t a lost customer; it\u2019s a paid-for customer you are choosing to ignore.<\/p>\n<p data-path-to-node=\"9\">A lot of these lapsed customers are technically still on your list, sitting in your weekly blast emails and texts. But being in the send queue is not the same as being reached. When someone receives a generic promo from three different dispensaries every single day, one more batch message is just background noise. If you\u2019re advertising 25% off a product they can get down the street for the exact same price, you aren\u2019t advertising a deal\u2014you are advertising standard retail. To a drifting customer, that gives them a reason to stay away, not a reason to return.<\/p>\n<p data-path-to-node=\"10\">We tested exactly how much revenue is sitting inside that segment. For one dispensary client, we built a targeted winback sequence aimed strictly at customers who hadn\u2019t purchased in 60 or more days\u2014the group most platforms write off as unreachable.<\/p>\n<h3 data-path-to-node=\"12\"><strong>The Case Study: Gold Standard Dispensary Winback<\/strong><\/h3>\n<ul data-path-to-node=\"13\">\n<li>\n<p data-path-to-node=\"13,0,0\"><strong data-path-to-node=\"13,0,0\" data-index-in-node=\"0\">The Strategy:<\/strong> A three-touch email sequence sent to customers inactive for 60+ days, offering a simple 20% discount.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"13,1,0\"><strong data-path-to-node=\"13,1,0\" data-index-in-node=\"0\">The Execution:<\/strong> Sent manually with zero expensive automation software.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"13,2,0\"><strong data-path-to-node=\"13,2,0\" data-index-in-node=\"0\">The Results:<\/strong><\/p>\n<ul data-path-to-node=\"13,2,1\">\n<li>\n<p data-path-to-node=\"13,2,1,0,0\"><strong data-path-to-node=\"13,2,1,0,0\" data-index-in-node=\"0\">49 attributed conversions<\/strong> from the first send alone.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"13,2,1,1,0\"><strong data-path-to-node=\"13,2,1,1,0\" data-index-in-node=\"0\">3,240% ROI<\/strong> on the lead send, ranking as a top-10 ROI campaign across the entire account.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"13,2,1,2,0\"><strong data-path-to-node=\"13,2,1,2,0\" data-index-in-node=\"0\">Long-term impact:<\/strong> A significant percentage of reactivated buyers resumed regular purchase habits at full margin over the following 90 days.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"15\"><strong>The Winback Playbook &amp; Execution Blueprint<\/strong><\/h3>\n<p data-path-to-node=\"16\">To replicate these results, you need more than a single discount email. You need a structured cadence, the right timing, and actionable copy.<\/p>\n<h3 data-path-to-node=\"17\"><strong>1. Catch Them in the 60-Day \u201cMoney Window\u201d<\/strong><\/h3>\n<p data-path-to-node=\"18\">Think in 30-, 60-, and 90-day tiers:<\/p>\n<ul data-path-to-node=\"19\">\n<li>\n<p data-path-to-node=\"19,0,0\"><strong data-path-to-node=\"19,0,0\" data-index-in-node=\"0\">30 Days:<\/strong> A light \u201cwe miss you\u201d nudge is plenty.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"19,1,0\"><strong data-path-to-node=\"19,1,0\" data-index-in-node=\"0\">60 Days:<\/strong> This is the sweet spot. Long enough to confirm they have genuinely drifted, but short enough that your brand is still fresh in their mind.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"19,2,0\"><strong data-path-to-node=\"19,2,0\" data-index-in-node=\"0\">90+ Days:<\/strong> You are entering cold reactivation territory, which requires steeper discounts and aggressive messaging.<\/p>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"20\"><strong>2. Ready-to-Use Email Swipe Copy &amp; Cadence<\/strong><\/h3>\n<p data-path-to-node=\"21\">Do not rely on a single email. The lift comes from a three-touch sequence where each message serves a specific purpose:<\/p>\n<h4 data-path-to-node=\"22\">Email 1 (Day 60) \u2014 The Conversational Hook<\/h4>\n<ul data-path-to-node=\"23\">\n<li>\n<p data-path-to-node=\"23,0,0\"><strong data-path-to-node=\"23,0,0\" data-index-in-node=\"0\">Subject Line:<\/strong> We miss you, [First Name] (Here\u2019s 20% off your next visit)<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"23,1,0\"><strong data-path-to-node=\"23,1,0\" data-index-in-node=\"0\">Body Copy:<\/strong><\/p>\n<blockquote data-path-to-node=\"23,1,1\">\n<p data-path-to-node=\"23,1,1,0\">Hi [First Name],<\/p>\n<p data-path-to-node=\"23,1,1,1\">It\u2019s been a minute since we\u2019ve seen you at [Dispensary Name]. We know you have plenty of choices when it comes to stocking up, but we\u2019d love to welcome you back.<\/p>\n<p data-path-to-node=\"23,1,1,2\">Here is <strong data-path-to-node=\"23,1,1,2\" data-index-in-node=\"8\">20% off your next order<\/strong> on us. Just show this email to your budtender or use code <strong data-path-to-node=\"23,1,1,2\" data-index-in-node=\"90\">WELCOMEBACK20<\/strong> online.<\/p>\n<p data-path-to-node=\"23,1,1,3\">[Claim Your 20% Off Button]<\/p>\n<\/blockquote>\n<\/li>\n<\/ul>\n<h4 data-path-to-node=\"24\">Email 2 (Day 63) \u2014 The Value Nudge<\/h4>\n<ul data-path-to-node=\"25\">\n<li>\n<p data-path-to-node=\"25,0,0\"><strong data-path-to-node=\"25,0,0\" data-index-in-node=\"0\">Subject Line:<\/strong> Still got that 20% off pass, [First Name]?<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"25,1,0\"><strong data-path-to-node=\"25,1,0\" data-index-in-node=\"0\">Body Copy:<\/strong><\/p>\n<blockquote data-path-to-node=\"25,1,1\">\n<p data-path-to-node=\"25,1,1,0\">Hi [First Name],<\/p>\n<p data-path-to-node=\"25,1,1,1\">Quick reminder: Your 20% off pass is still active. Whether you need to restock your go-to flower or want to try something fresh on our menu, we\u2019ve got you covered.<\/p>\n<p data-path-to-node=\"25,1,1,2\">Your code <strong data-path-to-node=\"25,1,1,2\" data-index-in-node=\"10\">WELCOMEBACK20<\/strong> is valid through [Day of Week].<\/p>\n<p data-path-to-node=\"25,1,1,3\">[View the Menu &amp; Save]<\/p>\n<\/blockquote>\n<\/li>\n<\/ul>\n<h4 data-path-to-node=\"26\">Email 3 (Day 65) \u2014 The Last Call Urgency Pass<\/h4>\n<ul data-path-to-node=\"27\">\n<li>\n<p data-path-to-node=\"27,0,0\"><strong data-path-to-node=\"27,0,0\" data-index-in-node=\"0\">Subject Line:<\/strong> [LAST CALL] Your 20% discount expires tonight<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"27,1,0\"><strong data-path-to-node=\"27,1,0\" data-index-in-node=\"0\">Body Copy:<\/strong><\/p>\n<blockquote data-path-to-node=\"27,1,1\">\n<p data-path-to-node=\"27,1,1,0\">Hi [First Name],<\/p>\n<p data-path-to-node=\"27,1,1,1\">Last call! Your 20% savings pass expires at close of business today.<\/p>\n<p data-path-to-node=\"27,1,1,2\">Stop by [Dispensary Name] before [Closing Time] or place your online order before midnight to lock in your savings.<\/p>\n<p data-path-to-node=\"27,1,1,3\">[Use Code WELCOMEBACK20 Now]<\/p>\n<\/blockquote>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"29\">3. <strong>How to Query Your POS \/ CRM (Technical Setup)<\/strong><\/h3>\n<p data-path-to-node=\"30\">You don\u2019t need complex software to pull this list. Whether you run Dutchie, Treez, Jane, Alpine IQ, or Springbig, use these exact filtering parameters:<\/p>\n<ol start=\"1\" data-path-to-node=\"31\">\n<li>\n<p data-path-to-node=\"31,0,0\"><strong data-path-to-node=\"31,0,0\" data-index-in-node=\"0\">Date Range Filter:<\/strong> Set <code data-path-to-node=\"31,0,0\" data-index-in-node=\"23\">Last Purchase Date<\/code> to <strong data-path-to-node=\"31,0,0\" data-index-in-node=\"45\">&gt; 60 Days Ago<\/strong> AND <strong data-path-to-node=\"31,0,0\" data-index-in-node=\"63\">&lt; 90 Days Ago<\/strong>.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"31,1,0\"><strong data-path-to-node=\"31,1,0\" data-index-in-node=\"0\">Exclusion Rules:<\/strong> Exclude any contact tagged as <code data-path-to-node=\"31,1,0\" data-index-in-node=\"47\">Opted Out<\/code>, <code data-path-to-node=\"31,1,0\" data-index-in-node=\"58\">Employee<\/code>, or with an <code data-path-to-node=\"31,1,0\" data-index-in-node=\"79\">Active Pending Order<\/code>.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"31,2,0\"><strong data-path-to-node=\"31,2,0\" data-index-in-node=\"0\">Segmentation Tag:<\/strong> Tag this group as <code data-path-to-node=\"31,2,0\" data-index-in-node=\"36\">Winback_60D_Batch1<\/code> so you can measure lifetime value (LTV) recovery over 30, 60, and 90 days following the campaign.<\/p>\n<\/li>\n<\/ol>\n<h3 data-path-to-node=\"33\"><strong>4. SMS vs. Email: Channel Strategy &amp; Compliance<\/strong><\/h3>\n<p data-path-to-node=\"34\">While email allows for visual menus and storytelling without risk of carrier restrictions, SMS offers ~98% open rates. If you utilize SMS alongside email, keep these delivery rules in mind:<\/p>\n<ul data-path-to-node=\"35\">\n<li>\n<p data-path-to-node=\"35,0,0\"><strong data-path-to-node=\"35,0,0\" data-index-in-node=\"0\">Email:<\/strong> Best for Message 1 and Message 2. Zero risk of carrier fines and plenty of room to highlight new inventory.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"35,1,0\"><strong data-path-to-node=\"35,1,0\" data-index-in-node=\"0\">SMS:<\/strong> Highly effective for Message 3 (The \u201cLAST CALL\u201d push).<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"35,2,0\"><strong data-path-to-node=\"35,2,0\" data-index-in-node=\"0\">Compliance Note:<\/strong> Ensure your SMS copy strictly avoids prohibited keywords (e.g., explicit federal drug references or aggressive promotional terms depending on state regulations and carrier filters). Always include standard <code data-path-to-node=\"35,2,0\" data-index-in-node=\"223\">STOP to opt out<\/code> language to protect your sender reputation under TCPA rules.<\/p>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"37\"><strong>5. The LTV Math: Why 20% Off Retains Profit Margins<\/strong><\/h3>\n<p data-path-to-node=\"38\">A common objection from dispensary owners is: <em data-path-to-node=\"38\" data-index-in-node=\"46\">\u201cI don\u2019t want to give up margin on customers who might have come back anyway.\u201d<\/em><\/p>\n<p data-path-to-node=\"39\">The math disproves this fear:<\/p>\n<ul data-path-to-node=\"40\">\n<li>\n<p data-path-to-node=\"40,0,0\"><strong data-path-to-node=\"40,0,0\" data-index-in-node=\"0\">Cost of Acquisition (CAC) for New Buyers:<\/strong> $25\u2013$40+ in local ads, sponsorships, and initial sign-up discounts.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"40,1,0\"><strong data-path-to-node=\"40,1,0\" data-index-in-node=\"0\">Cost of Winback:<\/strong> $0 in ad spend + a $10 margin concession on a $50 basket.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"40,2,0\"><strong data-path-to-node=\"40,2,0\" data-index-in-node=\"0\">Net Revenue:<\/strong> A customer who was generating $0 for two months generates $40 today and will average $300\u2013$500 in full-margin revenue over the next six months once restored to regular purchasing habits. You aren\u2019t discounting a loyal buyer; you are buying back an asset you already paid for.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"42\"><strong>Stop Chasing Strangers<\/strong><\/h2>\n<p data-path-to-node=\"43\">The most expensive customer you will ever acquire is a brand-new one. The cheapest customer is the one who already knows your store, has handed over their contact information, and simply needs a clear reason to walk back through your door.<\/p>\n<p data-path-to-node=\"44\">Stop pouring budget into cold audiences. Filter your list, run the cadence, and go claim the revenue sitting in your database.<\/p>\n<\/div>\n<div class=\"sharedaddy sd-sharing-enabled\">\n<div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\">\n<h3 class=\"sd-title\">Share this:<\/h3>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>How do you win back customers who drifted away? You know the type: they used to come into your dispensary regularly, then just stopped. No complaint, no goodbye. They found a shorter line, a better deal, or a store closer to home. Competition is fierce, but you don\u2019t need a massive ad budget to get [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[609,11159,8568,9,6845,1,3,61,1736],"tags":[3182,11160,8590,6846],"_links":{"self":[{"href":"https:\/\/cannitrol.com\/blog\/wp-json\/wp\/v2\/posts\/11204"}],"collection":[{"href":"https:\/\/cannitrol.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cannitrol.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cannitrol.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cannitrol.com\/blog\/wp-json\/wp\/v2\/comments?post=11204"}],"version-history":[{"count":0,"href":"https:\/\/cannitrol.com\/blog\/wp-json\/wp\/v2\/posts\/11204\/revisions"}],"wp:attachment":[{"href":"https:\/\/cannitrol.com\/blog\/wp-json\/wp\/v2\/media?parent=11204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cannitrol.com\/blog\/wp-json\/wp\/v2\/categories?post=11204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cannitrol.com\/blog\/wp-json\/wp\/v2\/tags?post=11204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}