Case Study Live at stickysignal.io ↗ Cannabis Tech Multi-Tenant SaaS

StickySignal. An AI-first CRM built
for cannabis dispensaries.

Carrier-grade SMS. AI agents that run campaigns autonomously. Full compliance. Built from scratch by IPS because no existing CRM handles what cannabis dispensaries actually need.

Multi-tenant
Architecture
Carrier-grade
SMS delivery
7 AI Agents
Built-in, specialized
HIPAA-ready
Design & architecture

Cannabis dispensaries cannot use
any of the standard tools.

Three compounding problems that generic software does not solve, and that no single vendor in the market addresses all at once.

SMS Platforms Reject Them

Twilio, Mailchimp, and every standard SMS marketing platform refuses cannabis clients outright. There is no workaround on those networks. You need a different carrier path entirely.

CRMs Have No POS Concept

Generic CRMs have no concept of segmentation by product type: flower, edibles, concentrates. No POS-synced customer data. No purchase history at the category level that drives real targeting.

High Revenue Left Untouched

Dispensaries are highly repeat-purchase businesses. The right message at the right time drives significant revenue, but only if you can reach customers and only if you know which ones to target when.

StickySignal solves three problems simultaneously: the compliance problem (carrier-grade SMS through channels that work for cannabis), the segmentation problem (POS-synced customer data by product preference, spend tier, and visit frequency), and the campaign problem (AI agents that autonomously draft, schedule, and optimize campaigns without requiring operator intervention on every send).

Four engineering layers.
Every one non-trivial.

01

The CRM Architecture

Multi-tenant Next.js 16 application backed by Supabase PostgreSQL. Every dispensary's data is completely isolated at the database layer via PostgreSQL row-level security — not application logic. One Supabase project serves all tenants with zero cross-tenant data bleed. No per-tenant database spinning, no complex routing. RLS handles isolation at the query level, invisibly, in a way that cannot be bypassed by application code.

Data Isolation
  • PostgreSQL row-level security per tenant
  • Zero application-layer isolation logic
  • Single Supabase project, unlimited tenants
  • No cross-tenant data bleed possible
Customer Segmentation
  • POS sync: flower, edibles, concentrates
  • Visit frequency + spend tier scoring
  • Last-visit decay modeling
  • Real-time segment refresh from POS
02

Carrier-Grade SMS

Standard SMS providers reject cannabis clients categorically. IPS identified and integrated with carrier-grade SMS providers operating compliant cannabis pathways. The result: campaigns that actually land in inboxes. Full compliance tracking on every send: opt-in, opt-out, consent timestamps, and delivery receipts. SMS converts to a store visit in an average of 1.5 days — far faster than email.

Real Campaign Results Measured vs. holdout control
22.4%
Campaign conversion (619 of 2,800 targeted)
$70.4K
Revenue in 30 days at one location, vs. holdout control
179
Lapsed customers revived, worth $13,706
1.5-day
Avg SMS → visit
A/B Tests
Built-in split testing
Send-time
Optimization engine
Closed-loop
Revenue attribution
03

The AI Agent Layer

Seven built-in AI agents, each with a specialized role and distinct context window. They work in sequence: Analyst identifies the segment, Campaign Expert drafts the message, system schedules the send, manager approves, sends go out. Autonomous campaign execution with a human in the loop only where it matters: final approval before any SMS goes out.

📊
Data Analyst
Surfaces customer tier insights, segment performance, and reactivation opportunities directly from raw POS data. Tells you who to target before you even think to ask.
Campaign Expert
Drafts SMS messages with personalization tokens, compliance language, and character limits built in. Suggests optimal send times based on historical engagement patterns per customer segment.
📈
Business Advisor
Revenue forecasting and product mix analysis. Identifies highest-margin campaign opportunities across the customer base and flags seasonal patterns.
🛡
Customer Success
Identifies at-risk customers before they churn. Flags accounts showing early decay signals by visit cadence and spend trajectory so you can intervene before they are gone.
📦
Inventory & Products
Ties current product stock levels to campaign eligibility. Prevents campaigns from going out for out-of-stock SKUs. Surfaces which products have inventory to move.
🔮
Forecasting Agent
Predicts campaign performance before launch using historical cohort data. Generates a revenue estimate and expected open rate before you approve any send.
💬
General Assistant
Handles ad-hoc queries across the full dataset. Natural language interface to all dispensary data — ask anything, get a structured response with recommended next actions.
Agent Execution Flow
Analyst identifies segment Campaign Expert drafts SMS System schedules send Manager approves Sends at optimal time
04

The Dashboard

Six core views, each purpose-built for dispensary operators. Designed so a non-technical manager can run sophisticated AI-powered campaigns from day one without reading documentation or asking for help.

Overview
AI Chat
Campaign Builder
AI Suggestions
Insights
Message Hub
Overview

Campaign metrics dashboard: open rates, attributed revenue, win-backs, send volume. Real-time numbers, no refresh required.

Campaign Builder

4-step wizard: select segment, draft message, schedule send, approve and launch. Forecasting Agent shows predicted revenue before you hit send.

AI Chat & Suggestions

Database assistant with all 7 agents via natural language. AI Suggestions auto-generates campaign ideas based on who has not visited in 30, 60, or 90 days.

Message Hub

Real-time monitoring of send status, delivery receipts, opt-outs, and revenue attribution as it comes in from the POS feed post-campaign.

Modern. Owned. No vendor lock-in.

Frontend
Next.js 16ReactTypeScriptTailwind CSS
Backend
Next.js API RoutesSupabase Edge FunctionsDeno
Database & Auth
Supabase PostgreSQLRow-Level SecuritySupabase Auth
AI & Messaging
7 LLM AgentsCarrier-grade SMSCannabis-compliant paths
Hosting & Integrations
Vercel (frontend)POS Sync (real-time)Revenue AttributionCompliance opt-in/outHIPAA-ready designA/B send testing

Five problems no off-the-shelf
tool solves simultaneously.

01
Cannabis SMS compliance
Standard SMS providers do not work. Twilio rejects cannabis clients at the account level. IPS had to identify, evaluate, and integrate carrier-grade providers with compliant cannabis pathways, then build opt-in/opt-out tracking that satisfies carrier requirements on every send.
02
Multi-tenant isolation at the database layer
Row-level security at the PostgreSQL layer, not application logic. Data separation that cannot be bypassed by any bug in application code. Every query is automatically scoped to the authenticated tenant. One Supabase project serves all dispensaries with guaranteed zero cross-tenant bleed.
03
AI agent orchestration across shared data
Seven specialized agents with distinct contexts and prompts, working in sequence on the same tenant dataset. Managing context windows, agent handoffs, and result coherence without agents contradicting each other required careful orchestration design. Each agent knows what the previous one produced.
04
Real-time POS synchronization
Customer data must sync from dispensary point-of-sale systems into the segmentation engine in near-real-time. Different POS vendors export in different formats. The normalization layer handles schema inconsistencies without losing purchase history fidelity or breaking segment membership.
05
Closed-loop revenue attribution
Tracking from SMS send to customer visit to attributed sale. Matching anonymous POS transactions back to the customer who received the campaign, within the correct attribution window, without double-counting organic walk-in traffic that would have come in regardless.
IPS-Builds.com

Have a vertical too specific
for generic software?

StickySignal started as a CRM for cannabis dispensaries. It became a multi-tenant AI platform with carrier-grade SMS because the actual problem required it. That is how IPS works: we build to the problem, not to what already exists in the market.