Send a direct message
send_messageSend a text message (up to 1000 characters) in a conversation, as the connected account. Only while the conversation's window is open (window.isOpen in list_conversations); outside it the api refuses and says the contact has to write first. A conversation an automation opened from a comment can take its one private reply instead (window.canPrivateReply), once. A send the platform refuses comes back as an error with its reason, never as a success. Needs the organization's "Let AI assistants answer comments and messages" setting (owner-only; without it the api answers MCP_INBOX_DISABLED) and a connection authorized with the comments/chat permissions — one authorized before they existed must reconnect, and a client that kept its own registration from before then must remove PostRite and add it again.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"conversationId": "<conversationId>",
"text": "<text>"
},
"name": "send_message"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The message, as the contact will read it | |
| savedReplyId | No | The saved reply this text started from (list_saved_replies), so the team's usage count includes it. Optional; never changes what is sent — fill the reply's {{name}}/{{firstName}} fields yourself. | |
| conversationId | Yes | Conversation ID from list_conversations | |
| organizationId | No | Organization to act in — an id from list_organizations. Required when this connection was authorized for more than one organization; omit it when there is only one. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| text | No | ||
| error | No | ||
| status | No | ||
| sentById | No | ||
| createdAt | No | ||
| direction | No | ||
| flowRunId | No | ||
| attachments | No |