Skip to content

Purchase requests on WhatsApp

Atta runs on a WhatsApp business number. Message it to ask for something, and it answers with the same agent as the web chat, as you. Approvals arrive as reply buttons. Your phone number links once to your Atta account, and every message is checked against that link and the workspace's approval rules.

Updated November 6, 2026 · By

What a conversation looks like

WhatsApp has no channels, threads or slash commands. A conversation is you and the business number. The agent can search, compare, fill a cart, check out, show orders and requests, and check stock.

Amir: 10 boxes of nitrile gloves, medium, for the clinic

Atta: Found them at $11.40 a box from your medical supplier. Ten is $114.00, arriving Tuesday. That's within your limit. Order now?

Amir: yes

Atta: Ordered. $114.00 reserved against the clinic budget.

If the amount is over what you can approve alone, the request goes to the next approver in the chain. Approvers are notified in the inbox and by email. Typing requests on WhatsApp lists what's waiting on you, one message per request with Approve and Decline reply buttons.

Commands

connect, link smcp_..., unlink, requests (or approvals) and help. Anything else is a message to the agent. Commands never reach the model.

How approvals work

A checkout that needs your confirmation pauses the agent. The prompt shows the policy's reason and Approve and Cancel as reply buttons, in your language. A tap resumes the run only from the linked member whose conversation it is.

A request for someone else follows the web path. The buttons call the same function the requests page does, as the linked member, so the approval chain advances one step per answer. WhatsApp has no approval rules of its own.

Who the number acts as

The first time an unlinked number writes, it gets a Connect account button. It opens a page that shows the profile name and the last four digits of the number. WhatsApp gives Atta no email to compare, so the page warns plainly that whoever holds that number can shop and approve as you, and links only when you press the button. The link expires after 15 minutes.

The link is a minted MCP token. Every message is checked against it, so a revoked token or a member who left is refused on the next message. Each link emails the member a one-click revoke. To unlink, send unlink or press Disconnect in Settings.

You can also send link smcp_... with a token from Settings. A message carrying a token never reaches the model.

A turn passes the hourly ceiling and the workspace's model budget before any model work runs.

Setting it up

The first four steps need an operator. Members do the last.

  1. Deploy Atta at a public https URL. Locally, use a tunnel.
  2. Create a Meta app with the WhatsApp product, and a System User token with the whatsapp_business_messaging permission.
  3. Set WHATSAPP_ACCESS_TOKEN, WHATSAPP_APP_SECRET, WHATSAPP_PHONE_NUMBER_ID and WHATSAPP_VERIFY_TOKEN (any string you choose), then redeploy.
  4. Add the webhook in Meta with the callback URL https://<host>/eve/v1/whatsapp, that verify token, and a subscription to messages.
  5. Each member writes to the number once and presses Connect account.

A workspace can also connect its own number in Settings, if someone with workspace management enters the phone number id, access token, app secret and verify token. Its webhooks verify with that number's app secret and it acts only in that workspace.

For development, WHATSAPP_MOCK=1 runs the real adapter against a table instead of Meta, with a mock phone at /whatsapp/mock. The production build ignores it.

Questions

Do approvers have to open the app?

No. Send requests on WhatsApp and each pending request comes back as a message with Approve and Decline buttons. A tap answers it as the linked member.

Is a WhatsApp number as safe as a login?

The link asks you to press a button on a signed-in page, and warns that whoever holds the number can shop as you. The link can be revoked from an email or Settings, and each message is checked against it.

Does the agent bypass approval over WhatsApp?

No. Every call goes through the same policy as the web. A purchase over your limit becomes a request for the next approver, wherever you asked for it.

Can I use my own WhatsApp number?

Yes. Someone with workspace management can connect the workspace's own business number in Settings, using its phone number id, access token and app secret.

Related