conversations module supports direct and group chat automation. Reads
do not mark messages as read or expose private channel names.
Available Tools
list_conversations
List direct and group conversations, newest updated first.
- Type: Read-only
- Important Input Fields:
conversationType(string, optional):directorgroup.clientId(string, optional): Filter by client.participantId/participantRole(string, optional): Filter by participant.contextType/contextId(string, optional): Filter by semantic context.page/limit(integer, optional): Page pagination.
list_conversation_inbox
List the combined inbox of direct and group conversations, newest updated
first. This is an alias of list_conversations with the same filters and page
pagination.
- Type: Read-only
- Important Input Fields:
conversationType(string, optional):directorgroup.clientId(string, optional): Filter by client.participantId/participantRole(string, optional): Filter by participant.contextType/contextId(string, optional): Filter by semantic context.page/limit(integer, optional): Page pagination.
get_conversation
Retrieve one conversation without marking messages as read.
- Type: Read-only
- Important Input Fields:
conversationId(string, required): Conversation ID.conversationType(string, optional):directorgroup.
get_conversation_messages
Retrieve conversation messages, newest first.
- Type: Read-only
- Important Input Fields:
conversationId(string, required): Conversation ID.conversationType(string, optional):directorgroup.page/limit(integer, optional): Page pagination.
list_conversation_participants
List active participants for a conversation.
- Type: Read-only
- Important Input Fields:
conversationId(string, required): Conversation ID.conversationType(string, optional):directorgroup.page/limit(integer, optional): Page pagination.
create_conversation
Create or find a direct conversation, or create a group conversation.
- Type: Write
- Write Tool Grant:
create_conversation - Important Input Fields:
conversationType(string, required):directorgroup.participants(array, required): Coach/client participants.createdBy(object, optional): Requesting coach actor. Defaults to the grant owner when available.name(string, group only): Required for group conversations.context(object, optional):none,client,company,lesson,calendar_event, orbooking.
send_conversation_message
Send a text message as the requesting coach when that coach is an active
participant.
- Type: Write
- Write Tool Grant:
send_conversation_message - Important Input Fields:
conversationId(string, required): Conversation ID.senderCoachId(string, required): Requesting coach sender ID.message(string, required): Text body.
update_conversation_message
Update a text message sent by the requesting coach within the edit window.
- Type: Write
- Write Tool Grant:
update_conversation_message - Important Input Fields:
conversationId(string, required): Conversation ID.messageId(string, required): Message ID.senderCoachId(string, required): Original requesting coach sender ID.message(string, required): Replacement text.
delete_conversation_message
Soft-delete a text message sent by the requesting coach within the edit window.
- Type: Write
- Write Tool Grant:
delete_conversation_message - Important Input Fields:
conversationId(string, required): Conversation ID.messageId(string, required): Message ID.senderCoachId(string, required): Original requesting coach sender ID.
add_conversation_participants
Add or restore participants in a group conversation.
- Type: Write
- Write Tool Grant:
add_conversation_participants - Important Input Fields:
conversationId(string, required): Group conversation ID.actorCoachId(string, required): Requesting coach performing the change.participants(array, required): Participants to add.
remove_conversation_participant
Remove one participant from a group conversation.
- Type: Write
- Write Tool Grant:
remove_conversation_participant - Important Input Fields:
conversationId(string, required): Group conversation ID.actorCoachId(string, required): Requesting coach performing the change.participantId(string, required): User ID to remove.
Actor and Context Rules
MCP writes use the grant owner as the requesting coach. The request still passessenderCoachId, actorCoachId, or createdBy for audit clarity, but that coach
must match the requesting coach, belong to the company, and already be an active
conversation participant where applicable.
Other-coach delegation is not
supported.
Conversation contexts accept and return client, company, lesson,
calendar_event, and booking values.
Successful conversation writes emit outbound Public API webhook events when
the company has an active matching webhook subscription.
Webhook payloads
stay metadata-only: they include IDs, roles, context IDs, and timestamps, but no
message text, media URLs, conversation names, descriptions, or context labels.