Campaigns in Customer.io

Campaigns in Customer.io are workflows that send people messages and perform other actions when people meet certain criteria. This page describes the basic aspects of campaigns to help you get started.

How it works

A campaign is a workflow to send messages or otherwise manipulate data in Customer.io, and it consists of three major components:

  1. Trigger: this determines who enters your campaign and when. Along with your trigger, you can set filter and frequency settings refining who can enter your campaign and how often.
  2. Workflow: the messages you want to send and other activities you want to perform for people who enter your campaign.
  3. (Optional) Goal and exit conditions: The outcome you want to achieve from the campaign and the reasons people might leave your campaign early. You don’t need to define a goal, but it can be helpful to gauge the success and health of your campaigns.

Your campaign starts when someone (or some data) matches your trigger condition. Then they move through your workflow until they meet your goal and exit conditions.

flowchart LR a{Does a person meet
trigger conditions?}-->|yes|c{Does person meet
filter conditions?} a-.->|no|i[person doesn't
enter campaign] c-.->|no|i c-->|yes|j subgraph b [Your campaign] direction TB j{Does person meet
goal/exit conditions?}-->|yes|d[Send message] d-->f{Does person meet
goal/exit conditions?} f-->|yes|g[Send message] end j-.->|no|e[person
exits campaign] f-.->|no|h[exit campaign] g-->|Person finishes
campaign|k[exit campaign]

Campaign triggers

Your campaign trigger determines who (or what) enters your campaign and when. Most triggers are based around people: people enter your campaign when they match certain criteria, and these people are the subject of your campaign—you’ll send them messages, set their attributes, and so on.

  • When a person moves in or out of a segment lets you create a segment or specify existing segmentsA segment is a group of people in your audience that you want to target with campaigns, messages, etc. You can join groups of people manually, or by attribues and event data. that people must be in (or not in) to trigger a campaign. You can set segment criteria based on your audience’s attributes, events, etc. This option is best for things like recurring NPS surveys, onboarding drip campaigns, inactivity reminders, and so on.

  • When a user performs an event helps you respond to a person’s activity in your app or website. They’re helpful for behavioral messages like abandoned cart reminders, responding to page views, etc.

  • When someone submits a form lets you take advantage of form responses to trigger campaigns. You can connect a form to your workspace or have a Facebook Lead Ad integration. Use this type of campaign to send messages to nurture new leads or respond to support requests.

  • A date attribute stored on a profile triggers a campaign on a specific or relative date based on an attributeA key-value pair that you associate with a person—like their name, the date they were created in your workspace, etc. Use attributes to target people and personalize messages. that people in your audience have. This kind of campaign is useful for recurring campaigns like birthdays, anniversaries, and subscription renewals.

Trigger your campaign with a webhook creates a special, webhook-triggered campaign based around data rather than people: the purpose of your campaign is to manipulate this data and associate it with people—like Zapier or Segment, but entirely within a campaign. Webhook campaigns help you perform one-to-many interactions with your audience, like notifying a group of people when you post a job, or a product becomes available that a cohort of your audience is interested in.

Select a campaign trigger
Select a campaign trigger

Workflows

The workflow is where you create the messaging experience or journey of the people that the campaign is sent to. For webhook-triggered campaigns, the workflow is where you’ll manipulate your incoming data and associate it with people or forward it to external services.

Here, you can add a variety of items—messages, webhooks, attribute updates, or time delays. Use these to set up your campaign. Each item has 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.

Journeys

When a person enters a campaign, they start a journeyA person or data object’s path through your campaign.. We use Journeys to show where your audience is in a campaign. You can find journeys and see where people are in your campaign in the Journeys tab:

image.png
image.png

Journeys work a little differently depending on your campaign’s trigger:

  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 matches your filter conditions within 30 minutes they enter the campaign and start a journey. Otherwise, they don’t enter the campaign or start a journey.

We do this because you can set filters using a customer’s attributesA key-value pair that you associate with a person—like their name, the date they were created in your workspace, etc. Use attributes to target people and personalize messages. while the trigger is based on an event. The 30-minute retry prevents race conditions that can occur when you update a person’s attributes close to the same time as the campaign trigger event. 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
image.png

Each individual message can override this:

image.png
image.png

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

Goal & Exit

Your campaign’s conversion goal helps you track the success of messages and journeys based on whether or not a person performs an event, enters a segment, or exits a segment after they receive a message. If a person performs your goal criteria within a configurable time frame of a message in your campaign, the messageThe instance of a message sent to a person. When you set up a message, you determine an audience for your message. Each individual “send”—the version of a message sent to a single member of your audience—is a delivery. and journeyA person or data object’s path through your campaign. are marked converted. You can set goals to determine the success of your campaigns and messages, and follow conversion rates over time to try and improve your messaging strategies. See Conversion goals and exit criteria for more information about conversions.

We track conversions for the following message/delivery types:

Conversions attributedConversions not attributed
EmailSlack Message
Twilio SMSCreate or update person action
Customer.io Push Notifications
Webhooks1
1You must enable webhook conversions manually.

Slack and Create or update person 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.

Exit Conditions

By default in Customer.io, people leave a campaign when they stop matching your trigger and filter conditions. However, you can override this behavior and determine the conditions that cause people to exit your campaign.

We evaluate exit conditions before people enter your campaign and before messages in your workflow. If someone meets the exit conditions, they’ll leave the campaign before they receive the next message in the campaign. If people already meet your exit criteria when they trigger the campaign, they’ll exit your campaign immediately, without going through any part of the campaign workflow!

If a person receives a message and then meets your exit criteria, they’ll continue through the campaign and any Create or Update Person, Create Event, or other actions until they reach the next message in the campaign.

For example, if your campaign notifies a person about items they left in their shopping cart, you probably don’t want to keep sending them reminders if they purchase the items in their cart. You can set people to exit the campaign if they’ve completed their purchase before the next follow-up message.

set your campaign exit conditions to determine when people quit their journeys
set your campaign exit conditions to determine when people quit their journeys
  • They perform the conversion action: When you set a conversion goal, this setting causes people to exit your campaign when they perform the conversion action (your audience performs an event, enters a segment, or leaves a segment)—even if they haven’t received a message from the campaign yet.

  • They no longer match the campaign trigger and filters: If a person stops matching the campaign criteria, they’ll exit the campaign before they reach the next message in the campaign workflow.

  • They perform the conversion action or they no longer match the campaign’s trigger and filters: If you set a conversion goal, a person exits the campaign if they either perform your conversion action or they stop matching the campaign’s trigger criteria—even if they haven’t received a message from the campaign yet.

  • People don’t exit, they move through the entire campaign: People won’t exit your campaign early. They’ll complete their entire journey, even after they meet your goal or stop matching your campaign’s trigger conditions during their journey.

 Conversion goal timing does not affect exit criteria

If you set a conversion goal, you can use the conversion action as exit criteria. However, your exit criteria is independent of the conversion goal time frame. For example, if your conversion goal is to enter a segment, people who enter the campaign but already belong to the conversion segment will exit your campaign immediately—before they ever receive a message—and the journey won’t record a conversion.

Grace periods for exit conditions

For condition-triggered campaigns, if we notice that someone meets an an exit condition when we try to send someone a message, we pause 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, 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.

There is no grace periods for event-triggered campaigns.

Reviewing your campaign

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
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
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.

Liquid and customer data in campaigns

When people enter your campaign, you can use data associated with them in Customer.io dynamically with liquidA syntax that supports variables, letting you personalize messages for your audience. For example, if you want to reference a person’s first name, you might use the variable {{customer.first_name}}.. You can reference people data in 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 Deprecated. Use the Transactional API to send emails with attachments. Here’s an example using a calendar .ics file.

Stopping, editing, and deleting 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.

stopping_a_campaign.png
stopping_a_campaign.png

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.
    stopping_a_campaign_with_active_journeys.png
    stopping_a_campaign_with_active_journeys.png

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.
restarting_a_segment_triggered_campaign.png
restarting_a_segment_triggered_campaign.png

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.

archive_campaign.png
archive_campaign.png

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.

unarchive_campaign.png
unarchive_campaign.png

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.

delete_campaign.png
delete_campaign.png

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!
Is this page helpful?