Skip to main content

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:

  1. WhatsApp Business Account (WABA) connected to Joryio
  2. Approved message templates from Meta
  3. 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:

  1. Go to Settings → WhatsApp and click Connect Account
  2. Choose Meta Cloud API (Recommended) as the provider
  3. Pick Connect with Facebook (Recommended) - you're redirected to Facebook to authorize your existing WhatsApp Business Account
  4. Alternatively pick Manual Setup (API Credentials) and paste your Meta API credentials
Meta Business Verification

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:

  1. Go to Settings → WhatsApp and click Connect Account
  2. Select your provider from the dropdown: Twilio WhatsApp or Infobip WhatsApp
  3. Enter the provider credentials - Twilio: Account SID + Auth Token; Infobip: API Key + Base URL
  4. 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

CategoryUse CaseExample
MarketingPromotional content"20% off this weekend!"
UtilityTransactional updates"Your order has shipped"
AuthenticationOTP 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!
Reply STOP to unsubscribe

Buttons (Optional)

  • Quick Reply: "Track Order", "Contact Support"
  • Call to Action: URL button, Phone call button

4. Submit for Approval

  1. Click Submit for Approval
  2. Template moves from Draft to Pending status
  3. Meta typically reviews within 24-48 hours
  4. Status updates to Approved or Rejected
Approval Tips
  • 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:

VariableMaps ToExample
{{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:

  1. Random user - pulls a real user from your database and uses their attributes
  2. Existing user - search and pick a specific user
  3. 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.

Template approval required

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.

Ignore Frequency Limits

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

  1. Drag WhatsApp Message node onto canvas
  2. Select approved template
  3. Map variables to user/trigger data
  4. 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:

  1. Add a WhatsApp inbound trigger
  2. Optionally add conditions on the message text (contains / starts with / ends with / regex) to match specific keywords
  3. 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:

CategoryPrice (US)
Marketing$0.025
Utility$0.004
Authentication$0.004
Service (user-initiated)Free

Monitoring Performance

Real-Time Metrics

MetricDescription
SentMessages sent to WhatsApp
DeliveredSuccessfully delivered to device
ReadUser opened the message
FailedDelivery 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:

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

TierMessages/DayRequirements
Tier 11,000New accounts
Tier 210,000Good quality rating
Tier 3100,000Excellent quality
Tier 4UnlimitedVerified business

Quality rating affects limits. Maintain good engagement to increase limits.

Next Steps