Turn your Treez data into revenue-attributed email
This is our deepest POS integration, built by us and running in production stores tonight. Treez tells us what's new, what's expiring, what just came back, and who bought what. We turn that into ready-to-send campaigns, then close the loop by matching every campaign to the register receipts it produced.
Exactly what syncs, and how often
No hand-waving about "POS data." This is the actual connection screen's worth of detail: five data streams, their cadence, and what each one powers.
| Data stream | What flows | Cadence | Powers |
|---|---|---|---|
| Product catalog | Every product with image, brand, price, category, and a first-seen date, so “new” means new to your store, not new to a template library. | Nightly, in your store’s timezone | New-product grids, new-brand alerts, brand spotlights |
| Batch expiry | METRC batch expiry dates per product: which units will age out, and how many will not sell through at current velocity. | Nightly | Expiring-product flash sales, ranked by units at risk |
| Restock events | Products that just ended a multi-day zero-stock streak, with how long they were gone. | Nightly snapshot comparison | Honest back-in-stock emails (“back after 12 days away”) |
| Ticket lines | Completed tickets, line by line, joined to customer email: items, quantities, discounts, in-store vs pickup. | Nightly; completed tickets only | Best-seller proof lines, purchase segments, revenue attribution |
| Customers & tickets feed | Customer emails and phones with full ticket history and order source. License and medical fields are dropped at ingestion. We never store them. | Nightly; first backfill ≈ 10 minutes | Win-back detection, send-time analysis, segment substance |
Read-only. Every request is HMAC-signed. The nightly job runs in your store’s timezone at roughly 10–25 small API calls per day. Your registers and menu never feel it.
What the Treez feed unlocks
Each stream above maps to specific auto-generated campaigns and reports. All of these are live today:
New products, ranked by velocity
One live store surfaced 395 genuinely new products in a 30-day window. The suggested email led with the fastest seller’s photo and laid the rest out in a price-tagged card grid with menu deep links.
Expiring-product flash sales
Batch expiry dates plus actual sell-through rates tell us which products won’t clear in time. The suggestion feed drafts the flash sale while there’s still time to move them, ranked by units at risk.
Back-in-stock emails
Restock detection catches products returning from a multi-day zero-stock streak, so the email can honestly say “back after 12 days away” instead of pretending it never left.
Best sellers with receipts
Revenue-ranked photo cards computed from real ticket lines. Proof lines like “203 sold this month” come from the register, not a merchandiser’s hunch.
Win-back, with the segment built for you
Lapsed-regular detection found 899 overdue customers at one store, then auto-created the matching segment, so the win-back campaign was one review away from sending.
Best time to send
A 7×24 histogram over 25,000+ of your own tickets, in your store’s timezone, tells the send wizard when your customers actually shop: “Friday early afternoon,” not a generic best practice.
Purchase-rule segments
Purchased (or didn’t) within N days, spend over $X in 90 days, X+ purchases in a window. These are segments built from tickets, which no click-based tool can see.
POS revenue attribution
Buyers, tickets, and register-verified revenue per campaign in 1, 7, and 14-day windows, with named buyer rows and in-store vs pickup splits. Completed tickets only, never estimates.
The last one deserves emphasis: campaign-to-POS revenue attribution requires completed ticket lines joined to customer emails, which is exactly what this feed carries. One campaign showed $4,843 of POS-verified revenue in its 7-day window; the first buyer purchased six minutes after the send. That level of proof only exists on a POS integration this deep.
Setup: an API key, not a project
Connecting Treez is usually done in under a day end to end. Most of that is waiting on whoever holds the credentials, not on the integration.
- 0:00
Paste your Treez API credentials
A read-only key, stored masked. The integration is HMAC-signed on every request and never writes anything back to Treez.
- 0:10
First backfill lands
One live store’s initial export pulled 22,085 customers and 59,406 tickets in roughly ten minutes. Typical history depth: six months.
- same day
The suggestion feed fills
New products, best sellers, win-back, and expiring-batch campaigns start appearing. Each one arrives designed, with a visible “why this email” reason and the score math behind it.
- night 1
The nightly rhythm begins
From then on it’s a scheduled sync in your store’s timezone at roughly 10–25 lightweight API calls a day, and attribution starts matching campaigns to register receipts.
How Alpine IQ and SpringBig treat Treez
Alpine IQ connects to Treez, and if you need SMS plus a dozen other channels stitched together, that catalog of integrations is a fair reason to shortlist them. But their integration model is audience-plumbing: POS data feeds segments that rematerialize roughly nightly, G2 reviewers report syncs that take up to 24 hours to reflect, and campaign creation still starts from a static template library. SpringBig's Treez connection primarily feeds SMS loyalty accrual. Email is widely reported as its weaker toolset, and there's no products-with-photos campaign engine sitting on top of the POS feed.
Our Treez integration exists to draft the email for you, using your products, your images, your prices, and your menu links. Then it proves what that email earned. If you're weighing the two approaches, the Alpine IQ alternative comparison walks through it row by row.
And the generic-ESP route?
Klaviyo and Mailchimp have no native Treez connector, so a Treez store on a generic ESP is really running a CSV-upload workflow with extra steps: no batch expiry, no restock detection, no ticket-level attribution, and a compliance posture that ranges from "email tolerated" (Klaviyo, which bans cannabis SMS outright) to genuinely risky account-freeze territory. Add shared sending IPs and you inherit someone else's reputation, which is exactly why we run dedicated IPs per store on infrastructure approved with full cannabis disclosure.
Frequently asked questions
See your Treez store's campaigns before you sign anything
Book a demo and we'll connect a sample of your data. You'll watch the suggestion feed fill up with campaigns built from your own products and tickets.