Prepare the browser boundary
Keep workspace API keys on a trusted server. The future client integration needs an authoritative package or script, a supported session-access flow, and a documented message contract. A browserfetch call to a resource endpoint is not a conversation transport.
1
Choose a single initialization point
Decide which page controller owns the interface. On applications that navigate without a full reload, define how entering and leaving a route mounts and disposes that controller. Prevent duplicate script loads and duplicate event listeners.
2
Design start and end controls
Use explicit visitor actions. Disable repeated starts while connecting, show a useful error on failure, and make ending the interaction available throughout an active session. Keep a fallback contact route outside the interface.
3
Plan resource cleanup
List each subscription, timer, network connection, and media resource the interface owns. Connect cleanup to the released client API and the page controller’s disposal. Confirm that ending or leaving the page stops owned audio and event processing.
Before installing a release
Verify the exact distribution origin, versioning policy, export names, supported browsers, and session initialization contract. Test loading failures, slow connections, access expiry, repeated navigation, and cleanup. If an integration uses a socket, follow the released protocol rather than guessing a URL from REST endpoints; see WebSocket preparation. Use the TypeScript server example for supported resource reads and widget preparation for an embedded interface.Frequently asked questions
Is there a CDN script I can paste into any page?
Is there a CDN script I can paste into any page?
No verified production script is supplied here. Use only the distribution URL documented by a released Threetone widget or client package.
Can I rename an internal event and use it in my application?
Can I rename an internal event and use it in my application?
Only a released client event contract defines supported messages and behavior. Internal event names are not a stable integration contract.