== preview
sample_size: 2
- alice@example.com | from: sender1@example.com | subj: Invoice [UNKNOWN:InvoiceNumber] — payment due 2026-09-24
  vars: {'invoice_number': 'INV-QB5K-XWIGD-VD2U19-6888', 'amount': 1192.61, 'shipping': 41.81, 'phone': '+1 (555) 010-1234'}
  warnings: ['Unknown variable in body: InvoiceNumber', 'Unknown variable in subject: InvoiceNumber']
- bob@example.com | from: sender1@example.com | subj: Invoice [UNKNOWN:InvoiceNumber] — payment due 2026-09-24
  vars: {'invoice_number': 'INV-L70S-8RR18-I0FX9L-1330', 'amount': 1173.61, 'shipping': 10.73, 'phone': '+1 (555) 010-1234'}
  warnings: ['Unknown variable in body: InvoiceNumber', 'Unknown variable in subject: InvoiceNumber']
plan: {}

== SSE stream (5s)
event: connected
data: {"ok": true}

event: progress
data: {"campaign_id": 3, "status": "draft", "total": 0, "sent": 0, "temp_failed": 0, "perm_failed": 0, "suppressed": 0, "skipped": 0, "pending": 0, "queued": 0, "processing": 0, "jobs_total": 0, "completed": false, "progress_pct": 0.0, "started_at": null, "finished_at": null}

: keepalive

