"We've got forty units of a badder nobody's touching and it's three weeks from being old."
So it gets a shelf tag, a sad sign, and eventually a 50% blowout to whoever happens to walk in that day.
The state makes you keep every transaction for seven years. Most stores file that away as a compliance cost. It is the deepest customer record in American retail — and it is sitting in your POS doing nothing. StickySignal reads it, and starts a real conversation with every name inside.
On the left, a customer gets a text from a person at their shop — one number, one continuous thread, the same one they'd call. On the right, your team sees that same thread with the customer's entire file bolted to it: what they buy, how often, what they asked about in March, what's waiting on your shelf right now.
Between the two is the part nobody else has built: an AI that drafts, a human who approves, and a delivery layer we own outright. Nothing leaves your store that a person on your payroll didn't look at first.
| What they see | A text from your shop. Not a short code. Reply and a person is there. |
|---|---|
| What you see | A CRM record: cadence, affinities, lifetime value, last visit |
| Who writes it | AI drafts on their file · your team approves |
| Who sends it | Our own communications layer — not a Twilio wrapper |
| Where it lands | A Postgres database you own, exportable any day |
Every ID scan, every basket, every line item, going back years. Our proof-of-concept store handed us a book like this and we turned it into behaviour: how often each person comes, what they actually reach for, which brands they've quietly stopped buying, and the date they're due back.
| Customer profiles | 118,497 — real people, ID-verified at the counter |
|---|---|
| Transactions | 374,000+ across 2020–2025 |
| Line items | 897,000+ — the part that makes it personal |
| SKUs profiled | 8,000+ · category, brand, strain, potency |
| Derived per person | Visit cadence, category & brand affinity, churn risk, predicted next visit |
| Ingest | Native POS bridge, read-only. Nothing about your operation changes. |
Marcus comes in every ten days and spends about a hundred dollars. On day eighteen your store has forgotten he exists. He hasn't quit you — he just ran out on a Tuesday, hit a different shop on the way home, and nobody said a word.
Day eighteen is where the money is. We hold every customer's personal rhythm — their own average, their own variance — and the moment somebody breaks it, the line reaches out with something they actually buy, from stock you actually have.
| Per customer | Average days between visits, median, variance, regularity score |
|---|---|
| Prediction | Next expected visit + a re‑up window, not a blanket 30-day rule |
| The trigger | Their own cadence + their own deviation — a 40-day regular isn't "lapsed" at 30 |
| The offer | Matched from purchase affinity — and checked against what's actually in stock |
Your shelf is triaged every night. What's flying, what's about to stock out, and what's been sitting so long it's just capital in a jar. Velocity per SKU, days of supply, margin — the ordinary part.
Here's the part that isn't ordinary. Dead stock doesn't become a report. It becomes a list of names: the customers whose seven-year file says they buy exactly that thing — and a message written to each one, priced at the discount that actually clears it.
"We've got forty units of a badder nobody's touching and it's three weeks from being old."
So it gets a shelf tag, a sad sign, and eventually a 50% blowout to whoever happens to walk in that day.
"Sixty-one customers have bought this exact category twice or more. Eleven are past their re-up window."
They each get one message, on their own day, about a product their own history says they want. The jar clears at 20%, not 50%.
Run the lifetime value curve on a real dispensary book and it doesn't slope — it steps. Before fifteen visits a customer is still shopping around, price-checking the shop down the road, loyal to nobody. After fifteen, they're yours, and the lifetime value goes somewhere the first fourteen visits never hinted at.
So the product has one mechanical job: walk every customer to visit fifteen. An eight-rung ladder does it — front-loaded so the habit forms fast, then spaced out as it takes hold, and every reward handed over in person, by a budtender, so it reads as generosity instead of a punch card.
| Visit 1 | Something free, immediately. The habit starts on day one. |
|---|---|
| Visits 2–4 | Three more, close together — house-brand product they'll actually use |
| Visits 6 & 9 | The gaps widen. Merch, then something they'd have paid real money for. |
| Visit 12 | The stretch rung — where a punch card loses people and a person doesn't |
| Visit 15 | The threshold. They're a regular now, and the math has changed. |
A customer checks in and their whole file opens on the counter screen before they've finished saying hello. So the kid who started Tuesday knows this person buys solventless carts every ten days, hasn't been in for eighteen, asked about badder twice and never bought it, and is one visit off a rung. Every budtender becomes your best budtender.
Value tier, lifetime spend, visits, average basket, days since last seen.
Days between visits, velocity trend, preferred day and hour, predicted next visit.
Category radar, top brands by spend, strain split, the products they repeat.
Google won't sell you ads. Meta won't sell you ads. Mass email won't touch you. And the big SMS aggregators every marketing platform is quietly reselling refuse age-gated cannabis traffic outright — which is why your competitors' texts are a bare link asking customers to "verify."
Conversation isn't one of your channels. It's the only one you're allowed. So we didn't rent it — we built the delivery layer ourselves, end to end.
| Layer 1 — Conversation | Your menu, your drops, your voice |
|---|---|
| Layer 2 — Intelligence | Cadence, affinity, drafting, sentiment. Ours, not an API we resell. |
| Layer 3 — The Desk | The CRM your team lives in during a shift |
| Layer 4 — Data | Your own Postgres. Row-level security, export any day, no hostage clause. |
| Layer 5 — Delivery | Our communications layer. Which is why there are no per-message fees on this page. |
| Layer 6 — Infrastructure | Commodity hosting you could run yourself after handoff |
Not a pilot in an easy category with a friendly ad platform. A licensed dispensary with 118,000 customer profiles, a book nobody had ever worked, and no legal way to advertise.
Proof-of-concept deployment, store anonymised at their request. We publish the mechanism, not mystery math — ask on the call and we'll walk through exactly how attribution was measured.
Read-only bridge to your POS. Years of history land in a database that belongs to you, and the cadence and affinity models build themselves overnight.
Your menu, your drops, your tone, your hours. The line can be you, a named budtender, or just "the shop" — your call, and it's changeable any week.
A real number at your counter that customers can text and call. First campaigns run in review mode: nothing sends until somebody on your team clicks approve.
Not new customers — the win-backs and day-fourteens hiding in your own book. Most stores see their first attributed walk-back inside the first week live.
Priced by what you switch on, not by how many rooftops you have or how many messages you send. No credits, no overages, no per-message line item — because we're not paying anybody else to carry your traffic.
The follow-up, handled. For a store that wants the texting done and nothing else disturbed.
The Thread, plus the desk your team actually runs the floor from.
Everything on this page, run for you — on infrastructure that ends up being yours.
The right first store is one sitting on years of POS history and a customer list nobody is working. You get the build shaped around your shop — and a $0 proof of concept on your own book before you commit to anything.