Skip to main content

WhatsApp Business

Send WhatsApp template messages, text, media and interactive prompts from a business number; read approved templates and number health.

Connect a WhatsApp Business number through Meta's Cloud API to message customers: send approved templates (the only messages deliverable at any time), reply with free-form text, media and button or list prompts inside the 24-hour service window, acknowledge with read receipts, typing indicators and reactions, and read the account's approved templates, their cost category and the number's quality rating and messaging limits. Sending only - incoming messages arrive on your own Meta webhook, which can fire a Yekar.AI automation.

Connect

Credential fieldRequiredWhere it comes from
Access token (ACCESS_TOKEN)YesA System User access token with whatsapp_business_messaging and whatsapp_business_management. Not the app dashboard's temporary token - that expires in 24 hours.
SettingRequiredWhat it is
Phone number ID (PHONE_NUMBER_ID)YesThe sending number's Meta id from WhatsApp Manager → API Setup - digits only, not the phone number itself.
WhatsApp Business Account ID (WABA_ID)YesThe WABA id from WhatsApp Manager → API Setup. Required to read the approved templates a send has to match.
Default recipient (DEFAULT_RECIPIENT)NoPhone number in full international form (E.164, e.g. +14155552671) used when a tool call omits the recipient - handy for notify-style automations.

Tools

ToolAccessWhat it does
Get phone number (yekar.whatsapp-business.get-phone-number)ReadThe sending number this connection acts as - its display number, the verified name recipients see, its quality rating, and its messaging limit tier. Call this first to verify the connection, and before any bulk send: the messaging limit tier caps how many DIFFERENT customers you may start a conversation with per 24 hours (250 until the business portfolio is verified), and a quality rating of RED means that cap has already been cut. Every message this connection sends comes from this number, not from the person who triggered the automation.
List phone numbers (yekar.whatsapp-business.list-phone-numbers)ReadEvery phone number registered on this WhatsApp Business Account, with its id, quality rating and messaging limit tier. This is how you find the Phone number ID a connection needs - the id is a Meta number id, never the phone number itself. Graph returns no total for cursor pages, so this reports whether more pages exist rather than a count.
List templates (yekar.whatsapp-business.list-templates)ReadThe message templates approved on this WhatsApp Business Account, with each one's language, review status, CATEGORY and the variables its body expects. Read this before sending a template: only APPROVED templates deliver, and the category decides the price - MARKETING costs several times UTILITY per message in most markets and gets no volume discount, so sending a marketing-category template for a utility purpose (a receipt, a reminder, an alert) overpays for nothing. Graph returns no total for cursor pages, so this reports whether more exist rather than a count.
Get template (yekar.whatsapp-business.get-template)ReadOne template's approved structure: its body text with the {{...}} placeholders, whether those are positional or named, the header format, footer, buttons, its CATEGORY (the cost driver) and its review status. Read this before Send template - the send must supply exactly the variables listed here, and a mismatched count is rejected outright.
Send template (yekar.whatsapp-business.send-template)WriteSend an APPROVED template message. This is the only send that works at any time: a free-form message needs an open 24-hour service window, a template does not, so business-initiated notifications, reminders, alerts and confirmations all go through here. The template's name, language and variable count must match what Meta approved - run Get template first if unsure. Cost depends on the template's CATEGORY, which Get template and List templates report: a MARKETING template costs several times a UTILITY one per message. Recipients must have opted in; sending to people who have not degrades the number's quality rating and can get it restricted. A success means WhatsApp ACCEPTED the message, not that it was delivered.
Send message (yekar.whatsapp-business.send-message)WriteSend a free-form text message - WHICH ONLY WORKS INSIDE AN OPEN 24-HOUR SERVICE WINDOW. WhatsApp opens that window each time the customer messages the business and closes it 24 hours after their last message; outside it this call is rejected and you must use Send template instead. There is no way to check the window from here: it is only observable from the inbound messages on your webhook. So use this to REPLY to someone who just wrote, and Send template to initiate. Success means WhatsApp accepted the message, not that it was delivered.
Send media (yekar.whatsapp-business.send-media)WriteSend an image, video, audio file, document or sticker by public URL - WhatsApp downloads it server-side, so nothing is uploaded through Yekar.AI and the link must be publicly reachable. Like any free-form message this ONLY WORKS INSIDE AN OPEN 24-HOUR SERVICE WINDOW (see Send message); to send media outside one, use a template with a media header. Captions are supported on image, video and document; audio and stickers reject them. Success means WhatsApp accepted the message, not that it was delivered.
Send buttons (yekar.whatsapp-business.send-interactive-buttons)WriteSend a message with up to 3 tappable reply buttons. IMPORTANT: this tool returns as soon as WhatsApp accepts the message - it does NOT wait for an answer and cannot return one. The customer's tap arrives on your webhook as an inbound message carrying the button id you set here, so the reply is a separate automation run, not this tool's result. Like any free-form message it only works inside an open 24-hour service window (see Send message).
Send list (yekar.whatsapp-business.send-interactive-list)WriteSend a message with a tappable list of options, grouped into sections - for more choices than the 3 that fit on buttons. At most 10 rows in total across every section. IMPORTANT: this tool returns as soon as WhatsApp accepts the message - it does NOT wait for a selection and cannot return one. The customer's pick arrives on your webhook carrying the row id you set here, so the answer is a separate automation run, not this tool's result. Like any free-form message it only works inside an open 24-hour service window (see Send message).
Mark message read (yekar.whatsapp-business.mark-read)WriteShow the customer's message as read (the blue double tick) so they know it was received. Takes the inbound message's id, which reaches an automation through the webhook payload it was fired with - nothing here can look it up. Marking an older message read also marks every newer one in that conversation read.
Show typing indicator (yekar.whatsapp-business.send-typing-indicator)WriteShow a typing indicator in the customer's chat, so a reply that takes a few seconds does not look like silence. It dismisses itself when you send a message, or after about 25 seconds. NOTE: WhatsApp only accepts a typing indicator together with a read receipt, so this ALSO marks the message read - call this instead of Mark message read, not as well as it.
React to message (yekar.whatsapp-business.send-reaction)WriteReact to a message with a single emoji - a cheap acknowledgement when a full reply is not warranted. Pass an empty emoji string to remove your reaction. Each message holds only one reaction from you, so reacting again replaces the previous one. Requires the message's id, which reaches an automation through the webhook payload it was fired with.

Notes

  • In the Meta app dashboard, attach your WhatsApp Business Account, then create a System User (Business Settings → Users → System users) with the whatsapp_business_messaging and whatsapp_business_management permissions and generate a token.
  • Use that permanent System User token, NOT the temporary token shown on the app dashboard's WhatsApp page - that one expires after 24 hours and the connection will stop working the next day.
  • Copy the Phone number ID and the WhatsApp Business Account ID from WhatsApp Manager → API Setup. Both are numeric Meta ids, not the phone number itself; List phone numbers will also show them.
  • Every message is sent AS THE BUSINESS NUMBER, not as the person who triggered the automation, and its quality rating and messaging limits are shared by everything using this connection. Bind automations using it as a service connection.
  • Free-form messages (text, media, buttons, lists) only reach a customer within 24 hours of THEIR last message to you. Outside that window only an approved template is delivered - Send template is the tool for anything you initiate.
  • Template cost depends on its category: MARKETING costs several times UTILITY per message and gets no volume discount. List templates shows each one's category before you send it.
  • Recipients must have opted in to hear from you. Messaging people who have not degrades the number's quality rating and can get it restricted or disabled by Meta.
  • INCOMING messages cannot be read here - WhatsApp only delivers them to a webhook. Point your Meta webhook at your own endpoint, verify its X-Hub-Signature-256 header, and have it call Yekar.AI's fire endpoint to start an automation with the message as input.
  • Optionally set the Default recipient property so notify-style automation steps can omit the recipient entirely.