send_message
Sends messages or threaded replies to vendors and workspace members through the HoneyBook portal, with confirmation before delivery.
Instructions
Send a message to the vendor (and the other members of the workspace) through the HoneyBook portal, exactly as the Activity tab composer does. HoneyBook emails it to every recipient. Pass reply_to_message_id to reply in-thread (the subject is inherited). Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). If HoneyBook has not finished sending within about a minute the result has status "pending" and a task_id; if it did not answer the send request at all the status is "unknown". Either way the message may still be delivered, so check list_messages before resending.
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": {
"workspace_id": "<workspace_id>",
"body": "<body>"
},
"name": "send_message"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Message text, written as `format` says. With no format, plain text is sent as-is (line breaks preserved) and a body using HTML tags is read as HTML. | |
| format | No | "text" (sent as typed), "markdown" (**bold**, _italic_, lists, [links](https://…), `code`, # headings, > quotes — sent as formatted HTML, and cheaper to write than HTML) or "html" (simple formatting kept: p, br, b, i, a href, lists, tables; other tags shown as text, attributes other than an http(s)/mailto link dropped). Omitted: "html" if the body uses an HTML tag, else "text". | |
| origin | No | Portal origin (e.g. https://<vendor>.hbportal.co). Optional when only one session is active. | |
| subject | No | Required for a new message; optional on a reply. | |
| confirmToken | No | ONLY for the two-step confirmation fallback (a client without MCP elicitation). The confirmToken from this same tool's phase-1 "confirmation-required" response, passed back ONLY after the user has seen that preview and explicitly approved it in chat — never on the first call, never invented, never reused. Call again with the same arguments. Ignored when the client supports elicitation. | |
| workspace_id | Yes | The workspace _id (from list_projects, or .workspace._id on any workspace_file). | |
| reply_to_message_id | No | A message _id from list_messages to reply to. |