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 — no host-side routing logic.
How it’s wired
Push deliberately rides 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.
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.
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:
// In your push handler:
ClarioDesk.handlePushPayload(payload);
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.