For the complete documentation index, see llms.txt. This page is also available as Markdown.

6. Roll out to everyone

When the agent has proven itself with your allowlist, open it to all customers by switching the audience to EVERYONE.

curl -s -X PUT https://waba-v2.360dialog.io/agent_config/settings \
  -H "D360-API-KEY: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "rollout": { "enabled": true },
    "ai_audience": "EVERYONE"
  }'

Update AI agent settings

From now on, the agent is the primary responder for every new conversation on that number.

After you roll out

  • Keep iterating. Real traffic surfaces new questions. Keep adding FAQs and refining skills as you see what customers actually ask.

  • Watch the handoff path. At full volume, make sure humans can keep up with handoffs — the agent goes silent on a chat the moment it hands off.

  • Turn it off any time. Set rollout.enabled to false to stop the agent responding to new conversations, or drop back to ALLOWLISTED_ONLY to narrow the audience again. Configuration is preserved.

# Pause the agent
curl -s -X PUT https://waba-v2.360dialog.io/agent_config/settings \
  -H "D360-API-KEY: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{ "rollout": { "enabled": false } }'

Get AI agent settings

Billing is still being defined by Meta. As of now, how MBA usage is priced and charged — and how a payment method is added — isn't finalized, and MBA usage does not appear in the standard WhatsApp message billing analytics. Factor this uncertainty into any commercial rollout, and check back here for updates. See Known limitations.

Managing thread control

Once you're live at full volume, your team or systems will sometimes need to step into a conversation the agent is handling — and hand it back afterward. The agent is the primary responder and holds each conversation by default, so while it's in control the consumer's messages and the agent's replies reach you on the standby field. The moment you send a message to that conversation, you take control: from then on the consumer's messages arrive on messages and the agent stays quiet. When you're done, hand control back to the agent using the Thread Control endpoint's release action:

Release thread control

Every control change also emits a messaging_handovers webhook, so you can keep track of who currently holds a conversation — when previous_owner_app_role is meta_business_agent, the agent has just passed control to you. There's no endpoint to query the current owner, so rely on these events (together with the standby vs messages routing) to track control state. See Webhooks for the payloads. Note that release is the only supported action — you take control implicitly by sending a message, not through an explicit "take" call.

That's the full journey. For every gap referenced along the way, see the consolidated Known limitations & workarounds.

Last updated

Was this helpful?