Skip to main content
window.TelepatiaEmbedConfig (read at load) and TelepatiaEmbed.init() take the same shape; init() wins when both set a field. Everything is optional except the publishable key.

Fast configuration

The minimal block to go live: the key, a locale, your brand, and the capabilities you want. Each capability renders only when your institution is also granted it.

Full configuration

Every field, annotated. All are optional except apiKey; the defaults shown are what the embed uses when you omit a field.

Config fields

Capabilities

Each capability is a { show } flag. What actually mounts is show AND the institution’s grant, so an ungranted flag renders nothing. Without scribeContext, the embed mounts a recorder-less surface (CDSS and/or Telepatia Intelligence) with no audio engine in its graph. intelligence.documents adds a Documents sub-tab inside the copilot.

TelepatiaEmbed methods

After the panel mounts, a new init() applies only open and callbacks; other fields take effect after destroy() then init().

Callbacks and errors

Register them in init({ callbacks }): onSessionStart(id), onSessionComplete(event), onError(message), onStateChange(state). The browser onSessionComplete is optional — the webhook is the reliable trigger. Health signals fire on window:
Backend fetch errors use Telepatia’s standard format — switch on code: authentication_required (401, key invalid or expired), resource_not_found (404, wrong id or fetched too early), resource_conflict (409, id reused), rate_limit_exceeded (429). The full table is on the Scribe API errors page.