Skip to content

Going live

There is no separate sandbox or test mode. You integrate against the live service. The first launch is limited and partners are hand-picked, so Kheelona may add a test mode later. Until then, build carefully, and expect your tests to use real sessions.

Every session counts against your account: it takes one of your concurrent places and its minutes are counted. Test within your session limit. Ask the Kheelona team what your limits are: the maximum number of sessions at once, the longest session and, if one is set, a monthly allowance. See Limits.

Kheelona is best effort during the partner pilot, and planned maintenance is announced in advance. Your product should cope with a refused session, a busy answer and a dropped connection.

Keys and secrets

  • The API key is only on your server, in a secret store, and in no repository, page, app or log.
  • Your mint route authenticates the user before it creates a session.
  • You know how to rotate a key, and you have done it once.

Browsers

  • Your production page is on https, and its origin is in Allowed origins.
  • You asked Kheelona to turn development access off, and the page still works.
  • Your page has a strict Content Security Policy. See Security.
  • The microphone is requested from a click, and the page explains what to do when it is denied.
  • “Tap to allow sound” is handled with resumeAudio().
  • You tested on the browsers and phones your users have, on a mobile network too, which may use the WebSocket fallback.

Errors and limits

  • You handle every code in Errors and retries, and you retry only what is retryable, with a new session after a failed connect.
  • When Kheelona is busy, your product says so kindly and tries again after the wait.
  • When the session is about to end (the warning event), your product can say goodbye or start a new session.
  • You keep the request_id of every HTTP error, and the session ID with the code of every error event, so we can find it.

Users and privacy

  • end_user_ref is an opaque ID of yours, and metadata holds no personal data.
  • instructions holds only what the voice needs.
  • You have the consent you need from your users, including a parent’s approval for children, and you tell them that conversations are handled by AI services. See the data and privacy policy.
  • You know what you do with captions and transcripts: Kheelona does not keep them.
  • If you use the safety event for safeguarding, someone is responsible for reading it.

The conversation

  • You tried every language you declare. Beta and alpha languages are marked, so test them with care.
  • You chose interruptions for your devices. See Interruptions and echo.
  • A long silence and the time limit end a session cleanly in your product.

Start small. Let a few real users in, watch the Connection log and Usage pages of your console and your own logs, then widen.