Before you start
- A connected production number. Sandbox numbers aren’t supported.
- Owner or admin role in the Kapso project.
- Admin access to the Meta business portfolio and WhatsApp Business Account that own the number.
Create an agent
Open Meta Agents in the sidebar and click Add Meta Agent.- Choose a phone number. Numbers that already have an agent aren’t listed.
- Create the agent in WhatsApp Manager. Click Continue to WhatsApp Manager, accept Meta’s terms, and create the agent there. Kapso detects it automatically. If it doesn’t show up, click I’m having trouble.
Configure
Every edit is saved as a draft. Nothing changes on Meta until you publish. Kapso Agent can make these edits for you. It’s most useful for connectors and tools.Settings
The Active / Inactive badge shows the rollout state Meta has, not your draft.
Knowledge
Connectors and tools
A connector is an HTTP API the agent can call. A tool is one operation on that API: a method, a path like/orders/{order_id}, and its inputs.
- Authentication: none, API key, or OAuth client credentials. You can add a client certificate (mTLS) to any of them.
- Customer authentication: Meta injects the signed-in customer’s token into tool calls.
- Input values: the agent decides, a fixed default, or the customer’s WhatsApp phone number, identity hash, or current status ID.
Publish
Publish sends your changed items to Meta and creates a numbered version in Versions.- Partially applied: some changes failed. Fix the cause and click Retry remaining.
- Discard unpublished edits resets the draft to what’s live on Meta.
- Restore as draft copies an earlier version into your draft. Publish it to apply it. Connector credentials aren’t restored.
- Refresh from Meta pulls the agent’s current configuration from Meta. Items with unpublished edits are kept.
Test
The Test tab chats with the live agent without messaging a customer. It uses the published version, not your draft, and is unavailable while a publish is running or after one fails. To test a single tool, open it in Connectors. Only published tools can be tested.Monitor
- Insights: conversations the agent replied to, and conversations waiting on your team.
- Tool insights: daily calls, latency, and success, error, and timeout rates per tool, for up to 30 days.
- Inbox: the Meta agent tab in a conversation’s sidebar shows routing changes and the agent’s turns, including tool inputs and outputs. Turns come from Meta and can lag behind the conversation.
Conversations
A number with a Meta agent is a shared number. Meta’s agent and Kapso are separate apps, and only one handles a conversation at a time. While the agent handles a conversation:- Customer messages and the agent’s replies show up in the Inbox. Agent replies have
origin: "meta_business_agent". - Regular messages from workflows and the API fail with
409andcode: "meta_business_agent_control". Templates are always allowed.
whatsapp.thread.control_received trigger.
Take over
- Click Take over in the Inbox.
- Send from the API to the conversation. The conversation switches to Kapso once the send succeeds:
- Send through the proxy with
X-Kapso-Take-Control: true. See Sending messages.
Hand back
In the Inbox, open Transfer conversation and pick Meta AI agent. From the API, call thread control with"action": "pass" and "control_pass": { "target_role": "ai_agent" }.
Release to routing doesn’t hand back to the agent. It leaves the conversation idle until Meta routes the customer’s next message.
Webhooks
Subscribe towhatsapp.thread.ownership_changed. A handoff from the agent has previous_owner_role: "ai_agent" and ownership: "this_app". Messages the agent handles keep firing whatsapp.message.* with passive: true.
whatsapp.meta_business_agent.handover is a legacy event. It still fires for webhooks already subscribed to it, but new webhooks can’t add it in the dashboard. Use whatsapp.thread.ownership_changed instead.API
Kapso proxies Meta’s Business Agent API. Use Meta’s paths and payloads with Kapso’s base URL and your Kapso API key:X-API-Version defaults to 2.0.0. Other paths return 404.
API changes go straight to Meta and skip your Kapso draft. Click Refresh from Meta to see them in the dashboard.
Agent events
Tell the agent something happened, like a payment or a shipment, so it can bring it up with the customer. The agent must be handling the conversation.GET /{phone_number_id}/agent_event/{agent_event_id}.
