Campaigns
Multi-channel broadcast and outreach manager — define audiences, schedule sends, track delivery and engagement.
Campaigns is the broadcast / outreach manager. You compose a campaign, target an audience from your People table, pick channels (SMS, email), schedule the send, and track delivery.
Layout
CanvasCampaignsCard is a two-card layout:
- Left — campaign list:
- Search
- Status filter pills (Draft / Scheduled / Running / Sent / Failed)
- Each row shows status, channel, audience tag, and label tags
- Right — selected campaign:
- Summary stats grid
- Delivery-rate bar
- Engagement metrics
- Audience preview (live row count from the People table)
- Detail edit panel
CampaignFilterDropdown in the breadcrumb mirrors the status filter.
Creating a campaign
+ New campaign opens a modal asking for:
- Name
- Channels — SMS, email (more planned)
- Audience tags — selected from the People table's
tagscolumn. The audience size updates live as you toggle tags. - Schedule — send now or schedule for later
- Compliance settings (opt-in checks, quiet hours from the SMS tab)
Submitting creates the campaign row in Supabase and queues it. Status
moves through draft → scheduled → running → sent.
Audience targeting
Audiences are defined by tag intersection on the People table.
Selecting customer + vip targets anyone with both tags. The campaign
respects each person's opted_in_sms / opted_in_email flags — opted-out
contacts are filtered out before the send.
The people.conversation_count and last_contacted_at columns update as
the campaign delivers, giving you a running view of engagement history.
Where to go next
- SMS mode
- Inbox mode
- Data tables — the People table