Choose a level of control
Your own button
WithshowFab: false, the idle launcher is hidden. The call window still opens when a call starts, so visitors get the transcript, forms and controls.
data-show-fab="false" and call window.Callers.widget.call().
Fully custom UI
Withhidden: true the SDK renders nothing; you build the UI from callbacks and drive it with methods.
- In-call forms. Messages with a
widgetfield are forms. Render them, then send the answer withsendInput(JSON.stringify(values), message.id). Skip messages wherewidget.viewOnlyistrue; 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 usesendInput()for typed messages.
React
Load the SDK once, create theWebCall in an effect, and destroy it on unmount.
useCallersWebCall.ts
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
- 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 (
NSMicrophoneUsageDescriptionon iOS,RECORD_AUDIOon 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.
Related
Methods
Everything you can call.
Events and transcript
Everything you can listen to.