Skip to content

Push Notifications

Jonot sends a system notification to customers when their ticket transitions to CALLED — even when the browser tab is backgrounded or the phone is locked. Notifications are also sent when a skipped ticket is recalled and then called again.

  1. A customer is about to join a queue and sees the queue picker screen.
  2. A push opt-in card appears above the queue list — the customer taps Turn on notifications and grants browser permission before joining.
  3. Their browser registers a Web Push subscription.
  4. The customer joins the queue and receives a ticket. The subscription is linked to the ticket server-side.
  5. When a desk calls the ticket, the server sends a push message to all active subscriptions for that ticket.
  6. The customer's device wakes up and shows a system notification with the ticket number, queue name, and location. Tapping the notification opens the ticket screen.
  7. Subscriptions are automatically deleted when the ticket reaches a terminal state (COMPLETED, CANCELED, or NO_SHOW) or when the push endpoint expires (browser unsubscribed / permission revoked).

Customers who did not opt in on the queue picker can still opt in from the ticket screen — a notification card is shown while the ticket is WAITING or CALLED.

If a customer's ticket is skipped (moved to SKIPPED state), their push subscription is kept active. When staff subsequently recall the ticket (moving it back to WAITING) and then call it, the customer receives the push notification — even if they closed the ticket page.

This means a customer who opted in and then stepped away still gets notified when staff call them back, without needing to keep the browser open.

StateShown
Prompt (permission not yet requested)Opt-in CTA card (queue picker + ticket screen)
Permission granted + subscribed"We'll notify you — you can close this tab" confirmation
Permission deniedFallback advice + link to browser settings
Browser unsupportedNothing (silently skipped)

Once subscribed, push notifications are delivered by the browser even when the tab is closed or the phone is backgrounded — customers do not need to keep the ticket page open.

If the customer's device loses its WebSocket connection while the ticket page is open (for example after going offline briefly), a "Connection lost — reconnecting…" pill appears on screen. It is shown only for non-terminal tickets and never on initial page load. The connection is restored automatically; no manual action is needed.

iOS Safari 16.4+ supports Web Push, but only when the app has been added to the Home Screen (standalone mode). On iOS Safari in the regular browser:

  • The queue picker shows an "Add to Home Screen for notifications" guidance card above the queue list.
  • After adding to the Home Screen, the customer reopens Jonot from the Home Screen icon and the standard opt-in CTA appears.

Push subscriptions are linked to a single ticket. They are strictly transactional: one subscription exists for one ticket's lifecycle. There is no mechanism to send promotional or bulk pushes — only ticket-CALLED events trigger a notification.

GDPR / consent basis: the subscription is tied to the ticket the customer just created. The same consent basis (legitimate interest / performance of contract) that covers the ticket itself covers the single notification. No separate consent collection is needed.

  • Standards: Web Push with payload encryption per RFC 8291 (AES-128-GCM) and VAPID-authenticated requests per RFC 8292.
  • Subscription storage: each subscription is tied to one ticket and is automatically deleted when that ticket reaches a terminal state.