Overview
A campaign defines a recurring batch execution configuration. Each campaign targets a Decision Flow and a customer Segment, with schedule settings, volume constraints, and file output configuration. When a campaign runs, it creates a campaign run — an individual execution instance that processes every customer in the segment through the Decision Flow.Campaign vs Campaign Run
| Concept | What It Is | Lifecycle |
|---|---|---|
| Campaign | Schedule config, volume limits, file output settings, target flow + segment | Persistent — draft, active, paused, archived |
| Campaign Run | Individual execution of a campaign | Transient — pending → running → completed/failed |
How Campaigns Work
Create campaign
Select a Decision Flow, target segment, schedule, volume constraints, and file output config.
Configure schedule
Choose manual, daily, weekly (pick day), or monthly (pick day or last working day). Set time and timezone.
Configure file output
Choose format (CSV/JSON), select columns, enable personalization, set destination (download or S3).
Schedule Configuration
| Schedule Type | Description | Config Fields |
|---|---|---|
manual | Triggered manually via “Run Now” button or API | None |
daily | Runs every day at a specified time | scheduleTime, scheduleTimezone |
weekly | Runs once per week on a specific day | scheduleDayOfWeek (0=Sun..6=Sat), scheduleTime, scheduleTimezone |
monthly | Runs once per month on a specific day | scheduleDayOfMonth (1-28 or last_working_day), scheduleTime, scheduleTimezone |
Volume Constraints
Control the scale of each run to manage campaign costs and audience fatigue.| Constraint | Type | Description |
|---|---|---|
maxTotalPerRun | number | Maximum total recommendations across all offers |
maxPerOffer | number | Maximum recommendations per individual offer |
maxPerChannel | number | Maximum recommendations per delivery channel |
When a volume constraint is reached, remaining customers are skipped gracefully. The run summary reports both the total segment size and the number actually processed.
File Output Configuration
Configure how batch output files are generated for file-mode and manual channels.| Field | Type | Default | Description |
|---|---|---|---|
format | enum | csv | Output format: csv or json |
columns | string[] | ["customer_id", "offer_name", "channel", "score", "creative"] | Columns to include in the output file |
includePersonalization | boolean | false | Whether to include per-customer personalization fields |
destination | enum | download | Where to place files: download (virtual path) or s3 (upload to S3) |
s3Path | string | — | S3 path template, e.g. s3://bucket/campaigns/{campaign_id}/{run_date}/ |
Available Columns
| Column | Description |
|---|---|
customer_id | Customer identifier |
offer_name | Name of the recommended offer |
offer_id | Offer identifier |
channel | Delivery channel name |
creative | Creative/treatment name |
score | Propensity score (0-1) |
rank | Rank position within customer’s recommendations |
category | Offer category (business objective) |
priority | Offer priority |
personalization | Per-customer computed values (requires includePersonalization: true) |
Batch Channels
Only channels with file, integration, or manual delivery mode are included in batch campaigns. API (real-time) channels are excluded because batch runs produce file-based output. When creating a campaign, you can optionally select specific batch channels. If no channels are selected, all batch-compatible channels are included.Campaign Status
| Status | Description |
|---|---|
draft | Campaign created but not yet active |
active | Campaign is live — scheduled runs will execute automatically |
paused | Campaign is temporarily disabled — no scheduled runs |
archived | Campaign is retired — preserved for history |
Campaign Run Status
| Status | Description |
|---|---|
pending | Run created, waiting for worker to pick it up |
running | Currently processing customers through the Decision Flow |
completed | All customers processed successfully |
completed_with_errors | Processing finished but some deliveries failed (e.g. S3 upload) |
failed | Execution encountered an unrecoverable error |
Run Results
After a campaign run completes, results are available at three levels:Overall Statistics
| Metric | Description |
|---|---|
totalCustomers | Number of customers in the target segment |
processed | Number of customers processed |
recommended | Customers who received at least one offer |
avgLatencyMs | Average per-customer processing time |
Summary Breakdown
Per-Customer Results
Each customer’s result shows the selected offers with scores:Offer IDs in the summary and per-customer results are automatically resolved to human-readable names in the API response.
API Reference
Create Campaign
Update Campaign
Trigger Run
pending.
List Campaign Runs
Get Campaign Detail
List Campaigns
UI Walkthrough
Create campaign
Click + New Campaign. Configure the decision flow, segment, schedule, volume constraints, batch channels, and file output settings.
Next Steps
Dashboards
Monitor campaign performance and batch results.
Decision Flows
Configure the decisioning pipeline that campaigns execute.