Skip to main content
The Message Center lets you browse endpoint-scoped history across connected channels from one interface. Native send, reply, reaction, moderation, and platform actions are available only after the selected chat has supplied a complete authoritative endpoint.

Routes

  • /messages — opens the Message Center with the default (first) channel selected
  • /messages/:type — opens the Message Center pre-filtered to a specific channel type (e.g., messages/discord, messages/telegram)

Backing RPC

  • channels.list — channel picker contents
  • channels.capabilities(channel_type) — determines which actions are available for the selected channel
  • channels.get(channel_type) — bot identity (used to label the operator attribution dialog)
  • obs.channels.all — activity labels for endpoint-authoritative chat picker rows
  • session.list and session.history — chat discovery and stored history, matched by complete endpoint identity (channel instance, conversation, thread, and kind) rather than a display key
  • message.fetch(channel_type, channel_id, endpoint, limit?) — native recent history for the exact selected endpoint
  • message.send, message.reply, message.react, message.edit, message.delete — native compose and modify operations carrying that same endpoint
  • message.attach — endpoint-authorized URL-based attachment delivery
  • discord.action, telegram.action, slack.action, whatsapp.action — endpoint-authorized platform-specific actions
Every send/edit/delete action requires a confirmation dialog that explicitly attributes the action to the operator (not the agent), so the audit log records who did the action.

What You See

Channel and Chat Selectors

At the top of the page, a breadcrumb trail shows navigation context (Channels > selected channel > Messages). Below it, two dropdown selectors let you choose:
  • Channel — pick which messaging platform to browse (Discord, Telegram, Slack, WhatsApp, etc.)
  • Chat — pick which specific conversation/chat within that channel to view
When you change the channel, the chat list updates to show available conversations for that platform. Conversations with the same platform ID under different accounts or threads remain distinct, and the selector labels their account and thread qualifiers.
Every current picker row preserves the complete endpoint returned by session.list, including the channel instance, optional thread, and direct/shared kind. The Message Center passes that endpoint to every native history, mutation, attachment, and platform-action RPC. If endpoint discovery returns no row or fails, native history is not requested and all relevant controls remain disabled; a channel type is never substituted for a missing conversation ID. Channels without native history use session.history, but only after an exact endpoint match. See the message.send contract.

Message List

The main area displays recent messages sorted by timestamp (oldest first). Each message row shows: Click a message row to select it. The selected message highlights and becomes the target for reply and platform actions that require a message ID.

Message Actions

When the selected chat has an authoritative endpoint, platform capabilities determine whether you can perform these actions:
  • Reply — compose a reply to a selected message (opens a confirmation dialog with operator attribution)
  • React — add an emoji reaction from a curated set of 24 common emoji
  • Edit — modify a sent message (only available if the platform supports editMessages)
  • Delete — remove a message (only available if the platform supports deleteMessages, with a confirmation dialog)

Send Form

Below the message list, a compose area lets you send new messages when native actions are available for the selected target. Sending requires confirmation via a dialog that shows operator attribution — messages sent from the dashboard are clearly identified as coming from the operator, not the AI agent.

Attachment Form

When native actions are available, you can attach files to messages with support for four attachment types: image, file, audio, and video. Select the attachment type, enter the attachment URL and optional caption, and send it to the current conversation.

Platform Actions

At the bottom, an expandable section shows platform-specific actions grouped by category. Available actions vary by platform:
  • Discord — Pin/Unpin messages, Kick/Ban/Unban users, Set Topic, Set Slowmode, Send Typing, Create/List Threads, Guild Info, Channel Info
  • Telegram — Pin/Unpin messages, Ban/Unban/Restrict/Promote/Demote users, Set Chat Title/Description, Send Typing, Chat Info, Member Count, Get Admins
  • Slack — Pin/Unpin messages, Set Topic/Purpose, Archive/Unarchive Channel, Send Typing, Invite/Kick users, List Members, Channel Info, Add Bookmark
  • WhatsApp — Group Info, Update Subject/Description, Get Invite Code, Add/Remove Participants, Promote/Demote Admins, Group Settings
Each enabled action is executed via RPC and results are displayed inline.

Common Tasks

1

Browse messages from a channel

Select a channel from the Channel dropdown. Then pick a chat from the Chat dropdown. Messages load automatically.
2

Send a message

When the compose area is enabled for the selected target, type your message and click Send. Confirm the operator attribution dialog to deliver the message.
3

Reply to a message

When native message actions are enabled, click a message row to select it, then click the Reply button. Compose your reply and confirm the attribution dialog.
4

Execute a platform action

When platform actions are enabled for the selected target, expand the Platform Actions section, find the action you want (grouped by category), fill in any required fields (user ID, topic text, etc.), and click Execute.

Channels View

Monitor and manage your messaging platform connections.

Chat Console

Talk to your agents directly through the browser.

Platform Actions

Full reference for all platform-specific actions.