Conversion goals and exit criteria
Set up a conversion goal to measure how effective your campaign is and filter people into follow-up campaigns or messages. Set exit criteria to determine when a person leaves your campaign—or if they should receive all messages in the campaign even when they match your conversion goal or quit matching your trigger criteria.
How it works
A conversion goal represents the outcome you want to achieve from a campaign and message. The goal can be either:
- 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>}}
you want people to perform - 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. you want to join or leave
When you set your conversion goal, you also set a time frame (up to 90 days) that a person can achieve the goal after they receive, open, or click a tracked link in a message. If a person performs your conversion criteria within the time frame, we’ll record a conversion. If a person does not perform the conversion goal, or they perform it outside the time frame you set, we won’t record a conversion.
You can check the converted metric to determine the percentage and number of journeysA person or data object’s path through your campaign. 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 the 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 goal?} b-->|yes|c{Are they within
the time window?} 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 goal after you start a campaign, we won’t retroactively apply your conversion criteria. Updating a conversion goal will not update your conversion metrics for messages that were previously marked as converted or not converted; your updated conversion goal 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 | |
Twilio SMS | Create or update person action |
Customer.io Push Notifications | |
Webhooks1 |
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.
Set up a conversion goal
You can set a goal when you create a campaign, or add it to campaigns you’ve already created. However, if you set a conversion goal for an ongoing campaign, it will only apply to people who enter the campaign after you set the goal. You cannot apply goals retroactively to people who’ve already entered or completed the campaign.
In the Goal & Exit step of your campaign:
Select Set goal and set up your conversion goal.
Select the type of conversion goal—performs event, enters segment, or leaves segment.
Select the time frame for the conversion. This determines the maximum amount of time that a person can reach the conversion goal after doing something in the campaign.
Select whether a person can perform the goal after receiving, opening, or clicking a tracked link in the delivery; we refer to 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., because a message must leave Customer.io to count towards conversion (i.e. may not be attempted, failed, etc). A person can meet your conversion goal after:
- Receiving a message
(Optional) If your conversion goal is an event, click Add filter to ensure that your event contains (or doesn’t contain) specific properties or values before counting a conversion.
(Optional) change criteria under Exit the campaign if you want someone to exit the campaign when they achieve the goal, rather than continuing the campaign.
Click Save & Next to review your campaign.
Event-based goals and filters
Events let you track the things that your audience does. You can also set up a filter to limit conversions based on event properties. This lets you make sure that your conversion goal events contain (or don’t contain) specific properties before they’re counted as conversions.
Click Add filter to add filter conditions. You can join multiple conditions:
- AND: all conditions need to be true to achieve the goal.
- OR: one condition must be true to achieve the goal.
So, for example, if your goal is based on a purchase of 10 dollars or more, you could set a filter making sure that your purchase
event contains a total
greater than 9.99
to count as a conversion.
Event-based conversions are based on processing time, not timestamps
Event-based conversion goals are based on when an event arrives at Customer.io. You cannot backdate an event (with a timestamp
) so that it triggers a conversion. For example, if you send a backdated event outside the conversion time window, with a timestamp
that would’ve been in the window, we won’t count that conversion.


Comparing conversion event values to other variables
You can compare properties from the conversion event to 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. or even to properties from the incoming trigger event. This can be helpful if you relate events by a static value—like an event_id
across related events or people.
For example, imagine you’re in the education industry and you want to start a campaign when a person begins an educational course. Your campaign objective is to help a person finish the course, so you want to record a conversion when the person finishes that course. If you relate events by a course_id
, you can determine when someone has finished the course they started and mark a conversion!


Segment-based goals
Segments provide a way to track conversions based on attributes, which you might do if you don’t have an integration that sends events. You can add people to segments based on events, but if you already capture events, you may find it easier to simply set up an event-based conversion goal.
A person can match segment criteria before they enter your campaign. If a person already matches your conversion segment criteria before they enter your campaign, and progress through the campaign, messages that you send to that person won’t record a conversion.
Add your conversion segment as a filter to your campaign trigger
If you use segments as your conversion goal, you might want to add your segment as a filter for your campaign, so that you don’t send messages to people who’ve already performed the goal of your campaign
Conversion timing
A person can achieve your conversion goal after they receive, open, or click a tracked link in a message. Event conversions are counted based on when an event arrives at Customer.io not the timestamp
in the event.
If you allow conversions after receiving messages, conversions will occur in the order that you send messages. For example, if a person receives two messages, and achieves your conversion goal 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, people will achieve your goal against the most recent message that they opened or clicked. For example, if you track your conversion goal when people open messages, and a person receives two messages but opens them out of order—the second message, and then the first—before achieving your conversion goal, we’ll attribute the conversion to the first message.
conversion goal?} b-->|yes|c{Are they within
the time window?} c-->|yes|d{which message did
person open last?} c-.->|no|e[message/journey is
not converted] b-.->|no|f[message/journey is
not converted] d-.->|1st message|g[1st message
is converted] d-.->|2nd message|h[2nd message
is converted]
Exit conditions: what happens after a conversion?
By default, a person continues through a campaign until they stop matching the campaign trigger criteria—even if they perform your campaign’s goal action. However, you might not want a person to continue a campaign if they achieve the goal of the campaign or they stop meeting your campaign’s trigger criteria. You can change these settings under People exit the campaign early when in the Goal & Exit step when setting up 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 (the goal, in this case) before the next follow-up message.


Early exit conditions include:
They achieve the goal: 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 stop matching the trigger segment or 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 achieve the goal or they stop matching the trigger segment or 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 early, they move through the entire workflow: 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.