WhatsAppMarketingCampaignsTemplatesConsent

How to Run WhatsApp Marketing Campaigns

ProfilePilot Team | Aug 28, 2026 | 14 min read

Build opt-in audiences, sync approved Marketing templates from WhatsApp Manager, send paced campaigns (including carousels and Flow buttons), and honour STOP.

Step 1: Orders vs Marketing (same WABA, different rules)

WhatsApp Orders = transactional (catalog, cart, kitchen, Utility templates like `order_confirmed`).

WhatsApp Marketing = promotional broadcasts using Marketing category templates only.

They share:

  • One connected WABA (`org_whatsapp_config`)
  • One contact table (`inbox_contacts`)

They do not share consent: a completed order is not marketing opt-in.

Navigate: Dashboard → Marketing → WhatsApp (requires WhatsApp Commerce add-on today).

Risk: spam reports or blocks on Marketing throttle the entire WABA, including order notifications. Start with small tests and clean lists.

Step 3: STOP and opt-out (mandatory)

Customers can reply STOP, UNSUBSCRIBE, or use the marketing opt-out quick reply.

ProfilePilot detects whole-message STOP before commerce handlers — “stop the onions” in an active order is not treated as marketing opt-out.

After STOP:

  • Set `marketing_opted_out_at` on the contact
  • Never send Marketing templates to that number again
  • Opt-out always wins over prior opt-in

Utility order updates may still send when appropriate (they are not Marketing templates).

Step 4: Templates — create in Manager, sync in ProfilePilot

ProfilePilot does not replace WhatsApp Manager template authoring.

Workflow:

  1. Create/edit template in WhatsApp Manager on the client WABA (category MARKETING for promos).
  2. Wait for APPROVED status.
  3. In ProfilePilot: Marketing → WhatsApp → Sync templates.

Sendable kinds (V1): default (body + optional image header + URL button), carousel (2–10 cards, Sprint 5), flow (opens a Flow — see Flows guide).

Do not put promotional copy in Utility templates — Meta will reject or pause them.

Utility library names for Orders (`order_confirmed`, etc.) must exist on each client WABA separately.

Step 5: Create and send a campaign

Marketing → WhatsApp → New campaign:

  1. Pick an APPROVED Marketing template.
  2. Choose audience (all eligible opt-ins or a saved segment).
  3. Fill template variables (body, header media, button URL suffix).
  4. Schedule or send now.

Paced sending: large lists send via background worker with Meta rate-limit retries (HTTP 429 / error 4).

Carousel campaigns: upload 2–10 card images to WhatsApp media ids (public HTTPS URLs). Static button URLs leave the ProfilePilot click-tracking suffix blank unless you use dynamic `https://profilepilotapp.com/r/{{1}}`.

Flow template button: Marketing sends a `flow_token` only — ProfilePilot builds `pp.v1.<payload>`. Template in Manager must use Flow starts with → Network request (not “Pre-defined screen”). See *How to Set Up WhatsApp Flows Checkout*.

Step 6: Test send, tracking, and stats

Test send (campaign composer or admin test route): recipient must be opted-in or an org operational number.

Click tracking: ProfilePilot short links use `/r/<code>`. The template URL button in Manager must be dynamic: `https://profilepilotapp.com/r/{{1}}` — Meta’s “use link tracking” tick alone does not populate PP stats.

Campaign detail shows sent/delivered/read/failed and click counts.

555 utility-only numbers (partner lab) accept template API calls but fail Marketing delivery — use the client Test WABA for Marketing QA.

Monitor quality rating and messaging limits in WhatsApp Manager (1k → 10k → 100k tiers).

Keep learning

See the latest guides, experiments, and rollouts.

Back to Resources
How to Run WhatsApp Marketing Campaigns