How to set up a booster for a new campaign

Intro

Attach a booster to a draft campaign before sending it, so non-openers or non-clickers automatically receive a follow-up after a configurable delay. The booster is auto-scheduled the moment the parent campaign is sent — no additional API call is needed to trigger it.

See API reference: Campaigns — Booster Campaigns

Prerequisites

  • An API key with campaigns.write scope (add campaigns.read to verify campaign status), or an OAuth token with the same scopes
  • A parent campaign still in draft status (not yet sent)
  • Sufficient email sends or SMS credits for the booster audience (pricing plans | SMS credits)
  • Each parent supports only one active booster. Delete the existing booster before creating a replacement (a canceled booster still occupies the slot)
  • (Email boosters) A verified sender domain if using a custom sender address (verify in Store Settings → Sender Domains)

Step 1: Create the booster campaign

Create a campaign with type: "booster" and boosterSettings.campaignID pointing to the draft parent. Instead of sendingSettings, provide boosterSettings.delay to specify how long after the parent sends the booster should go out.

For email boosters, content falls back to the parent's snapshot — you only need to provide fields you want to override (typically the subject line). For SMS boosters, content.sms is always required.

See endpoint: Create campaign

curl -X POST 'https://api.omnisend.com/api/campaigns' \
  -H 'Authorization: Omnisend-API-Key YOUR-API-KEY' \
  -H 'Omnisend-Version: 2026-03-15' \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "booster",
    "channel": "email",
    "boosterSettings": {
      "campaignID": "PARENT_CAMPAIGN_ID",
      "sendTo": "nonClickers",
      "delay": {
        "amount": 48,
        "unit": "h"
      }
    },
    "content": {
      "email": {
        "subject": "Still interested? Here'\''s another look"
      }
    }
  }'

Warning: Do not provide sendingSettings when the parent is in draft — the API returns 409 sending-settings-not-allowed. The maximum delay is 240 hours (10 days).

The response returns the booster in draft status with an id.

Step 2: Send the parent campaign

Send the parent campaign. The booster is automatically scheduled at parent.sentAt + delay — no separate send call for the booster is needed.

See endpoint: Send campaign

curl -X POST 'https://api.omnisend.com/api/campaigns/PARENT_CAMPAIGN_ID/send' \
  -H 'Authorization: Omnisend-API-Key YOUR-API-KEY' \
  -H 'Omnisend-Version: 2026-03-15'

A 204 response confirms the parent send was initiated. Once the parent finishes sending, the booster status changes from draft to scheduled automatically.

Verify results

Retrieve the booster campaign to confirm it was auto-scheduled.

See endpoint: Get campaign

curl -X GET 'https://api.omnisend.com/api/campaigns/BOOSTER_CAMPAIGN_ID' \
  -H 'Authorization: Omnisend-API-Key YOUR-API-KEY' \
  -H 'Omnisend-Version: 2026-03-15'
StatusMeaning
draftBooster is created but parent hasn't been sent yet
scheduledBooster is queued — parent was sent, delay countdown began
startedBooster is actively sending
sentBooster has finished sending
canceledBooster was canceled via the cancel endpoint

You can also list all boosters for a specific parent campaign.

See endpoint: List campaigns

curl -X GET 'https://api.omnisend.com/api/campaigns?type=booster&parentCampaignID=PARENT_CAMPAIGN_ID' \
  -H 'Authorization: Omnisend-API-Key YOUR-API-KEY' \
  -H 'Omnisend-Version: 2026-03-15'

Troubleshooting

  • 409 Conflict on create — duplicate booster: Each parent supports only one active booster — even a canceled booster counts. Delete the existing booster first (DELETE /campaigns/{id}), then create a new one. Content of the deleted booster is not preserved.
  • 409 Conflict on send — sender_domain_unverified: For email boosters, the sender domain must be verified before sending. Verify in Store Settings → Sender Domains.
  • 409 on create with sendingSettings and draft parent: Sending settings can only be provided when the parent campaign is already sent. Use boosterSettings.delay instead.
  • 404 on create: The parent campaignID does not exist. Verify the ID is correct.
  • 402 Payment Required on send: The campaign audience exceeds your plan's email or SMS credit limits. Upgrade your plan or ensure sufficient credits.

Related resources