Customer.io Campaigns Can Now Exit on Any Condition, Not Just the Goal. Here's the Exit Audit Worth Running

In December 1944, a Japanese intelligence officer named Hiroo Onoda landed on Lubang Island in the Philippines with orders to wage guerrilla warfare and, under no circumstances, to surrender. The war ended eight months later. Onoda fought on. Leaflets announcing Japan's surrender fell on the island in October 1945; his group studied them and concluded they were fake. Letters and photographs from his own family, dropped from the air in 1952, got the same verdict. He kept fighting for nearly 29 years.

What ended it wasn't evidence. It was the one exit condition Onoda would accept: a direct order from the officer who gave him his mission. On 9 March 1974, Major Yoshimi Taniguchi—by then a bookseller—flew to Lubang and read out the order relieving him of duty. Onoda surrendered the next day.

A journey doesn't end when its purpose is served. It ends when its exit condition fires. For years, most Customer.io campaigns had exactly one exit condition... and it probably wasn't the one you'd have chosen.

On 8 July 2026, Customer.io shipped flexible exit conditions: people can now leave a campaign when they match customer attributes, perform events, or enter or leave segments. None of it needs to relate to the campaign's goal. This post covers the new mechanics, how exit conditions differ from filters and conversion criteria, and the audit worth running on every always-on campaign this month.

The default exit is not the exit you think it is

"By default, a person continues through a campaign until they stop matching the campaign's trigger or filter conditions." That's the campaign exit conditions documentation, and it rewards a second read. Nothing about converting. Nothing about circumstances changing. The one default way out of a running journey is to stop matching the conditions that let the person in.

Consider what that means for a campaign with no filters. An event-triggered campaign with an empty filter panel gives a person nothing to stop matching, so the default exit can never fire. Short of someone ending the journey by hand, they finish every step. The trial that upgraded on day two still gets the day-nine "your trial is ending" email. The card that recovered an hour after it failed still collects the full dunning sequence.

One nuance if you run older campaigns: the goals documentation notes that for a legacy segment-triggered campaign, people exit when they stop matching the trigger or filter conditions. For everything else, a person continues "until they stop matching the campaign filter criteria—even if they perform your campaign's goal action".

Teams have worked around this for years the same way: a true/false branch in front of every send, checking "still on trial?", "still unpaid?", "still inactive?" before each message. It works, but your exit logic ends up buried in a dozen branches nobody can audit. We've argued before that a 12-step workflow like that should be three small workflows. Exit conditions are the cleaner fix for the zombie-journey half of the problem: one rule, set at the campaign level, that says when this journey should stop.

What shipped on 8 July: exits on attributes, events and segments

Since 8 July 2026 you can end journeys early on conditions that have nothing to do with your goal. The release note puts it plainly: "People can now exit your campaigns early when they meet segment or event conditions. This means you no longer have to depend on conversion criteria to end journeys early." The conditions you set can match your campaign's goal or differ from it entirely.

To set them, open your campaign's workflow, click the settings icon, and select Exit conditions, then Add action condition. The docs list three condition types. Customer attributes exit people whose profiles meet certain criteria; events exit people who have or haven't performed certain events; segments exit people who are members, or not members, of certain segments.

The semantics matter: "Exit criteria are OR statements; people exit when they meet any condition in your exit criteria." Each condition is its own trapdoor. The inverse move exists too: remove every condition, and everyone who enters finishes.

Exit conditions vs conversion criteria vs filters

Three mechanisms now touch the question of who's in your campaign, and they answer different questions.

Mechanism Question it answers When it acts
Filters Who belongs in this campaign? At entry, and via the default exit whenever a person stops matching
Exit conditions When should this journey end early? The moment a person matches any exit condition
Conversion criteria What counts as success? Within the conversion window, up to 90 days after a send, open or click

Conversion criteria remain one of three things: an event a person performs, a segment they join, or a segment they leave. Note what changed around them. The goals page used to treat exit-on-conversion as its own setting; it now points you at the exit conditions panel instead. "If you want people to exit your campaign when they match your conversion criteria, include the criteria in your exit conditions," the docs now instruct. You recreate the goal's event or segment as an exit condition, and one panel owns every early exit.

The exit audit: five campaign types that need explicit exits

The decision rule: a campaign needs explicit exit conditions when a person's circumstances can change faster than the workflow finishes. A three-message sequence over two days rarely qualifies. A 30-day re-engagement programme almost always does.

The audit itself is one question, asked of every active campaign: what event or state change should silence this journey? If an answer exists and it isn't already an exit condition, add it. Five campaign types nearly always have an answer.

Re-engagement. Exit on any meaningful activity: a login event, a key feature event, or joining your active-users segment. The premise of the campaign is "this person is inactive"; the moment that stops being true, every remaining message argues with reality.

Trial nurture. Exit on the upgrade event, and on trial cancellation. Both directions matter. A person who has upgraded doesn't need convincing, and a person who has cancelled doesn't want it.

Dunning. Exit the moment payment recovers. When we wrote up the dunning flow most teams never build, suppressing sends after recovery was the fiddliest part of the architecture. An exit condition on the payment-recovered event replaces all of it with one rule.

Onboarding. Exit on activation. If you run a three-email activation sprint, the sprint should end when the person activates, not when the third email has sent.

Winback. Exit on renewed activity, and think carefully about disengagement signals. If the right response to a signal is "stop messaging this person on every channel", that's a suppression and frequency problem, not a campaign exit—the art of not sending covers that layer. Exit conditions silence one journey; suppression silences the workspace.

A clean exit rule also keeps your data clean. If you use journey attributes as your workflow scratchpad, that scratchpad is wiped when the person exits—so the exit condition decides when the cleanup happens.

The trap: exits are OR, and goals still measure separately

Two properties of the new system deserve respect before you start adding conditions everywhere.

First, the OR semantics cut one way. Every condition you add makes exiting more likely, never less. There's no way to require two conditions to hold at once before someone leaves, so each condition should be sufficient on its own to justify ending the journey. If you find yourself wanting "exited trial AND didn't book a demo", that's branch logic inside the workflow, not an exit condition.

Second, an exit condition removes a person; it measures nothing. Goals and conversion criteria still do the measuring, on their own clock—the conversion window runs up to 90 days after a send, open or click. The double-counting warning from our Goals post applies unchanged: the docs state that "we count conversions independently for each campaign", so one person's purchase can be credited to several campaigns at once. Adding an exit that mirrors your goal doesn't change what converts. Removing a goal doesn't remove an exit. Treat them as the two separate systems they are.

When to have no exit conditions at all

Some campaigns should run to the end for everyone, and the docs endorse the setup: "If people should always finish the campaign, remove all exit conditions."

Legally required sequences top the list. Terms-of-service changes, price-increase notices, data-handling announcements... if your legal team needs every affected customer to receive the full sequence, no behaviour should cut it short. Short transactional-adjacent workflows are the other case: a two-step "receipt plus follow-up" finishes in hours, and nothing that happens in that window invalidates the second message.

Removing all conditions is a deliberate act, not the absence of a decision. It removes the default filter-based exit too, leaving manual removal as the only early way out. Make that choice on purpose, and write it down where the next person editing the campaign will see it.

Frequently asked questions

How do I remove someone from a Customer.io campaign when they convert?

Recreate your conversion criteria as an exit condition. Open the campaign's workflow, click the settings icon, select Exit conditions, then Add action condition and add the same event or segment your goal uses. The goals documentation says it directly: "If you want people to exit your campaign when they match your conversion criteria, include the criteria in your exit conditions."

What is the difference between exit conditions and filters in Customer.io?

Filters decide who enters a campaign; exit conditions decide when a journey ends early. Filters also power the default exit: a person leaves when they stop matching the trigger or filter conditions. Exit conditions go further, ending journeys on attribute, event or segment changes that have nothing to do with entry criteria.

Are Customer.io exit conditions AND or OR statements?

OR. The docs state: "Exit criteria are OR statements; people exit when they meet any condition in your exit criteria." You can't require two conditions to be true at the same time before someone exits, so each condition should justify the exit on its own.

What is the difference between exit conditions and conversion criteria?

Exit conditions remove people from a campaign; conversion criteria measure whether the campaign met its goal. They're independent systems. A person can exit without converting, and a conversion doesn't end a journey unless you've recreated the conversion criteria as an exit condition.

Can people re-enter a campaign after exiting on an exit condition?

Re-entry is governed by the campaign's trigger frequency settings, not by how the person exited. The triggers documentation says people enter a segment-triggered campaign once by default, while event-triggered campaigns re-enter every time the trigger event fires unless you limit frequency. The "every re-match" option requires a person to stop matching and re-match the trigger conditions after they've exited.

What happens when someone exits a campaign early?

Their journey status changes to "Exited early" rather than "Finished", and the journey log shows "Left campaign" next to the timestamp. The Journeys tab of the campaign, or of a person's profile, shows when they entered, what actions ran, and when they left.

Can I make everyone finish a campaign no matter what they do?

Yes. Remove all exit conditions, including the default one, and every person who enters will complete the workflow. The docs put it as: "If people should always finish the campaign, remove all exit conditions." Use this for compliance sequences where every recipient must get every message.

How do I manually remove one person from a campaign?

Open the Journeys tab of the campaign or the person's profile, click the journey, then click End this journey. The journey updates to "Exited early" with the reason "The person was manually removed from the campaign". Manual removal doesn't reset frequency settings, so the person won't necessarily re-enter later.

Which Customer.io plans include exit conditions?

The campaign exit conditions page lists the feature for the Essentials, Premium and Enterprise plans. It isn't listed for the free Builder plan.

Should every campaign have an exit condition?

No. Add explicit exit conditions when a person's circumstances can change faster than the workflow finishes—re-engagement, trials, dunning, onboarding, winback. Leave them off, deliberately, for compliance sequences and short transactional-adjacent workflows where everyone should finish.

Do exit conditions affect my conversion metrics?

Exit conditions don't change what counts as a conversion. Your conversion criteria and window still govern measurement, and conversions are counted independently for each campaign. Also note the goals documentation: if you edit conversion criteria on a live campaign, the change applies only to people who enter after you set it, never retroactively.

Sources

David Crowther
Book a free consultation →

On our call, you'll be speaking with David Crowther, founder of NerveCentral.

Our initial consultation is not a sales call—you'll talk, I'll listen and ask questions—then I'll come back to you within 48 hours with our best ideas on how to grow your business.