Skip to main content
You don’t have to use the floating launcher. The SDK can run behind your own buttons, inside your page layout, or with no visible UI at all while your code renders the call from callbacks.

Choose a level of control

Your own button

With showFab: false, the idle launcher is hidden. The call window still opens when a call starts, so visitors get the transcript, forms and controls.
On the script tag, use data-show-fab="false" and call window.Callers.widget.call().

Fully custom UI

With hidden: true the SDK renders nothing; you build the UI from callbacks and drive it with methods.
Things to handle yourself in a custom UI:
  • In-call forms. Messages with a widget field are forms. Render them, then send the answer with sendInput(JSON.stringify(values), message.id). Skip messages where widget.viewOnly is true; they expect no answer.
  • Unspoken messages. Hide messages with skip: true.
  • Bot protection. With a hidden widget, the SDK shows the Turnstile check centered on the page. To place it yourself, bring your own token.
  • Text conversations. Starting a text-only conversation is built into the widget’s composer; in a hidden setup, start with call() and use sendInput() for typed messages.

React

Load the SDK once, create the WebCall in an effect, and destroy it on unmount.
useCallersWebCall.ts
Because the script is loaded without data-agent, it doesn’t create a widget of its own. In React Strict Mode, effects run twice in development; the cleanup above destroys the first instance, so only one widget remains.

React Native

The SDK runs in browsers, so in a React Native app run it inside a WebView. The WebView page loads the SDK, and your native code talks to it with messages.
CallScreen.tsx
Checklist:
  • Use token authentication. A WebView page has no reliable origin for the domain list. Fetch the token from your backend in native code and inject it.
  • Microphone permission. Declare it in the app (NSMicrophoneUsageDescription on iOS, RECORD_AUDIO on Android) and let the WebView use it, as above.
  • Bot protection. Turnstile has no native SDK. Render it in the WebView, or let the SDK’s built-in check run there, and pass the token to call(captchaToken). See Bot protection.
  • Starting audio. Start the call from a user tap (forwarded as a message) so the platform allows audio playback.

Low-level SipPhone

The SDK also exports SipPhone, the calling client WebCall uses internally. It needs one-time call credentials from the Callers API and doesn’t handle tokens, transcripts, forms or UI. Use WebCall with hidden: true instead unless support advises otherwise.

Methods

Everything you can call.

Events and transcript

Everything you can listen to.