The graduation question
Of all the tools compared with PostHog Workflows, Customer.io is the most direct overlap. Both are built on the idea that the best message is triggered by what a user did. The difference is where the automation lives and how much commitment it asks for.
PostHog Workflows is the "no new tool" option. You open your PostHog project, pick an event or cohort, and send a message. Customer.io is the "lifecycle deserves its own platform" option. You send your events and attributes to Customer.io, build journeys there, and run messaging as a program.
Most teams asking about these two are really asking when to graduate from the first to the second.
Signs PostHog Workflows is still enough
- Your lifecycle program is a welcome email, a few activation nudges, and maybe a re-engagement email.
- The person building workflows is a product manager or engineer, not a lifecycle marketer.
- You mostly want to know whether messaging changes activation, and PostHog funnels already answer that.
- Your volume fits comfortably inside 10,000 messages per channel each month.
- Half of your "workflows" are internal: Slack alerts, webhook calls, property updates.
Signs you have outgrown it
- You want to segment on message behavior, such as "opened the trial ending email but did not convert." PostHog is rich on product data but thin on email engagement history.
- Journeys have many branches, goals, and exit conditions, and you want to A/B test paths inside them.
- You need push notifications or in-app messages alongside email.
- Someone now owns lifecycle as their job, and they need reporting, a template library, and governance.
- Email copy and timing are debated every week, not set once.
When three or more of those are true, Customer.io earns its price.
What Customer.io costs
From our pricing notes, Customer.io Essentials starts at $100 per month for up to 5,000 profiles, roughly $150 per month at 10,000 profiles, and includes up to 1 million emails per month. Overage is billed per extra profile. Premium starts around $1,000 per month, and Enterprise is custom.
The important unit is profiles. If you send every PostHog person to Customer.io, including dormant free users, you pay for all of them. Many teams only sync identified users who have verified an email or reached a certain stage.
PostHog Workflows has no profile-based fee. You get 10,000 messages per channel each month free and pay per message after that.
Pricing reality at 10,000 users
Picture a SaaS with 10,000 identified users. You want a five-email onboarding journey for 1,000 new signups a month, a trial conversion journey, and a monthly product update.
| Line | PostHog Workflows | Customer.io Essentials |
|---|---|---|
| What you pay for | Messages | Profiles |
| Monthly email volume | About 5,000 onboarding, plus trial and update emails, roughly 17,000 total | Same sends, well inside the 1 million included emails |
| Listed cost | Free for the first 10,000 email messages, then per-message pricing | About $150 per month at 10,000 profiles |
| Lever to reduce cost | Send fewer messages | Sync fewer profiles |
At this size, PostHog Workflows is likely cheaper in cash. Customer.io buys you journey depth, message-level segmentation, and a template library. Whether that is worth about $150 a month depends on whether someone will use it every week.
Moving from PostHog Workflows to Customer.io
PostHog has a Customer.io destination, which makes the data side straightforward to start.
- Set up the destination. Add your Customer.io site ID and Track API key in PostHog, then choose which events and person properties to forward.
- Decide who becomes a profile. Filter the destination so only people you intend to message are created in Customer.io. This controls cost.
- Rebuild cohorts as segments. Customer.io can only segment on data it receives, so each PostHog cohort needs a matching attribute or event.
- Recreate workflows as journeys. Map triggers, delays, and splits. Most translate directly, and you can add branches that were awkward in PostHog.
- Move templates and the sending domain. Authenticate your domain in Customer.io and warm up volume if the setup is new.
- Carry over unsubscribes. Import suppressions before the first send.
- Turn off customer-facing PostHog workflows. Keep internal Slack and webhook workflows in PostHog. Remove email steps so users do not receive duplicates.
Message history versus product history
This is the data-model difference that decides many migrations.
PostHog holds deep product history: every event, property, and session, organized for funnels and retention. It knows little about the emails a person received, opened, or clicked unless you send that back in.
Customer.io holds deep messaging history: every delivery, open, click, bounce, and conversion, attached to the profile and usable in segments. It knows only the product events you forward.
So the question is which history your targeting depends on. "Users who have not used feature X" is a PostHog question. "Users who got the trial email twice and never clicked" is a Customer.io question. Mature programs need both, which is why the destination and a return path for engagement data matter more than the journey builder.
Keeping PostHog in the loop
Customer.io does not replace PostHog. Funnels, retention, session replay, feature flags, and experiments stay there. The healthy pattern is:
- PostHog is the source of product truth and internal automation.
- Customer.io is the source of customer-facing messaging.
- Message engagement flows back to your warehouse or PostHog, so you can see whether a journey moved activation or conversion.
Without that loop, teams end up measuring email opens in one tool and activation in another and never connecting them.
Common mistakes when switching
A few problems show up again and again when teams move from PostHog Workflows to Customer.io:
- Syncing every person. Forwarding all PostHog persons, including anonymous or long-dormant users, inflates profile counts and cost. Filter the destination to people you actually intend to message.
- Renaming events on the way. If
trial_startedbecomesTrial Startedin Customer.io, your PostHog funnels and Customer.io journeys no longer line up. Keep one naming convention. - Leaving old workflows running. During cutover it is easy to have the same welcome email firing from both tools. Turn off each PostHog email step as its Customer.io journey goes live.
- Forgetting suppressions. Unsubscribes recorded in PostHog must reach Customer.io before the first send.
- Building everything at once. Move the highest-value journey first, compare results in PostHog, then migrate the rest.
Moving the other way
Some teams leave Customer.io for PostHog Workflows when they find the program was simpler than planned. The checklist:
- Export journeys and note which use push, in-app, or message-engagement branches. Those will not move.
- Rebuild the rest as PostHog workflows on cohorts.
- Export suppressions and unsubscribes before canceling.
- Authenticate your sending domain in PostHog and remove the old DNS records only after cutover.
- Download message and journey reports you want to keep, since that history stays in Customer.io.
Use-case matchups
| Need | Better fit | Why |
|---|---|---|
| First welcome and activation emails | PostHog Workflows | No new tool or data pipeline |
| Journey branching on email clicks | Customer.io | Message history on the profile |
| Push and in-app alongside email | Customer.io | Native channels |
| Slack alert to customer success | PostHog Workflows | Native Slack step |
| A/B testing journey paths | Customer.io | Built into journeys |
| Stripe-driven dunning email | Sequenzy | Billing context without custom events |
Decision checklist
- Does someone own lifecycle as a job? Yes leans Customer.io.
- Do you target on message engagement? Yes leans Customer.io.
- Do you need push or in-app? Customer.io has them. PostHog Workflows does not.
- Is event data clean and consistently named? Customer.io depends on it.
- Is the budget under $100 a month for messaging? PostHog Workflows or an email-focused tool fits better.
Where Sequenzy fits
There is a gap between PostHog Workflows and Customer.io. Many SaaS teams outgrow PostHog for email because they need templates, transactional sending, and billing emails, but they do not need in-app messaging or deep multi-channel journeys.
That is where Sequenzy fits. It is email-focused, connects to Stripe so trial and dunning sequences run from real subscription data, keeps transactional and lifecycle email on one subscriber record, and prices by emails sent with unlimited contacts. The comparison plan at 10,000 contacts is $49/month for 60k emails (unlimited subscribers). If you later need in-app messaging or deeper multi-channel journeys, Customer.io is still the right upgrade.
My take
Start with PostHog Workflows. It is free to try and teaches you which messages matter. Graduate to Customer.io when lifecycle becomes a multi-channel program with a dedicated owner. If your program is mostly email and billing, look at Sequenzy before paying for a platform built for more channels than you use.

