Skip to main content
This guide walks a workspace owner or admin through the end-to-end setup for marketing messages: opening the template editor, seeding the GB Viaggi starter pack, setting expectations for Meta’s review timeline, and troubleshooting common rejections.

Prerequisites

Before you start:
  • A workspace with a connected Meta WhatsApp Business Account (WABA). See Connect WhatsApp.
  • A Meta system user access token stored in the workspace vault under meta-access-token. See Meta credential setup.
  • owner or admin role on the workspace (seed pack is admin-only).

How to access the template editor

1

Open Templates

From the left sidebar, click Templates. You will see your template library grouped by status. First-time workspaces show an empty-state card with a quick-start button.
2

Choose a start mode

Three entry points:
  • New template — blank editor, for one-off drafts.
  • From library — clone an approved template from another language.
  • Seed starter pack (admin-only) — bulk-load the GB Viaggi pack in one click.
3

Compose

The editor has four panels: metadata (name, language, category), components (header, body, footer, buttons), live preview that mirrors WhatsApp rendering, and validation results.
Every field has an info icon that links to the exact rule on Template rules.

Seed the GB Viaggi starter pack

The starter pack is a curated library of 13 production-grade templates (8 UTILITY + 5 MARKETING, Italian + English) that covers the most common GB Viaggi flows: booking confirmation, invoice, cancellation, winback, seasonal offer, referral, flash sale, and more. Seeding is idempotent — safe to re-run if a subset failed on a first attempt.
1

Confirm the WABA is connected

Go to Settings → Channel and check that waba_id is populated. If not, the seed will fail with no_waba.
2

Click Seed starter pack

On the Templates page, click Seed starter pack (visible only to owner/admin). A modal summarises what will be submitted and asks for confirmation.
3

Review the per-template results

The seeder posts each template to Meta sequentially. Each row in the result table reports submitted, pending_approval, or error with the Meta message. Errors are also stored on the templates row as rejection_reason for later retry.
Under the hood the UI calls POST /api/templates/seed-starter-pack — see Template endpoints if you want to trigger this from a script.

Approval timeline expectations

Meta’s review pipeline is almost always fast, but “fast” varies by category and by load: Rules of thumb:
  • Clean, well-formed templates get approved within minutes. If yours has been pending for more than 2 hours, a reviewer has flagged it for manual review.
  • Weekends and Meta-US holidays slow reviews. Submit on weekdays if you are campaign-critical.
  • Burst submits throttle. Meta rate-limits at 100 templates/hour per WABA. Seeding the 13-template starter pack uses less than 15% of that budget.
You do not need to poll the Meta API. Switchbord’s webhook worker listens for message_template_status_update and updates the template row in real time. The UI refreshes via Supabase Realtime.

Troubleshooting rejections

When a template is rejected, Switchbord stores Meta’s human-readable message in rejection_reason and surfaces it at the top of the editor and on the template row.

Common rejection → fix map

Resubmit workflow

1

Duplicate the rejected template

The original is locked. Click Duplicate to get a fresh draft with the same body and components.
2

Apply the fix

The validator panel highlights every rule the draft violates. Fix them until the panel is green.
3

Validate (optional, no-op call)

Click Validate to re-run only the client-side linter. Unlike Submit for approval, this does not consume a slot of your Meta rate-limit budget.
4

Submit for approval

Click Submit for approval. Webhook updates the template status in the background.

When to escalate

If a template is rejected with a Meta message you do not recognise, or if the same template is rejected for different reasons on each attempt:
  1. Capture the full Meta error JSON from the template’s rejection_reason row (it includes fbtrace_id).
  2. File a Linear issue tagged whatsapp-templates with the template name, body, and the error.
  3. If the issue blocks a campaign, open a Meta Business Support case with the fbtrace_id — turnaround is usually 24–48 hours.

See also