Skip to main content

Chats

A chat is a conversation between a participant and staff, or a group conversation staff set up. Journeys post into a participant's chat with createChatMessage. An AI coach chat is built and switched off; ask us about it.

  • Access is membership. Reading a chat's messages, sending and moving your read cursor all need you to be one of its users. Hiding a message (redactedAt) or changing who is in a chat also needs the chats.moderate permission. Message content is encrypted at rest.
  • Sending is idempotent by the message id the client generates, so a retry never doubles a message.
  • History is the one cursor-paged list: newest first, walked with limit and cursor.
  • Unread is per person: each user's read cursor gives the unread count, which is the app's one badge, on the Chat tab.
  • Pushes and webhooks never carry a message's text. A push says a message is waiting; a chatMessages webhook event carries ids and times only.
  • Inside the tenant's quiet hours a message is held and delivered when the window closes.
  • New messages reach an open app over the WebSocket as a prompt to fetch, never as the message itself; see Authentication for connecting.