search_messages_by_heard_status
Find voice messages you haven't listened to yet and get per-conversation unheard counts to prioritize which chats need attention first.
Instructions
Find messages by whether you have listened to them, and get per-conversation unheard counts.
USE WHEN: "What have I not listened to yet" / "catch me up". heardStatus: "unheard" is the unread filter. The response also carries unheard_counts_by_channel, so you can prioritise conversations without fetching their messages.
USE INSTEAD: search_message_ids for notified state, mentions or date anchors — this tool accepts no date filter (see note below). list_messages for plain recent history.
EXAMPLE: {"heardStatus":"unheard","limit":25}
RETURNS: {messages: [{message_guid, creator_guid, creator_first_name, channel_guids, transcript_txt, message_ts, heard_status, ...}], unheard_counts_by_channel: {conversation_id: count}, success}. Use unheard_counts_by_channel to decide where to look first.
NARROW: pass response_fields ["unheard_counts_by_channel","messages.message_guid","messages.channel_guids","messages.creator_first_name","messages.transcript_txt","messages.message_ts"] unless you need more — the full payload is much larger.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of messages to return (max 100). | |
| user_guids | No | Only messages created by these users. Max 50 entries. Requires IDs, not names. | |
| heardStatus | No | Filter by listened state. `unheard` = not yet listened to (your unread messages), `heard` = already listened to, `any` = no filter. | unheard |
| label_guids | No | Only messages carrying these labels. Max 50 entries. Requires IDs, not names. | |
| channel_guids | No | Only messages in these conversations. Max 50 entries. Requires IDs, not names. | |
| response_fields | No | Dot-path allowlist to shrink the response, e.g. ["results.id","total"]. Omit for the full payload. | |
| tagged_user_guids | No | Only messages where these users were tagged/mentioned. Max 50 entries. Requires IDs, not names. |