Skip to main content
Kiosk mode opens an agent as a standalone, fullscreen page — no iframe, no surrounding website. It is built for unattended displays such as a kiosk stand, a reception screen, or a trade-show booth: the avatar fills the entire screen, the display stays awake, and after a visitor leaves the conversation resets itself for the next one.
Kiosk mode is a separate opt-in from website embedding. An agent can be available as a kiosk without being embeddable on other sites, and vice versa. Unlike embedding, kiosk mode has no allowed-origins list — the only gate is the kiosk toggle, so only enable it for agents you want reachable as a public fullscreen page.

Prerequisites

1

Enable kiosk mode

Open the agent in the dashboard, go to the Deployment tab, and turn on Enable kiosk mode in the Kiosk URL section. Only shared agents can run as a kiosk. Toggling this switch is saved immediately — you can test right away without saving the agent manually first.
2

Get the kiosk URL

Copy the ready-made URL from the dashboard, or scan the QR code with the device. You can also build the URL yourself as described below.
3

Add it to the home screen

On the device, open the URL in the browser and add it to the home screen. Launched from the home screen it runs as a true fullscreen web app, without browser chrome.

Quickstart

Replace AGENT_ID with your agent’s UUID (visible in the dashboard). Open the URL directly in the device’s browser — there is no iframe and no embed code to paste.

Query parameters

All options are appended as query parameters to the /kiosk URL. Invalid values fall back to their defaults automatically.
string
default:"open"
Microphone mode. open records for the whole conversation; ptt enables a push-to-talk button the visitor holds to speak. In both modes the microphone stays open at the device level — the microphone indicator stays on — so audio playback stays at full volume throughout, including on iPad/iPhone (instead of the quieter “call” volume). See Sound & volume.
string
default:"de"
UI language of the controls. de or en.
boolean
default:"true"
Whether the “Hang up” button is shown. In kiosk mode it is on by default so a visitor can end the conversation; set endCall=false to hide it.
number
default:"0"
Auto-reset timeout in seconds. After this much inactivity while the agent is waiting for input, the conversation ends and the start screen returns for the next visitor. Both touching the screen and the visitor speaking count as activity. 0 disables the auto-reset.
string
default:"on"
Diagnostic switch for audio output. By default the agent’s audio is routed through the browser’s Web Audio API (on). With off the plain audio element plays instead. Intended for troubleshooting only, e.g. to narrow down audio or lip-sync issues on mobile devices. Note: in Firefox the agent may stay silent in the kiosk browser with off — remove the switch after testing.
string
default:"auto"
Diagnostic switch for audio output on Android. By default (auto) the loud system speaker is selected as soon as the microphone is turned on — audio is loud from the first second, with no dropout while the connection is set up. With late the switch happens only after the connection is established (the previous behaviour), which costs one to two seconds without audio or microphone. Intended for comparison only. No effect on iOS or desktop, where the browser offers no such switch. The speaker cannot be turned off — playback would be too quiet on mobile devices.
string
default:"off"
With on, shows a small diagnostic panel in the top left: the level of the agent’s signal, the active audio device, the state of audio output, and the browser identifier. Intended for troubleshooting directly on the device, without attaching it to developer tools. A button copies the values to the clipboard. Remove the switch after testing — the panel covers part of the picture.
The border and hideTextChat parameters from Embedding work here too (background color and hiding the text-chat input).

Example with multiple options

Push-to-talk, English UI, and a reset to the start screen after 60 seconds of inactivity.
Microphone unavailable? If the agent cannot access the microphone, the kiosk shows a notice with the specific cause — access not granted, device held by another app, or no microphone found — along with the technical error code. Below it sits an “Enable microphone” button: tapping it requests access again so the browser shows its prompt. The conversation itself keeps running, text chat stays usable, and the push-to-talk button does not light up while held as long as no microphone is active.

Sound & volume

So the agent is clearly audible on a stand, the kiosk optimizes playback automatically — but depending on the device there are a few adjustments.
  • iPad/iPhone: Audio plays at full volume automatically, in both microphone modes.
  • Android: The kiosk automatically routes output to the loud system speaker (“Speakerphone”) instead of the quiet earpiece.

Volume (speaker icon)

A speaker icon sits in the top right, to the left of the gear. Tapping it opens a control with Louder and Quieter — it acts directly on the agent’s playback, independently of the device volume. The chosen level is remembered per device and browser and applies to the next conversation too.
When you need it. On some Android devices playback stays quiet even though “Speakerphone” is selected and the call volume is already at maximum. The cause is Android’s audio routing, not the kiosk — the same situation can also be resolved there by switching to “Headset earpiece” and back to “Speakerphone”. The volume control is the more direct route and works on every device.

Audio settings (gear)

Next to it, a gear icon opens a small settings panel. There you can:
  • adjust the audio processing — echo cancellation, noise suppression, auto gain, and voice isolation (all on by default),
  • choose the audio device. On Android the system’s routing options appear here, such as “Speakerphone” (loud speaker) and “Headset earpiece” (quiet earpiece). If audio is too quiet on an Android device, select “Speakerphone” here.
Android: call volume. As soon as audio is playing, Android shows a small phone icon next to the volume slider — the volume button then controls the (separate) call volume, not the media volume. Turn it up to maximum on the device once so the kiosk is loud enough. If that is not enough, use the volume control in the top right: it works in addition to, and independently of, the system volume.

If the microphone fails

If the recording breaks down during a conversation, the kiosk notices and gets the microphone back by itself — in most cases the visitor notices nothing. If that does not work, a message appears with a button that tries again. If it fails three times in a row, the message stays — tapping the button starts a fresh round.
Bluetooth headsets in Firefox on Android. To record, Android has to switch a headset from its music profile to its phone profile. Firefox handles that switch unreliably: recording can break down even though the headset stays connected, and the headset does not appear in the device list at all — it only shows “Default audio input device”. If the button in the message does not help, disconnect the headset and use the device microphone, or switch to Chrome. In our tests the problem does not occur with Chrome or Samsung Internet.

Fullscreen on the device

For a true fullscreen experience without an address bar, add the kiosk URL to the device’s home screen and launch it from there. Use the browser’s share menu (for example “Add to Home Screen”) — the page is configured as a standalone web app, so it opens chrome-free.

Idle auto-reset

With the idle parameter set, an unattended kiosk recovers on its own: if a visitor walks away mid-conversation, the agent ends the session after the configured idle time and returns to the start screen, ready for the next person. Anything that actually happens in the conversation counts as activity:
  • any touch of the screen,
  • the visitor speaking — this matters most in mic=open mode, where there is no push-to-talk button to touch: even a long, uninterrupted utterance keeps the conversation alive,
  • the agent speaking — a detailed answer is never cut off, even if it takes longer than the configured idle time.
The timer therefore only starts once both sides fall silent.
Background noise. So that a kiosk in a loud environment — a trade show, for example — does not stay awake indefinitely, mere noise on the microphone only counts for so long: if speech recognition produces no text alongside it, the kiosk returns to the start screen after at most three times the configured idle time.

Microphone after longer breaks (iPad/iPhone)

Safari does not treat microphone access as a permanent permission, but as a grant for the capture currently running. Once a conversation ends — for example through the auto-reset — and the device then sits idle for a while, Safari discards the grant. On the next start the browser therefore asks again; if the prompt is not confirmed, the notice with the “Enable microphone” button appears. That button requests access again inside a fresh tap — the only context in which Safari shows the prompt at all. For an unattended stand we therefore recommend:
  • Allow the microphone permanently: with the permission set to Allow instead of Ask, the repeated prompt goes away. There are two ways to do this (see below).
  • Set Auto-Lock to “Never” (Settings → Display & Brightness → Auto-Lock) so the device does not go to sleep.
  • Enable Guided Access so the kiosk cannot be left by accident.

Allowing the microphone permanently

  1. Open the kiosk URL in Safari.
  2. Tap the page menu in the address bar — depending on the iOS version, the “aA” icon or the icon to the left of the address.
  3. Choose Website Settings and set Microphone to Allow.
This is the recommended option: the grant applies to the kiosk domain only, and every other website keeps asking.
The exact menu labels differ slightly between iOS versions (“Website Settings” vs. “Settings for Website”). The choice is Ask, Deny, or Allow in every version.
If the kiosk runs as a web app from the home screen (see Fullscreen on the device), iOS manages its permissions separately from Safari. The microphone grant has to be given there once, separately.

After sleep and connection loss

A stand runs unattended — it has to recover on its own, with nobody there to step in. The device was asleep. If the kiosk page spent more than a minute in the background — the iPad locked itself, someone switched apps — the kiosk ends any conversation still running when it wakes up and shows the start screen again. That is deliberate: the previous visitor is long gone, and iOS only re-issues the microphone grant inside a fresh tap. Tapping the start button therefore reliably yields a working microphone, whereas a conversation carried on silently would stay mute. Briefly switching away — under a minute — interrupts nothing. The connection dropped. If the kiosk loses its connection to the agent mid-conversation (Wi-Fi gone, network change), it first tries to restore it quietly. If that fails, the notice “Connection lost” appears with a “Restart” button that leads back to the start screen. If nobody responds, the kiosk returns there by itself after half a minute.
A dropped connection looks deceptively like a microphone problem — the conversation goes quiet — but it isn’t one: the microphone works, there is simply nothing left to transmit it over. That is why it gets its own notice; asking for microphone access would not help here.

Screen wake lock

While a kiosk page is open, it requests a screen wake lock so the display does not dim or lock itself during operation. The lock is re-acquired automatically after the device briefly sleeps or the page returns to the foreground. On browsers without wake-lock support the kiosk still works — the screen simply follows the device’s normal sleep settings.