How subscribers opt in
A visitor subscribes from a popup on your storefront. The popup’s “Get browser notifications” element requests permission, registers a service worker, and stores the subscription.The push service worker must be served same-origin to the storefront. It’s
proxied per platform: Shopify via the app proxy
(
/apps/senderz/push-sw.js), WooCommerce via the plugin
(/senderz-push-sw.js). Konimbo has no same-origin static path in v1, so
push renders inert there.Per-endpoint model
Push consent is tracked per browser endpoint (a hash of the subscription URL), not per email or phone. A contact can subscribe from several browsers; revoking one doesn’t affect the rest.Fan-out
A push send fans out across every live subscription for the contact.
Auto-revoke
A provider
410 Gone / 404 marks that one subscription revoked and
suppresses its endpoint. If it was the contact’s last live one, push
consent drops to unsubscribed.Compliance & pipeline
Marketing push runs through the same gates as SMS minus the wallet — there’s no per-message cost:- per-endpoint suppression,
- push consent,
- frequency caps,
- Israeli quiet hours and Shabbat (marketing push is blocked the same way marketing SMS is).
Templates & payload
Push templates carry atitle, body and url. Payloads are capped at ~3,500 bytes and rejected before the network call if larger.
Test sends
Send a test push to a specific contact from the contact’s profile. Test sends still apply per-endpoint suppression; consent, caps and quiet hours are skipped because you’re previewing your own content.Silent endpoint rotation (
pushsubscriptionchange) is handled lazily — the
next send that returns 410 revokes the stale endpoint, and the visitor
re-opts in via the popup next time it shows.
