# The WhatsApp business identity

The identity at the top of a customer's chat — the number, the business name, the profile photo and any verification mark — belongs to the WhatsApp Business account held at Meta. Connect reads three facts back from Meta when you verify the connection and never overrides any of them. What a workspace controls is what the messages say, who they go to, and whether a person approves them first.

- **Status:** Available
- **Audience:** both
- **Channels:** whatsapp
- **In the app:** #/whatsapp-setup
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/whatsapp/provider-identity/

## What a customer sees

A person receiving a message from a business on WhatsApp sees a chat header with a name, possibly a photo, and a number underneath. On an account Meta has verified they may also see a mark next to the name. None of that is drawn by Connect; it is the profile attached to the WhatsApp Business account, held by Meta and edited in Meta's own tools. What Connect keeps is what `verify_connection` reads back — the display number, the verified name and Meta's quality rating for the number — so the setup screen can show you which identity it is actually talking to.

The practical consequence is that the identity is the business's, not the agent's. A reply Connect drafts and a reply a colleague types by hand arrive from the same name, in the same chat, and look identical to the person reading them. If you want the difference to be visible, it has to be in the words — a signature line, or a sentence in the standing instructions telling Connect to say who is writing.

## What sits where

**Business display name** — The WhatsApp Business profile at Meta. Changing it is done in Meta's tools and may need review.
**Profile photo and description** — The same profile. Connect never reads or writes it.
**The number itself** — Registered with Meta by the business, or — on the QR route — the number already running the WhatsApp Business app.
**Verified name and quality rating** — Meta's, read back by `verify_connection` and stored so the setup screen can show them.
**Verification mark** — Granted by Meta against the business, on its own criteria. Connect makes no claim about it.
**Message content and tone** — Your workspace — Knowledge, Memory and Connect Rules.
**Whether a message is sent at all** — Your workspace — `whatsapp.dispatch`, asking `autonomy.decide`.

> **Note** Because the identity is shared by every sender on the number, a workspace running WhatsApp on `autonomous` is publishing under the business's own name without a person reading first. That is a reasonable choice; it is worth making it deliberately rather than by leaving a default in place.

## A QR-linked number is also somebody's phone

On a coexistence number the identity has a second author. Anything typed in the WhatsApp Business app on the handset comes back to Connect as an echo and is stored in the thread as an outbound message sent by the business app — the customer cannot tell the two apart, because there is only one identity. Connect treats that as a takeover: the conversation is paused until somebody resumes it, so two authors never answer at once.

Thread names come from the same place. The business app's address book is shared at onboarding and again as it changes, so a thread is named the way the phone names it rather than by the WhatsApp profile name the sender chose. The connection also carries a standing risk line wherever the status shows: the number is a person's phone as well, and Meta can still restrict, log out or block it.

## One identity, several people

In Connect the number is an **endpoint** — the same idea as one mailbox on email, and the value `dispatch` passes to `autonomy.decide` as `endpoint_key` is the Meta phone number ID. Autonomy resolves at four scopes and *endpoint* is one of them, so the WhatsApp line can be governed differently from a mailbox or a phone line. Memory has the same four tiers, so a direction like "on this number, always confirm the branch address" attaches to the number rather than to the whole workspace.

The Person on the other side is resolved separately, from the sending number, and is shared with every other channel — the same human who emailed you last week is the same record here. [Recognising who sent a WhatsApp message](/docs/whatsapp/person-resolution/) covers how that match is made and what happens when it cannot be.

## Failure modes worth knowing

| Symptom | Cause | Where it is fixed |
|---|---|---|
| The chat shows a raw number, no business name | The WhatsApp Business profile has no display name set | Meta's own tools |
| The name is wrong or out of date | The profile was edited before a rename, or never after | Meta's own tools |
| The setup screen shows a verified name you do not recognise | The credentials point at a different number than you meant | `#/whatsapp-setup` — reconnect with the right phone number ID |
| Quality rating has dropped | Meta's own assessment of how people react to the number | Meta. Connect reports the rating and changes nothing about it |
| A customer says the account looks unofficial | No verification against the business, which is Meta's decision | Meta |

None of these is a Connect fault and none of them is fixed inside Connect, which is exactly why they are listed here: an hour spent looking for a display-name field on the setup screen is an hour lost.

## Questions

### Can Connect send under a different name for a different customer?

No. Everything on one number carries that number's profile. Separating two brands means two WhatsApp Business accounts and two numbers, and since a workspace resolves to one WhatsApp account, two workspaces.

### Does a QR-linked number look different to the person receiving the message?

No. Coexistence is Meta's own route, so the chat header is the same WhatsApp Business profile it was before. The difference is on your side: a risk line on the connection, a harder automatic-send cap, and replies from the handset arriving as echoes.

### Does the customer know they are talking to software?

Only if you say so. Connect does not add a disclosure of its own, and it does not claim to be a named person either. If your policy or your regulator requires a disclosure, put it in the standing instructions so it appears in the words the customer reads.

### Is the display name used to match a person to a record?

No — matching works from the sending number, through `identity.py`. A WhatsApp profile name is treated as a hint about a human, never as an identifier.

## Related

- [WhatsApp in Connect](https://connectbyjbrh.com/docs/whatsapp/)
- [Setting up WhatsApp](https://connectbyjbrh.com/docs/whatsapp/channel-setup/)
- [Recognising who sent a WhatsApp message](https://connectbyjbrh.com/docs/whatsapp/person-resolution/)
- [What WhatsApp cannot do here](https://connectbyjbrh.com/docs/whatsapp/whatsapp-limits/)
- [What Connect may do](https://connectbyjbrh.com/docs/autonomy/)
- [Memory in Connect](https://connectbyjbrh.com/docs/memory/)

## What this page is based on

- `backend/app/whatsapp.py` — `verify_connection`, `status`, `_store_echoes`, `_apply_state_sync`
- Connect capability registry (docs-source/facts.py) — `WHATSAPP`
- `docs-source/sources/GENERAL.md` §5 — autonomy scopes, §6 — memory tiers
