Skip to main content

Chat — Summary

The Chat is the user-facing website where Consumers talk to the agents you've created in Keen. Every message a user sends triggers the flow you designed in the Keen Extension.

This page is a one-screen overview. Each page below has its own dedicated file — click through for details.


URL surfaces

URLPageDetail
/loginSign-in form. Signed-out visits to anything else redirect here.login.md
/registrationPublic sign-up form (visible only when external registration is enabled). A partner can alternatively drive sign-up from its own UI via the registration API.registration.md
(after login)OTP code entry, when OTP is enabled for that user class.otp.md
/Spaces picker — the post-auth landing page.spaces.md
/c/<spaceId>Agent picker inside a Space.agents.md
/c/<spaceId>/<agentId>The conversation with a specific agent.conversation.md

<spaceId> and <agentId> are the cuids generated when you create the Space / Agent in /org.


Consumer journey

visit / ─┐
├─► redirect /login ─► enter creds ─► [OTP page if enabled] ─► /
│ │
├─► /registration (if public reg enabled) │
│ │ │
│ └─► email link (24h) ─► /login ─────────────────────────────┘

└─► / (if already logged in) ─► pick Space ─► /c/<spaceId>

└─► pick Agent ─► /c/<spaceId>/<agentId> ─► chat

How Spaces get assigned to a Consumer

Consumer typeWhere Space access comes from
Outside-registered (used /registration or the partner-driven route)Auto-assigned default Spaces — from the tenant contract's default outside Spaces on a partner-integrated deployment, or from /org/system/settings-consumer → Consumer Spaces on a first-party one.
System-registered (admin invited them)Manually assigned by the admin from the consumer's /org edit page (the documented default). On partner-integrated (contract) deployments the tenant contract also defines a defaultSystemRegisteredConsumerSpaces set that may seed system registrations as a starting grant — see the note below.

Nuance — system-registered default Spaces. On a partner-integrated deployment the tenant's ConsumerContract defines defaultSystemRegisteredConsumerSpaces (a subset of the contract's master Spaces) intended as the starting grant for in-app/system registrations. The durable-owner documentation, however, only describes the outside-registration seed as actually wired end to end, so whether a system registration is auto-seeded from this contract default versus assigned manually is deployment- and version-dependent. Treat manual assignment as the documented default and confirm contract-seeded behavior against your deployment.

Either way, the Spaces a Consumer can access are what they see on /. Agents inside those Spaces are what they see on /c/<spaceId>. For partner-integrated deployments the visible set is re-clamped to the tenant's currently-permitted Spaces on every login. See Spaces page.