wati_send_ interactive_ messageSend an interactive reply-buttons or list message.
Send approved templates to one contact or ten thousand, reply while the customer-service window is open, assign conversations to operators, and read broadcast and pipeline numbers back.
PopMCPWATI
Every messaging, contact, template, broadcast, chatbot and analytics operation, plus every WATI event PopMCP can watch for you.
wati_send_ interactive_ messageSend an interactive reply-buttons or list message.
wati_send_ session_ file_ via_ urlSend a media file in a session by public URL (image/doc/video/audio).
wati_send_ session_ textSend a free-form session text message (only valid inside the 24-hour customer-service window).
wati_add_ contactAdd (or upsert) a contact.
wati_assign_ contact_ to_ teamsAssign a contact to one or more teams.
wati_get_ contactGet a single contact by target.
wati_get_ contact_ countCount contacts, optionally within a created-date range.
wati_list_ contactsList contacts in the WATI account (paginated).
wati_update_ contactsBulk-update contacts' custom attributes.
wati_create_ template_ v1Create/submit a WhatsApp message template for approval (legacy v1 — v3 cannot create templates).
wati_delete_ template_ v1Delete a template (all language variants) by WABA id and name (legacy v1).
wati_get_ templateGet a single message template by id.
wati_list_ templatesList approved WhatsApp message templates (paginated).
wati_schedule_ template_ messagesSchedule a template send for a future time.
wati_send_ template_ messagesSend a template message to one or many recipients (1–10,000).
wati_assign_ conversation_ operatorAssign a conversation to an operator by email.
wati_get_ messagesGet the message history for a conversation (paginated).
wati_update_ conversation_ statusUpdate a conversation's status (open / resolved / etc.).
wati_get_ broadcastGet a broadcast campaign's details by id.
wati_get_ broadcast_ recipientsList a broadcast's recipients and their per-recipient delivery state (paginated).
wati_get_ broadcasts_ overviewAggregate broadcast metrics over a required date range.
wati_list_ broadcastsList broadcast campaigns (paginated).
wati_list_ chatbotsList chatbots (paginated).
wati_start_ chatbotStart a chatbot flow for a contact.
wati_list_ phone_ numbers_ v2List multi-channel WhatsApp phone numbers with channel/WABA detail (v2 beta).
wati_get_ lead_ stagesList the configured sales lead stages.
wati_get_ sales_ pipelineRead the sales pipeline for a date range.
wati_create_ webhooks_ v2Register/configure webhook endpoints (v2 beta).
wati_list_ business_ accounts_ v1List the WhatsApp Business Accounts (WABAs) on this tenant, incl.
wati_list_ channelsList the WhatsApp channels (phone numbers) connected to this account (paginated).
wati_download_ message_ mediaDownload the media attached to a message by its message id.
wati_get_ media_ v1Download a media file by its stored file name/path (legacy v1).
wati_send_ interactive_ buttons_ v1Send reply-buttons (legacy v1).
wati_send_ interactive_ list_ v1Send a list message (legacy v1).
wati_send_ session_ file_ via_ url_ v1Send a session file by URL (legacy v1).
wati_send_ session_ text_ v1Send a session text (legacy v1).
wati_send_ template_ message_ v1Send a template to ONE recipient (legacy v1).
wati_send_ template_ message_ v2Send a template to ONE recipient (v2 beta).
wati_send_ template_ messages_ bulk_ v1Send a template to up to 1000 recipients (legacy v1).
wati_send_ template_ messages_ bulk_ v2Send a template to many recipients (v2 beta).
wati_add_ contact_ v1Add a contact (legacy v1).
wati_create_ custom_ segment_ v1Create a custom contact segment (legacy v1).
wati_list_ contacts_ v1List/filter contacts via the legacy v1 endpoint (supports name & attribute filters v3 lacks).
wati_update_ contact_ attributes_ bulk_ v1Bulk-update custom attributes for many contacts (legacy v1).
wati_update_ contact_ attributes_ v1Update one contact's custom attributes (legacy v1).
wati_delete_ template_ language_ v1Delete a single language variant of a template (legacy v1).
wati_list_ templates_ v1List message templates (legacy v1).
wati_list_ templates_ v2List message templates with name & WABA filters (v2 beta).
wati_assign_ operator_ v1Assign a chat to an operator (legacy v1).
wati_get_ message_ v1Get a single message by channel phone number and your local message id (legacy v1).
wati_get_ messages_ v1Get a contact's message history (legacy v1).
wati_update_ chat_ status_ v1Update a chat's ticket status (legacy v1).
wati_get_ pay_ order_ details_ v1Get a WhatsApp Pay order's details by reference id (legacy v1, PRIVATE BETA).
wati_get_ pay_ payment_ status_ v1Get a WhatsApp Pay payment status by reference id (legacy v1, PRIVATE BETA).
wati_list_ chatbots_ v1List chatbots (legacy v1).
wati_send_ pay_ order_ details_ v1Send a WhatsApp Pay order-details message (legacy v1, PRIVATE BETA — request access from WATI).
wati_start_ chatbot_ v1Start a chatbot for a contact (legacy v1).
wati_update_ pay_ order_ status_ v1Update a WhatsApp Pay order's status (legacy v1, PRIVATE BETA).
wati_get_ phone_ number_ profile_ v2Get a phone number's business profile (v2 beta).
wati_list_ phone_ numbers_ v1List the WhatsApp phone numbers on this tenant (legacy v1).
Credentials off one WATI screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
Paste your Access token — no OAuth popup, no token refresh. It is scoped to one WATI account, so the connection is locked to it. Add the optional API endpoint URL to reach legacy template, WABA and webhook operations.
••••••••••••3f7ahttps://live-mt-server.wati.io/123456/Set the connection read-only for reporting, or full access with approval required for writes so a blast to thousands of numbers or a template deletion waits for sign-off. Turn on the full catalog to reach the rest.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your WATI credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Which broadcasts went out last month and how did delivery look
wati_list_broadcastsok
Then just ask for the work
“Which broadcasts went out last month and how did delivery look”
“Tag every contact added since June with plan tier and put them on the Onboarding team”
“Schedule the Diwali offer template to our Mumbai list for Friday 10am”
“Which chatbot flows are running on the number whose quality rating dropped”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting WATI behind an AI client.
The Access token on its own covers every modern (v3) operation: contacts, messaging, template sends, broadcasts, channels, chatbots and sales analytics. The API endpoint URL is optional and exists only so your tenant id can be filled in for the legacy operations — creating and deleting templates, WABA and phone-number management, and webhook registration. Add it up front if you expect to touch any of those; otherwise the token alone is fine.
send_session_text is only valid inside the 24-hour customer-service window that opens when a customer messages your business number. Once that window closes, WhatsApp allows approved templates only, so the agent has to switch to send_template_messages or send_template_message_v2. Run list_templates first and let the agent pick an approved template when the window has lapsed.
Yes, but only through the legacy path — create_template_v1 submits a template for approval and delete_template_v1 removes one by WABA id and name, because v3 cannot create templates. That means template creation needs the API endpoint URL saved on the connection. Approval still sits with WhatsApp, so watch the Template submitted, Template approved and Template rejected or paused triggers for the outcome rather than expecting an instant answer.
send_template_messages takes 1 to 10,000 recipients in one call, which is the modern route for a campaign-sized send. The legacy bulk endpoint, send_template_messages_bulk_v1, tops out at 1000. For a one-to-one send there are single-recipient variants — send_template_message_v1 and send_template_message_v2.
The access token is scoped to one WATI account, and the agent can see every channel inside it. list_channels returns the WhatsApp numbers connected to the account, list_phone_numbers_v2 adds channel and WABA detail (v2 beta), and list_business_accounts_v1 lists the WABAs on the tenant — that last one is legacy, so it needs the API endpoint URL. The Channel connected or disconnected and Number quality rating changed triggers tell you when that picture shifts.
Yes. get_messages pulls the history for a conversation, assign_conversation_operator hands a thread to an operator by email, and update_conversation_status moves it to open, resolved or another state. start_chatbot can kick off a bot flow for a contact, and assign_contact_to_teams routes the person to the right team. Pair that with the Customer sent a message trigger and the agent can triage as chats arrive.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Loading 60 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 30-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.
A tool is something your AI calls — there are 60 here. A trigger is something PopMCP watches for you: 14 WATI events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into WATI.
Launch a hosted MCP endpoint for WATI, keep tool access under control, and start testing real workflow prompts right away.