Campaigns in

Campaigns in are workflows of multiple messages which adapt to and send in response to user behaviour.

Creating a Campaign

The first step in creating a campaign is giving it a name, description, and adding any appropriate tags. Once you’ve done that, you must choose a trigger type. This is what defines the foundations of your campaign.


Trigger Types

When you create a campaign, we have four trigger types for you to choose from, each one based around specific use cases.

Campaigns with conditional triggers begin as soon as a person matches the condition(s). They’re best used for things like recurring NPS surveys, onboarding drip campaigns, or inactivity reminders.

When using date triggers, people enter campaigns based on a date attribute in their profile. This is most useful for recurring cases such as birthdays, anniversaries, and subscription renewals.

Event triggered campaigns are good for transactional use cases such as password resets, receipts, or confirmations.

You can take advantage of Form triggered campaigns if you connect a form to your workspace or have a Facebook Lead Ad integration. Use this type of campaign to send messages to new leads and try to convert them to customers or users.

Condition Trigger

For condition triggers, you’ll be prompted to choose one or more segments that the person is IN or NOT IN:


Using AND means that people need to match all the segments before they enter the campaign. Using OR means that it’s enough for a person to be part of any one of the segments in order to match.


By default, people will enter condition-triggered campaigns once. We do, however, ask if you want to allow them to enter multiple times:


Choosing yes means that people can move through the campaign multiple times. There are two different ways the campaign can recur:

  1. Every re-match:

people must stop matching the trigger and filter conditions in order to match again. For example, if you’d like a customer to get a nudge if they’ve been inactive for two weeks, the trigger condition would be a segment which catches people who have not logged into your app for two weeks. When people enter that segment, they’re sent a message by your campaign. If this campaign is set to re-match, they will have to exit and then re-enter that segment (become active, then become inactive again) in order to trigger the campaign again.

  1. At fixed intervals:

People will repeat the campaign at a set interval, provided they still match the conditions when the interval elapses. A good example of this is a campaign reminding a user to update their payment information in your system to ensure they receive their next subscription box. As soon as a failed payment comes through, you can send them a reminder to update. An interval of seven days means that if they’ve still not updated it seven days later, they’ll enter the campaign again.

Remember that this interval is measured from the moment a person enters the campaign, even if there is a delay.

Changing frequency

Re-match to off: After the change, people will only enter the campaign once. Anyone who might have re-entered in the future will no longer do so.

Re-match to fixed interval: Only new people who match your settings will restart. This does not apply to people who have already been through the campaign.

Fixed interval to off: Any people who are scheduled to re-enter this campaign will not do so, but those who are already in the campaign will continue their journey.

Interval to re-match: People who are scheduled to re-start your campaign will not do so. They will need to stop matching the trigger conditions and re-match them to enter again. Those who are already in the campaign will continue their journey.

Date Trigger

When setting up a campaign that’s triggered by a particular date, there are four things you need to choose. Once you’ve picked an attribute, a preview panel will be shown that lets you test your choices with people from your workspace.

#1: How often the campaign should recur There are three options for recurrence frequency:

  • Only once, on this date: This option looks at the entire date, including month, day, and year to determine when the campaign should be triggered. This date must be in the future in order for the campaign to be triggered.
  • Every month: This option triggers the campaign once per month on the day of the month specified by the date attribute. The month and year are ignored. For example, if the date attribute is June 5th, 1977, the campaign will trigger every month on the 5th. If the current month doesn’t include that day (e.g. there is no September 31st) then will send on the last day of the month.
  • Every year: This option triggers the campaign once per year on the month and day specified by the date attribute. The year is ignored. For example, if the date attribute is June 5th, 1977, the campaign will trigger once per year on June 5th.

#2: Whether the campaign should trigger on the date, or at an offset before or after

  • on: Trigger the campaign on the recurrence date
  • before: Numbers of days prior to the recurrence date to trigger the campaign
  • after: number of days after the reccurence date to trigger the campaign

#3: The attribute used to determine when to trigger the campaign will schedule the campaign based on the date value in this attribute. The attribute must contain a date in either Unix timestamp or ISO 8601 format. If the format isn’t recognized or the attribute isn’t present for a person, then they will never trigger the campaign.

 Attributes updated on the same day as the campaign

When you set the Person’s attribute value on the same day specified as the trigger, if it is set before the specified trigger time for the campaign, it will fire on that same day since the date in the attribute match the criteria and the trigger time has not passed yet.

Let’s say today is July 1st, 2020 and you update a Person’s value for the trigger attribute to July 1st. If the time specifed in the trigger condition has already passed, the Person will not trigger this campaign today. For the campaign to be triggered, the attribute value must be set before the specified trigger time for the campaign. For example, if the campaign is supposed to trigger at 1pm on the date, then the campaign will not trigger if the attribute is updated at 2pm on the same date.

#4: Time of day the campaign should trigger

Finally, you need to choose the time on the recurrence date that the campaign should trigger. The time stored in the date attribute will not be used to determine when the campaign is triggered.

If you’re storing the timezone attribute for your customers, then you can select the user's time zone rather than choosing a single time zone to use when triggering the campaign.

Event Trigger

From the dropdown, choose the event that you want to use to trigger your campaign. The preview will show any recent occurrences of the event.

Event filters

If you have a particular event attribute you want to use as a filter (e.g., if you only want to target people who bought a specific product), click and add your attribute filter either by clicking on “Add as filter” next to the desired attribute in the event preview, or by adding it manually:


Need to match more than one event attribute value? Set the event attribute to match: “attribute contains/ does not contain value1|value2, like so:


Event-triggered Frequency

By default, these campaigns will send each time the event is received. We do, however, ask if you want to set a limit here:


Choosing yes means that you can limit how many times people can move through campaigns. If you do so, you will have two options:

  1. Once ever: people will only receive the campaign the first time they perform the event. For example, if you’d like to congratulate someone the first time they complete a lesson in your eLearning app, you can use this setting. This way, you’ll ensure they don’t receive the email again once they’re a seasoned student and flying through lessons regularly.
  1. At most once within a given time period: people will only receive the campaign once within a time period of your choosing. For example, you want to send an email to someone when they receive notifications in your app. You only want them to receive the email once a day, regardless of how many application notifications they receive. Setting Frequency to “at most once within 24 hours” will ensure that, no matter how many new notifications people get, they will only get an email once.


While triggers decide when a campaign begins, filters determine whether the person should actually enter the campaign. For example, you might want to send a message when someone views the pricing page (trigger), but want to make sure you only message the ones who don’t already have a paying plan (filter).

Filters are evaluated right before sending any message, working as a confirmation step to make sure the right people stay in your campaign workflow. You can read up here on the differences between the two.

 Note for event triggered campaigns

To enter your campaign, people must match both the event attribute filter and any segment filters within 30 minutes after the event occurred. When a triggering event is sent to us but it doesn’t trigger the event-triggered campaign, it will retry for approximately 30 minutes, giving the person a chance to match the filter criteria and enter the campaign within that time. This buffer allows for a very common situation where, due to internet latency or other such delays, we get the event before we get other qualifying data.


The workflow is where you create the messaging experience or journey of the people that the campaign is sent to.

Here, you can add a variety of items— messages, webhooks, attribute updates, or time delays. Use these to set up your campaign. Each item will also have its own settings, such as:

  • Sending behaviour— whether or not the message sends automatically, queues a draft, or doesn’t send at all
  • Send to unsubscribed/tracking for that individual workflow item (more on that below)
  • The option to turn the message into an A/B test. We have documented how to create a conclusive A/B test result, as well as how to understand A/B test results.

Customer data

For all of the people who enter your campaign, you will have all of their data available to use dynamically via Liquid. Whatever data you may be sending for a particular person, it’s available for you to use using the format:


For example, if you’re sending us a customer’s name using the attribute full_name, you can utilize it like this:

Hi, {{customer.full_name}}!

You can also perform more complex operations using the data you send; we have more comprehensive information here.

Event attributes

A few things to remember when using event attributes

  1. They can be used in message content You can use all of the data you send with an event in your messages. For example, if you send us a purchase event with the following data: {"name":"purchase","data":{"price": "9.99", "product": "socks", "color":"blue"}} You can send a receipt email (or push notification, or SMS, or any other action) with the product’s name, price, and color in it. Whatever you send in the event attributes is available to you; you can learn more about using event data here.
  2. They can override certain email headers If you send any of these attributes as part of your event, they will override your campaign settings: from_address, recipient, reply_to For example: If a purchase event triggers an email to send, but that purchase event contains recipient = as an attribute, then all emails triggered by that campaign will go to, no matter the settings in the campaign itself.
  3. They can include attachments Deprecated. Use the Transactional API to send emails with attachments. Here’s an example using a calendar .ics file.


At, we use Journeys to show the movement of people through a campaign. For each person, you can find these in the Journeys tab:


For each trigger type, they work a little differently:

  1. Condition-triggered campaigns start a journey as soon as the person matches the campaign’s trigger conditions.

  2. For event-triggered campaigns, a journey starts when we receive an event that matches the campaign’s trigger conditions. However:

    • If the person does not meet the filter conditions when we receive the event, we will retry the event for up to 30 minutes.
    • If the person still does not match the filter conditions after those 30 minutes, a journey will not be started for them and they will not enter the campaign. If the person does match the filter conditions within those 30 minutes they will enter the campaign and start a journey.

This happens to prevent race conditions that often happen when profile attribute values are updated very close to the time the event is sent. Retrying the event helps us ensure that the right people will enter your event triggered campaigns, even when various network conditions or integration issues cause us to receive API calls in an untimely manner.


Sending or not sending to unsubscribed people can be set for the entire campaign or individual messages within it. You will see the setting on the campaign level here:


Each individual message can override this:


Please keep in mind that sending to unsubscribes should only be used in transactional, important cases.

Goal & Exit

Conversion Goal

Conversion tracking allows you to track the success of a message, so you’ll want to choose a relevant segment (a person using a feature, a person signing up for a paid plan, a person no longer being inactive, etc.). If a person enters/exits that segment after being sent a message, they are tracked as a conversion.

In, a conversion is both a goal and a metric. When a person meets the goal (by entering or exiting a segment), looks for the last delivery before the conversion goal was met, and attributes a conversion to that delivery.

We track conversions against the following deliveries:

Conversions attributed Conversions not attributed
Email Slack Message
Twilio SMS Attribute update action Push Notifications
Urban Airship Push

1 You must enable webhook conversions manually.

Slack and attribute update actions are often internal or used for analytics purposes, and don’t always send messages to end-users. For that reason, we don’t attach conversions to them.

You can enable webhook conversions on individual webhook actions.

 We do not retroactively count conversions.

Our conversion numbers only include people who convert after you add (or update) the conversion goal. They do not include people who previously met that goal. Updating a conversion goal will not update your conversion metrics for messages that were previously marked as converted.

Exit Conditions

By default in, people leave a campaign if they no longer match your trigger and filter conditions when it’s time to send them a message. This is what is selected for you on this page.

However, you can override this default and specify if people should leave a campaign when:

  1. Exit only when complete If you’d like your customers to move all the way through your campaign and only exit on completion (after they’ve received all the relevant messages), simply select the first option.
  1. Exit on conversion If you’d like them to exit when they meet your conversion goal, select the following:
  1. Leave if they stop matching OR meet the conversion goal And finally, if you’d like them to leave when they meet the conversion goal or stop matching, select both of the options.

If you choose a conversion goal as an exit condition, you’ll need to define your goal before you can save.

Journey and Exit Conditions

Your exit condition settings will be reflected in the campaign’s journey.

For condition-triggered campaigns, if we notice such an exit condition is met when we try to send someone a message, we hit pause on their journey and allow time for them to stop meeting the exit condition. After that time period is up, if they no longer meet the exit condition then they will continue on in their journey through the workflow. This period of time is called a grace period which can vary in length. You can read more about grace periods here.

Note that there are no grace periods, at all, for event-triggered campaigns.


Once you’ve set up your campaign, the Review page will allow you to look over all of your settings once more before you get started. We’ll also surface any errors here.

In the case of a condition-triggered campaign, you’ll have the option to send to any existing matches. For other trigger types, this is not the case.

Forward-looking behaviour

Condition-triggered campaigns can be made retroactive, meaning that they allow people to be included even if they matched the trigger segments more than 24 hours before the campaign was created).

In other words, if you started a condition triggered campaign today, but want to include all the people who matched your trigger and filter conditions before the campaign was created, you can choose to do so on the Review page when you start the campaign:


We can’t force an event triggered campaign to send to people who performed the event in the past. You can create a segment triggered campaign based on your specific event, but you won’t be able to include any event attributes in your content.

Metrics & Reporting

Once a campaign is running, you can see the metrics on the overview page. From there, you can export them to a CSV.


The export will reflect the dropdowns selections for ‘Volume’. If you’ve selected ‘All emails’ for ‘last 30 days,’ for example, that’s what will be exported.

We also provide Email Webhooks to send email performance data from to a URL you specify in order to receive information about events as they occur in real time. sends the information as JSON in an HTTP POST. Read more about setup here.

You can also use with Mixpanel or Kissmetrics.

Working with Campaigns

Stop a Campaign

To stop a Campaign, click into the individual Campaign and select “Stop” from the “Campaign Actions” dropdown menu near the top right corner of the page.


Once a Campaign is stopped,

  • Users will no longer enter the Campaign.
  • The Campaign workflow, triggers, goals, and exit conditions can still be edited.

If the Campaign has active Journeys in progress, you will have two options for how to handle People who are in the middle of their Journey through the Campaign’s Workflow:

  1. Force People to exit immediately, or
  2. Allow People to finish their Journey and exit the Campaign naturally. The Campaign will be in a “Stopping” state until all People have exited.

Restart a Campaign

To restart a Campaign, click into the individual Campaign and select “Restart” from the “Campaign Actions” dropdown menu near the top right corner of the page.

restarting a campaign.png
restarting a campaign.png

When restarting a Segment-triggered Campaign, there are two options for determining which people will enter the Campaign:

  1. Current People and future additions Choose this one if all People currently in the trigger conditions should enter. This includes any People currently in the trigger Segment, but will also take your Campaign frequency settings into account.
  2. Future additions only. Choose this option if only People who match your Campaign trigger conditions after the Campaign is restarted should enter.

Archive a Campaign

To archive a Campaign, click into the Campaign and select “Archive” from the “Campaign Actions” dropdown menu near the top right corner of the page.


Once a Campaign is archived,

  • Users will no longer enter the Campaign.
  • Any users currently in the Workflow will be forced out of the Campaign.
  • Any unsent Drafts in the Campaign will be removed.
  • A/B tests will automatically be paused.
  • The Campaign Workflow, triggers, goals, and exit conditions will no longer be editable.

Emails from archived Campaigns will still appear in the Existing Emails section when adding new email content. Campaign Workflows from archived Campaigns will still be searchable and copy-able into new Campaigns. To remove archived content and prevent archived Workflows from being reused in the future, delete the Campaign instead.

Unarchive a Campaign

To unarchive a Campaign, click into the Campaign and select “Unarchive” from the “Campaign Actions” dropdown menu near the top right corner of the page.


When a Campaign is unarchived,

  • The Campaign will move to the Active tab and be updated to “Stopped”.
  • Any archived Segments used in the Campaign triggers, filters, goals, and exit conditions will be unarchived along with the Campaign.

Delete a Campaign

To delete a Campaign, click into the individual Campaign and select “Delete” from the “Campaign Actions” dropdown menu near the top right corner of the page.


When deleting a Campaign, all message content, settings, and report data will be removed.

 Deleting a Campaign is a permanent action

Deleting a Campaign cannot be undone. Make sure to save any important data or content before deleting a Campaign.
Copied to clipboard!