Campaign concepts & settings

Updated

Campaigns are automated workflows you set up to send people messages and perform other actions when they meet your criteria. They’re the most flexible, robust automation offered by Customer.io. This page introduces the concepts behind campaigns to help you get started.

If you’re new to Customer.io, checkout campaigns, broadcasts, and transactional messages to make sure you’re creating the right kind of automation.

How it works

A campaign is a workflow to send messages and manipulate data in Customer.io. It consists of four major components:

  1. Trigger: this determines who enters your campaign (trigger and filter conditions) and when (frequency setting). Filters are optional.
  2. Goals: the outcome you want your customers to achieve through the campaign. You don’t need to define a goal, but it can be helpful to gauge the success and health of your campaigns.
  3. Exit criteria: these determine if people should leave your campaign early or not.
  4. Workflows: the messages you want to send and other actions you want to perform for people who enter your campaign.

Your campaign starts when someone (or some data) matches your trigger condition. Then your customers move through the workflow - we call this a journey - until they meet your goal or exit criteria.

flowchart LR a{Does a person or data meet
trigger conditions?}-->|yes|c{If filter exists, does person or
data meet 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?}-->|no|d[Send message or take action] d-->f{Does person meet
goal/exit conditions?} f-->|no|g[Send message or take action] end j-.->|yes|e[exit campaign] f-.->|yes|h[exit campaign] g-->|Person finishes
campaign|k[exit campaign]

Campaign setup

Campaign triggers

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

The campaign trigger has a left hand column with a list of trigger categories including All Triggers, People, Object Types indicated by their names, Dates, and Webhooks. All Triggers is selected and shows a list of People triggers: segment change, event, and form submission.
The campaign trigger has a left hand column with a list of trigger categories including All Triggers, People, Object Types indicated by their names, Dates, and Webhooks. All Triggers is selected and shows a list of People triggers: segment change, event, and form submission.

Trigger options

You have seven types of triggers to choose from:

Segment change

Segment change lets you create a segmentA 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. or specify existing segments 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.

Event

An eventSomething that a person in your workspace did. Events can trigger campaigns, add people to segments, etc. You can access event properties in liquid with {{event.<property>}}-triggered campaign helps you respond to a person’s activity in your app or website. For instance, you could trigger a campaign based on a user abandoning their cart, viewing a specific page on your app, or completing an order.

Form submission

Form submission lets you take advantage of formConnected Forms in Customer.io allow you to automatically trigger campaigns, send data to other services, and add or update people when they submit forms on your website or in your app. responses to trigger campaigns. You can connect a form to your workspace or integrate with Facebook Lead Ads. Use this type of campaign to send messages to nurture new leads or respond to support requests.

Object updated

Use Object updated when you want people to enter the campaign every time an objectAn object is a non-person entity that you can associate with one or more people—like a company, account, or online course. is updated in your workspace. For instance, if you were tracking accounts as objects and updated the name of one, you could notify everyone that managed the account that the account went through a rebrand. Keep in mind, only people enter into journeys, not objects.

You’ll see this as “Object_type_name updated” in your trigger list. In the image above, “Course updated” is an example.

When you use objects to trigger campaigns, you can choose who enters into the campaign. The audience could be:

  • every person in the object
  • certain people related to the object
Relationship added or changed

A relationship is the association between an objectAn object is a non-person entity that you can associate with one or more people—like a company, account, or online course. and a person. Use this trigger type when you want people to enter a campaign after their relationship to an object has changed. For instance, if you track accounts as objects, this could mean they joined an account (person added), or they are now a manager (relationship changed).

You’ll see this as “Person added” or “Relationship changed” in your trigger list. In the image above, “Person added to Course” and “Relationship changes with Course” are examples.

When you use relationships to trigger campaigns, you can choose who enters into the campaign. That is, the recipient of the message in this kind of campaign doesn’t have to be the person in the relationship that triggered it. The audience could be:

  • the person whose relationship to the object is updated (default)
  • every person in the object
  • certain people related to the object
Important date

An important date triggers campaigns on a specific or relative date based on an attributeA key-value pair that you associate with a person or an object—like a person’s name, the date they were created in your workspace, or a company’s billing date etc. Use attributes to target people and personalize messages. Attributes are analogous to traits in Data Pipelines. that people in your audience have. You can trigger based on any customer attributes that are properly formatted dates. This is useful for recurring campaigns like birthdays, anniversaries, subscription renewals, and payment reminders.

Webhook

A webhook triggers a campaign based on data from an external service. The purpose of your campaign is to manipulate this data and associate it with people, much like you can with Zapier or Segment, but entirely within a campaign. Because data, not people, is the subject of your campaign, webhook-triggered campaigns don’t typically send messages directly; rather, they let you associate data with people, which can trigger subsequent campaigns.

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.

Goals

A conversion goal helps you track the success of a campaign based on whether a person performs an event, enters a segment, or exits a segment.

campaign-goal-event.png
campaign-goal-event.png

If a person achieves your goal, we mark 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. as converted. Then you can track conversion rates over time to improve your messaging strategies.

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
Customer.io In-app Messages
Webhooks1

Slack and Create or update person actions are often internal or used for analytics purposes; they 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

Exit conditions determine if or when a person should exit your campaign. For example, imagine that you have a campaign to re-engage users if they haven’t logged into your platform for a week; your goal is for people to log back into your service. When people do log in, you probably want them to exit the campaign so you stop sending them messages after they achieve your goal.

campaign-goal-exit-settings.png
campaign-goal-exit-settings.png
Grace periods

Go to Grace periods to learn more about when we pause a journey to allow time for people to rematch your campaign conditions.

Message settings

Subscription preferences

If you use our subscription center feature, you’ll set your campaign’s topicA category of message, set within your workspace’s subscription center, that people can subscribe to or unsubscribe from. Topics let your audience determine the kinds of messages they want to get from you. in the Subscription preferences setting. Keep in mind, subscription preferences only affect whether people receive certain messages, not whether they enter your campaign or go through other actions like an attribute update.

  • If people are unsubscribed from the topic, they won’t get messages from the campaign. They would, however, continue to receive in-app messages; subscription preferences apply to email, SMS, and push.
  • If your campaign includes non-message actions (like Create or Update Person), those actions will still apply to people who aren’t subscribed to the topic.
campaign-goal-message-settings.png
campaign-goal-message-settings.png

If you don’t want to set a topic, you can use the All subscribed and unsubscribed preference. You should use this setting sparingly—for things like transactional-style campaigns and important notices. Sending messages to unsubscribed people can violate their trust—or even violate local laws and regulations (GDPR, CAN-SPAM, etc)!

If you don’t use our subscription center, your campaign will send to all subscribed by default.

Message limit

If you’ve set a message limit in your workspace settings, you can determine whether your campaign, or individual messages in your campaign, count towards your message limit. A message limit determines the maximum number of messages you can send to a person within a time period.

Workflow builder

You’ll craft your workflow - the messages and actions people move through during their journey - using our Build menu.

campaign-workflow-builder.png
campaign-workflow-builder.png

You can add a variety of items—messages, webhooks, attribute updates, time delays, and more-to set up your campaign.

Individual message settings

Select a message in your workflow, and the settings will appear in the right-hand panel:

Select a message from the workflow canvas. A panel on the left contains a dropdown field for Sending to Unsubscribed.
Select a message from the workflow canvas. A panel on the left contains a dropdown field for Sending to Unsubscribed.

Settings change based on the kind of message or action you select, but common settings include:

  • Tracking opens and clicks: whether or not to track opens and clicks for a message; this is on by default
  • Sending behavior: whether or not the message sends automatically, queues a draft, or doesn’t send at all; we queue drafts by default
  • Subscription preference setting: whether or not to use campaign settings or override them; this respects campaign settings by default
  • Holdout test: a type of A/B test. Check out how to Create a conclusive A/B test result and how to Understand A/B test results for help.

Subscription preference

By default, your messages inherit your campaign settings. But you can change this within a message’s settings:

  • If you enabled the subscription center for your workspace, you can change this message to send to people subscribed to a different topic or all people in the campaign regardless of their subscription status.
  • If you have not enabled the subscription center, you can change this to send to all subscribed or all people regardless of their subscription status.

 Abide by your audience’s local laws

Liquid and customer data in campaigns

You can personalize data in messages using 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}}.. Reference people’s attributes in this format:

{{customer.<attribute_name>}}

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"}} then 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.

Activate your campaign

After you’ve set up your campaign, you’ll click Review items if you have setup left to do then Start campaign when you’re ready to review the entirety of your setup.

campaign-review.png
campaign-review.png

Current vs future additions

If you’re building a segment-triggered campaign, you can decide whether current people and future additions or only future additions should trigger your campaign:

  • Current people and future additions: this means people in your workspace who already match your trigger criteria and those who match after will enter your campaign.
  • Future additions only: this includes people who match your trigger criteria after you start the campaign. Learn about when backfilled people data can trigger campaigns.

Date-triggered campaigns always trigger for both current matches and future additions.

For event-triggered campaigns, people enter the campaign when they perform the event after you start the campaign. Learn about when backfilled event data can trigger campaigns.

Object and relationship-triggered campaigns only trigger for future matches.

You can create a campaign triggered by a segment based on a specific event so you can include current matches, but keep in mind, you won’t be able to include any event attributes in the content of the workflow.

Campaign journeys

Journeys

When a person enters a campaign, they start a journeyA person or data object’s path through your campaign.. We use journeys to track people’s history through a campaign like the deliveries they’ve received, conversions, and when they entered/exited. You can find them in the Journeys tab of a campaign:

A running campaign is selected. The title in the top left reads Welcome Series. Under the title is a horizontal list of tabs. The last one on the right is selected and reads Journeys.
A running campaign is selected. The title in the top left reads Welcome Series. Under the title is a horizontal list of tabs. The last one on the right is selected and reads Journeys.

Journeys work a little differently depending on your campaign’s trigger and filter conditions. If your campaign doesn’t have filter conditions, the journey starts immediately when a person (or data) matches your trigger criteria. If the campaign has filter conditions, the following happens:

  1. For segment-triggered campaigns, a journey starts as soon as a person matches the campaign’s trigger conditions. The person does not have to match the campaign’s filter conditions.
  2. For campaigns triggered by an event, object, relationship, date or form, a journey starts after the trigger conditions AND filter conditions are met. Keep in mind:
    • If the person does not meet the filter conditions when we receive the event, we will retry 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.

The 30-minute retry prevents race conditions that can occur when you update attributes close to the same time as the campaign trigger event. Rechecking the filter conditions helps us ensure that the right people will enter your campaigns, even when various network conditions or integration issues cause us to receive API calls in an untimely manner.

Manually end a journey

You can end a journey for a person from the Journeys tab of a campaign or a person’s profile.

A running campaign is selected. The title in the top left reads Welcome Series. Under the title is a horizontal list of tabs. The last one on the right is selected and reads Journeys.
A running campaign is selected. The title in the top left reads Welcome Series. Under the title is a horizontal list of tabs. The last one on the right is selected and reads Journeys.

Click the journey you want to end. You can only end an active journey.

campaign-journeys-active.png
campaign-journeys-active.png

Then click End this journey on the right.

campaign-journeys-end-this-journey.png
campaign-journeys-end-this-journey.png

You can also get to this screen by clicking a delivery in a campaign then selecting “View full journey.”

The journey will update to “Exited early.” And you’ll see this as the reason: “The person was manually removed from the campaign.” Manually ending a journey does not become an entry in the Activity Log.

Campaign metrics & reporting

Once a campaign is running, you can view reports and export them to CSV from the Metrics tab.

Within a Campaign, select Metrics beneath the campaign title. On the right hand side, there is a dropdown to export reports.
Within a Campaign, select Metrics beneath the campaign title. On the right hand side, there is a dropdown to export reports.

The export will reflect the dropdown selection:

  • All-time metric totals
  • Message metrics
  • Journey metrics or
  • Tracked responses for in-app messages

It will also include any filters you selected. For instance, if you select “Email” for the “Last 30 days” under Delivery Metrics, your export will only include the filtered data.

We can also send reporting webhooks with performance data to a URL you specify so you can 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.

Check out our Data-out integrations overview for more options.

Copied to clipboard!
  Contents
Is this page helpful?