In this article you will find a detailed explanation regarding WhatsApp's transition toward usernames and the BSUID identifier, including who this change impacts, technical updates on the Botmaker platform, and a frequent questions guide so your company can adapt its processes and systems before june 2026.
Starting in June 2026, the WhatsApp Business Platform will introduce significant changes to how businesses identify and communicate with their users. This evolution is designed to prioritize privacy, allowing people to interact with businesses without having to share their phone number.
You can:
Prerequisites
Have at least one WhatsApp Business Platform channel connected to Botmaker. Access to your Botmaker account with permissions to manage bots, contacts, and integrations.
Key concepts
BSUID (Business Scoped User ID): a unique, anonymous identifier generated by Meta for each specific user-business combination. It is an alphanumeric string of up to 128 characters.
Username: a public username that each person can enable on WhatsApp as an alternative to sharing their phone number.
ChatID: a unique identifier for each chat in Botmaker, independent of the channel or the user's identity.
Contact ID / platformContactId: the user's identifier on the channel within Botmaker. It can contain the phone number or the BSUID depending on the case.
${whatsappNumber}: a variable that stores the phone number only when the user shares it explicitly.
Contact Book: a Meta Business Suite feature that keeps your current customers' phone numbers visible once they enable their username.
The Business Scoped User ID (BSUID) is a unique, anonymous identifier generated by Meta for each specific user-business combination.
There is no global "shut-off" date for the phone number. The number becomes unavailable on the platform on an individual basis, when each user enables their username (an opt-in feature).
Note: When a user enables their username, their phone number becomes unavailable to the business, unless there has been interaction in the last 30 days, they are in the company's contact book, or other exceptions defined by Meta apply.
Official Meta documentation: Business Scoped User IDs
Botmaker is adapting to make this transition seamless:
The user's unique identifier in Botmaker will become independent of the medium: you'll be able to chat, search for chats, or send templates using either the phone number or the BSUID, and the platform will handle the rest.
Botmaker makes the BSUID and phone number available within the platform through the bot variables ${bsuid}, and it also lets you consume them from external systems via API or webhooks.
As long as the BSUID is provided, you'll find the data in four places:
With this change, Botmaker works with three key variables worth understanding in detail. Each one plays a distinct role:
Note: After the rollout, the platformContactId may stop being a phone number and start containing a BSUID. Any bot logic, validation, or integration that assumes a numeric format will need to be adjusted to support alphanumeric strings of up to 128 characters.
The BSUID and phone number are already available within code actions. You can access them directly from the user context:
This lets you consume both identifiers within your business logic without any additional configuration.
Botmaker has added the /contacts endpoint, which lets you download contact information, including the associated BSUID. The Contacts API is now available.
The endpoint:
In addition to the /contacts endpoint, the existing endpoints already let you reference a user by phone number or by BSUID interchangeably. This applies to sending templates, searching for chats, and other operations.
Botmaker's webhooks are already sending the BSUID in their payload, along with the phone number when it's available. When a user interacts via WhatsApp and Botmaker has the BSUID, it is sent automatically through the corresponding field, without requiring any changes to your existing webhook configuration.
So that your integration works before and after the rollout without requiring urgent adjustments:
It's important to identify which processes will be modified and which will stay the same:
Affected:
Not affected:
The ability to send notification templates using traditional phone numbers will be maintained, since the system will let you reference WhatsApp conversations through the ChatID, the phone number, or the new BSUID.
For contacts that already have a number on file from previous interactions, Botmaker will keep both pieces of data to ensure service continuity.
To avoid disruptions, we recommend following these steps:
Adopt the new variables and data sources on the platform: use ${bsuid}, Contact ID, and ${whatsappNumber} as appropriate in each bot flow, consume context.userData.bsuid and context.userData.whatsappNumber from your code actions, and take advantage of the API's /contacts endpoint when you need to consume the data from external systems.
Where can I find the BSUID and phone number within Botmaker?
In four places, as long as the BSUID is provided: on the contacts screen (it appears in the user's profile, available as of this week); in the webhooks (they include the phone number and BSUID); in the code actions (available in context.userData.bsuid and context.userData.whatsappNumber); and via the API, downloading contacts with their phone number and associated BSUID through the /contacts endpoint.
How will notifications be sent?
Companies will be able to reference WhatsApp conversations and send notifications using three types of identifiers: ChatID, phone number, or BSUID. The platform will let you load any of these to start or maintain communication.
What happens if a user doesn't want to share their phone number? How do you send them templates?
If the user chooses to hide their number, the company will receive their BSUID. You can keep sending outbound campaigns or messages through the API using this identifier instead of the phone number. If, for operational reasons (such as a physical shipment or legal validation), you need the number, you can request it from the user via a utility or marketing template designed to capture that data.
Will it still be possible to send templates to users with a phone number?
Yes. If you already have the WhatsApp number on file from previous interactions, Botmaker will keep both pieces of data (phone number and BSUID). In addition, for existing contacts, the phone number will remain visible and usable if the user is already in your Meta "Contact Book."
How will templates continue to be sent?
The technical process stays similar, but with greater flexibility in the identifier. Marketing campaigns and utility messages can be triggered using the BSUID. Note that authentication templates (OTP) will not change in their basic operation. These can be sent only by phone number and not by BSUID.
What is the exact variable within Botmaker that will bring the BSUID in WhatsApp conversations?
The variable is ${bsuid}. It's already available on the platform and you can use it in your bot flows. Within code actions, the same data is available in context.userData.bsuid.
Is there a variable that contains the phone number when the user shares it?
Yes. The ${whatsappNumber} variable is filled with the phone number only when the user shares it explicitly (for example, through a flow that requests the contact). If the user never shared their number, this variable will remain empty. Within code actions, the same data is available in context.userData.whatsappNumber. This is the recommended way to capture and store phone numbers after the rollout.
Is there an API endpoint to download contacts with their BSUID?
Yes. Botmaker has added the /contacts endpoint, which lets you download all of the account's contacts along with their BSUID and, where applicable, their phone number. The Contacts API is now available and its documentation is published automatically along with the rest of the API.
Will the BSUID replace the current value of platformContactId, customerId, or another variable?
Yes, eventually. The platformContactId or "user's ID on the channel" may start containing a BSUID instead of a phone number after the rollout — we recommend not assuming a numeric format in your bot logic. The ${bsuid} variable always contains the BSUID, and ${whatsappNumber} always contains the number (when available).
Will CHAT_CHANNEL_ID continue to represent only the channel/chat, or could it also change with this update?
It does not change. CHAT_CHANNEL_ID represents the business's line, not the user's. It is not affected by the introduction of the BSUID.
Is there a real example of a payload, code action, or platform variable where the BSUID is already visible?
Yes. It's already available on the platform and can be tested today through the ${bsuid} variable, in the contact's profile, in the webhook payload, and within code actions via context.userData.bsuid and context.userData.whatsappNumber.
In user-initiated conversations, should we assume that in some cases we will no longer receive the phone number and only the BSUID will arrive?
Correct. With the progressive rollout, each time a user enables their username, the phone number will become unavailable on the platform and only the BSUID will be exposed. There is no single global date — it depends on each user's individual adoption.
For historical contacts, will Botmaker keep exposing both pieces of data (phone number and BSUID) in variables usable within the bot?
Yes. For contacts with previous interactions, Botmaker will keep both the phone number and the BSUID accessible, and both can be used to send notifications.
Is there additional technical documentation, a changelog, a manual, or an expanded FAQ beyond this article?
For now, no additional technical documentation has been published. The Botmaker team is preparing supplementary material that will be shared as the rollout progresses. The official reference source is Meta's documentation on Business Scoped User IDs.
Is there a way to validate this behavior in a test or development environment before the general rollout?
The deployment is general; no separate testing environment is offered. Validation is done directly on the platform using the ${bsuid} variable that is already available.
Will any changes be required in actions such as trigger intent, change bot, master bot, or authentications via external links?
No changes are required in those actions. The only thing to keep in mind is that the platformContactId or the "user's ID on the channel" may stop being a phone number — any validation or logic that assumes a numeric format should be adjusted.
Remember to visit our Help Center for further information.