Automation goals & conversion criteria
UpdatedHow goals work
A goal is what you want your audience to accomplish during your automation, like purchase a product, sign up, or subscribe. When you set up a goal, you define conversion criteria, which are the rules that determine when we mark a message or journey as “converted.”


The conversion criteria can be one of (and only one of) the following things:
- 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. you want profiles to perform
- A segmentA 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. you want profiles to join
- A segment you want profiles to leave
When you set conversion criteria, you also set a conversion window (up to 90 days) that your customers can match the conversion criteria after they are sent, open, or click a tracked link in a message. If a profile matches your conversion criteria within the time frame, we’ll record a conversion and attribute it to your automation. If a profile does not match the conversion criteria, or they match it outside the time frame you set, we won’t record a conversion.
Multiple automations can convert on the same criteria
Conversion metrics
You can check the converted metric to determine the percentage and number of journeysTypically, 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. and delivered messagesThe 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. that achieved your goal—and the number that haven’t. Use your conversion metrics to figure out how well your messages perform and develop strategies to increase the value of your messages over time.


message]-->b{Do they match
conversion criteria?} b-->|yes|c{Are they within
the time frame?} c-->|yes|d[message/journey is
converted] c-.->|no|e[message/journey is
not converted] b-.->|no|f[message/journey is
not converted]
We do not retroactively count conversions
If you edit or change your conversion criteria after you start an automation, we won’t retroactively apply your conversion criteria. Updating conversion criteria will not update your conversion metrics for messages that were previously marked as converted or not converted; your updated conversion criteria and metrics will only apply to new conversions.
Types of messages or actions that can record conversions
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.
Set up conversion criteria
You can set a goal when you create an automation or add it to automations you’ve already created. However, if you set conversion criteria for a live automation, it will only apply to profiles that enter the automation after you set the goal. You cannot apply a goal retroactively to profiles that’ve already entered or completed the automation.
Click the upper-left menu while editing an automation. Then click Manage under Goal:
- Click Set goal.


- Select the type of conversion criteria—performs event, enters segment, or leaves segment.
- (Optional) If your conversion criteria is an event, click Add event data filter to ensure that your event contains (or doesn’t contain) specific properties or values before counting a conversion.
- Under Conversion, set the maximum time (up to 90 days) after a delivery that you’ll count a conversion.
- Select whether to count a conversion after a profile:
- Is sent any deliveryThe 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. (i.e. not attempted or failed) from this automation
- Save your changes.
- Next, decide whether you want profiles to exit your automation when they match the conversion criteria.
Event-based goals
Events let you track the things that your audience does. You can use an event as an automation goal. For example, if your automation is focused on abandoned carts, your goal event might be a purchase event.
You can only use a single event as the goal for any given automation.
Event names in conversion criteria are case sensitive
purchase and Purchase are treated as distinct events when you set up conversion criteria. Make sure the event name in your conversion criteria exactly matches the event name you send to Customer.io.Event-based filters
You can also set up a filter to limit a conversion based on an event’s properties. This lets you make sure that your conversion event contains (or does not contain) specific properties before you count it as a conversion.
Using our purchase example above, imagine that you want to record a conversion when your audience uses a specific coupon code or makes a purchase over a certain dollar amount. You could set a filter for that!


Click Add event data filter under the goal to begin. You can join multiple filter conditions (for a single event) depending on whether you select all or at least one in the dropdown:
- All: all conditions need to be true to match the conversion criteria. Click Add event data filter to create another statement in an AND conditional, if you need.
- At least one: only one condition must be true to match the conversion criteria. Click Add event data filter to create another statement in an OR conditional, if you need.


Event-based conversions are based on processing time, not timestamps.
We mark a delivery associated with an event-based goal as converted when we receive the event. You cannot backdate an event (with a timestamp) so that it triggers a conversion. For example, if you send an event outside the conversion time window, but it has a timestamp that would’ve fallen within the window, we won’t count that conversion.
Why filter by event data
You can compare properties from the conversion event to a profile’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. or even to properties from the incoming trigger event. This helps you make sure conversions are attributed to the exact data relevant to your automation and each profile’s journey.
For example, imagine you run online courses, and you want to start an automation when a profile begins one of your classes. Your objective is to help a profile finish the course they started, so you want to record a conversion when the profile finishes it. If your events use a course_id to differentiate between similar events for different classes, you can determine when someone has finished the course they started and mark a conversion!


In this example is an event-triggered automation with a frequency of “Every re-match.” This means a profile can enter this automation for each course they start. It’s helpful then to set the course_id of the event associated with the goal to the course_id of the event that triggered the automation because it ensures the conversion is consistent with each journey.
Segment-based goals
If you capture events, try an event-based goal.
You can set a goal based on whether someone “enters a segment” or “leaves a segment.” If you choose “enters segment,” we check whether a profile is IN the segment. If you choose “leaves segment,” we check whether a profile is NOT IN the segment.
Consider that a profile can be IN or NOT IN a segment before they enter your automation:
- If a profile already matches your conversion-criteria segment when they enter your automation, and progress through the automation, then messages that you send to that profile won’t record a conversion.
- If the automation has the exit criteria, “They match the conversion criteria,” profiles will enter the automation then exit before any action because they already meet the conversion criteria.
- We calculate if someone is NOT IN a segment when they’ve never belonged to the segment as well as when they leave a segment; this means “exit segment” corresponds to profiles that have never belonged to the segment and who left the segment they belonged to.
Add your conversion segment as a filter to your automation trigger.
Conversion timing
A profile can match the conversion criteria after being sent, opening, or clicking a tracked link in a delivery. Conversions based on a profile performing an event are counted when we receive the event, not when the event occurred.
Holdout tests can show conversions
conversion criteria?} b-->|yes|c{are they within
the time window?} c-->|yes|d{which message did
profile open last?} c-.->|no|e[message/journey is
not converted] b-.->|no|f[message/journey is
not converted] d-.->g[If profile opened 1st message
last, the 1st message converts.] d-.->h[If profile opened 2nd message
last, the 2nd message converts.]
If you allow conversions after being sent messages, conversions will occur in the order that you send messages. For example, if a profile receives two messages, and matches your conversion criteria within your time frame of both messages, we’ll attribute the conversion to the second message—the most recently received message.
If you set conversions to occur after opening or clicking a tracked link in messages, profiles will achieve your goal against the most recent message that they opened or clicked.
If a profile meets conversion criteria, like performing an event, immediately after an open or click, it’s possible a conversion isn’t logged:
- For clicks, this can happen because it takes up to 10 seconds for us to screen out machine clicks.
- For opens or clicks, this can happen if we process the open or click AFTER the conversion criteria is met.
For example, let’s say your conversion criteria is “performs event: subscription_activated” and the conversion window is based on clicking a tracked link:
- At 8:07:42 AM, a customer clicks a tracked link in a message.
- At 8:07:49 AM, the customer performs the conversion criteria event
subscription_activated. - At 8:07:53 AM, we finish processing out machine clicks, and the click clears the queue. Customer.io won’t log a conversion because the click was processed after the conversion event was performed.
Exit condition: match the conversion criteria
If you want profiles to exit your automation when they match your conversion criteria, include the criteria in your exit conditions.
By default, a profile continues through an automation until they stop matching the automation filter criteria—even if they perform your automation’s goal action. (For a legacy segment-triggered automation, profiles will exit when they stop matching the trigger or filter conditions by default.)
However, you might not want a profile to continue an automation if they match your conversion criteria. For example, if your goal is for someone to complete a purchase, you probably don’t want to continue reminding profiles about the items in their cart after they make a purchase!
To view or modify your exit criteria, open your automation and click . Then click Exit conditions.


Recreate your conversion criteria in the exit conditions panel: add the event or segment criteria.
Learn more about exit conditions and how we evaluate them during an active journey.
