Campaigns in Customer.io

Campaigns in Customer.io


Campaigns in Customer.io 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.

image.png

Trigger Types

When you create a campaign, we have two 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.

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

Condition Trigger

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

condition.gif

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.

Frequency

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

image.png

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:

image.png

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:

image.png

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.

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:

data-filters.gif

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

image.png

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:

image.png

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.

image.png

  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.

image.png

Filters

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
In order for people to enter your event campaign, they need to match both the event attribute filter and the segment filter(s) within a maximum of 30 minutes after the event took place. 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.

Workflows

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:

{{customer.data}}

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 = wile.e.coyote@example.com as an attribute, then all emails triggered by that campaign will go to wile.e.coyote@example.com, no matter the settings in the campaign itself.
  3. They can include attachments
    If your event includes an attachment, it will be attached to any emails which go out as part of
    that event. Here's an example using an .ics file.

Journeys

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

image.png

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.

Unsubscribes

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:

image.png

Each individual message can override this:

image.png

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 your email, 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'll be tracked as a conversion.

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

There are a couple of limitations to this, though:

Conversions attributed Conversions not attributed
Email Slack Message
Twilio SMS Webhooks
Customer.io Push Notifications Attribute update action
Urban Airship Push

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

Note: We do not retroactively count conversions.
Our conversion numbers will 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 Customer.io, 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.

image.png

  1. Exit on conversion
    If you'd like them to exit when they meet your conversion goal, select the following:

image.png

  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.

image.png

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.

Event-triggered campaigns have no grace periods do not happen at all for event triggered campaigns.

Review

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:

image.png

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.

image.png

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 Customer.io to a URL you specify in order to receive information about events as they occur in real time. Customer.io sends the information as JSON in an HTTP POST. Read more about setup here.

You can also use Customer.io with Mixpanel or Kissmetrics.

Was this article helpful?