Campaigns hub
The Campaigns hub is the landing surface at/campaigns that groups every outbound-campaign console into one tile set. It answers “where do I go to launch or manage a send?” when you open the sidebar’s Campaigns entry.
Three working surfaces ship under the route: the list is the default landing page, the create wizard builds blast and drip campaigns, and the journey builder draws event-driven automation graphs. Each surface writes to the same campaign record, so a draft started in the wizard can be reviewed on the list and launched from the detail page, and a journey built on the canvas runs through the same scheduler and analytics pipeline as a blast.
What the hub surfaces
The list and detail are read surfaces first; the wizard and journey builder are authoring surfaces. All four share the same campaign lifecycle and role gates.
When to open which
Start from the shape of the send, not the tile:
The split between the create wizard and the journey builder is the split between schedule-driven and event-driven enrollment. A blast or drip resolves its audience at launch; a journey keeps accepting enrollments for as long as it is
running.
Campaign lifecycle
Every campaign walks the same status track, regardless of which surface created it:- Draft — the campaign row exists but has not been sent. Drafts appear in the list’s Drafts tab and reopen in the wizard or journey builder for editing.
- Scheduled — a future
scheduled_atis set and the launch call succeeded, but dispatch has not started. The scheduler flips it tosendingat the configured time. - Sending / running — messages are dispatching. Blast and drip campaigns show
sending; journeys showrunningbecause they continuously enroll contacts. - Paused — dispatch stopped on operator action or a spent credit cap. Resume continues from where it stopped.
- Completed — the campaign finished its send or journey naturally.
- Cancelled — the operator terminated the campaign. In-flight sends complete; no new sends start.
/campaigns/[id] renders the lifecycle controls and charts:
- Stats panel — live totals for sent, delivered, failed, opened, clicked, and replied.
- Drip analytics — per-step sent/delivered/read/failed for drip campaigns.
- Holdout lift — treatment vs. control conversion-rate delta when a holdout is configured.
- ROAS — attributed revenue and touchpoints when conversion goals are set.
- Pause / resume / cancel — operator controls that mirror the API lifecycle endpoints.
Role gating
The hub itself renders the tiles to every member role; the gating lives on the destination surface and on the API calls it makes:- Read access. The campaign list, detail page, and analytics render for every authenticated member, including viewers. The underlying read endpoints gate to the workspace role plus the relevant scope.
- Compose access. Opening the create wizard or journey builder and saving drafts works for owner, admin, developer, and supervisor roles.
- Launch access. Sending, scheduling, or activating a campaign requires an owner, admin, or developer seat. A supervisor or billing seat can compose a campaign, but the launch call returns
403 INSUFFICIENT_PERMISSIONS; the wizard preserves the draft so an owner can finish the send.
POST /campaigns/:id/send, so a direct API call respects the same role boundary as the dashboard button.
Worked examples
Start a campaign from the create wizard
- Open Campaigns → Create campaign (
/campaigns/create). - Setup: pick type
blast, name the campaign, and choosesmsas the primary channel. - Audience: select a contact list or segment, or use the manual contact picker.
- Message: write the body with personalization tokens (
{{first_name}}) and, for SMS-family channels, include carrier-accepted opt-out language such as “Reply STOP to opt out.” - Schedule: choose Send now or a future time with optional recurrence.
- Review: confirm the readiness panel, tick the compliance attestations, and click Launch.
Start a campaign from the API
The wizard is a client of the public campaigns API. The same blast can be provisioned programmatically:Build a journey
For event-driven flows, open Campaigns → Journey (/campaigns/journey). Create a campaign with type: "journey", draw the trigger and message nodes, validate the graph, simulate the projection, and activate. The Campaign journey builder guide walks the canvas, node types, validation rules, and conversion goals end to end.
Cross-links
Campaigns are one of several outbound surfaces. Use these links when the task is better handled elsewhere:- Broadcast-style sends and audience management — the Outbound hub orientation explains how campaigns, direct sends, templates, and audiences relate under the Outbound section.
- Channel consoles and sender setup — the Messages hub orientation covers the per-channel configuration, sender pools, opt-out lists, and messaging services that campaigns rely on.
- Voice broadcasts and dialer campaigns — see Outbound dialer campaign and Voice broadcasts for agent-assisted and automated voice campaigns that live outside the campaigns hub.