WhatsApp Campaigns
Send targeted WhatsApp messages to your users via the WhatsApp Business API. Reach users on their preferred messaging platform with high engagement rates.
Overview
WhatsApp campaigns allow you to:
- Reach users globally on the world's most popular messaging app
- Send rich media including images, videos, and documents
- Use pre-approved templates for consistent, compliant messaging
- Track delivery and engagement with real-time analytics
- Automate conversations through Canvas journeys
Prerequisites
Before creating WhatsApp campaigns, ensure you have:
- WhatsApp Business Account (WABA) connected to Joryio
- Approved message templates from Meta
- Users with phone numbers in E.164 format (+1234567890)
Connecting WhatsApp Business Account
Option 1: Meta Cloud API (Direct)
Connect directly to Meta's WhatsApp Cloud API:
- Go to Settings → WhatsApp and click Connect Account
- Choose Meta Cloud API (Recommended) as the provider
- Pick Connect with Facebook (Recommended) - you're redirected to Facebook to authorize your existing WhatsApp Business Account
- Alternatively pick Manual Setup (API Credentials) and paste your Meta API credentials
Your Meta Business account must be verified to send messages at scale. Complete Business Verification in Meta Business Suite.
Option 2: External Providers
Use third-party providers via the same Connect Account modal:
- Go to Settings → WhatsApp and click Connect Account
- Select your provider from the dropdown: Twilio WhatsApp or Infobip WhatsApp
- Enter the provider credentials - Twilio: Account SID + Auth Token; Infobip: API Key + Base URL
- Save the account
WhatsApp sender accounts are connected in Settings → WhatsApp in the dashboard.
Understanding WhatsApp Templates
WhatsApp requires pre-approved message templates for business-initiated conversations.
Template Categories
| Category | Use Case | Example |
|---|---|---|
| Marketing | Promotional content | "20% off this weekend!" |
| Utility | Transactional updates | "Your order has shipped" |
| Authentication | OTP and verification | "Your code is 123456" |
Template Components
Templates can include:
- Header: Text, image, video, or document
- Body: Main message content with variables
- Footer: Optional additional text
- Buttons: Quick reply or call-to-action
Template Variables
Use placeholders for personalization:
Hello {{1}}, your order {{2}} has been shipped!
Tracking number: {{3}}
Variables are mapped to user data when sending.
Live chat-bubble preview
Both the WhatsApp templates editor and the journey WhatsApp message modal + campaign WhatsApp variant editor render the same live chat-bubble preview alongside the form. The preview uses the WhatsApp green header, the iPhone frame, the doodle wallpaper, and renders header media + body + footer + buttons exactly the way WhatsApp does.
When you map a variable in the editor, the preview substitutes its sampleValue so {{1}} and {{2}} render with realistic text instead of the raw placeholder. Variables that don't have a sample yet keep their {{n}} form, highlighted in yellow so you can see at a glance which placeholders aren't mapped.
In the journey modal, picking a WhatsApp account auto-fills the sender breadcrumb, and the template picker filters approved templates by the selected account. Switching accounts clears any previously-picked template since templates belong to a specific WABA.
Creating WhatsApp Templates
1. Navigate to Templates
Go to Brand Studio → WhatsApp Templates and click Create Template
2. Template Details
Name: Lowercase with underscores
order_confirmation
shipping_update
welcome_message
Language: Select target language (e.g., en_US, es, pt_BR)
Category: Choose Marketing, Utility, or Authentication
3. Template Content
Header (Optional)
- Text: "Order Update"
- Image: Upload or provide URL
- Video: Upload or provide URL
- Document: Upload PDF or other file
Body (Required)
Hi {{1}}!
Your order #{{2}} has been shipped and is on its way.
Estimated delivery: {{3}}
Tracking number: {{4}}
Thanks for shopping with us!
Footer (Optional)
Reply STOP to unsubscribe
Buttons (Optional)
- Quick Reply: "Track Order", "Contact Support"
- Call to Action: URL button, Phone call button
4. Submit for Approval
- Click Submit for Approval
- Template moves from Draft to Pending status
- Meta typically reviews within 24-48 hours
- Status updates to Approved or Rejected
- Follow Meta's template guidelines
- Avoid promotional language in Utility templates
- Include clear opt-out instructions
- Don't use URL shorteners in templates
Creating a WhatsApp Campaign
1. Navigate to Campaigns
Go to Campaigns → Create Campaign and select WhatsApp.
2. Campaign Details
Name: Give your campaign a descriptive name
Example: "Order Shipped Notification"
Description (optional): Add internal notes
3. Select Template
Choose an approved template from the dropdown:
- Only Approved templates are shown
- Preview the template content
- See variable placeholders
4. Map Variables
Map template variables to user data:
| Variable | Maps To | Example |
|---|---|---|
{{1}} | {{ firstName }} | John |
{{2}} | {{ trigger.properties.orderNumber }} | ORD-12345 |
{{3}} | {{ trigger.properties.deliveryDate }} | Jan 20, 2024 |
{{4}} | {{ trigger.properties.trackingNumber }} | 1Z999AA10123456784 |
Use Liquid syntax for personalization:
{{ firstName | default: "Customer" }}
{{ trigger.properties.total | currency }}
{{ trigger.properties.date | date_format: "short" }}
You can insert Liquid variables without typing them by hand - click the Personalize button to pick an attribute or event property from the menu. See Liquid Templates for the full reference.
5. Target Audience
Segment-Based
Choose a pre-defined segment:
- "Active Users (Last 30 Days)"
- "Customers with Phone Numbers"
- "VIP Customers"
Event-Triggered
Send when users perform actions:
- Event: "Order Shipped"
- Filter: Order value > $50
6. Select WhatsApp Account
If you have multiple WABA accounts, select which one to use.
7. Send a Test Message
Before scheduling, click Send test WhatsApp on the variant to send the exact rendered message - with template variables resolved against a real or custom user - to a phone number you choose.
Three user modes:
- Random user - pulls a real user from your database and uses their attributes
- Existing user - search and pick a specific user
- Custom user - fill in email, first/last name, and a JSON blob of attributes
The destination phone defaults to the picked user's phone, but you can override it (E.164 format, e.g. +15551234567) to send to yourself.
Test sends go directly through your WhatsApp provider - they bypass scheduling, audience targeting, frequency limits, and the outbox queue, so the result is immediate. Suppression is still enforced: a test send to a suppressed or opted-out number is refused, exactly like a live send. Test sends don't count toward campaign stats, don't trigger webhooks, and are always free. The test renders through the same pipeline as the live send, so personalization and variables resolve exactly as they will in production.
The selected template must be in approved state. Test sends fail fast if it isn't.
8. Scheduling
Send Immediately
Send as soon as activated.
Scheduled Send
Send at specific date/time:
- Date: 2024-01-20
- Time: 10:00 AM
- Timezone: User's local timezone
Event-Triggered
Send automatically when events occur.
9. Frequency Limits
How often a contact can be messaged on WhatsApp is governed by your workspace Touching Rules (Settings → Touching Rules) - a per-channel cap per day / week / month, plus an optional cross-channel ceiling. There is no per-campaign frequency setting.
For critical transactional messages (order updates, OTPs), enable the Ignore Touching Rules option on the send to bypass frequency caps.
A/B Testing WhatsApp Campaigns
Test different templates or variable mappings:
Variant A (50%)
- Template:
order_shipped_v1 - Tone: Formal
Variant B (50%)
- Template:
order_shipped_v2 - Tone: Casual with emoji
Track which variant gets better engagement.
WhatsApp in Canvas Journeys
Add WhatsApp messages to automated journeys:
WhatsApp Message Node
- Drag WhatsApp Message node onto canvas
- Select approved template
- Map variables to user/trigger data
- Connect to journey flow
Example: Order Follow-up Journey
[Order Completed] → [Wait 1 hour] → [WhatsApp: Order Confirmation]
↓
[Wait 3 days] → [WhatsApp: Review Request]
WhatsApp Inbound Trigger
Start journeys when users message you:
- Add a WhatsApp inbound trigger
- Optionally add conditions on the message text (contains / starts with / ends with / regex) to match specific keywords
- Build response journey
Conversation Windows
WhatsApp has a 24-hour customer service window:
Business-Initiated (Template)
- Requires approved template
- Charged per conversation
- No time limit on when to send
User-Initiated (Free Text)
- User messages you first
- 24-hour window opens
- Can send free-form messages
- Service conversations are free
Indicative Conversation Pricing (US rates, 2025)
Joryio's usage screen estimates cost with these Meta US rates; your actual bill comes from Meta or your provider and varies by country:
| Category | Price (US) |
|---|---|
| Marketing | $0.025 |
| Utility | $0.004 |
| Authentication | $0.004 |
| Service (user-initiated) | Free |
Monitoring Performance
Real-Time Metrics
| Metric | Description |
|---|---|
| Sent | Messages sent to WhatsApp |
| Delivered | Successfully delivered to device |
| Read | User opened the message |
| Failed | Delivery failures |
Inbound replies are also captured per message and on the contact's timeline (and can trigger journeys), though they aren't rolled up as a campaign-level stat.
Delivery Stats
- Delivery Rate: Delivered / Sent
- Read Rate: Read / Delivered
Template Performance
Compare template effectiveness:
- Which templates have highest read rates?
- Which drive most conversions?
- A/B test winner analysis
Best Practices
1. Template Design
- Be concise: WhatsApp is conversational
- Use variables: Personalize every message
- Add value: Don't spam, provide useful info
- Include CTA: Make next steps clear
2. Timing
- Respect time zones: Send during waking hours
- Consider context: Order updates immediately, marketing during business hours
- Don't overdo it: 2-3 messages per week max for marketing
3. Compliance
- Get consent: Users must opt-in to WhatsApp
- Honor opt-outs: Remove users who reply STOP
- Follow Meta guidelines: Templates must be compliant
- Respect privacy: Handle data according to regulations
Handling STOP keywords
Inbound opt-out keywords are processed automatically and immediately - no manual action is needed. A STOP reply scopes to the sending WABA (the contact stops hearing from that WhatsApp number's subscription group), while STOPALL unsubscribes the contact from all of your WhatsApp senders. Inbound replies are routed per account automatically.
4. Rich Media
WhatsApp (Meta) platform limits:
- Images: Max 5MB, JPG/PNG
- Videos: Max 16MB, MP4
- Documents: Max 100MB, PDF recommended
- Quality: Use high-resolution media
Troubleshooting
Template Rejected
Common Reasons:
- Promotional content in Utility template
- Missing opt-out option
- URL shorteners used
- Inappropriate content
Solution:
- Review Meta's guidelines
- Adjust content and resubmit
- Use correct category
Messages Not Delivering
Check:
- Phone number in E.164 format
- User has WhatsApp installed
- Template is approved
- WABA account is active
- Not exceeding rate limits
Low Read Rates
Possible Issues:
- Poor timing
- Irrelevant content
- Too many messages
Solutions:
- Test different send times
- Improve personalization
- Reduce frequency
Rate Limits
| Tier | Messages/Day | Requirements |
|---|---|---|
| Tier 1 | 1,000 | New accounts |
| Tier 2 | 10,000 | Good quality rating |
| Tier 3 | 100,000 | Excellent quality |
| Tier 4 | Unlimited | Verified business |
Quality rating affects limits. Maintain good engagement to increase limits.
Next Steps
- Create Canvas Journeys - Automate WhatsApp flows
- A/B Testing - Optimize your messages
- Push Notifications - Multi-channel approach