Skip to Content
GuidesCustomer pagesOverview

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

PageURLOwned byWhat it does
Bill{brand}.actii.me/b/{code}Active BillRenders the receipt for any order — POS, Commerce, Chat, Loyalty, Rewards, Feedback.
Feedback{brand}.actii.me/{outlet}/feedback?t=...Active FeedbackCaptures a star rating + comment from the customer.
Reviews{brand}.actii.me/{outlet}/reviews?t=...Active ReviewsRoutes positive feedback out to Google / Yotpo / TrustPilot.
Rewards{brand}.actii.me/{outlet}/rewards?t=...Active LoyaltyCatalog of redeemable rewards, points balance, redemption flow.
Members{brand}.actii.me/{outlet}/members?t=...Active LoyaltyPaid 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.

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 billInline behaviourNavigates to
Earned-points chipShows the points countRewards page
Membership upsell cardFull pricing + perksMembers page
Review prompt5-star strip — tap to rateFeedback 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

Where 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.