> ## Documentation Index
> Fetch the complete documentation index at: https://comis-fix-skill-import-vetting-gate.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Message Center

> Browse, send, and manage messages across all connected channels

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.

<Note>
  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](/reference/json-rpc#message-send).
</Note>

### Message List

The main area displays recent messages sorted by timestamp (oldest first). Each message row shows:

| Element       | Description                                                                        |
| ------------- | ---------------------------------------------------------------------------------- |
| **Sender**    | The sender's platform-specific user ID                                             |
| **Text**      | The message content (plain text or formatted)                                      |
| **Timestamp** | Relative time since the message was sent                                           |
| **Actions**   | Reply, React, Edit, Delete buttons (availability depends on platform capabilities) |

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

<Steps>
  <Step title="Browse messages from a channel">
    Select a channel from the Channel dropdown. Then pick a chat from the Chat dropdown. Messages load automatically.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>
</Steps>

## Related Pages

<CardGroup cols={2}>
  <Card title="Channels View" icon="tower-broadcast" href="/web-dashboard/channels-view">
    Monitor and manage your messaging platform connections.
  </Card>

  <Card title="Chat Console" icon="message" href="/web-dashboard/chat">
    Talk to your agents directly through the browser.
  </Card>

  <Card title="Platform Actions" icon="bolt" href="/agent-tools/platform-actions">
    Full reference for all platform-specific actions.
  </Card>
</CardGroup>
