GTM / Product Playbook · Puerto Rico · June 2026

Shopper Acquisition & Engagement Playbook

How Cachealo earns shopper identity, attention, and repeat engagement across five channels — and how each one feeds the same phone-anchored data spine that makes redemption verifiable.

BeachheadSelectos — 41 stores, board-committed
Identity keyShopper phone number
Primary engagement surfaceWhatsApp (CTWA-inbound)

The Acquisition Flywheel

Every channel exists to do one of two jobs: capture a phone number against an identity, or close the loop from offer to verified redemption. WhatsApp sits at the center because it's both the engagement surface and the identity key — everything else feeds it or feeds off it.

01QR / Social / Retailer Post
02WhatsApp Opt-In
(phone captured)
03Offer Clip
(WA, App, or Web)
06Shopper Forwards Deal
(Earned Sharing)
05WhatsApp Retention Nudge
04POS Redemption
(TLog match on phone)

Why this ordering matters

Acquisition channels (QR, retailer social, earned shares) are cheap and infinite. WhatsApp opt-in is the one irreversible conversion event — it's where an anonymous shopper becomes a phone-keyed identity Cachealo can measure for life. Everything upstream of step 2 should be designed to push toward it; everything downstream should be designed to make step 6 happen without being asked twice.

Channel 01

WhatsApp

Primary engagement, identity capture & redemption channel

WhatsApp is not a marketing channel for Cachealo — it's the data layer's front door. The phone number a shopper opts in with is the Shopper key that later matches against the POS TLog at redemption.

Design implication: every other channel's job is to get a shopper into this thread, not to replace it.

Opt-in cost: QR / Social / Retailer Post

All three opt-in sources are shopper-initiated — the shopper taps a wa.me link and sends the first message. That distinction drives what's free and what isn't:

Nudging the shopper toward the app

The app nudge is its own message, sequenced after the shopper has already gotten value — not bundled into the welcome message:

Where WhatsApp's in-app webview fits

WhatsApp now opens links from structured business messages inside its own in-app browser by default, so the shopper never leaves the chat. That's the right behavior for most taps — except one:

Channel 02

Cachealo Website

Organic front door, account hub, install surface

Channel 03

In-Store QR Codes

Physical-to-digital bridge at the point of decision

Channel 04

Retailer-Owned Social Media

Trust transfer + zero-CAC distribution

Channel 05

Earned Social Media (Sharing)

Compounding, zero-cost acquisition loop

Deep Dive: Cachealo App — Native vs PWA

This is the one channel decision with real engineering cost attached, so it gets a full evaluation rather than a default answer. The short version: the app is a utility surface, not the engagement engine — that job already belongs to WhatsApp — and that single fact changes the calculus for which weaknesses actually matter.

Comparison matrix

Criterion Native App PWA
Time to ship 6–10 weeks build, plus App Store / Play Store review queues for every release Days; ships on the existing web stack, no review cycle
Multi-retailer scaling Each co-branded retailer variant risks a separate build/listing, or heavy white-label tooling One codebase; retailer theming served dynamically by URL/config — matches the neutral infrastructure model
Push notifications Full native push, Live Activities, Time-Sensitive interrupts (iOS + Android) Android: full parity. iOS: works only after manual "Add to Home Screen" (no auto-install prompt); no Live Activities; subscriptions can silently lapse
Offline / background refresh Background fetch — fresh prices/cart before the app is even opened No Background Sync API on iOS; content refreshes only when the user opens the app
QR / camera scanning Full native camera APIs getUserMedia covers in-store QR scanning on both Android and iOS Safari — no material gap here
Hardware access (NFC, Bluetooth) Full access on both platforms iOS blocks Web NFC, Web Bluetooth, WebUSB; Android is more permissive
Dev & QA cost Two platform codebases (or React Native), plus OEM/version QA matrix One codebase reusing the existing web stack; small lean team (Sebastian) can own it
Discovery App Store / Play Store search, "legitimacy" badge of being listed No store presence — but Cachealo's acquisition already runs through WhatsApp/QR/retailer social, not organic store search
Update velocity Subject to review queue (typically 1–3 days, longer if flagged) Instant server-side deploy

Puerto Rico market context — Android-predominant

Decision

Build PWA-first. Do not build native for launch.

When to revisit native

This is a phased decision, not a permanent one. Re-open the native question if any of the following becomes true:

Making the dynamic barcode easy to retrieve

If the GS1 8112 redemption code rotates or expires (the anti-fraud behavior the model already assumes), it can't be a static image sent once into a chat — both surfaces need to render the live code on demand, not a stale screenshot.

Camera access: QR scans today, product photos later

Worth being precise here rather than assuming uniform behavior, because the two use cases rely on different mechanisms.

Luisa's Journey: From Discovery to Continuous Relationship

One shopper, traced end to end — from the moment she sees a deal to becoming a repeat, identified, multi-channel shopper. 

L
Luisa, 34 — Bayamón, PR Selectos shopper, household of four · Android phone · active in family WhatsApp group chats · price-conscious, buys on a fairly regular weekly/biweekly cycle

First: confirming push notification cost

Yes — once installed, push notifications are free on both platforms

This is a different cost model from WhatsApp entirely, and it's the fact that shapes the cadence below:

Net effect: push is the cheapest channel Cachealo has at scale — which is why the cadence below leans on it for routine, frequent touches and reserves WhatsApp for higher-trust, lower-frequency moments.

The Journey

Six stages, each with the channel doing the work, what Luisa experiences, what Cachealo sends, and what it costs.

0

Discovery

Day 0 · Minute 0 QR / Social / Earned Share
Luisa's experience

She scans a shelf-talker QR in the Selectos detergent aisle — or her cousin forwards her a deal in the family WhatsApp group.

Cachealo's role

None yet. This stage belongs entirely to the physical QR placement, the retailer's social post, or someone else's share — Cachealo hasn't said anything to Luisa yet.

Cost: $0 — no message sent yet
1

WhatsApp Opt-In

Day 0 · Minute 1–5 Free
Luisa's experience

Taps the link, lands in a chat with a pre-filled message, hits send. The 24-hour free service window opens. Her phone number is now her Shopper key.

Cachealo sends
"¡Bienvenida, Luisa! 👋 Aquí están las ofertas de esta semana en Selectos:" — followed by a list of 3 offers.
Cost: Free — shopper-initiated, inside the 24-hour service window. No app mention yet.
2

First Clip → First Redemption

Day 0–3 In-Store POS
Luisa's experience

Clips 2 offers right in the chat. A few days later at checkout, she taps "My Coupons" in WhatsApp, the live barcode loads in WA's in-app webview, the cashier scans it. TLog confirms the match against her phone number.

Cachealo sends
"✅ ¡Ahorraste $3.50 hoy! Tu ahorro total: $3.50." — sent right after the POS match confirms.
Cost: Free if she's recently engaged (clip/replies reopen the window); a Utility template if the window had closed by redemption time. This message is the single highest-trust moment in the whole journey.
3

App Install Nudge

Day 3–7
Luisa's experience

Gets a plain-text link (not a button — so it opens her real browser, not WhatsApp's webview). Taps it, Chrome shows the native "Install" banner (Android — no manual steps), she installs in one tap.

Cachealo sends
"¿Quieres tener todas las ofertas a un toque, incluso sin abrir WhatsApp? Agrega Cachealo a tu pantalla de inicio 👉 [link]"
Cost: Free if sent inside a reopened window; a Utility-template reminder (small cost) if she's gone quiet and the window has closed.
4

Engagement Loop

Ongoing · ~Weekly Push (primary) Free
Luisa's experience

Tuesday morning, a push notification: this week's deals are up. She opens the app, browses, clips a few. Some weeks she replies in WhatsApp instead — that reopens the free window there too.

Cachealo sends
Push: "🛒 Nuevas ofertas esta semana en Selectos — toca para ver" — once a week, aligned to the ~4.3 offers/month cadence already in the model.
Cost: Push = $0 marginal cost per send. This is now the default channel for routine, frequent touches — WhatsApp stays reserved for higher-value moments.
5

Continuous Relationship

Ongoing · Basket-cycle-aware Push
Luisa's experience

Gets a push timed to her actual diaper-buying cycle, not a calendar guess. After a good month, gets a warm milestone message in WhatsApp — and after a strong redemption, a light "share this" nudge she forwards into her family group, creating the next Luisa.

Cachealo sends
Push: "Ya casi se te acaban los pañales — 15% de descuento esta semana 👶"
WhatsApp (monthly): "🎉 ¡Has ahorrado $42 este mes con Cachealo!"
Cost: Push = free, data-driven from TLog basket-cadence signals. WhatsApp milestone = infrequent (~monthly), small cost, deliberately spent on trust-building rather than routine nudging.

Suggested Cadence

The timing the team should design against — not a fixed broadcast calendar, but a set of triggers with rough frequency.

TimingTriggerChannelCost
Day 0Discovery touch (QR / social / share)Physical / social$0
Day 0WhatsApp opt-in + welcome + first offersWhatsAppFree (service window)
Day 0–3First redemption confirmationWhatsAppFree / Utility
Day 3–7App install nudgeWhatsApp → BrowserFree / Utility
WeeklyOffer drop (~4.3/month)Push (primary), WA if she's active thereFree
Event-triggeredEvery redemption confirmationPush or WhatsApp, whichever window is openFree / Utility
Basket-cycle-awareReplenishment nudge (timed to her actual purchase rhythm, not a fixed date)PushFree
MonthlySavings milestoneWhatsAppSmall, deliberate cost
Every 2nd–3rd redemptionEarned-share promptPush or WhatsAppFree / light-touch

The design principle to carry through

Push is free; WhatsApp isn't, outside the service window. That asymmetry should directly shape who gets which message: once a shopper has installed, push should absorb the routine, frequent, expected touches (weekly offers, replenishment nudges) precisely because there's no per-send cost ceiling on it.

WhatsApp should be spent deliberately on the moments that build trust or require a reply — the welcome, the first redemption confirmation, the install nudge, and occasional milestones — not on routine weekly broadcasting. That keeps the highest-trust channel from feeling like spam, and keeps the Meta bill predictable as the shopper base scales past Luisa to the full Selectos footprint.

Implementation Roadmap

Sequenced against the Selectos go-live gate, not on a separate timeline.

Phase 0
Pre-launch

Identity capture infrastructure live

WhatsApp CTWA-inbound flow built and tested; Cachealo website live as offer catalog + PWA install surface; in-store QR placed at Selectos pilot stores; Selectos co-branded social content calendar kicked off.

Phase 1
Go-live + 90 days

PWA installable, push live where it works

Push opt-in flow shipped (full on Android, "Add to Home Screen" nudge sequence on iOS); earned-sharing mechanics (forward-to-friend, post-redemption nudge) turned on; actual OS split measured from real Selectos traffic to size the iOS push gap with data instead of assumption.

Phase 2
Multi-retailer scale

Farmacias Aliadas + pharmacy channel

Retailer-themed PWA instance for Farmacias Aliadas; pharmacy-counter QR for the Caravan K-beauty sampling sequence; retailer social expansion to the pharmacy channel's own following.

Phase 3
Post-proof

Native re-evaluation checkpoint

Revisit the native app decision against the trigger conditions above, using real usage and push-reliability data rather than projections.

Channel KPIs

ChannelPrimary metrics
WhatsAppOpt-in rate from CTWA/QR source; offer clip rate; redemption rate; reactivation rate after a nudge
WebsiteVisit → PWA-install rate; visit → WhatsApp opt-in rate; bounce rate by retailer landing page
App / PWAInstall rate; push opt-in rate split by iOS vs Android; DAU/MAU; offers clipped in-app vs in-WA
In-store QRScan volume by placement type (shelf / endcap / register / receipt); scan → opt-in conversion
Retailer socialReach; engagement rate; click-through to QR or WhatsApp opt-in
Earned sharingShare rate per redemption; referred-shopper activation rate; viral coefficient