Customer pages
Every customer-facing surface in Active Reach lives on one of five hyperlinked pages. They share a single identity token so a customer who lands on one page is recognized on the others — no second login, no re-typing their phone number.
The five pages
| Page | URL | Owned by | What it does |
|---|---|---|---|
| Bill | {brand}.actii.me/b/{code} | Active Bill | Renders the receipt for any order — POS, Commerce, Chat, Loyalty, Rewards, Feedback. |
| Feedback | {brand}.actii.me/{outlet}/feedback?t=... | Active Feedback | Captures a star rating + comment from the customer. |
| Reviews | {brand}.actii.me/{outlet}/reviews?t=... | Active Reviews | Routes positive feedback out to Google / Yotpo / TrustPilot. |
| Rewards | {brand}.actii.me/{outlet}/rewards?t=... | Active Loyalty | Catalog of redeemable rewards, points balance, redemption flow. |
| Members | {brand}.actii.me/{outlet}/members?t=... | Active Loyalty | Paid membership perks, tier benefits, renewal status. |
{brand} is your brand’s subdomain slug (the workspace slug — one workspace per brand). {outlet} is the outlet code that scopes the page to a specific location. t=... is the customer identity token (see Token persistence below).
The Bill page is the only customer surface that omits the outlet code from the path — the bill code itself resolves to the issuing outlet, so the URL stays short enough to print on a receipt or encode in a QR.
How they link together
The pages cross-link in opinionated ways — the customer is led where the action makes sense, not where the data model dictates.
Bill ─┬─→ Feedback (rate this order)
├─→ Rewards (you earned points)
├─→ Members (upgrade for free delivery)
└─→ Reviews (loved your meal? share it)
Feedback ─┬─→ Reviews (positive: route to Google)
└─→ Support (negative: open a chat)
Rewards ─→ Members (this perk is exclusive to VIPs)Token persistence
The same ?t=... token works on every page. The SDK reads it on first visit, stores it in a first-party cookie, and re-attaches it on subsequent visits. A customer who scans a QR code on a printed receipt is identified the moment they land on the bill page — and stays identified across feedback, rewards, and members.
This is why you only see one token in the URL. The remaining pages read it from cookie.
If the SDK can’t read the cookie (e.g. private browsing), the page falls back to a phone-number prompt with OTP.
Hybrid inline-vs-navigate
The bill page is the gateway. Rather than redirecting customers off the bill the moment they want to do anything, Active Reach inlines small affordances and only navigates for full flows:
| Affordance on the bill | Inline behaviour | Navigates to |
|---|---|---|
| Earned-points chip | Shows the points count | Rewards page |
| Membership upsell card | Full pricing + perks | Members page |
| Review prompt | 5-star strip — tap to rate | Feedback page |
Result: customers never wait for a page load to see what they got, but a full redemption flow still gets its own page.
What each page does
Shared receipt page — always-on across all Active products.
BillStar rating + comment capture, with routing rules for positive vs negative.
FeedbackSend happy customers to Google / Yotpo / TrustPilot.
ReviewsCatalog browsing and points redemption.
RewardsPaid membership tier, renewal, perks display.
MembersWhere the templates live
The look and feel of each page is authored on the corresponding product’s workspace page — there is no separate “defaults” route. Tier is picked by the chip-strip’s outlet selector:
- Chip = “All outlets” → writes the brand-tier template (every outlet inherits).
- Chip = a specific outlet → writes an outlet-tier override that wins over the brand template for that location.
For the Bill page that surface is /dashboard/[workspaceSlug]/connected-products/active-bill. Each of the other four pages has its equivalent admin surface inside its product (Feedback, Reviews, Loyalty). See the Bill page guide for which fields cascade and which are outlet-tier only.