Chats tools
Read chats, reply inside the 24-hour window, send a single template, check delivery, open or close chats, and keep private team notes customers never see.
get_inbox_counts#Get inbox counts
Counts of unassigned, mine, open, closed and unread WhatsApp inbox chats. The fastest check for whether anything needs attention.
Takes no parameters.
list_chats#List inbox chats
WhatsApp inbox chats with contact, phone, assignee, last message, reply-window state and whether a person still owes the customer a reply (is_awaiting_reply, waiting_minutes). view picks the queue. Narrow to customers who wrote on a day with date (or from_date and to_date), and to unanswered customers with is_awaiting_reply. Read a chat with list_chat_messages; for every message of a day use list_messages.
Parameters (12)›
view"unassigned" | "mine" | "all" | "closed" | "unread"
Which queue to read. Defaultall.Default"all"querystring
Contact name or phone.tag_idstring
Only chats whose contact carries this tag.assignee_account_idstring
Only chats held by thisaccount_idfromlist_workspace_members.datestring
Only chats where the customer sent a message on this day, intimezone:today,yesterdayor a date like2026-10-05.from_datestring
Start of a range, inclusive. Give withto_dateinstead ofdate; at most 31 days.to_datestring
End of a range, inclusive.is_awaiting_replyboolean
truereturns only open chats whose latest customer message has no reply from a person after it. Auto-replies, lifecycle messages and broadcasts do not count as replies. Without a date it checks customers who wrote in the last 7 days.timezonestring
IANA timezone for the dates, e.g.Asia/Kolkata. Default: the workspace's timezone, else Asia/Kolkata.cursorstring
next_cursorfrom the previous page; omit for the first page. Keep the other filters the same; the page size stays as on the first page.page_sizeinteger
Rows per page, 1-100. Default 20.Default20response_format"concise" | "detailed"
concisereturns the fields a person reads;detailedadds ids and raw fields for follow-up calls.Default"concise"
get_chat#Get one chat
One WhatsApp inbox chat: contact, state, assignee, unread count, tags, reply-window state and whether a person still owes the customer a reply. Read its messages with list_chat_messages.
Parameters (1)›
chat_idrequiredstring
Achat_idfromlist_chats.
list_chat_messages#List a chat's messages
Messages of one WhatsApp chat, oldest to newest within a page, with direction, text, type and status. sender_kind says who wrote each one: customer, team_member, phone, ai_agent or api (a person), or auto_reply, lifecycle_message, broadcast or system (automatic). next_cursor pages back in time.
Parameters (4)›
chat_idrequiredstring
Achat_idfromlist_chats.cursorstring
next_cursorfrom the previous page; omit for the first page. Keep the other filters the same; the page size stays as on the first page.page_sizeinteger
Rows per page, 1-100. Default 20.Default20response_format"concise" | "detailed"
concisereturns the fields a person reads;detailedadds ids and raw fields for follow-up calls.Default"concise"
reply_to_chat#Reply to a chat with text
Sends a free-text WhatsApp reply in a chat. Works only while the 24-hour reply window is open (is_reply_window_open from get_chat); after that use reply_to_chat_with_template. Claims an unassigned chat. Reaches a real phone.
Parameters (2)›
chat_idrequiredstring
Achat_idfromlist_chats.textrequiredstring
The reply text. WhatsApp formatting such as *bold* works.
reply_to_chat_with_template#Reply to a chat with a template
Sends an APPROVED WhatsApp template in an existing chat; the only way to reach the customer after the 24-hour window closes. variables fill placeholders in order (see get_template). To message someone with no chat use send_template_message. Reaches a real phone and is billed.
Parameters (4)›
chat_idrequiredstring
Achat_idfromlist_chats.template_namerequiredstring
An APPROVED template's name fromlist_templates.language_coderequiredstring
The template's language code, e.g.en_US.variablesstring[]
Body placeholder values in order.Default[]
update_chat#Update a chat
Changes one WhatsApp chat: assign (needs assignee_account_id from list_workspace_members), claim (take it for this key's owner), release (back to unassigned), close, reopen or mark_read. Safe to repeat.
Parameters (3)›
chat_idrequiredstring
Achat_idfromlist_chats.actionrequired"assign" | "claim" | "release" | "close" | "reopen" | "mark_read"
No extra notes.assignee_account_idstring
Needed forassign: anaccount_idfromlist_workspace_members.
list_messages#List messages across all chats
Every WhatsApp message on a day or a short range, from all chats at once, grouped by chat with contact name, phone and who wrote each message (sender_kind). Use for 'show me today's chats'; filter with sender_kinds, e.g. ["customer"] for what customers wrote. For one customer's history use list_chat_messages.
Parameters (8)›
datestring
One day intimezone:today,yesterdayor a date like2026-10-05. Defaulttoday.from_datestring
Start of a range, inclusive. Give withto_dateinstead ofdate; at most 7 days.to_datestring
End of a range, inclusive.sender_kinds"customer" | "team_member" | "phone" | "ai_agent" | "api" | "auto_reply" | "lifecycle_message" | "broadcast" | "system"[]
Only messages written by these: customer, team_member, phone, ai_agent, api, auto_reply, lifecycle_message, broadcast, system.timezonestring
IANA timezone for the dates and the times shown, e.g.Asia/Kolkata. Default: the workspace's timezone, else Asia/Kolkata.cursorstring
next_cursorfrom the previous page; omit for the first page. Keep the other filters the same; the page size stays as on the first page.page_sizeinteger
Messages per page, 1-200. Default 100.Default100response_format"concise" | "detailed"
concisereturns the fields a person reads;detailedadds ids and raw fields for follow-up calls.Default"concise"
get_message_status#Get delivery status of a sent message
Delivery status of one sent WhatsApp message (queued, sent, delivered, read, failed) with Meta's error when it failed. Use the message_id a send or reply tool returned.
Parameters (1)›
message_idrequiredstring
Themessage_ida send or reply tool returned.
send_template_message#Send a template message to one person
Sends one APPROVED WhatsApp template to one person, starting a new message. Give contact_id or a phone. Check placeholders with get_template. Refuses unsubscribed contacts (CONTACT_OPTED_OUT). For an existing chat use reply_to_chat_with_template; for many people use create_broadcast. Reaches a real phone and is billed.
Parameters (6)›
contact_idstring
A CRM contact. Give this, or country_code and phone.country_codestring
Country calling code digits only, e.g.91.phonestring
Local number, without the country code.template_namerequiredstring
An APPROVED template's name fromlist_templates.language_coderequiredstring
The template's language code, e.g.en_US.variablesstring[]
Body placeholder values in order; the count must match the template's placeholders.Default[]
list_notes#List internal notes
Private team notes on a WhatsApp chat or CRM contact; never sent to the customer. A chat's list includes notes on its contact.
Parameters (2)›
chat_idstring
An inbox chat. Give this or contact_id.contact_idstring
A CRM contact. Give this or chat_id.
create_note#Create an internal note
Writes a private team note on a WhatsApp chat or CRM contact. The customer never sees it. Use for summaries, hand-over context and reminders.
Parameters (3)›
chat_idstring
An inbox chat. Give this or contact_id.contact_idstring
A CRM contact. Give this or chat_id.textrequiredstring
The note text.
delete_note#Delete an internal note
Deletes one note from a WhatsApp chat or CRM contact. Authors can delete their own; owner and admin keys can delete any. Cannot be undone.
Parameters (1)›
note_idrequiredstring
Anote_idfromlist_notes.