Start sending campaigns and workflows
UpdatedWant to send your first message right away?
Check out our quick start guide to send your first message and jump right in.
How it works
A message is what you want to send. But before you send a message, you have to determine who to send your message to and when to send it. You answer these questions when you set up a campaign, broadcast, newsletter, or transactional message.
Each of these mechanisms has a different use case, but they all contain the same basic concepts/questions:
- How do I trigger messages?
- Who should receive messages?
- When should people get messages?
- What messages should people get?
Trigger | Audience | Timing | Messages | |
---|---|---|---|---|
Campaign | When people meet your criteria | People who meet your criteria | Automated by workflow | Multiple |
Broadcast | When you trigger the broadcast (API or UI) | People who meet your criteria | When you send the API call | Multiple, all at once |
Newsletter | When you click send in the UI | People who meet your criteria | When you trigger the newsletter (manually) | Single |
Transactional Message | When a customer requests a message (API) | A specific person | When you send the API call | Single |
When should I use campaigns, broadcasts, or newsletters?
We’re glad you asked! There are a multitude of factors that can help you pick the right message mechanism for your needs. But, in general, you can use the following guidelines to help you pick the right one.
I want to control when people get messages: You should send a newsletter or a broadcast. You’ll send newsletters manually (or on a schedule), which makes it easy to determine who gets messages and when. Broadcasts are a bit trickier, but you base the send on an API call that you control—so you can send messages when something relevant to your business happens.
I want to send messages in response to my audience’s behaviors: You should send a campaign or a transactional message. These things are very different, but they’re both predicated on your audience’s behaviors. You’ll send transactional messages when a person performs an action that expects a message—like a receipt or a password reset. You’ll send campaigns when people meet certain criteria, like when they perform an event, gain certain attributesA 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., and so on.
I you want to send multiple messages or perform multiple actions: you should send a campaign or a broadcast. Campaigns contain a workflow that you can send people through to get multiple messages, or perform multiple actionsA block in a campaign workflow—like a message, delay, or attribute change. over time. Broadcasts also have a workflow, but the whole workflow happens at once; this means broadcasts aren’t really ideal for sending multiple messages, but you can perform multiple actions—like changing your audience’s attributes or sending webhooks.
Transactional messages follow regional regulations
Transactional messages are defined by regional regulations, like the CAN-SPAM Act in the US. Make sure that you use transactional messages for their intended purposes: as direct responses to your audience’s implicit requests for messages (e.g. purchase receipts or password reset requests).
Try a newsletter if you’re just getting started
Many of the sending mechanisms in Customer.io rely on your data. If you’re just getting started, a Newsletter, like the one in our quick start guide, is a great way to get started with Customer.io.
Where other kinds of messages rely on your data, API calls, etc, you can control all aspects of a Newsletter from our UI. That can make it easy to test your implementation and get a feel for how our platform works.
Campaigns
Campaigns are the most powerful and common way to automate your messaging strategy with Customer.io. When people enter a campaign, they start a journeyA person or data object’s path through your campaign. through your campaign workflow. Your workflow can define different paths people can go down and different messages they can receive based on the actions they take and the attributes they have.
A campaign consists of a trigger, workflow, and goal. When people meet your trigger criteria, they start a journeyA person or data object’s path through your campaign. through your workflow. They travel through the workflow until they:
- Finish the workflow
- Match your goal criteria (depending on your settings)
- Stop matching the trigger criteria (depending on your settings)
Because people can match your trigger at different times and exit campaigns for different reasons, each person’s journey is unique and personalized for them. This makes it easy for you to maintain an automated messaging strategy that resonates with your individual users.
Campaign triggers
The trigger determines when people start a campaign. You can set up campaigns to trigger when people perform an event, move into (or out of) a segmentA group of people who match a series of conditions. People enter and exit the segment automatically when they match or stop matching conditions., they reach a certain date, and so on.
In many cases, understanding the purpose of your campaign and the kinds of messages you want to send can help you determine the trigger you want to use. For example, you might use date-triggered campaigns for things like birthday or anniversary messages. You might use event-triggered campaigns to send coupons encouraging your audience to complete their purchases when they abandon their shopping carts. Learn more about campaign triggers.
But to set up campaign triggers correctly, you’ll also need to know a bit about your data—what attributes and events are available to you. You can see the attributes and events in your system under Integrations > Data Index.
Workflows
The workflow is where you determine what messages people get and when. In a workflow, you can send people down different branches based on their attributes or behaviors. With a complex workflow, you can automatically send messages and respond to your audience in ways that feel personal and relevant to them.
For example, we have a workflow below based on a cart abandonment scenario with three paths. If a person abandoned their cart for a certain amount of time, we send them a reminder message encouraging them to finish their purchase. But we don’t want to send them this email if they finish their purchase or they’re still shopping, so we bypass this message if the person completes their transaction or they add new items to their cart!
Campaign workflows also help you send messages at the right times with blocks like Wait until. These blocks let you delay a message for a set period of time, or until a customer does something relevant. For example, you might send a series of emails explaining how to use your platform when someone joins your service. You can set up Wait until blocks to send follow-up emails when a person completes each step in the setup process.
Goal and Exit Criteria
Goal and exit criteria help you determine if a campaign served its purpose and if/when someone should end their journeyA person or data object’s path through your campaign..
Goals
Goals help you measure the success of your campaigns. Typically, we represent success when a person performs an event or gains an attribute—like when someone completes a purchase or renews their subscription. If someone reaches your goal criteria in response to a part of your campaign, we record a conversion, so you can see how effective your campaign is.
Exit criteria and filters
Exit criteria determines when someone ends their journey. By default, people will go through a whole workflow—but what if they don’t need to? For example, if the purpose of your campaign is to get someone to complete a purchase, you probably want to stop sending messages after someone actually completes the purchase. This is what exit criteria is for.
Exit criteria also contains Filters. Filters are additional criteria that people must meet to join your campaign, giving you more granular control over who travels through your campaign. We evaluate filters when someone enters a campaign and before actions that affect them (like messages). This means that someone can meet your trigger criteria, but exit your campaign before they get a message if they don’t meet your filters.
You can have people exit your campaign when they:
- Meet the goal criteria
- Stop matching the campaign trigger (i.e. they fall out of a segment)
- They stop matching your filter criteria.
Broadcasts and Newsletters
Broadcasts and newsletters are grouped together in Customer.io under Broadcasts. You determine whether you’re going to send an API-triggered broadcast or a Newsletter when you set up your message.
Unlike campaigns, you trigger broadcasts and newsletters—they aren’t triggered by your audience. And, where campaigns can run for a long period of time and people can start or end campaign journeys independently of each other, everybody in your broadcast or newsletter audience gets your messages at roughly the same time.
API-triggered broadcasts
API-triggered broadcasts let you trigger the broadcast with an API call—which helps you send messages to your audience when something relevant happens. For example, you might trigger a broadcast to your audience when a new product launches, a new coupon becomes available, or when tickets become available for a concert.
Unlike newsletters, you can set up a workflow for your broadcast and perform multiple actions. The workflow in a broadcast is designed to help you send a message and perform other non-message actions, like updating a person’s attributesA 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., sending webhooks, or adding people to 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..
In general, you shouldn’t send multiple messages in a broadcast because when you trigger a broadcast, the whole workflow happens at once. If you send multiple messages as a part of your broadcast workflow, a person will get them at roughly the same time.
Like other messages, you can personalize broadcasts using your audience’s attributesA 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.. But, you can also pass data in your API call that you can use to personalize your messages. For example, you might send a broadcast to let people know that a new product is available, and you can use the product’s name in your message. Below is an example API trigger.
curl --request POST \
--url https://api.customer.io/v1/campaigns/{broadcast_id}/triggers \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
--header 'content-type: application/json' \
--data-raw '
{
"data": {
"headline": "Roadrunner spotted in Albuquerque!",
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!"
},
"email_add_duplicates": false,
"email_ignore_missing": false,
"id_ignore_missing": false,
}'
Newsletters
Newsletters are the easiest way to send a single message to a large group of people. You can send a newsletter to 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. or a list of people. Unlike campaigns, which people enter when they meet certain criteria, or broadcasts, which you trigger with an API call, you send newsletters manually—which makes them predictable and ideal for one-off communications to large groups.
You can also A/B test newsletters to improve your communications over time. While you can also A/B test messages in campaigns, newsletters have a much easier time reaching statistical significance: it’s much easier to tell which of your A/B test messages worked better when you send them all at once.
Control your send rate if you’re new here
When you’re new here and you’ve just authorized/verified your domain, you’ll need to ramp-up your domain reputation. This means that you’ll need to send messages slowly at first, and then increase your send rate over time. You can control your send rate when you send newsletters!
Transactional messages
Transactional messages are messages that you send to a specific person when they perform an action that expects (or demands) a message—like a receipt when a person makes a purchase or a link to reset a password when someone has trouble logging into your service.
You’ll send a transactional message via API call, similar to the way you trigger a broadcast, but each trigger is unique to a specific person. It’s a one-to-one message.
Like other messages, you can create your transactional message in our UI and personalize it with your audience’s attributesA 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. and other data from the API call that triggers the message. But, if you want to maintain complete control of your message, you can also send the entire raw message in your API call if you want. This gives you complete, programmatic control over the message you send—the content, the audience, and the personalize data you send.
Here’s an example of a transactional message payload:
{
"transactional_message_id": 44,
"to": "cool.person@example.com",
"subject": "Reset your password",
"identifiers": {
"email": "cool.person@example.com"
},
"message_data": {
"password_reset_token": "abcde-12345-fghij-d888",
"account_id": "123dj"
},
"bcc": "bcc@example.com",
"disable_message_retention": true,
"send_to_unsubscribed": true,
"queue_draft": false
}
Personalizing messages with liquid
As you write your messages, you can use your audience’s attributesA 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., event properties, and other data to personalize your messages. This helps you generate highly relevant, personalized communications with your audience at scale.
The message personalization syntax we use is called 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}}
..
For example, if you wanted to reference a person’s first name in a message, you might use something like this:
{{customer.first_name | capitalize }}
You can use liquid almost anywhere in your messages. For example, when you write an email, you can use liquid to personalize your subject line, the recipient’s email address, and the content of your email.