Overview
Bananaflow answers voice calls that WhatsApp users place to your WhatsApp Business number. Only inbound calls are supported.Prerequisites
- A Meta business portfolio with a WhatsApp Business phone number on Cloud API
Step 1: Create a Meta App
- Go to developers.facebook.com/apps and click Create App
- Enter an app name and contact email, then click Next
- Select Connect with customers through WhatsApp and click Next
- Select the business portfolio that owns your WhatsApp number, click Next, then click Create app
Step 2: Collect Credentials
WhatsApp Business account ID- In your app, open Use cases → Connect on WhatsApp → API Setup
- Select any of your numbers in the From dropdown
- Copy the WhatsApp Business account ID shown below it. One Bananaflow configuration covers every number on the account.
- Open Business settings → Users → System users and select a system user with Admin access (click Add to create one)
- Click ⋯ → Assign assets, and give the system user full control of your app and your WhatsApp account
- Click Generate token, select your app, set expiration to Never, and grant
whatsapp_business_messagingandwhatsapp_business_management - Copy the token. Meta shows it only once.
- In your app, open App settings → Basic
- Click Show next to App secret and copy it
Step 3: Configure in Bananaflow
- Navigate to /telephony-configurations, click Add configuration, and select WhatsApp
- Enter the Access Token, WhatsApp Business Account ID, and App Secret, then click Create. Bananaflow checks them with Meta and subscribes your app to the account’s webhooks before saving.
- Open the new configuration. Under Webhook for your Meta app on the Inbound tab, copy the Callback URL and the Verify token. You’ll paste both into Meta in Step 4.
- In Phone numbers, click Refresh numbers. Bananaflow imports the numbers Meta lists on the account. The result names any number it had to skip, so check it before assigning workflows.
- Edit each number that should take calls and set its Inbound workflow to the agent that should answer. A number with no workflow rejects calls.
Step 4: Configure the Webhook in Meta
- In your app, open Use cases → Connect on WhatsApp → Configuration
- Paste the Callback URL and Verify token from Step 3, then click Verify and save
- In the Webhook fields list that appears, turn on Subscribe for
calls
Step 5: Turn On Calling
- Open WhatsApp Manager → Account tools → Phone numbers
- Click the gear icon next to each number and open Call settings
- Turn on Allow voice calls
{"success": true}.
Step 6: Test
Call one of your business numbers from the WhatsApp app on a phone. Your Bananaflow agent answers.Troubleshooting
'This business is not accepting calls'
'This business is not accepting calls'
Calling is off for the number. Complete Step 5.
'To use WhatsApp calling features, you need to configure webhooks or set up SIP'
'To use WhatsApp calling features, you need to configure webhooks or set up SIP'
The app has no
calls webhook yet. Complete Step 4, then turn on calling.Create fails with 'Meta did not accept these credentials'
Create fails with 'Meta did not accept these credentials'
Meta could not list the account’s numbers with the access token. Check the
WhatsApp Business Account ID against the API Setup page, and that the
token’s system user has full control of your WhatsApp account.
Create fails with 'Meta did not let this app subscribe'
Create fails with 'Meta did not let this app subscribe'
The token’s system user needs
whatsapp_business_management and full
control of the WhatsApp account. Regenerate the token with that permission
and save again.Verify and save fails
Verify and save fails
Save the Bananaflow configuration first, and make sure the Verify token in
Meta matches the one on the configuration page exactly.
Refresh numbers finds nothing, or misses a number
Refresh numbers finds nothing, or misses a number
Bananaflow lists the numbers Meta shows under the WhatsApp Business Account
ID you saved. Check that the number is on that account in WhatsApp Manager,
and that the access token’s system user has full control of it.