Skip to documentation
Dashboard
Guides

Audience and campaigns

Use typed contact fields, private exports, topic preferences, segments, and frozen campaign schedules when enabled for your workspace.

On this page

Feature availability

These capabilities are released in stages. An unavailable response means the capability has not been enabled for your workspace. Existing contacts, drafts, and sending operations remain supported.

Custom fields

Audience → Fields defines text, number, boolean, and date values. Keys and types stay fixed; labels can change. Archiving preserves stored values and is blocked by active segment dependencies.

Contact edits and CSV column mapping validate registered types without converting unrelated legacy values. Omitted properties stay unchanged, explicit null clears a property, and empty CSV cells preserve current values. Dates use YYYY-MM-DD; CSV booleans use true or false.

Add registered fields to marketing template variables as contact.field_key. Published versions keep their original contract. Required values must be present when preparing a send or schedule.

Topic preferences

Eligible marketing subscribers inherit active topics. Inheritance is recorded as the subscription default, not a separate topic opt-in. Explicit opt-outs survive imports and contact updates.

Assign one optional topic to a campaign. Manage preferences in newly published marketing footers lets recipients stop individual topics; global unsubscribe remains separate. Transactional messages are unaffected. Global unsubscribe, contact archival, and protected suppressions always take priority.

Archiving a topic blocks pending schedules assigned to it. Topic choices cannot restore global marketing permission.

Rule-based segments

Save one Match all or Match any group containing at most ten conditions. Filter identity, state, UTC creation date, list or effective topic membership, and typed custom fields. Missing values match only set or unset conditions.

Positive engagement rules use observed likely-human opens or clicks within 7, 30, or 90 days. Bots, scanners, privacy proxies, and unknown classifications do not qualify. An observed open is not proof of reading, and creating a segment does not enable tracking.

Previews show matching and send-eligible counts separately. Engagement reporting checks for updates every 15 minutes; data older than 20 minutes blocks evaluation. Member pagination evaluates current conditions on each request. Export a segment to capture a stable complete dataset.

Private CSV exports

Use Export CSV on contacts, lists, segments, suppressions, campaigns, and campaign recipients. Exports capture the full filtered selection, including rows beyond the visible page. Contact exports include selected custom columns.

Files move through queued, preparing, ready, failed, and expired states. Preparation resumes in bounded batches and never silently truncates. The maximum file size is 100 MB; use a smaller selection if that limit is reached. No more than five exports can prepare at once per workspace.

Downloads require current workspace access and expire 24 hours after capture. Contact deletion invalidates affected exports. Retrying a failed job uses the same snapshot; an expired job requires a fresh export.

report_snapshot_at identifies the captured delivery or contact data. Campaign summaries separately include analytics_refreshed_at and analytics_state. Unavailable analytics are written as unavailable, never as zero. Spreadsheet formula prefixes are escaped.

Scheduled campaigns

Schedule accepts a future instant and IANA timezone, defaulting to your browser timezone in the dashboard. Nonexistent daylight-saving times are rejected and repeated local times require an explicit UTC offset choice.

Confirmation freezes recipient identities, personalization, sender presentation, subject, preview text, published content version, audience revision, topic, analytics setting, and link manifest. Preparation creates no dispatchable messages and reserves no sending balance.

At activation, RouteKite checks workspace and sender readiness, current marketing eligibility, topic status, and available balance. Removed or ineligible contacts are excluded; other membership and values remain frozen. Reservation and message creation commit together, without a partial launch.

Automatic activation retries transient failures for up to one hour after the due time. A missed window requires an explicit reschedule or Send now action. Rescheduling preserves the frozen audience; cancellation wins only before activation commits. To change content or audience, cancel and create a new draft.

Public API and MCP

POST /api/v1/assistant accepts the versioned operation contracts listed in OpenAPI. New mutations require an Idempotency-Key. Use expected_revision to reject stale edits. Scheduling, rescheduling, cancellation, and immediate activation require campaign:send; audience selection requires campaign:write.

Append ?preview=true for a validated mutation preview that rolls back all database writes. MCP uses this preview automatically when confirm is false. Confirmed scheduling must include the preparation_digest returned by the approved preview. Confirming a schedule explicitly authorizes a future real send.

MCP returns an authenticated export download location, without file contents or credentials. Contact values, CSV contents, preference tokens, and download credentials are excluded from MCP activity logs.

On this page