Skip to main content

Create Campaign

POST 

/campaign

Create a new campaign​

  • contentSourceUrl - While adding campaign into system we will verify contentSourceUrl. If verification is failed, we will abort the campaign creation process.
  • contactIds - Audience Ids. Refer Audiences API
  • schedule.dateTime - Campaign schedule time in UTC. format: YYYY-MM-DDTHH:mm:ssZ
  • schedule.days - Recurring campaign days. Values can be SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
  • schedule.time - Recurring campaign time. format: HH:mm:ss
  • aiTrafficControlId - AI Traffic Control Id, created from tinyEmail UI.
  • sendOrder - Order the recipients are sent in: ALPHABETICAL (Standard), RANDOM (Shuffled) or ENGAGEMENT_SCORE (Most engaged first). Omit it to send in the standard order. It is honoured on traffic-shaped sends only.
  • htmlTemplateId - ID of a saved template to use as the campaign content, instead of template.html. Refer Templates API.

Create a campaign from a saved template:​

  • The template's html, css and editor type are copied into the campaign when the request is made. Editing or deleting the template later does not change the campaign.
  • The template's subject and preview text are used only when campaign.subject / campaign.previewText are not sent. Values sent in the request always win.
  • htmlTemplateId and inline template.html are mutually exclusive. Sending both fails with 412 and the message Provide either template.html or htmlTemplateId, not both.
  • An unknown htmlTemplateId fails with 412 and the message Template <id> not found.

Campaign Status Scenarios:​

  1. Draft Campaign (No Schedule Provided):
    • If the schedule object is not included in the payload, the campaign will be in the Draft status. This means the campaign is saved but not scheduled for delivery yet.
  2. Scheduled Campaign (DateTime Provided):
    • If the schedule object is present, and it has a non-empty dateTime field, the campaign will be in the Scheduled status. This indicates that the campaign is scheduled for delivery at the specified date and time.
  3. Recurring Campaign (Days and Time Provided):
    • If the schedule object has days and time specified, the campaign will be in the Recurring status. This means the campaign is set to recur on the specified days at the provided time.

Request​

Body

required
    contentSourceUrl string
    campaign objectrequired
    name stringrequired
    subject stringrequired
    previewText string
    senderId uuidrequired
    template object

    Inline content. Required unless htmlTemplateId is sent; mutually exclusive with it.

    html stringrequired
    htmlTemplateId uuid

    ID of a saved template (see the Templates API) to use as the campaign content, instead of template.html. The template's html, css and editor type are copied into the campaign; editing or deleting the template later does not change the campaign. The template's subject and preview text are used only when campaign.subject / campaign.previewText are not sent. Mutually exclusive with template.html.

    contactIds string[]
    aiTrafficControlId uuid
    sendOrder string

    Possible values: [ALPHABETICAL, RANDOM, ENGAGEMENT_SCORE]

    Order the recipients of a traffic-shaped campaign are sent in.

    • ALPHABETICAL (Standard) - the order every campaign sends in when no order is picked.
    • RANDOM (Shuffled) - a stable pseudo-random order, seeded with the campaign id, so every batch of one send agrees.
    • ENGAGEMENT_SCORE (Most engaged first) - highest engagement score first, lowest and unscored contacts last. Omit the field to keep the standard order. It has no effect on campaigns that are not traffic shaped.
    schedule object
    dateTime string
    days string[]
    time string

Responses​

Successful operation
The status could be one of

  • DRAFT - The campaign will be this state until client confirms sender details through email
  • SCHEDULED - campaign successfully scheduled in our system
  • LAUNCHED - campaign is launched at the specified date/time
  • COMPLETED - will only be in case when campaign is scheduled for type - ONCE
  • PAUSED - When campaign is PAUSED
  • FAILED - will be FAILED, after launching a campaign if contentSourceURL is not present or down or we receive invalid content from this URL.
Schema
    id uuid
    status string
Loading...