Skip to main content
A campaign is a one-time send to an audience on a single channel. Newsletters, promotions, announcements — anything you send once.

Building a campaign

1

Channel & audience

Choose email, SMS or push, then a segment (or everyone subscribed). Suppressed and unsubscribed contacts are removed automatically.
2

Content

Start from a gallery template, one of your own, or build fresh. Email opens the block builder; SMS opens the composer with a sender-ID picker.
3

Schedule

Send now, schedule for later, or use best-time / throttled (below).
4

Review

The review step shows the frozen audience size and a send-test. Confirm to send.

Scheduling modes

Immediate

Fan out now (or at the scheduled time).

Best time

Per-recipient send-time optimisation. Each contact gets their most-engaged local hour from the last 90 days, within your bounds.

Throttled rollout

Split the audience into percentage batches (must sum to 100%, ≤12 batches) with per-batch delays.
Best-time and throttled only change when the send job runs. Every gate — suppression, consent, frequency caps, quiet hours, Shabbat, the SMS wallet — still runs at fire time.

Durable scheduling

A scheduled campaign persists its intent in the database, not just in the job queue. A reconciler re-creates any missing job every minute, so a queue restart can’t silently drop a send.

Approval workflow (optional)

Workspaces can require campaigns to pass owner/admin sign-off before sending. It’s a plan-gated, opt-in toggle in Settings → Workflow.
1

Submit

A non-approver submits the campaign for approval with a note.
2

Decide

An owner or admin approves, rejects, or requests changes. The submitter can’t self-approve.
3

Guard

An unapproved campaign can’t reach the send path. Editing content after approval revokes it — you can’t get sign-off then swap the message.
The approval queue lives at Approvals, with in-app and email notifications on every decision.

Analytics

Every campaign has a report — sends, delivered, opens, clicks, bounces, unsubscribes — at campaigns/<id>. Money values are in agorot internally and shown in shekels. Deferred analytics tabs (MTA, cost, funnel, cohort) show an “Available in Pro” hint rather than fabricated numbers.

Sending via the API

Campaigns are a UI construct. For programmatic sends, use transactional messages (POST /public/messages/*) or trigger flows via event ingest.