Automation concepts & settings
UpdatedAutomations are automated workflows you set up to send profiles 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 automations to help you get started.
If you’re new to Customer.io, checkout automations, broadcasts, and transactional messages to make sure you’re creating the right kind of automation.
How it works
An automation is a workflow to send messages and manipulate data in Customer.io. It consists of four major components:
- Trigger: this determines who enters your automation (trigger and filter conditions) and when (frequency setting). Filters are optional.
- Goals: the outcome you want your customers to achieve through the automation. You don’t need to define a goal, but it can be helpful to gauge the success and health of your automations.
- Exit criteria: these determine if profiles should leave your automation early or not.
- Workflows: the messages you want to send and other actions you want to perform for profiles that enter your automation.
Your automation starts when someone (or some data) matches your trigger condition. Then your customers move through the workflow—we call this a journeyTypically, a person’s path through your automation. If the automation is triggered by a webhook, then a journey captures the webhook’s path, not a person’s.—until they meet your goal or exit criteria.
trigger conditions?}-->|yes|c{If filter exists, does profile or
data meet conditions?} a-.->|no|i[profile doesn't
enter automation] c-.->|no|i c-->|yes|j subgraph b [Your automation] direction TB j{Does profile meet
goal/exit conditions?}-->|no|d[Send message or take action] d-->f{Does profile meet
goal/exit conditions?} f-->|no|g[Send message or take action] end j-.->|yes|e[exit automation] f-.->|yes|h[exit automation] g-->|Profile finishes
automation|k[exit automation]
Automation setup
Automation triggers
Your automation trigger determines who enters your automation and when. Most triggers are based around profiles, like when they match certain criteria. Typically, these profiles are the subject of your automation—you’ll send them messages, set their attributes, and so on.


Trigger options
Attribute or Segment
Attribute or Segment lets you trigger automations based on profileThe representation of a person or group in Customer.io. People and custom objects both have their own profiles, but we bill based on the total number of profiles in your account. attributes, segmentsA segment is a group of people in your workspace. Use segments to trigger automations, track membership over time, or fine-tune your audience. There are two types of segments: data-driven and manual. Data-driven segments automatically update when people start or stop matching criteria. Manual segments are static., or both. Use segments if you want to track profiles that match this criteria over time or reuse the criteria as a trigger for other automations. You can set segment criteria based on your audience’s attributes, events, etc. Use attributes alongside segments or to quickly target specific profile attributes without creating or finding a segment. This trigger is best for automations like recurring NPS surveys, onboarding drip automations, and inactivity reminders.
Event
An eventSomething that a person in your workspace did. Events can trigger automations, add people to segments, etc, and you can use properties from events to personalize messages.-triggered automation helps you respond to a profile’s activity in your app or website. For instance, you could trigger an automation 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 automations, send data to other services, and add or update people when they submit forms on your website or in your app. responses to trigger automations. You can connect a form to your workspace or integrate with Facebook Lead Ads. Use this type of automation to send messages to nurture new leads or respond to support requests.
Object updated
Use Object updated when you want profiles to enter the automation 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 profiles 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 automations, you can choose who enters into the automation. The audience could be:
- every profile in the object
- certain profiles 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 profile. Use this trigger type when you want profiles to enter an automation after their relationship to an object has changed. For instance, if you track accounts as objects, this could mean they joined an account (profile added), or they are now a manager (relationship changed).
You’ll see this as “Profile added” or “Relationship changed” in your trigger list. In the image above, “Profile added to Course” and “Relationship changes with Course” are examples.
When you use relationships to trigger automations, you can choose who enters into the automation. That is, the recipient of the message in this kind of automation doesn’t have to be the profile in the relationship that triggered it. The audience could be:
- the profile whose relationship to the object is updated (default)
- every profile in the object
- certain profiles related to the object
Important date
An important date triggers automations 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. that profiles in your audience have. You can trigger based on any customer attributes that are properly formatted dates. This is useful for recurring automations like birthdays, anniversaries, subscription renewals, and payment reminders.
Webhook
A webhook triggers a automation based on data from an external service. The purpose of your automation is to manipulate this data and associate it with profiles, much like you can with Zapier or Segment, but entirely within an automation. Because data, not profiles, is the subject of your automation, webhook-triggered automations don’t typically send messages directly; rather, they let you associate data with profiles, which can trigger subsequent automations.
Webhook automations help you perform one-to-many interactions with your audience, like notifying a group of profiles when you post a job or a product becomes available that a cohort of your audience is interested in.
Goals
A goal helps you track the success of an automation based on whether a profile performs an event, enters a segment, or exits a segment.


If a profile 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 journeyTypically, a person’s path through your automation. If the automation is triggered by a webhook, then a journey captures the webhook’s path, not a person’s. 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 attributed | Conversions not attributed |
|---|---|
| Slack Message | |
| SMS | Create or update profile action |
| Customer.io Push Notifications | |
| Customer.io In-app Messages | |
| Webhooks1 |
Slack and Create or update profile 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 profile should exit your automation. For example, imagine that you have an automation to re-engage users if they haven’t logged into your platform for a week; your goal is for profiles to log back into your service. When profiles do log in, you probably want them to exit the automation so you stop sending them messages after they achieve your goal.


Message settings
Subscription preferences
If you use our subscription center feature, you’ll set your automation’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 profiles receive certain messages, not whether they enter your automation or go through other actions like an attribute update.
- If profiles are unsubscribed from the topic, they won’t get messages from the automation. They would, however, continue to receive in-app messages; subscription preferences apply to email, SMS, and push.
- If your automation includes non-message actions (like Create or Update Profile), those actions will still apply to profiles that aren’t subscribed to the topic.


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 automations and important notices. Sending messages to unsubscribed profiles can violate their trust—or even violate local laws and regulations (GDPR, CAN-SPAM, etc)!
If you don’t use our subscription center, your automation 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 automation, or individual messages in your automation, count towards your message limit. A message limit determines the maximum number of messages you can send to a profile within a time period.
Workflow builder
You’ll craft your workflow—the messages and actions profiles move through during their journey—using our Add menu.


You can add a variety of items—messages, webhooks, attribute updates, time delays, and more-to set up your automation.
Individual message settings
Select a message in your workflow, and the settings will appear in the right-hand panel:


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 automation settings or override them; this respects automation 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 automation 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 profiles subscribed to a different topic or all profiles in the automation regardless of their subscription status.
- If you have not enabled the subscription center, you can change this to send to all subscribed or all profiles regardless of their subscription status.
Abide by your audience’s local laws
Liquid and customer data in automations
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 profile 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:
- 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. - They can override certain email headers
If you send any of these attributes as part of your event, they will override your automation settings:
from_address,recipient,reply_toFor 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 automation will go to wile.e.coyote@example.com, no matter the settings in the automation itself.
Activate your automation
Check out this tutorial on activating an automation:
After you’ve set up your automation, you’ll click Review items if you have setup left to do then Start automation when you’re ready to review the entirety of your setup.


Current vs future additions
You can decide whether current profiles and future additions or only future additions should trigger your automation. This applies to automations triggered by segments, attributes, objects, or relationships:
- Current profiles and future additions: Profiles that match your automation criteria after you start it will enter the automation. And profiles that already match your trigger criteria will immediately enter your automation.
- Future additions only: This only includes profiles that match your trigger criteria after you start the automation. Learn about when backfilled profiles data can trigger automations.
Date-triggered automations always trigger for both current matches and future additions.
For event-triggered automations, profiles enter the automation when they perform the event after you start the automation. Learn about when backfilled event data can trigger automations.
You can create an automation 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.
Schedule your automation
You can schedule your automation to start or stop at a specific date and time. This gives your team the flexibility to plan and execute time-bound marketing initiatives with fewer manual steps. For instance, you might have a seasonal automation or limited-time offers that you want to make sure are only available during the relevant time period.
Automation metrics & reporting
Once an automation is running, you can view reports and export them to CSV from the Metrics tab.


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. You can learn more about how we define each metric in Automation and Broadcast Metrics.
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.
