Skip to main content
This page is the complete reference for RinggWidgetConfig, the object you pass to <RinggWidget config />. Configure assistant behavior, tools and prompts in the dashboard; use this object for app-level runtime settings. See React Native for installation and the integration steps.

Identity and auth

authorization and clientOrigin ship inside your app binary and can be extracted from it. Use only the webcall public key generated for that assistant, never a backend integration key, and keep the assistant’s allowed clients list tight.

Panel content and mode

Variables

variables are forwarded to the assistant as custom_args_values and fill {{placeholders}} in its prompts. Values are sent verbatim, so strings, numbers, booleans, objects and arrays are all accepted.
Set variables at controller creation. To change them for a new conversation, create a new controller.

Theme

theme accepts thirteen fields. Colors take any CSS color string; primaryColor and agentBubbleColor also accept CSS gradients.
fontFamily is resolved against fonts registered in your app. React Native does not fetch web fonts, so load the family through Expo Font or your native font assets first.

Buttons

PortableStyles is the cross-platform style subset: height, width, backgroundColor, padding, borderRadius. Arbitrary CSS is not accepted, because these values are applied to native views.

Voice call view

Feedback screen

Set bypassFeedbackScreen: true to skip the screen entirely.

Chat extras

Web-only options

These exist on the type because the config is shared with the web widget. They are ignored on React Native, where the panel sizes itself to the device.

Defaults

Every optional field falls back to a shared default. These values are generated from one source for all platforms, so the web, React Native and Flutter widgets behave identically when a field is left unset. Theme values not listed here fall back to the packaged Ringg palette.

Caller identity

The backend allow-lists an assistant’s callers by the Origin header. Browsers attach one automatically, which is how domain whitelisting works for the web widget. Native HTTP sends nothing, so a webcall request without a caller identity is refused before authentication is even considered. Add the value to the assistant’s allowed clients under Agent → Webcall → Install & domains in the dashboard. Application ids differ per platform and per build flavor (.debug, .staging, .dev), so every build you ship needs its own entry. The value that was sent appears in the refused-call response, ready to paste.
Hybrid WebView runtimes report a shared identity (capacitor://localhost, ionic://localhost, file://) that is the same for every app built on that runtime. Allowing one admits all of them.
On React Native, pass the identity explicitly. appOrigin builds the <platform>://<bundleId> string for you:
The bundle id is a parameter because React Native cannot read it without a native module, and the package will not add one for a single string. Your app already declares it, so a constant or a read of your own app config is enough. expo-application reports the same value if you would rather ask the OS, but it is native code, so adding it means rebuilding the app.