Skip to main content
All methods are static on ClarioDesk. Reads are exposed as Streams that auto-prime and then live-update.

Lifecycle

init

Call once at app start. Generates the hardware key + registers the device on first launch; reuses it afterward. Pass a theme only if you use the prebuilt UI.

identify

Without a token, attach unverified display metadata. With a token/provider, perform Verified identity. Proof failures never fall back to labels. externalId is your auth system’s stable user id (Firebase user.uid, Clerk user.id, Auth0 user.sub) — never an auth token, never an email; full table.
Use clearIdentity() before Verified-identity logout/account switch.

reset

Acknowledged one-installation revoke, followed by hardware-key/cache wipe. It is not logout or customer erase. The next init() registers a fresh device.

Tickets & messages

createTicket

sendMessage

Optimistic: the message appears as pending immediately and settles on success.

ticketsStream

Reactive inbox. Auto-primes from cache, then streams live updates.

messagesStream

Reactive thread for one ticket.

CSAT

submitCsat

See CSAT.

Attachments

attachmentUploadProgress

Per-upload progress, from 0.0 to 1.0.

refreshAttachmentUrl

Re-presign an expired GET URL. See Attachments.

Push

Push payload helpers

resolvePushTarget validates the current device/identity envelope and resolves the opaque deliveryId through the signed API. It returns TicketPushTarget(ticketId), InboxPushTarget(), or null when the push is not for the current installation. Raw notification data never contains a ticket id. openTicketFromPush remains the generic 0.2.x compatibility shim.

Support attention

Custom UIs mark SupportSurface.inbox or SupportSurface.ticket(ticketId) only while that route is focused, and clear it on blur/pop. The SDK handles app background/resume. Prebuilt screens manage the surface automatically. See Push notifications.

Connection

connectionStream

Observe realtime connection state: connecting, connected, reconnecting, disconnected, fatal. See Realtime.
The React Native SDK mirrors this surface 1:1 with the same method names and semantics, and the Swift SDK implements the same contract in Swift idioms. If a capability behaves differently across the SDKs, it’s a bug. See the RN API reference and the Swift API reference.