Messages
Messages are everything the workspace has received or written about its records: synced emails, notes and notifications.
Which tool
- About a company or person ("last week's emails with Acme"): resolve them to record ids, then
query_messageswith those ids and a time window. See thefinding-messagesreference for the exact sequence. - By topic, with no company or person named ("emails about the renewal"):
semantic_search_messages. Never use it as a fallback whenquery_messagesfinds nothing for a company or person — similar text is not proof it is about them. - Full text of one message:
get_message_by_idafter finding it. - Calendar events ("my meetings this week", "when did we last meet Acme?"): use
calendar_events(actionlist) from the meetings skill, notquery_messages. - Meeting summaries: a summary someone saved to a record is a note on that record. Find it with
query_messageson the record. Recordings that were never saved to a record stay in the desktop app and cannot be reached from here. - How many ("how many emails have we exchanged with Acme?"):
get_message_statisticscounts messages linked to a record or person. - How-to and policy questions ("what is our refund policy?", "how do I reset the router?"):
search_knowledgefinds the passages in the workspace's own articles and guides. Quote them and name the source; do not answer from memory. When drafting a reply to a customer, setaudiencetopublicso only what the help center already shows customers is used.
Sending a text
send_messagesends a text (SMS) to a contact (toRecordId) or a phone number (to). It shows on the contact's timeline like an email.- To answer a text conversation in a shared inbox, reply there instead (shared inbox skill), so the answer stays in the same thread.
- A text reaches a real phone and cannot be recalled. Show the exact text and recipient and wait for a clear yes. Pass a
clientRefof your own so a retry never sends twice. - People who replied STOP are skipped; say so if the result reports it rather than claiming it was sent.
Rules
- Resolve a company or person to its record id first (see the records skill), then filter messages by that id.
- You only see messages linked to records you can access. Say so if something the user expects is missing, rather than claiming it does not exist.
- Never guess a message id.
More detail
Read these when the task needs them:
- finding-messages: The required call sequence for "what did we discuss with Acme?" and when topic search is the wrong tool.
- resolving-records: Turning a company or person into every linked record id before reading their messages or acting on them.


