WhatsApp agents

Build an AI agent that answers customers on WhatsApp, configure its sessions and tools, and test it.

A WhatsApp agent answers the customers who message your WhatsApp number - any time of day - with the same flow builder, knowledge base and tools as your call agents. When it can’t help, it hands the chat to your team in the inbox.

WhatsApp agents are switched on per workspace. If WhatsApp is greyed out when you create an agent, the dialog says so with an Ask us to enable them link.

Create one

  1. Agents → Create agent → WhatsApp. A WhatsApp agent always answers incoming messages, so the direction is Inbound. It’s created as New WhatsApp agent - rename it any time.
  2. The editor opens on Settings → WhatsApp: choose the number it answers. Every live number is listed - you can run several agents, each on its own number. One number answers for one agent; a number another agent uses shows Used by …. Choosing a number saves straight away. If the agent has no number, the editor’s readiness list says so and its button opens this tab.
  3. Build the flow (steps, variables, knowledge base, tools) and Publish. From then on every new message to that number is answered by the agent.

Messages to a number with no agent still arrive - they wait in the inbox’s Unassigned tab.

Settings → WhatsApp

The number saves when you choose it; Fetch data when a chat opens has its own Save request; everything else saves with Save settings and applies to new chats.

  • Idle timeout (5 minutes to 24 hours, default 30 minutes) - the chat closes after this long without a customer message. Each chat is one billed conversation; the customer’s next message opens a new one that picks up where the last left off.
  • Max duration (1 hour to 7 days, default 4 hours - or the idle timeout, if that is longer; at least the idle timeout).
  • Second language (optional) - the agent writes in its own language. With a second language set, the chat switches to it when the customer asks (“reply in English”, “hindi mein baat karo”) or clearly writes in it, and back the same way; voice notes are transcribed in the chat’s current language. Any other language is declined politely. Romanized Hindi (“kya haal hai”) counts as Hindi, not English.
  • “Still there?” reminder (optional, 1 to 60 minutes, less than the idle timeout) - this many minutes before the idle close, the agent sends one reminder (“Are you still there? This chat closes in about 10 minutes - just reply to keep going”), or your own text. Once per chat, and only while WhatsApp still allows a free reply.
  • Send the greeting with the first answer - the flow’s opening line goes out with the first reply. Off: the agent answers straight away.
  • Show suggested replies as buttons - up to three become tappable buttons; four to ten become a list (or plain text with the list off).
  • When a person takes over - if nobody on your team replies within the minutes you set (5 to 1440, default 30), the customer gets your waiting note once; outside business hours they get the outside business hours note instead.

Customers who send several short messages in a row get one answer to all of them. They can quote earlier messages and send photos, PDFs and voice notes: the agent reads images and documents, and voice notes are transcribed.

Templates the agent can send

Let the agent send an approved template mid-chat - a booking confirmation, a payment link, a brochure. For each value in the template (shown with the words around it) choose where it comes from:

  • Static text - always the same.
  • Contact field - name, email, phone or another contact detail.
  • Variable - a value the flow collected; if it’s empty, the agent fills it from the conversation.
  • Filled by the agent - the agent writes it, guided by your “when to send” description.

A media header takes an https link, or a variable holding one. The tool’s internal name is made for you (under Advanced). If a template is paused or deleted at Meta, publishing tells you; a chat already running tells the customer you’ll share the details another way. Teammates who can’t edit agents see these settings read-only.

Under Settings → WhatsApp → Links and files:

  • Add a link button - a button that opens a page: a payment link (Razorpay, Cashfree…), a booking page, an order tracker. Set the button text (up to 20 characters, WhatsApp’s limit), the https link and When to send. The agent writes the short message above the button.
  • Add a file - a brochure, a price list, a menu, as a PDF, an image or a video at an https link. Optionally the file name the customer sees.

The agent sends them only when When to send fits, and only while the customer’s 24-hour window is open (inside a chat it always is). Each send shows in the conversation, and a link that can’t be sent is shared as plain text instead.

Documents customers send

Your agent can ask a customer to send a document on WhatsApp - a photo or a PDF of an ID, a bill or a certificate - and check it: the right document, readable, all its parts, and your own rules. In the flow builder, set a Collect node’s Type to Document (see Ask for a document).

Photos, PDFs and text files a customer sends are kept, even while a teammate is handling the chat, and a document sent before the agent asks for it is used when it gets there. If a file can’t be checked, the customer continues and the document is marked unverified for your team. Aadhaar numbers are always masked. Your team can mark a document verified or reject it from the inbox.

Fetch data when a chat opens

Give the agent what your own system knows about the customer before it answers - their plan, an open order, a booking. Start from an example (customer, latest order, next booking) and let your developer finish the request under Advanced (for your developer):

  1. URL (https only) with variables in the path or query: {{phone}} (+91…), {{wa_id}}, {{contact.name}}, {{contact.email}}, {{contact.external_ref}}, {{contact.attr.<key>}}, {{thread_id}}, {{agent_id}}. Variables can’t be used in the host.
  2. GET or POST (a POST body is JSON).
  3. Headers - tick Secret for API keys: stored encrypted, never shown again, and only sent to the host they were entered for.
  4. Timeout up to 3 seconds and optionally one retry.
  5. Values to keep - map a JSON path ($.customer.plan) to a flow variable and a label.
  6. Test request with a sample number shows exactly what would be set.

It runs once per chat and holds the first reply for at most the timeout. If your server is slow, down or answers badly, the chat continues without the data and Last run says why. Private addresses are blocked and redirects are not followed; we log only the host, the outcome and timings.

Call me back

Turn on Call back and pick the outbound voice agent that calls. When a customer asks for a call (or accepts an offer), the agent books it with their words as consent, for now or the time they asked (up to 3 days ahead, your workspace time zone), inside your calling hours. One call back per customer at a time; Indian numbers only.

Memory and calls that continue on WhatsApp

A new chat starts with what the agent should know: the customer’s earlier calls and chats (unless Use contact history is off), the last chat on this number if it was recent, and templates you sent them in the last few days. If a voice agent sent them a WhatsApp message during a call and they reply, the chat continues that call: the agent knows what was said, keeps the values the call collected, and can start at the follow-up step you choose.

Sending WhatsApp from a call

A call agent can send an approved template during or after a call with the Send WhatsApp tool (see Tools): pick the template, map each value to a contact field, a list column or something collected on the call, and describe when to send it. If the customer replies, the WhatsApp agent on that number continues the conversation.

After the chat

Settings → After the chat pushes each chat to your CRM (log the outcome, create a lead - each with an optional Only when condition) once it ends. Follow-ups and team alerts - a WhatsApp follow-up a while after the chat, or an alert to your team - are set on the agent’s outcome board (the Outcome board button at the top of the flow editor, or Inbounds, which lists live WhatsApp agents too; then a column’s Column actions); see Follow-ups. Conversation evals grade a share of the agent’s chats against what good looks like.

Test it

  • Simulate shows exactly what WhatsApp would show: formatting, buttons you can tap, lists and templates as cards, the step the agent is on, the values collected so far, and when the chat would end. Nothing is sent, and it works before you have a number.
  • On your phone (Settings → WhatsApp, or the test panel’s On your phone tab) shows a QR code once the agent has a number. Scan it and send the pre-filled message; that chat is tagged Test, kept out of analytics and billed normally.
  • Replay in Simulate - open a finished chat in the inbox’s History tab and replay its customer messages against your current draft.

Next: Inbox and handoff →