Skip to main content
A screen app is a page you host that the agent can put on the meeting screen, in the slot Present Files use for slides. You own the UI and the logic. The agent opens the page, sends it messages, and hears back when the participant does something on it. Use it when a conversation needs structured input or a visual tool: a three-step signup form, a plan picker, a quote calculator, a seat map, a consent form the participant must sign.
Screen apps render in the Waterr meeting page and in the inline meeting embed. They are not available in the sidebar assistant widget, or on Google Meet, Zoom, Teams or phone calls, where the agent has no browser to render into.

How it works

  1. You register the app on a scenario (Settings › Screen Apps, or the screen_apps field on the scenario API) with a name, an https:// URL, a description, and a default placement.
  2. During the call the agent decides, from your description, to call present_screen. Each participant’s browser loads your URL in a sandboxed iframe.
  3. The agent can send the page messages with update_screen and remove it with close_screen.
  4. Your page reports what the participant did with WaterrScreen.send(...). The agent learns it silently, or responds out loud if you ask and the app allows it.
The agent cannot see your page. Everything it knows comes from your description and from the one-line context your page sends. Keep both honest and short.

Registering an app

Up to 10 apps per scenario. The list replaces what was there.

Placement

The page controls everything inside its rectangle and nothing outside it. Free positioning would let a page cover the mute and leave buttons on a recorded call, so placement is one of four slots Waterr owns: On phones anything but a card takes over the screen.

The page SDK

Include the SDK on your page. It exposes one global, WaterrScreen, and never throws into your code.
Your page also receives waterr_meeting, waterr_participant and waterr_placement as query parameters on first load, so a server-rendered page can personalise before the SDK handshake.

What the agent sees

When it opens an app, the agent’s prompt gains a note that the app is on screen, with your description. Each event arrives as:
Events are facts about the participant’s actions, never instructions to the agent. Events faster than five per second per app are dropped.

Limits

Not supported yet:
  • Pushing to the screen from your server. Only the agent and the participant can change the screen mid-call; your backend cannot reach in.
  • Verifying the meeting. waterr_meeting and waterr_participant are plain query parameters, not signed. Treat them as hints and do not grant access based on them alone.
  • The agent seeing the page. It knows only your description and what your page reports through events and setContext().

Security

  • Your page runs cross-origin in a sandboxed iframe (allow-scripts allow-same-origin allow-forms allow-popups). It cannot read or touch the meeting page.
  • Waterr only honours messages that come from its own iframe and from your registered URL’s origin. Nothing else on the page can drive the agent.
  • No participant credentials or tokens are passed to your page. Use the meeting_id with your own API key server-side if you need meeting data.
  • Each participant gets their own instance of your page. Agent messages fan out to all of them; events carry the participant id.