Slice F rounds out the Service Business + Storefront bundle with two customer-facing capabilities:
- WhatsApp + SMS pay links — the Send-pay-link flow that used to only email now dispatches over WhatsApp or SMS via Twilio too.
- Unified status link — one URL a shop can share
(
{tenant}.bsensor.app/status/{token}) that resolves to whichever sub-page fits the customer's session type — no need to remember which URL family applies.
Before you start
For WhatsApp/SMS pay links
- Twilio credentials must be provisioned on the deployment. Ask an
administrator to set
Twilio:AccountSid,Twilio:AuthToken, and at least one ofTwilio:FromWhatsApp(WhatsApp sender inwhatsapp:+…format) /Twilio:FromSms(SMS sender in E.164 format). - The customer must have a phone number on file on the Customer master OR you can override it at Send time.
- WhatsApp Business number approval — Twilio's sandbox works for testing; production tenants need an approved WABA number that Twilio provisions after Meta's onboarding.
For the status link
- Nothing extra — every session (Slice A shop order, Slice B pay-link
SO, Slice C booking, Slice D walk-in) already has a
PublicToken. The status link works for any of them.
Steps — Send a pay link via WhatsApp
- Open the SO from Sales → Sales Orders.
- Click Send pay link.
- In the send dialog, pick WhatsApp as the channel (previously the dialog only offered Email).
- Confirm the phone number (customer's default, editable).
- Confirm and send. Toast confirms with the sent-to number.
The customer receives a short WhatsApp message with the shop's name,
the SO reference, the amount due, and a tap-through pay link. Tapping
opens their browser at /so/{token} — same page they'd get from email.
Steps — Send a pay link via SMS
Same flow as WhatsApp — pick SMS in the channel dropdown. Body is short enough to fit a single SMS segment for typical shop+doc name combos; longer names still send (Twilio segments transparently) but use more credit.
Steps — Share a status link
- Open the session or SO or booking on the operator side.
- Copy the public token from the URL bar (the guid segment).
- Compose
https://{your-subdomain}.bsensor.app/status/{token}and share.
The customer opening this link:
- Shop link session → redirects to
/shop/{slug}. - SO pay link session → redirects to
/so/{token}. - Booking session → redirects to
/booking/{token}. - Walk-in session → shows a compact status card with contact info and asks the customer to reach out to the shop for more info.
Tips
- WhatsApp is more likely to be read — Nigerian customers open WhatsApp faster than email or SMS. Prefer it as the default channel once your tenant's WABA number is approved.
- SMS is the universal fallback — customers without WhatsApp still
get SMS. Set both
FromWhatsAppandFromSmson the deployment so operators can pick per-message. - Status link is one URL to rule them all — a shop can print a
QR code that points to
/status/{token}and swap the sub-page later (e.g. Slice A ships, then Slice D redirects to a richer view) without reprinting. - Channel picker hides unsupported channels — the Send dialog only shows channels the resolver can currently handle. If Twilio isn't configured, WhatsApp + SMS won't appear as options.
Common problems
- "The WhatsApp channel isn't configured for this shop yet" →
Twilio credentials missing. Admin needs to set
Twilio:AccountSidAuthToken+FromWhatsAppon the deployment. Same fix for the SMS variant withFromSms.
- WhatsApp message sent but not delivered → the customer's number may not be a WhatsApp user, or Twilio requires them to opt-in to your WABA first (sandbox behaviour). Check the Twilio dashboard for the message status — the SID logged on send is your key.
- Body arrives with a URL that opens the wrong page → the operator
probably shared
/shop/{token}when the session was a SO. Share/status/{token}instead; it dispatches correctly regardless of Kind. - Status link says "not found" → the token is wrong, the session was cancelled, or the URL was mistyped. Copy the token from the address bar of the session's operator page, not from memory.
- Walk-in session's status page shows a bare summary card → that's intentional — walk-ins have no customer-facing sub-page in v1. If the customer needs more detail, they should contact the shop.