How To: Connect WhatsApp π‘ BETA
Tutorial 5 of the Channels Series
Connect your bot to WhatsApp in 20 minutes
Objective
By the end of this tutorial, you will have:
- Created a Meta Business account
- Set up a WhatsApp Business App
- Connected WhatsApp to your General Bots instance
- Tested the connection with a real message
Time Required
β±οΈ 20 minutes
Prerequisites
Before you begin, make sure you have:
- A working bot (see Create Your First Bot)
- A phone number for WhatsApp Business (cannot be used with regular WhatsApp)
- A Facebook account
- Administrator access to General Bots
Understanding WhatsApp Integration
Step 1: Set Up Meta Business Account
1.1 Go to Meta for Developers
Open your browser and navigate to:
https://developers.facebook.com
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Browser [β][β‘][Γ]β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β β β» β https://developers.facebook.com β β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Meta for Developers β
β β
β βββββββββββββββββββββββ β
β β Log In β β
β βββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1.2 Log In with Facebook
- Click Log In
- Enter your Facebook credentials
- Click Log In
1.3 Create a Meta Business Account (If Needed)
If you donβt have a business account:
- Go to https://business.facebook.com
- Click Create Account
- Enter your business name
- Enter your name and business email
- Click Submit
π‘ Note: You can use your personal Facebook account, but a business account is recommended for production use.
β Checkpoint: You should now be logged into Meta for Developers.
Step 2: Create a WhatsApp App
2.1 Go to My Apps
Click My Apps in the top navigation.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Meta for Developers [My Apps βΌ] [π€ Account] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β My Apps β
β βββββββ β
β β
β βββββββββββββββββββββββββββ β
β β + Create App β βββ Click here β
β βββββββββββββββββββββββββββ β
β β
β You don't have any apps yet. β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2.2 Create a New App
- Click Create App
- Select Business as the app type
- Click Next
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Create an App [Γ] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Select an app type: β
β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β Consumer β β β Business β β Gaming β β
β β β β βββ Select β β β β
β β For consumer β β β β For game β β
β β apps β β For business β β integrations β β
β β β β integrations β β β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β
β [Next] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2.3 Fill In App Details
| Field | What to Enter | Example |
|---|---|---|
| App Name | Your botβs name | My Company Bot |
| App Contact Email | Your email | admin@company.com |
| Business Account | Select or create | My Company |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Add App Details [Γ] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β App Name: β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β My Company Bot β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β App Contact Email: β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β admin@company.com β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Business Account: β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β My Company [βΌ] β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β [Create App] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Click Create App
- Complete the security check if prompted
2.4 Add WhatsApp to Your App
- In the app dashboard, scroll to Add Products
- Find WhatsApp and click Set Up
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Add Products to Your App β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β Messenger β β π± WhatsApp β β Instagram β β
β β β β β β β β
β β [Set Up] β β [Set Up] βββ β β [Set Up] β β
β β β β Click here β β β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Checkpoint: WhatsApp should now appear in your appβs left sidebar.
Step 3: Configure WhatsApp Settings
3.1 Get Your API Credentials
In the left sidebar, click WhatsApp β API Setup.
Youβll see:
- Phone number ID - Identifies your WhatsApp number
- WhatsApp Business Account ID - Your business account
- Temporary access token - For testing (expires in 24 hours)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β WhatsApp > API Setup β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β STEP 1: Select Phone Numbers β
β ββββββββββββββββββββββββββββ β
β β
β From: [Test Number - 15550001234 βΌ] β
β β
β To: (Add a recipient phone number for testing) β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β +1 555 123 4567 β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β STEP 2: Send Messages with the API β
β ββββββββββββββββββββββββββββββββββ β
β β
β Temporary Access Token: β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β EAAGm0PX4ZCp... [Copy] β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β οΈ This token expires in 24 hours. Use System User for production. β
β β
β Phone Number ID: 123456789012345 [Copy] β
β WhatsApp Business Account ID: 987654321098765 [Copy] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Write down these values - Youβll need them in the next step:
- Phone Number ID:
_______________ - Access Token:
_______________
3.2 Create a Permanent Access Token
For production, you need a permanent token:
- Go to Business Settings β System Users
- Click Add to create a system user
- Name it (e.g., βWhatsApp Botβ)
- Set role to Admin
- Click Generate Token
- Select your app and the
whatsapp_business_messagingpermission - Click Generate Token
π‘ Important: Save this token securely! You wonβt be able to see it again.
3.3 Configure the Webhook
The webhook tells Meta where to send incoming messages.
- In the left sidebar, click WhatsApp β Configuration
- Under Webhook, click Edit
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Webhook Configuration [Γ] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Callback URL: β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β https://your-bot-server.com/webhook/whatsapp β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Verify Token: β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β your-custom-verify-token-here β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β β οΈ Your server must respond to Meta's verification request β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Verify and Save β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Enter these values:
| Field | Value |
|---|---|
| Callback URL | https://your-server.com/webhook/whatsapp |
| Verify Token | A secret string you create (e.g., my_bot_verify_123) |
- Click Verify and Save
3.4 Subscribe to Webhook Events
After verifying, select which events to receive:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Webhook Fields β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β β messages βββ Required! Receive incoming messages β
β β message_template_status_update β
β β phone_number_name_update β
β β phone_number_quality_update β
β β account_review_update β
β β account_update β
β β business_capability_update β
β β flows β
β β security β
β β message_echoes β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
At minimum, select:
- messages (required - to receive user messages)
β Checkpoint: Webhook should show as βActiveβ with a green indicator.
Step 4: Configure General Bots
4.1 Open Bot Settings
- In General Bots, go to Sources
- Click βοΈ on your bot
- Go to the Channels tab
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Bot Settings: support [Γ] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββ β
β β General β AI β*Channels*β Security β Advanced β β
β ββββββββββββ΄βββββββββββ΄βββββββββββ΄βββββββββββ΄βββββββββββ β
β β
β CONNECTED CHANNELS β
β ββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π Web Chat Status: β On β β
β β Embedded widget on your website β β
β β [Configure] β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π± WhatsApp Status: β Off β β
β β Not configured β β
β β [Configure] βββ Click here β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4.2 Enter WhatsApp Credentials
Click Configure for WhatsApp and enter your credentials:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β WhatsApp Configuration [Γ] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β META API CREDENTIALS β
β ββββββββββββββββββββ β
β β
β Phone Number ID: β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β 123456789012345 β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Access Token: β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Verify Token: β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β my_bot_verify_123 β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β οΈ Must match the token you set in Meta Developer Portal β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β WEBHOOK URL (provide this to Meta) β
β ββββββββββββββββββββββββββββββββββ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β https://your-server.com/webhook/whatsapp [Copy] β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββ βββββββββββββββββββ β
β β Test Connection β β Save β β
β βββββββββββββββββββ βββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4.3 Test the Connection
- Click Test Connection
- You should see βConnection successful!β
If the test fails, check:
- Token is correct and not expired
- Phone Number ID is correct
- Your server is accessible from the internet
4.4 Save and Enable
- Click Save
- Toggle WhatsApp to On
β Checkpoint: WhatsApp should now show Status: β On
Step 5: Test Your WhatsApp Bot
5.1 Add Test Phone Number
In Meta Developer Portal:
- Go to WhatsApp β API Setup
- Under βToβ, add your phone number
- Click Send to receive a test message
5.2 Send a Test Message
- Open WhatsApp on your phone
- Message the botβs number (the test number from Meta)
- Send: βHelloβ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β WhatsApp β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β My Company Bot β β
β β +1 555 000 1234 β β
β β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β βββββββββββββββββ β β
β β β Hello β β β
β β β 10:30 β β β
β β βββββββββββββββββ β β
β β β β
β β βββββββββββββββββββββββββββββββββββββββββββ β β
β β β Hello! How can I help you today? β β β
β β β 10:30 β β β
β β βββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β β βββββββββββββββββ β β
β β β I need help β β β
β β β with my order β β β
β β β 10:31 β β β
β β βββββββββββββββββ β β
β β β β
β β βββββββββββββββββββββββββββββββββββββββββββ β β
β β β I'd be happy to help with your order! β β β
β β β What's your order number? β β β
β β β 10:31 β β β
β β βββββββββββββββββββββββββββββββββββββββββββ β β
β β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Type a message... π β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
5.3 Verify in General Bots
Check that the conversation appears in Analytics:
- Go to Analytics β Sessions
- You should see a new session with channel βWhatsAppβ
π Congratulations!
Your bot is now connected to WhatsApp! Users can message your WhatsApp Business number and receive responses from your bot.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β β SUCCESS! β
β β
β Your WhatsApp bot is live! β
β β
β βββββββββββββ βββββββββββββ ββββββββββββ β
β β β β β β β β
β β π± β βββββββββΆ β π€ β βββββββββΆ β π¬ β β
β β WhatsApp β β General β β Bot β β
β β User β βββββββββ β Bots β βββββββββ β Response β β
β β β β β β β β
β βββββββββββββ βββββββββββββ ββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Going to Production
Add a Real Phone Number
The test number has limitations. For production:
- Go to WhatsApp β Phone Numbers in Meta Developer Portal
- Click Add Phone Number
- Enter your business phone number
- Verify via SMS or voice call
- Update the Phone Number ID in General Bots settings
Submit for App Review
Before going live with real customers:
- Go to App Review in Meta Developer Portal
- Request
whatsapp_business_messagingpermission - Complete the review process (takes 2-5 business days)
Set Up Message Templates
For proactive messages (not replies), you need approved templates:
- Go to WhatsApp β Message Templates
- Create templates for notifications, alerts, etc.
- Wait for Meta approval (usually 24 hours)
Troubleshooting
Problem: βWebhook verification failedβ
Possible causes:
- Verify token doesnβt match
- Server not responding
- HTTPS not configured
Solution:
- Check the verify token matches exactly in both places
- Verify your server is accessible:
curl https://your-server.com/webhook/whatsapp - Ensure you have a valid SSL certificate
Problem: Messages not arriving
Possible causes:
- Webhook not subscribed to βmessagesβ
- App in development mode with unlisted numbers
- Access token expired
Solution:
- Check webhook subscriptions include βmessagesβ
- Add test phone numbers in API Setup
- Generate a new access token
Problem: Bot responds slowly
Possible causes:
- Network latency
- Bot processing time
- Meta rate limits
Solution:
- Ensure server is geographically close to users
- Optimize bot dialog processing
- Check rate limit status in Meta dashboard
Problem: βError 190: Invalid OAuth access tokenβ
Possible causes:
- Token expired (temporary tokens last 24 hours)
- Token was revoked
- Wrong token used
Solution:
- Generate a new System User token (permanent)
- Update the token in General Bots settings
- Verify youβre using the WhatsApp access token, not a Facebook token
Problem: Phone number shows as unverified
Possible causes:
- Verification not completed
- Two-factor authentication issue
- Number already in use
Solution:
- Re-request verification code
- Check business verification status
- Contact Meta support if number was previously registered
What You Learned
In this tutorial, you:
- β Created a Meta Developer account and app
- β Configured WhatsApp Cloud API
- β Set up webhook for incoming messages
- β Connected WhatsApp to General Bots
- β Tested the integration with real messages
Next Steps
Now that WhatsApp is connected, try these:
| Next Tutorial | What Youβll Learn |
|---|---|
| Write Your First Dialog | Create custom conversation flows |
| Add KB Documents | Make your bot smarter |
| Monitor Sessions | Track WhatsApp conversations |
Quick Reference
WhatsApp Message Limits
| Tier | Messages/Day | How to Qualify |
|---|---|---|
| Unverified | 250 | New accounts |
| Verified | 1,000 | Complete business verification |
| Tier 1 | 10,000 | Good quality rating |
| Tier 2 | 100,000 | Maintain quality |
| Tier 3 | Unlimited | High volume, good quality |
Quality Rating
Meta monitors your WhatsApp quality based on:
- User blocks and reports
- Message template quality
- Response time
Keep quality high by:
- Responding to all messages
- Not spamming users
- Using approved templates for outbound messages
Key URLs
| Resource | URL |
|---|---|
| Meta for Developers | https://developers.facebook.com |
| Meta Business Suite | https://business.facebook.com |
| WhatsApp Cloud API Docs | https://developers.facebook.com/docs/whatsapp |
| API Status | https://metastatus.com |
Configuration via config.csv
Configure WhatsApp in your botβs config.csv:
name,value
whatsapp-phone-number-id,123456789012345
whatsapp-access-token,EAAGm0PX4ZCp...
whatsapp-verify-token,my_bot_verify_123
whatsapp-business-account-id,987654321098765
Note: Do not use environment variables for WhatsApp configuration. All settings belong in config.csv.
See Also
- Chat App - Web chat interface
- Sources App - Bot configuration
- Compliance App - Data privacy for WhatsApp