📇 What is the contact information request?
WhatsApp allows some conversations to start without the user sharing their phone number: instead, they are identified with a Business Account ID (BSUID). When your operation needs the actual contact (sales, support, authentication, or process continuity), you can ask the user to share it explicitly and securely.
In Atom, this capability is available in Flowbuilder in two ways:
Interactive message with the button type Contact Information Request.
WhatsApp template of contact request type (identified with the label Contact Request).
In both cases, the end user sees a native card in WhatsApp to share or not share their information. If they accept, WhatsApp's native form opens to confirm the contact.
📱 What channels is it available on?
This functionality is designed for WhatsApp. Use it in inbound or outbound flows where you need to obtain the user's contact before continuing the process.
🌟 What is it for?
Continue processes that require a phone number: quotes, scheduling, validations, or transfers to agents.
Adapt to Meta's BSUID model: you maintain the conversation even if the user hasn't shared their number at the start.
Branch the flow based on the customer's decision: with Evaluate Response you can define one path if they shared the contact and another if they didn't.
Test before publishing: Web Simulation allows you to validate both scenarios without sending real messages.
⚙️ Option 1: Request contact with an interactive message
Follow these steps to configure the request within a Message component:
Enter your workspace in Flowbuilder and add (or select) a Message component.
Configure the message body with the text the user will see (for example: "Share your contact information with us to continue with your request."). This is the only editable field of the request.
In the buttons section, open the button type dropdown and select Contact Information Request.
You will see a button with the fixed label "Share contact" in the canvas. This text is only a visual representation: WhatsApp displays the native button according to the user's device language.
Connect the message to an Evaluate Response component to branch the flow based on the user's decision.
Click Save and then Publish when the flow is ready.
⚠️ Important rules of the interactive message
⚠️ The button text is not customizable. Meta renders it natively; Atom does not allow you to edit it to avoid configurations that WhatsApp would ignore.
You can only add one button of type Contact Information Request in that message.
The only thing you need to care about is the message body: be clear about why you are requesting the contact.
The behavior is analogous to a call permission request: the user decides to accept or decline, and the flow continues through the corresponding branch.
📋 Option 2: Request contact with a template
If you need to start or resume the conversation with a template approved by Meta, you can also use contact request templates:
In Flowbuilder, add a Template component (or open it if it already exists in your flow).
Open the selector of templates available for your account/channel.
Identify templates with the label Contact Request (same visual pattern as the Carousel label).
Select the desired template. It requires no additional configuration within the templates module to send it from the flow.
Connect the template to an Evaluate Response component to define what happens if the user shares their contact or not.
Save and publish the flow.
👁️ Note: If you don't have a template of this type yet, create it and submit it for approval from Settings > Messaging > Templates. Once approved by Meta, it will appear in the Flowbuilder selector with its label Contact Request.
🔀 How do you evaluate the user's response?
To make the flow react to the customer's decision, connect the message or template to an Evaluate Response component.
When the component detects a contact request, two outputs are enabled:
Branch | What it means | What to normally do |
Shared contact | The user accepted and shared their information | Continue the process (save data, advance stages, assign agent, etc.) |
Other | The user declined or did not share their information | Explain the impact, offer another way, or close / retry later |
Recommended step by step
Connect the Message or Template component (with contact request) to the Evaluate Response component.
Verify that the Shared contact branch appears by default.
Design each path:
If they shared: confirm receipt, use the contact in the next step of the flow, and continue the funnel.
If they didn't share: inform them why you need it, offer an alternative, or transfer to a human agent.
🧪 How do you test it in Web Simulation?
Before publishing, validate both scenarios in Web Simulation:
Open the simulation of your flow.
Advance to the node that sends the contact request.
You will see the interaction consistent with WhatsApp (share button).
Test both options:
Shared: simulate the user sending their contact and confirm that the flow takes the correct branch.
Did not share: simulate the rejection and verify the alternative path.
Adjust texts or routes if any branch does not behave as expected, save and simulate again.
📏 Rules and limits you should know
For the request to work correctly:
Channel: WhatsApp.
Interactive message button: text not editable (WhatsApp native).
Quantity: maximum 1 contact request button per interactive message.
Editable field: the message body (text accompanying the request).
Templates: must exist and be available/approved for your account; in the selector they are identified with the label Contact Request.
Evaluation: always use Evaluate Response after the request to branch by shared / not shared.
Conversation inbox: the contact request interactive message is displayed in the conversation for team follow-up.
🚨 Common troubleshooting
❓ "I want to change the button text and I can't edit it"
This is expected behavior. Meta defines the button natively according to the device language. In Atom you only configure the message body; in the canvas you will see a reference label (for example, "Share contact").
❓ "I don't see templates with the Contact Request label"
Verify that a template of that type exists, is approved, and is associated with the correct channel. If you just created it, wait for Meta's approval and reopen the selector in Flowbuilder.
❓ "The flow doesn't distinguish if the user shared the contact or not"
Make sure you've connected the message/template to Evaluate Response and have routes defined on both branches. Then test both paths in Web Simulation.
❓ "Can I put multiple buttons along with the contact request?"
For this type of request, the message accepts only one contact information request button. If you need other options (menus, quick replies, etc.), separate them in different flow nodes.
❓ "Does this replace asking for the phone number as free text?"
Not necessarily. The native request is more secure and aligned with WhatsApp/BSUID, because the user shares the contact from the official form. You can combine it with other flow steps depending on your use case.
✅ Best practices
Explain why you are asking for the contact in the message body ("to send you the quote", "to confirm your appointment", etc.).
Always offer a clear path if the user doesn't share (alternative, FAQ, or human support).
Use Web Simulation before publishing, testing both outcomes.
If you open a conversation outside the 24-hour window, prioritize the approved template route.
Keep the flow simple: request → evaluate response → next action.
Get the right contact at the right time! 🚀
With the contact information request from Flowbuilder you can adapt your automations to WhatsApp's BSUID model without friction: you ask for the data only when you need it, branch according to the user's decision, and validate everything in simulation before publishing.



