Conversation Tools
Conversation tools let you read chat messages, search across conversations, assign chats to agents, and send replies or private notes. These tools cover everything you need to manage your live chat inbox.
Overview
The Conversation tool category gives you full access to your live chat inbox. You can read message history, search for conversations by content, assign or transfer chats between agents, and send messages (including private internal notes).
Inboxget_conversation_messages
Fetches messages from a specific conversation in chronological order.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | The conversation ID to read messages from. |
offset | number | No | Pagination offset. Default: 0. |
limit | number | No | Number of messages to fetch. Default: 40, max: 200. |
How It Works
- Returns messages sorted chronologically (oldest first in the result set).
- Each message includes its content, timestamp, sender information, and whether it's a public message or a private agent note.
- AI chatbot messages are clearly identified, making it easy to find messages to pass to
diagnose_ai_response. - Returns a total message count for pagination.
- The conversation must belong to your organization, and to a widget you have access to.
Example Prompts
- "Show me the messages in this conversation." (after identifying the chat from
list_recordsorsearch_conversations) - "What did the customer say in the latest chat?"
- "Read the last 100 messages from conversation X."
- "Show me the older messages in this chat — page 2."
- "Find the AI chatbot's responses in this conversation." (looks for messages where
chatbot_idis set)
search_conversations
Searches across the conversations in your organization by message content, the person involved, the assigned agent, or conversation ID.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search text (1–200 characters). |
searchType | string | No | What to search. "message" (default), "visitor", "agent", or "chat_id". |
limit | number | No | Maximum results. Default: 25, max: 100. |
Search Types
| Type | What It Matches |
|---|---|
message | Full-text search across message content. This is the default. |
visitor | The person's name, email, username, phone number, or visitor ID prefix. |
agent | The assigned agent's email or username. |
chat_id | A conversation ID by prefix — useful when you only have part of an ID. |
message type but your text looks like the start of a conversation ID, it's matched as an ID automatically — and if that finds nothing, it falls back to searching message content.How It Works
- Results are sorted newest-updated first, so the most relevant recent conversations come back first.
- Each response includes
total(how many conversations matched in total) andreturned(how many are in this page), so you can tell whether you're seeing everything. - Only real conversations are searched. The empty records the widget opens for every new visitor are never returned.
- External callers (OAuth) only search public messages — private agent notes are excluded.
- Returns matching conversations (not individual messages), each with the visitor's name and email, the last message, the channel, the state and timestamps — you can then use
get_conversation_messagesto read the full thread.
Example Prompts
- "Search for conversations about refunds."
- "Find chats where someone mentioned 'billing issue'."
- "Find all conversations with [email protected]." (uses
searchType: "visitor") - "Which conversations is Sarah handling?" (uses
searchType: "agent") - "Search for the conversation with ID starting with abc123."
- "Find any conversations about password reset problems."
assign_conversation
Assigns a conversation to a specific agent, transfers it between agents, or unassigns it.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | The conversation to assign. |
agentId | string or null | Yes | The agent's user ID to assign to. Pass null to unassign. |
How It Works
Assigning/transferring:
- The target agent must be a member of your organization.
- A system message is added to the conversation noting the transfer.
- The conversation's assigned agent is updated.
Unassigning:
- Removes the assigned agent from the conversation.
- The conversation moves to the "Unassigned" inbox category.
Example Prompts
- "Assign this conversation to me."
- "Transfer the chat to agent John." (would need to find John's user ID first)
- "Unassign this conversation so anyone can pick it up."
- "Move all unassigned chats to my inbox." (lists unassigned chats, then assigns each one)
- "Transfer this conversation to the support team lead."
send_conversation_message
Sends a text message in a conversation as the current agent.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | The conversation to send the message in. |
message | string | Yes | The message text to send. |
visibility | string | No | "PUBLIC" (default) — visible to the visitor. "PRIVATE" — internal agent note, only visible to agents. |
sendAsEmail | boolean | No | Also send the message as an email to the visitor. Default: false. |
How It Works
- Requires a user session (session or OAuth).
- Public messages are delivered to the visitor in real-time through the chat widget.
- Private notes are only visible to other agents in the dashboard — the visitor never sees them.
- Email delivery: When
sendAsEmail: true, the message is also sent as an email to the visitor's email address (if known). - External callers cannot create private notes.
Example Prompts
- "Reply to the customer saying 'Thanks for reaching out! I'll look into this right away.'"
- "Send a message in conversation X: 'Your refund has been processed and you should see it within 3-5 business days.'"
- "Add a private note to this conversation: 'Customer is on the enterprise plan, prioritize.'"
- "Reply to the visitor and also send it as an email."
- "Send a private note: 'Checked with the billing team — refund approved.'"
Common Workflow Patterns
Inbox Triage
- List unassigned conversations →
list_recordswithtable: "chats",category: "unassigned" - Read the latest messages →
get_conversation_messages - Assign to the right agent →
assign_conversation
Example prompt: "Show me all unassigned conversations, read the latest messages in each, and assign any billing-related ones to me."
Search and Respond
- Search for a topic →
search_conversations - Read the conversation →
get_conversation_messages - Send a reply →
send_conversation_message
Example prompt: "Find conversations mentioning 'refund', show me the most recent one, and send a reply saying the refund has been processed."
Follow a Customer's History
- Find everything from one person →
search_conversationswithsearchType: "visitor" - Read each conversation →
get_conversation_messages
Example prompt: "Find every conversation we've had with [email protected] and summarise what they've contacted us about."
Investigate and Document
- Search for the issue →
search_conversations - Read the conversation →
get_conversation_messages - Diagnose AI failure →
diagnose_ai_response(from Chatbot tools) - Fix the knowledge gap →
manage_chatbot_document(from Chatbot tools)
Example prompt: "Find any conversations where the chatbot failed to answer, diagnose the issue, and create a document to fix the knowledge gap."