Using the chat
This page is what your end users see on the hosted chat page, and which theme flag turns each part on or off. Messages go straight between the browser and the relay. None of it starts a workflow except where a row says so.
Conversations
| Feature | What people do | Flag |
|---|---|---|
| Channels | Pick a channel from the list. A channel opens at its newest message | always |
| Direct messages | Open a DM from the member panel, an actor's menu or a person's name. Opening a DM with someone you already have one with reuses it. DMs are labelled with the other people's names | direct_messages |
| Threads | Reply to a message in a side panel. The timeline shows a reply count on the first message. Actors always answer inside a thread | threads |
| Mentions | Type @ to open a picker of people and actors (actors first), or type @Full Name exactly. A mention of you is highlighted | mentions |
| Reactions | Tap a reaction to add or remove yours, or open the picker | reactions |
| Edit and delete | Edit your own message (it shows "edited") or delete it after a confirm | message_actions |
| Pinned messages | Pin a message from its menu. A bar above the timeline shows the newest pin and opens the list. Only the person who pinned can unpin | pins |
| Typing | "Ana is typing" while someone writes | typing_indicator |
| Markdown | Lists, quotes, headings and code in messages. Raw HTML is never rendered | markdown |
History and finding things
| Feature | What people do | Flag |
|---|---|---|
| History | "Load older" at the top pages back 50 messages at a time and keeps the scroll position | always |
| Day separators | "Today", "Yesterday", then dates between days | always |
| New messages | When you have scrolled up, a "new messages" pill jumps to the end | always |
| Search | A search box scoped to the channel, with a toggle for the whole space. / or ctrl/cmd+K focuses it. A result opens the message in its channel. Results are ranked by relevance, and "show more" widens the search | search |
| Filters | All messages, mentions of me, actors, my conversations with actors (over the loaded messages) | message_filters |
| Unread counts | Per-channel badges counted by the relay since your read marker. Opening a channel marks it read. Read markers are private | read_receipts (off by default) |
Attachments
With attachments on, people attach files with the file button, by dragging onto the timeline, or by pasting into the composer.
- Each file uploads straight to the relay, signed with the person's own chat key, with a progress bar, cancel and retry.
- Images render inline and open in a viewer. Other files show as a download row with name, type and size.
- The theme's
mediasection sets the size limit, the number per message and the allowed types. The defaults are 25 MiB, 4 files, and PNG, JPEG, GIF, WebP, PDF, CSV and plain text. See Theme and customization. - Deleting a message hides its files in the chat.
To see what a channel carries, an organization admin runs buzz.media.list with space_uuid and channel_id (read-only). It lists each file's URL, type, size, hash, author and message. To take a file out of the chat, delete its message with buzz.message.moderate-delete.
Missed-message email
A person who was mentioned or got a DM while away can receive one short email per batch: counts and where, for example "1 mention from Ana in Support", never the message text. It respects a quiet period after they last opened the chat and a daily cap per person, and links to the chat page.
| Who | Control |
|---|---|
| The space | features.missed_message_emails in the theme (on by default). Off means nobody in the space is mailed |
| Each person | The notification switch on the chat page, which runs buzz.member.set-notifications with enabled. Its output tells them whether the space has the feature on at all |
On a phone
The chat page works at phone width. The member panel and the thread panel cover the chat full-width on screens up to 640 px, the mention picker fits the screen, and the offline banner appears only when the connection has really dropped, then reconnects as soon as the phone is back online.
Talking to actors
Actors are marked with a badge. People reach them with a mention, a DM, or by writing in a channel the actor listens to. While an actor works, a thinking line and a short progress line show under the conversation. Its answer can carry a "how I got here" panel and quick-reply buttons. All of that is on Actors in chat.
Ask your AI assistant
Which chat features are turned off in my space? Read the published theme with data.buzz.theme.get and list every flag that is false.
Turn on unread counts in my chat: set features.read_receipts to true in a draft theme and publish after I confirm.
List the files posted in the "<channel name>" channel of my chat space with buzz.media.list.
Does my chat space send missed-message emails? Check the theme flag and explain what each person can change.
For AI agents
| Rule | Detail |
|---|---|
| No message reads | There is no workflow that returns message text. Do not claim you can read or summarize a channel |
| Files | buzz.media.list reports deletion_supported: false. Do not promise to delete a file |
| DMs | End users open DMs on the chat page. An actor opens one with buzz.actor.dm-open |
| Opt-out | buzz.member.set-notifications is the end user's own switch. An organization caller cannot set it for someone else |
Channels
Organization-managed channels, channels your members create and run when the space allows it, private channels, and archiving
Actors in chat
Put a Staff actor into a chat space. Seat binding, triggers, the reply ceiling, DGI responders, progress lines, the tool trace, quick replies, handoff to a person, several actors in one conversation, and messages an actor starts from outside the chat
