Skip to main content
When an agent replies (or a ticket’s status changes) while the user is away, ClarioDesk can fire an OS push notification. On tap, the SDK opens itself directly to the relevant ticket, with no host-side routing logic required.

How it’s wired

Push goes through a PushTokenProvider seam rather than importing a messaging library directly. Your app owns the Firebase/FCM plugin; the SDK just asks it for a token. This keeps Firebase’s native code out of hosts that don’t want push.
  • React Native: push lives in a separate package, @clariodesk/react-native-push, so Firebase never autolinks into a headless host’s binary. See the RN push guide.
  • Flutter: the PushTokenProvider abstraction lets you hand the SDK an FCM token without the SDK depending on firebase_messaging.
  • Swift (native iOS): no Firebase at all — forward the raw APNs token with ClarioDesk.setAPNSDeviceToken(token) from your AppDelegate. See the Swift push guide.

Delivery

End-user push goes out via FCM HTTP v1. iOS is reached through FCM → APNs. Each customer uploads their own service-account JSON per app in the dashboard, so notifications come from your own Firebase project. Native Swift hosts skip Firebase entirely: upload an APNs auth key (.p8) instead, and delivery goes straight to APNs from your own Apple credentials. The backend is presence-aware: if the user is actively connected, the push is suppressed (they’re already seeing the reply live).

Handling a tap

Route ClarioDesk messages in your shared push handler so they don’t collide with your app’s own notifications, then deep-link on tap:
React Native: registering the background message handler in index.js at startup is the #1 push setup-failure cause. Make sure it runs at app entry, not inside a component.
See the RN push guide for the full Firebase wiring.