The short answer
- Consider Loops when published transactional templates and its subscription model fit your application.
- Consider Userlist when company relationships and roles drive lifecycle targeting.
- Count the same audience under each vendor’s rules before comparing a quote.
- Stay with Customer.io when its profile model and import controls fit your workload.
Loops: subscription state and transactional templates
Consider Loops when your team can map application events to published templates and needs to manage marketing preferences separately from transactional sending.
Loops’ quickstart covers marketing and transactional email using events and contact properties. Its setup includes sending-domain records and automated sequences, so assign an owner to the application event as well as the email.
Loops’ contact properties exclude unsubscribed contacts from the plan count, but those contacts may still receive transactional email. Sending subscribed:true can resubscribe a contact; omitting that field avoids an unintended change.
Loops distinguishes account-wide subscription from mailing-list preferences. Its contact guide says list unsubscribes cannot be reversed through those update methods. Preserve the original preference record and inspect suppression separately before sending.
Loops’ migration guide describes published transactional templates with dataVariables rather than raw HTML at send time. It lists dashboard CSV or per-contact upserts and says there is no public bulk contact import API.
For a practical trial, import a synthetic unsubscribed user with sending paused. Compare account and list preferences with the original record, then exercise a separate transactional fixture. A successful contact import alone does not prove the message route works.
The Loops product guide covers its setup and migration decisions in more detail.
Userlist: company relationships and stored users
Consider Userlist when the same person belongs to several customer accounts and the role at each account changes which message should be sent.
Userlist’s company guide supports many-to-many user and company relationships. Properties and events can belong to a user, company or relationship, such as a person’s role at a particular company.
Userlist’s import guide recommends the API or Segment for complex relationships. It matches a user by identifier before email and creates a record only if neither matches. Test a person with more than one company and compare each role after import.
Preserve permission records independently of that identity mapping. Userlist says imported users are treated as opted in even with double opt-in enabled. Reconcile original preferences before activating a campaign.
Budget for the stored audience rather than recent activity alone. Userlist pricing counts all stored users and uses the prior thirty-day high-water mark for its monthly fee. Basic includes company accounts.
Userlist’s migration guide recommends reviewing first-seen onboarding triggers when marketing leads join existing product users. Segments that assumed every record was a customer also need review. Removing inactive users need not reduce the current bill immediately under the high-water mark.
Compare the same audience and handoff
Use one audience inventory for the quote and one synthetic migration fixture for the trial. A price comparison needs each vendor’s counting rule and the plan terms for your own workload.
| Decision | Customer.io | Loops | Userlist |
|---|---|---|---|
| Audience | Profiles include people and objects | Unsubscribed contacts excluded from plan count | All stored users; prior thirty-day high-water mark |
| Import and preferences | CSV preview and empty-value choice | Account subscription and list preferences differ | Imported users treated as opted in |
| Sending or targeting | Time conditions can limit old users entering new triggers | Published transactional templates use dataVariables | User and company relationship properties |
Source: Customer.io: Customer.io pricing, Loops: Contact properties, Userlist: Userlist pricing, Customer.io: Import people or events via CSV, Userlist: Importing Data, Customer.io: Automation triggers, filters and frequencies, Loops: Migrate from Mailchimp to Loops, Userlist: Companies and relationship-level data
For example, inventory a dormant user who belongs to two companies. Count the stored user in Userlist and include any Customer.io objects in the profile estimate. In Loops, inspect the subscription state before forecasting the plan count.
Keep sends paused while comparing the imported identity and preferences. Trace an old user through the intended onboarding rule, then exercise a new signup and a transactional message. Keep expected and actual results with the decision.
Use the lifecycle email buying guide for its migration worksheet and the software trial guide to assign owners and acceptance criteria.
When to stay with Customer.io
Stay when the existing profile model and import controls serve your workload and the cost of a move exceeds its expected benefit. Test the existing onboarding rules even if you keep the account.
Customer.io Essentials starts at $100 per month billed monthly with 5,000 profiles, defined as people and objects. It lists one million monthly emails and two object types. Include your expected objects when requesting a workload-specific quote.
Customer.io’s import guide lets a CSV import ignore empty values or nullify existing attributes and provides a mapped-data preview before the irreversible import. Changing an established email, phone or ID requires identifying the person by cio_id.
Customer.io’s trigger guidance says new attribute and segment triggers can admit matching backfilled users regardless of data age. It recommends explicit time-based conditions when old users should stay out. Check whether your workspace uses the new or legacy behavior.
Customer.io recommends removing unnecessary profiles and objects one to two days before the billing date to avoid inclusion in the next cycle, according to its billing guidance. Preserve records needed for history and permission reconciliation before removing anything.
Common questions
Which Customer.io alternative fits B2B company accounts?
If relationship-level roles drive targeting, consider Userlist’s documented company model. Test your own data mapping before deciding.
Does Loops count unsubscribed contacts toward its plan?
Loops’ contact guide says unsubscribed contacts do not count toward the plan and may still receive transactional email.
Will removing Userlist users immediately lower the bill?
Userlist pricing uses the prior thirty-day high-water mark of stored users for its monthly fee, so a reduction need not affect the current bill immediately.
Can old users enter a Customer.io automation?
Customer.io’s trigger guidance says new attribute and segment triggers can admit matching backfilled users regardless of data age. Test the conditions used by your workspace.
Sources and scope
We read the linked vendor documentation on October 29, 2026.
We have not run these products or tested migration, delivery or support.
Source references
- Loops: Loops quickstart
Checked 2026-10-29. The setup sequence joins sending-domain configuration, contact data and event-triggered email.
- Loops: Contact properties
Checked 2026-10-29. Unsubscribed contacts are free to retain, but update APIs can accidentally restore subscription state.
- Loops: Migrate from Mailchimp to Loops
Checked 2026-10-29. Migration includes templates, identity, permission state and duplicate prevention rather than just copying contacts.
- Userlist: Companies and relationship-level data
Checked 2026-10-29. The B2B data model distinguishes user, company and relationship properties for targeted lifecycle messages.
- Userlist: Importing Data
Checked 2026-10-29. CSV import covers users and companies, but relational imports and subscription states need special planning.
- Userlist: Userlist pricing
Checked 2026-10-29. Stored-user billing differs from monthly-active-user pricing.
- Userlist: How to Migrate Your Marketing Email List
Checked 2026-10-29. Combining marketing leads with existing product users can invalidate customer-only segments and onboarding triggers.
- Customer.io: Customer.io pricing
Checked 2026-10-29. The billable audience includes objects as well as people, a meaningful distinction for account-based SaaS data models.
- Customer.io: Import people or events via CSV
Checked 2026-10-29. Contact import requires identifier mapping and explicit handling of missing values; an export preview supports verification.
- Customer.io: Automation triggers, filters and frequencies
Checked 2026-10-29. New trigger semantics can make historical imports start automations that legacy behavior excluded.
- Customer.io: Reducing billing overages
Checked 2026-10-29. Profile hygiene and billing timing can affect lifecycle-tool cost.

