Frontend Changes: - Fix runtime error: Remove undefined handleModify reference from ActionQueueCard in DashboardPage - Migrate PurchaseOrderDetailsModal to use correct PurchaseOrderItem type from purchase_orders service - Fix item display: Parse unit_price as string (Decimal) instead of number - Use correct field names: item_notes instead of notes - Remove deprecated PurchaseOrder types from suppliers.ts to prevent type conflicts - Update CreatePurchaseOrderModal to use unified types - Clean up API exports: Remove old PO hooks re-exported from suppliers - Add comprehensive translations for PO modal (en, es, eu) Documentation Reorganization: - Move WhatsApp implementation docs to docs/03-features/notifications/whatsapp/ - Move forecast validation docs to docs/03-features/forecasting/ - Move specification docs to docs/03-features/specifications/ - Move deployment docs (Colima, K8s, VPS sizing) to docs/05-deployment/ - Archive completed implementation summaries to docs/archive/implementation-summaries/ - Delete obsolete FRONTEND_CHANGES_NEEDED.md - Standardize filenames to lowercase with hyphens 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
692 lines
17 KiB
Markdown
692 lines
17 KiB
Markdown
# WhatsApp Master Account Setup Guide
|
||
|
||
**Quick Setup Guide for Platform Admin**
|
||
|
||
This guide walks you through setting up the Master WhatsApp Business Account for the bakery-ia pilot program.
|
||
|
||
---
|
||
|
||
## Prerequisites
|
||
|
||
- [ ] Meta/Facebook Business account
|
||
- [ ] Business verification documents (tax ID, business registration)
|
||
- [ ] 10 phone numbers for pilot bakeries
|
||
- [ ] Credit card for WhatsApp Business API billing
|
||
|
||
**Time Required:** 2-3 hours (including verification wait time)
|
||
|
||
---
|
||
|
||
## Step 1: Create Meta Business Account
|
||
|
||
### 1.1 Create Business Manager
|
||
|
||
1. Go to [Meta Business Suite](https://business.facebook.com)
|
||
2. Click **Create Account**
|
||
3. Enter business details:
|
||
- Business Name: "Bakery Platform" (or your company name)
|
||
- Your Name
|
||
- Business Email
|
||
4. Click **Submit**
|
||
|
||
### 1.2 Verify Your Business
|
||
|
||
Meta requires business verification for WhatsApp API access:
|
||
|
||
1. In Business Settings → **Security Center**
|
||
2. Click **Start Verification**
|
||
3. Choose verification method:
|
||
- **Business Documents** (Recommended)
|
||
- Upload tax registration document
|
||
- Upload business license or registration
|
||
- **Domain Verification**
|
||
- Add DNS TXT record to your domain
|
||
- **Phone Verification**
|
||
- Receive call/SMS to business phone
|
||
|
||
4. Wait for verification (typically 1-3 business days)
|
||
|
||
**Status Check:**
|
||
```
|
||
Business Settings → Security Center → Verification Status
|
||
```
|
||
|
||
---
|
||
|
||
## Step 2: Add WhatsApp Product
|
||
|
||
### 2.1 Enable WhatsApp
|
||
|
||
1. In Business Manager, go to **Settings**
|
||
2. Click **Accounts** → **WhatsApp Accounts**
|
||
3. Click **Add** → **Create a new WhatsApp Business Account**
|
||
4. Fill in details:
|
||
- Display Name: "Bakery Platform"
|
||
- Category: Food & Beverage
|
||
- Description: "Bakery management notifications"
|
||
5. Click **Create**
|
||
|
||
### 2.2 Configure WhatsApp Business Account
|
||
|
||
1. After creation, note your **WhatsApp Business Account ID (WABA ID)**
|
||
- Found in: WhatsApp Manager → Settings → Business Info
|
||
- Format: `987654321098765` (15 digits)
|
||
- **Save this:** You'll need it for environment variables
|
||
|
||
---
|
||
|
||
## Step 3: Add Phone Numbers
|
||
|
||
### 3.1 Add Your First Phone Number
|
||
|
||
**Option A: Use Your Own Phone Number** (Recommended for testing)
|
||
|
||
1. In WhatsApp Manager → **Phone Numbers**
|
||
2. Click **Add Phone Number**
|
||
3. Enter phone number in E.164 format: `+34612345678`
|
||
4. Choose verification method:
|
||
- **SMS** (easiest)
|
||
- **Voice call**
|
||
5. Enter verification code
|
||
6. Note the **Phone Number ID**:
|
||
- Format: `123456789012345` (15 digits)
|
||
- **Save this:** Default phone number for environment variables
|
||
|
||
**Option B: Use Meta-Provided Free Number**
|
||
|
||
1. In WhatsApp Manager → **Phone Numbers**
|
||
2. Click **Get a free phone number**
|
||
3. Choose country: Spain (+34)
|
||
4. Meta assigns a number in format: `+1555XXXXXXX`
|
||
5. Note: Free numbers have limitations:
|
||
- Can't be ported to other accounts
|
||
- Limited to 1,000 conversations/day
|
||
- Good for pilot, not production
|
||
|
||
### 3.2 Add Additional Phone Numbers (For Pilot Bakeries)
|
||
|
||
Repeat the process to add 10 phone numbers total (one per bakery).
|
||
|
||
**Tips:**
|
||
- Use virtual phone number services (Twilio, Plivo, etc.)
|
||
- Cost: ~€5-10/month per number
|
||
- Alternative: Request Meta phone numbers (via support ticket)
|
||
|
||
**Request Phone Number Limit Increase:**
|
||
|
||
If you need more than 2 phone numbers:
|
||
|
||
1. Open support ticket at [WhatsApp Business Support](https://business.whatsapp.com/support)
|
||
2. Request: "Increase phone number limit to 10 for pilot program"
|
||
3. Provide business justification
|
||
4. Wait 1-2 days for approval
|
||
|
||
---
|
||
|
||
## Step 4: Create System User & Access Token
|
||
|
||
### 4.1 Create System User
|
||
|
||
**Why:** System Users provide permanent access tokens (don't expire every 60 days).
|
||
|
||
1. In Business Settings → **Users** → **System Users**
|
||
2. Click **Add**
|
||
3. Enter details:
|
||
- Name: "WhatsApp API Service"
|
||
- Role: **Admin**
|
||
4. Click **Create System User**
|
||
|
||
### 4.2 Generate Access Token
|
||
|
||
1. Select the system user you just created
|
||
2. Click **Add Assets**
|
||
3. Choose **WhatsApp Accounts**
|
||
4. Select your WhatsApp Business Account
|
||
5. Grant permissions:
|
||
- ✅ Manage WhatsApp Business Account
|
||
- ✅ Manage WhatsApp Business Messaging
|
||
- ✅ Read WhatsApp Business Insights
|
||
6. Click **Generate New Token**
|
||
7. Select token permissions:
|
||
- ✅ `whatsapp_business_management`
|
||
- ✅ `whatsapp_business_messaging`
|
||
8. Click **Generate Token**
|
||
9. **IMPORTANT:** Copy the token immediately
|
||
- Format: `EAAxxxxxxxxxxxxxxxxxxxxxxxx` (long string)
|
||
- **Save this securely:** You can't view it again!
|
||
|
||
**Token Security:**
|
||
```bash
|
||
# Good: Use environment variable
|
||
WHATSAPP_ACCESS_TOKEN=EAAxxxxxxxxxxxxx
|
||
|
||
# Bad: Hardcode in source code
|
||
# token = "EAAxxxxxxxxxxxxx" # DON'T DO THIS!
|
||
```
|
||
|
||
---
|
||
|
||
## Step 5: Create Message Templates
|
||
|
||
WhatsApp requires pre-approved templates for business-initiated messages.
|
||
|
||
### 5.1 Create PO Notification Template
|
||
|
||
1. In WhatsApp Manager → **Message Templates**
|
||
2. Click **Create Template**
|
||
3. Fill in template details:
|
||
|
||
```
|
||
Template Name: po_notification
|
||
Category: UTILITY
|
||
Languages: Spanish (es)
|
||
|
||
Message Body:
|
||
Hola {{1}}, has recibido una nueva orden de compra {{2}} por un total de {{3}}.
|
||
|
||
Parameters:
|
||
1. Supplier Name (text)
|
||
2. PO Number (text)
|
||
3. Total Amount (text)
|
||
|
||
Example:
|
||
Hola Juan García, has recibido una nueva orden de compra PO-12345 por un total de €250.50.
|
||
```
|
||
|
||
4. Click **Submit for Approval**
|
||
|
||
**Approval Time:**
|
||
- Typical: 15 minutes to 2 hours
|
||
- Complex templates: Up to 24 hours
|
||
- If rejected: Review feedback and resubmit
|
||
|
||
### 5.2 Check Template Status
|
||
|
||
**Via UI:**
|
||
```
|
||
WhatsApp Manager → Message Templates → Filter by Status
|
||
```
|
||
|
||
**Via API:**
|
||
```bash
|
||
curl "https://graph.facebook.com/v18.0/{WABA_ID}/message_templates?fields=name,status,language" \
|
||
-H "Authorization: Bearer {ACCESS_TOKEN}" | jq
|
||
```
|
||
|
||
**Template Statuses:**
|
||
- `PENDING` - Under review
|
||
- `APPROVED` - Ready to use
|
||
- `REJECTED` - Review feedback and fix
|
||
- `DISABLED` - Paused due to quality issues
|
||
|
||
### 5.3 Create Additional Templates (Optional)
|
||
|
||
For inventory alerts, production alerts, etc.:
|
||
|
||
```
|
||
Template Name: low_stock_alert
|
||
Category: UTILITY
|
||
Language: Spanish (es)
|
||
Message:
|
||
⚠️ Alerta: El ingrediente {{1}} tiene stock bajo.
|
||
Cantidad actual: {{2}} {{3}}.
|
||
Punto de reorden: {{4}} {{5}}.
|
||
```
|
||
|
||
---
|
||
|
||
## Step 6: Configure Webhooks (For Status Updates)
|
||
|
||
### 6.1 Create Webhook Endpoint
|
||
|
||
Webhooks notify you of message delivery status, read receipts, etc.
|
||
|
||
**Your webhook endpoint:**
|
||
```
|
||
https://your-domain.com/api/v1/whatsapp/webhook
|
||
```
|
||
|
||
**Implemented in:** `services/notification/app/api/whatsapp_webhooks.py`
|
||
|
||
### 6.2 Register Webhook with Meta
|
||
|
||
1. In WhatsApp Manager → **Configuration**
|
||
2. Click **Edit** next to Webhook
|
||
3. Enter details:
|
||
```
|
||
Callback URL: https://your-domain.com/api/v1/whatsapp/webhook
|
||
Verify Token: random-secret-token-here
|
||
```
|
||
4. Click **Verify and Save**
|
||
|
||
**Meta will send GET request to verify:**
|
||
```
|
||
GET /api/v1/whatsapp/webhook?hub.verify_token=YOUR_TOKEN&hub.challenge=XXXXX
|
||
```
|
||
|
||
**Your endpoint must respond with:** `hub.challenge` value
|
||
|
||
### 6.3 Subscribe to Webhook Events
|
||
|
||
Select events to receive:
|
||
|
||
- ✅ `messages` - Incoming messages (for replies)
|
||
- ✅ `message_status` - Delivery, read receipts
|
||
- ✅ `message_echoes` - Sent message confirmations
|
||
|
||
**Environment Variable:**
|
||
```bash
|
||
WHATSAPP_WEBHOOK_VERIFY_TOKEN=random-secret-token-here
|
||
```
|
||
|
||
---
|
||
|
||
## Step 7: Configure Environment Variables
|
||
|
||
### 7.1 Collect All Credentials
|
||
|
||
You should now have:
|
||
|
||
1. ✅ **WhatsApp Business Account ID (WABA ID)**
|
||
- Example: `987654321098765`
|
||
- Where: WhatsApp Manager → Settings → Business Info
|
||
|
||
2. ✅ **Access Token**
|
||
- Example: `EAAxxxxxxxxxxxxxxxxxxxxxxxx`
|
||
- Where: System User token you generated
|
||
|
||
3. ✅ **Phone Number ID** (default/fallback)
|
||
- Example: `123456789012345`
|
||
- Where: WhatsApp Manager → Phone Numbers
|
||
|
||
4. ✅ **Webhook Verify Token** (you chose this)
|
||
- Example: `my-secret-webhook-token-12345`
|
||
|
||
### 7.2 Update Notification Service Environment
|
||
|
||
**File:** `services/notification/.env`
|
||
|
||
```bash
|
||
# ================================================================
|
||
# WhatsApp Business Cloud API Configuration
|
||
# ================================================================
|
||
|
||
# Master WhatsApp Business Account ID (15 digits)
|
||
WHATSAPP_BUSINESS_ACCOUNT_ID=987654321098765
|
||
|
||
# System User Access Token (starts with EAA)
|
||
WHATSAPP_ACCESS_TOKEN=EAAxxxxxxxxxxxxxxxxxxxxxxxx
|
||
|
||
# Default Phone Number ID (15 digits) - fallback if tenant has none assigned
|
||
WHATSAPP_PHONE_NUMBER_ID=123456789012345
|
||
|
||
# WhatsApp Cloud API Version
|
||
WHATSAPP_API_VERSION=v18.0
|
||
|
||
# Enable/disable WhatsApp notifications globally
|
||
ENABLE_WHATSAPP_NOTIFICATIONS=true
|
||
|
||
# Webhook verification token (random secret you chose)
|
||
WHATSAPP_WEBHOOK_VERIFY_TOKEN=my-secret-webhook-token-12345
|
||
```
|
||
|
||
### 7.3 Restart Services
|
||
|
||
```bash
|
||
# Docker Compose
|
||
docker-compose restart notification-service
|
||
|
||
# Kubernetes
|
||
kubectl rollout restart deployment/notification-service
|
||
|
||
# Or rebuild
|
||
docker-compose up -d --build notification-service
|
||
```
|
||
|
||
---
|
||
|
||
## Step 8: Verify Setup
|
||
|
||
### 8.1 Test API Connectivity
|
||
|
||
**Check if credentials work:**
|
||
|
||
```bash
|
||
curl -X GET "https://graph.facebook.com/v18.0/{PHONE_NUMBER_ID}" \
|
||
-H "Authorization: Bearer {ACCESS_TOKEN}" \
|
||
| jq
|
||
```
|
||
|
||
**Expected Response:**
|
||
```json
|
||
{
|
||
"verified_name": "Bakery Platform",
|
||
"display_phone_number": "+34 612 345 678",
|
||
"quality_rating": "GREEN",
|
||
"id": "123456789012345"
|
||
}
|
||
```
|
||
|
||
**If error:**
|
||
```json
|
||
{
|
||
"error": {
|
||
"message": "Invalid OAuth access token",
|
||
"type": "OAuthException",
|
||
"code": 190
|
||
}
|
||
}
|
||
```
|
||
→ Check your access token
|
||
|
||
### 8.2 Test Sending a Message
|
||
|
||
**Via API:**
|
||
|
||
```bash
|
||
curl -X POST "https://graph.facebook.com/v18.0/{PHONE_NUMBER_ID}/messages" \
|
||
-H "Authorization: Bearer {ACCESS_TOKEN}" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"messaging_product": "whatsapp",
|
||
"to": "+34612345678",
|
||
"type": "template",
|
||
"template": {
|
||
"name": "po_notification",
|
||
"language": {
|
||
"code": "es"
|
||
},
|
||
"components": [
|
||
{
|
||
"type": "body",
|
||
"parameters": [
|
||
{"type": "text", "text": "Juan García"},
|
||
{"type": "text", "text": "PO-12345"},
|
||
{"type": "text", "text": "€250.50"}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}'
|
||
```
|
||
|
||
**Expected Response:**
|
||
```json
|
||
{
|
||
"messaging_product": "whatsapp",
|
||
"contacts": [
|
||
{
|
||
"input": "+34612345678",
|
||
"wa_id": "34612345678"
|
||
}
|
||
],
|
||
"messages": [
|
||
{
|
||
"id": "wamid.XXXxxxXXXxxxXXX"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
**Check WhatsApp on recipient's phone!**
|
||
|
||
### 8.3 Test via Notification Service
|
||
|
||
**Trigger PO notification:**
|
||
|
||
```bash
|
||
curl -X POST http://localhost:8002/api/v1/whatsapp/send \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"tenant_id": "uuid-here",
|
||
"recipient_phone": "+34612345678",
|
||
"recipient_name": "Juan García",
|
||
"message_type": "template",
|
||
"template": {
|
||
"template_name": "po_notification",
|
||
"language": "es",
|
||
"components": [
|
||
{
|
||
"type": "body",
|
||
"parameters": [
|
||
{"type": "text", "text": "Juan García"},
|
||
{"type": "text", "text": "PO-TEST-001"},
|
||
{"type": "text", "text": "€150.00"}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}'
|
||
```
|
||
|
||
**Check logs:**
|
||
```bash
|
||
docker logs -f notification-service | grep whatsapp
|
||
```
|
||
|
||
**Expected log output:**
|
||
```
|
||
[INFO] Using shared WhatsApp account tenant_id=xxx phone_number_id=123456789012345
|
||
[INFO] WhatsApp template message sent successfully message_id=xxx whatsapp_message_id=wamid.XXX
|
||
```
|
||
|
||
---
|
||
|
||
## Step 9: Assign Phone Numbers to Tenants
|
||
|
||
Now that the master account is configured, assign phone numbers to each bakery.
|
||
|
||
### 9.1 Access Admin Interface
|
||
|
||
1. Open: `http://localhost:5173/app/admin/whatsapp`
|
||
2. You should see:
|
||
- **Available Phone Numbers:** List of your 10 numbers
|
||
- **Bakery Tenants:** List of all bakeries
|
||
|
||
### 9.2 Assign Each Bakery
|
||
|
||
For each of the 10 pilot bakeries:
|
||
|
||
1. Find tenant in the list
|
||
2. Click dropdown: **Assign phone number...**
|
||
3. Select a phone number
|
||
4. Verify green checkmark appears
|
||
|
||
**Example:**
|
||
```
|
||
Panadería San Juan → +34 612 345 678
|
||
Panadería Goiko → +34 612 345 679
|
||
Bakery Artesano → +34 612 345 680
|
||
... (7 more)
|
||
```
|
||
|
||
### 9.3 Verify Assignments
|
||
|
||
```bash
|
||
# Check all assignments
|
||
curl http://localhost:8001/api/v1/admin/whatsapp/tenants | jq
|
||
|
||
# Should show each tenant with assigned phone
|
||
```
|
||
|
||
---
|
||
|
||
## Step 10: Monitor & Maintain
|
||
|
||
### 10.1 Monitor Quality Rating
|
||
|
||
WhatsApp penalizes low-quality messaging. Check your quality rating weekly:
|
||
|
||
```bash
|
||
curl -X GET "https://graph.facebook.com/v18.0/{PHONE_NUMBER_ID}" \
|
||
-H "Authorization: Bearer {ACCESS_TOKEN}" \
|
||
| jq '.quality_rating'
|
||
```
|
||
|
||
**Quality Ratings:**
|
||
- **GREEN** ✅ - All good, no restrictions
|
||
- **YELLOW** ⚠️ - Warning, review messaging patterns
|
||
- **RED** ❌ - Restricted, fix issues immediately
|
||
|
||
**Common Issues Leading to Low Quality:**
|
||
- High block rate (users blocking your number)
|
||
- Sending to invalid phone numbers
|
||
- Template violations (sending promotional content in UTILITY templates)
|
||
- User reports (spam complaints)
|
||
|
||
### 10.2 Check Message Costs
|
||
|
||
```bash
|
||
# View billing in Meta Business Manager
|
||
Business Settings → Payments → WhatsApp Business API
|
||
```
|
||
|
||
**Cost per Conversation (Spain):**
|
||
- Business-initiated: €0.0319 - €0.0699
|
||
- User-initiated: Free (24hr window)
|
||
|
||
**Monthly Estimate (10 Bakeries):**
|
||
- 5 POs per day per bakery = 50 messages/day
|
||
- 50 × 30 days = 1,500 messages/month
|
||
- 1,500 × €0.05 = **~€75/month**
|
||
|
||
### 10.3 Rotate Access Token (Every 60 Days)
|
||
|
||
Even though system user tokens are "permanent," rotate for security:
|
||
|
||
1. Generate new token (Step 4.2)
|
||
2. Update environment variable
|
||
3. Restart notification service
|
||
4. Revoke old token
|
||
|
||
**Set reminder:** Calendar alert every 60 days
|
||
|
||
---
|
||
|
||
## Troubleshooting
|
||
|
||
### Issue: Business verification stuck
|
||
|
||
**Solution:**
|
||
- Check Business Manager → Security Center
|
||
- Common reasons:
|
||
- Documents unclear/incomplete
|
||
- Business name mismatch with documents
|
||
- Banned domain/business
|
||
- Contact Meta Business Support if > 5 days
|
||
|
||
### Issue: Phone number verification fails
|
||
|
||
**Error:** "This phone number is already registered with WhatsApp"
|
||
|
||
**Solution:**
|
||
- Number is used for personal WhatsApp
|
||
- You must use a different number OR
|
||
- Delete personal WhatsApp account (this is permanent!)
|
||
|
||
### Issue: Template rejected
|
||
|
||
**Common Rejection Reasons:**
|
||
1. **Contains promotional content in UTILITY template**
|
||
- Fix: Remove words like "offer," "sale," "discount"
|
||
- Use MARKETING category instead
|
||
|
||
2. **Missing variable indicators**
|
||
- Fix: Ensure {{1}}, {{2}}, {{3}} are clearly marked
|
||
- Provide good example values
|
||
|
||
3. **Unclear purpose**
|
||
- Fix: Add context in template description
|
||
- Explain use case clearly
|
||
|
||
**Resubmit:** Edit template and click "Submit for Review" again
|
||
|
||
### Issue: "Invalid OAuth access token"
|
||
|
||
**Solutions:**
|
||
1. Token expired → Generate new one (Step 4.2)
|
||
2. Wrong token → Copy correct token from System User
|
||
3. Token doesn't have permissions → Regenerate with correct scopes
|
||
|
||
### Issue: Webhook verification fails
|
||
|
||
**Error:** "The URL couldn't be validated. Callback verification failed"
|
||
|
||
**Checklist:**
|
||
- [ ] Endpoint is publicly accessible (not localhost)
|
||
- [ ] Returns `200 OK` status
|
||
- [ ] Returns the `hub.challenge` value exactly
|
||
- [ ] HTTPS enabled (not HTTP)
|
||
- [ ] Verify token matches environment variable
|
||
|
||
**Test webhook manually:**
|
||
```bash
|
||
curl "https://your-domain.com/api/v1/whatsapp/webhook?hub.verify_token=YOUR_TOKEN&hub.challenge=12345"
|
||
# Should return: 12345
|
||
```
|
||
|
||
---
|
||
|
||
## Checklist: You're Done When...
|
||
|
||
- [ ] Meta Business Account created and verified
|
||
- [ ] WhatsApp Business Account created (WABA ID saved)
|
||
- [ ] 10 phone numbers added and verified
|
||
- [ ] System User created
|
||
- [ ] Access Token generated and saved securely
|
||
- [ ] Message template `po_notification` approved
|
||
- [ ] Webhook configured and verified
|
||
- [ ] Environment variables set in `.env`
|
||
- [ ] Notification service restarted
|
||
- [ ] Test message sent successfully
|
||
- [ ] All 10 bakeries assigned phone numbers
|
||
- [ ] Quality rating is GREEN
|
||
- [ ] Billing configured in Meta Business Manager
|
||
|
||
**Estimated Total Time:** 2-3 hours (plus 1-3 days for business verification)
|
||
|
||
---
|
||
|
||
## Next Steps
|
||
|
||
1. **Inform Bakeries:**
|
||
- Send email: "WhatsApp notifications are now available"
|
||
- Instruct them to toggle WhatsApp ON in settings
|
||
- No configuration needed on their end!
|
||
|
||
2. **Monitor First Week:**
|
||
- Check quality rating daily
|
||
- Review message logs for errors
|
||
- Gather bakery feedback
|
||
|
||
3. **Scale Beyond Pilot:**
|
||
- Request phone number limit increase (up to 120)
|
||
- Consider WhatsApp Embedded Signup for self-service
|
||
- Evaluate tiered pricing (Standard vs. Enterprise)
|
||
|
||
---
|
||
|
||
## Support Resources
|
||
|
||
**Meta Documentation:**
|
||
- WhatsApp Cloud API: https://developers.facebook.com/docs/whatsapp/cloud-api
|
||
- Getting Started Guide: https://developers.facebook.com/docs/whatsapp/cloud-api/get-started
|
||
- Template Guidelines: https://developers.facebook.com/docs/whatsapp/message-templates/guidelines
|
||
|
||
**Meta Support:**
|
||
- Business Support: https://business.whatsapp.com/support
|
||
- Developer Community: https://developers.facebook.com/community/
|
||
|
||
**Internal:**
|
||
- Full Implementation Guide: `WHATSAPP_SHARED_ACCOUNT_GUIDE.md`
|
||
- Admin Interface: `http://localhost:5173/app/admin/whatsapp`
|
||
- API Documentation: `http://localhost:8001/docs#/whatsapp-admin`
|
||
|
||
---
|
||
|
||
**Document Version:** 1.0
|
||
**Last Updated:** 2025-01-17
|
||
**Author:** Platform Engineering Team
|
||
**Estimated Setup Time:** 2-3 hours
|
||
**Difficulty:** Intermediate
|