Marketing

Named audiences, signup webhooks, and canvas campaigns that send a published template.

  1. 01

    Create an audience

    Open Marketing, then Audiences. The first list is the project's default webhook audience. A sending key on the same project can create the list with POST /api/audiences.

  2. 02

    Post a signup

    POST /api/events with the project API key adds a new user to audience_id, or to the default audience when audience_id is omitted. POST /api/audiences/:id/events pins the list in the path. Optional HMAC-SHA256 uses X-Pigeon-Timestamp and X-Pigeon-Signature. An older occurred_at is ignored. Repeat X-Pigeon-Idempotency-Key to replay the same result.

  3. 03

    Honor consent

    Each contact has marketing_subscribed, default true. unsubscribed=true or consented=false sets it to false. A {{unsubscribe}} click does the same. Contacts with marketing_subscribed false stay on the list and are not enrolled or emailed.

  4. 04

    Build a campaign

    Open Campaigns. The entry is an audience. Enroll everyone already on the list, or only new webhook signups. Optional conditions and waits, then a send that picks a published template. Save a draft. Activate only when every path ends in a send and there are no cycles.

A new contact from the webhook is added to the target audience, then enrolled in every active campaign whose entry is that audience. The block chain runs immediately. Wait blocks resume on the next scheduler tick. Audience-entry campaigns also enroll people already on the list when you activate. Marketing lists are separate from the transactional Audience page. Campaign sends use a separate monthly and daily cap on the project, not the transactional quota. Unsubscribe still uses {{unsubscribe}} on the template.

Publish a template before a send block can use it Audience and event routes