Skip to main content
Use this checklist before moving a Ringg AI widget from staging to production. The main risks are public browser credentials, domain allowlisting, CSP, CDN version drift, and browser-specific call behavior.

Security controls

Use the dashboard-generated widget key for the web-call assistant, not a broad backend integration key.
Add every allowed staging and production host to the assistant’s Whitelist Domains list.
Keep variables free of secrets, internal tokens, and sensitive data that should not be visible in browser dev tools.
Pin a tested CDN version in production instead of loading latest.
Review analytics and event listeners so user identifiers are handled according to your privacy policy.
Anything in the embed snippet can be viewed by a site visitor. Treat the authorization Bearer key, variables, and custom widget metadata as browser-visible configuration. The webcall public key is scoped to the assistant and its whitelisted domains — rotate it from the dashboard if it ever leaks beyond those.

Domain whitelist

Add each domain where the widget is allowed to run in the assistant WebCall settings.
Whitelist staging separately from production so you can test CDN version pins, CSP changes, and assistant changes before launch.

CSP setup

If your site uses Content Security Policy, allow the Ringg widget CDN for scripts and styles.
If your policy pins exact asset paths, match the CDN version and the bundle filename used by the loader. The widget ships an ES build for module-aware setups and a UMD build for jQuery and legacy pages, so the pinned path differs between integrations.
Keep the loader version, the bundle filename, CSP entries, and release notes for your deployment in sync. A mismatch can make the widget work in staging and fail in production.

CDN version pinning

During development:
For production, replace latest with the tested version.

Browser QA checklist

The widget appears in the expected position at desktop, tablet, and mobile widths.
Voice mode requests microphone permission and handles both allow and deny paths.
A test call can start, receive audio, and end cleanly.
Chat mode sends and receives messages if defaultTab is "text".
Calendar widgets hide past slots and return the selected date, time, and timezone.
Form widgets validate required fields and submit the expected field keys.
Widget events fire once per action and do not duplicate after client-side navigation.
Console and network panels have no blocked CDN, CSP, or mixed-content errors.

Launch checks

1

Verify dashboard settings

Confirm the assistant is configured for Webcall, the correct agentId is used, and all production domains are whitelisted.
2

Verify the embed snippet

Confirm the deployed page uses the production key, the pinned CDN version, and the expected defaultTab, variables, and styling options.
3

Verify security policy

Confirm CSP allows the pinned CDN script and stylesheet. If your site has stricter policies, test the deployed production headers directly.
4

Run an end-to-end conversation

Start and end one voice call or chat session, submit feedback if enabled, and confirm any configured analytics or widget event handlers receive the expected payload.

Troubleshooting