Category: Blog

Send Messages at the Perfect Time with Wait Until

Have you ever wanted users to wait in your campaign workflow until they take an action? Well, you now have that option with Wait Until.

What’s New?

Instead of creating multiple campaigns when you need to wait for a user action, Wait Until allows you to have a single campaign flow that captures all your logic.

Here are some workflows you can create with Wait Until:

  • Wait Until they’ve opened the previous email before sending the next one.
  • Wait Until the product has been delivered before prompting a product review.
  • Subscription canceled due to an expiring card. Wait until payment details are updated before sending a “welcome back” email.
In addition to a time delay, you can now Wait Until someone enters (or leaves) a segment before they continue through your workflow. When you deliver messages based on actions rather than time, you’ll increase your open rates and better serve your users by decreasing the number of messages you send.

Some benefits of using Wait Until to combine multiple campaigns:

  • You don’t have to stitch together metrics from multiple campaigns to understand what’s going on.
  • You get to see conversion metrics for the entire flow rather than piecing together each one individually.

Example: Email Confirmation

You have an onboarding campaign where you’d like to send an email confirmation and welcome email. Instead of creating two campaigns (one for each user event), you can keep the entire email confirmation flow in one place. This means that some users may wait for a few minutes before receiving the next message, some may wait days, while others may wait indefinitely if they do not confirm their email.
  1. Send email confirmation
  2. Wait until user confirms email
  3. Send welcome emai
See step-by-step documentation on how to create, delete, and copy Wait Until delays.

Have Feedback?

Help us improve Wait Until. Here are a few questions you can help us answer:
  • What do you love or wish we had done differently about this new feature?
  • What things do you wait for? We’d love to hear your stories!
As always, we’re here to listen if you have questions or need help by reaching out to win@customer.io! Stay updated with the latest releases and improvements by following Customer.io on Twitter.

How We Made Customer.io Better for You in 2018

More than 14,000 people from 1,100+ companies used Customer.io to send 5.5 billion messages in 2018. That’s 174 messages sent every second! This past year we focused on making major improvements within the messaging and data areas of the platform.

Better Messaging Across More Channels

In 2018 we set out to become an every channel solution. We focused on enabling you to connect with your users where they spend the most time and on the channels they prefer. To do this, we introduced a push solution for iOS and Android, improved our multi-channel features, and made improvements to how you compose messages with Customer.io.

  • Push Notifications. Although email is still the most used messaging channel by users, we added support for sending push notifications within your existing workflow. This allows you more opportunities to connect with your users through their preferred method.
  • Drag-and-Drop Editor. Before the Drag-and-Drop Editor, you’d have to know HTML/CSS to manually build layouts. You can still go that route if you want, or you can use the editor to create well-designed, mobile-friendly emails without writing a single line of code.

  • API Triggered Broadcasts. With one simple API call, you can now trigger campaigns to specific groups of people that are targeted using all your segmentation and profile data. This gives your application direct access to start campaigns, including the ability to pass in data that will be used in your messages.

  • Multi-channel A/B Testing. We took all of the A/B testing capabilities for email and made them possible for Push and SMS. Additionally, you can now view multi-channel metrics for your entire campaign, or break it out individually for email, push, or SMS.

More Control Over Your Data In and Out

In the past, the only way to get data into Customer.io was through our Javascript library, our API, or third party integrations like Segment. This year we worked to make getting your data in easier, as well as getting it out through our new API. In addition to accessing your data, we created a new view for you to easily get a full picture of all the types of data you’ve received.

  • CSV Uploader. With the CSV Uploader, you can easily import new users to your Customer.io account without needing any technical knowledge or pinging your engineering team. You can also use the uploader to update existing users by either adding, modifying, or deleting their attributes.
  • Manual Segments. You can now use Manual segments instead of (or alongside) Data-driven segments when you need more hands-on control setting campaign recipients or excluding specific groups of people.

  • New APIs. The API now allows you to programmatically retrieve data on your customers, campaigns, segments, and messages. There’s a lot of data inside of Customer.io—that belongs to you—so we wanted to make sure you have access to use in any way you want.

  • Data Index. The Data Index page is a new way to view a complete list of events and attributes that exist in your Customer.io workspace. This is a great way to see where all your data is used, understand your team’s naming conventions, and view sample values.

We’ll continue to release new features in 2019 to help you have the most successful year possible. Want to know what else Customer.io did in 2018 besides release these amazing new features? Check out our 2018 year in review to read all of our Company highlights including our new vision/mission/strategy work and design improvements rolling out this year.

Customer.io 2018 In Review

John and I started Customer.io in 2012 to prove that we could build a business to support the two of us. Six years and 42 people on the team later, we’re grateful each month when revenue increases that this amazing journey keeps going.

Customer Satisfaction

The team increased customer satisfaction achieving our highest rating to date of +48 in November.

December stands out as a regression that we’ll need to dig in to!

Volume of Messages

Our customers sent 5.5 billion messages with Customer.io across all message types (email, push notification, SMS, Slack, webhook action).

We want to help people send fewer, more meaningful messages but messages sent gives you some idea of usage.

Revenue

The year ended with the business at $700k in Monthly Recurring Revenue (MRR) or $8.4m in Annual Recurring Revenue. That’s an increase of 37% from December 2017.

Return to Profitability

We had several months towards the end of the year where we increased cash. Boy, that’s a much better feeling than burning. Our goal is to return to profitability in 2019.

Leadership Learnings

Key Initiatives

We did our version of OKRs called Key Initiatives every quarter in 2018 (a first for us!). Each quarter, we had between one and four Key Initiatives.

Here’s one:

While not perfect, setting formal Key Initiatives is better than the alternative of drifting aimlessly (we tried that too).

A System for Management

You need to pick where you want to innovate and how we manage people wasn’t one of them. This year I was excited to finally find something we could adopt and achieve good results.

The Manager Tools approach has worked really well for us with some modifications for distributed teams. I started exploring it after learning about it from Wade Foster of Zapier.

We now use the manager tools 1-on-1s and feedback model as a baseline for what people should expect from managers at Customer.io.

Mission / Vision / Strategy

We re-articulated our mission:

Power automated communication that people like to receive

People use Customer.io to automate and gain efficiency, but automation is usually cold and inhuman. There’s tension in our mission to make automation human and valued by the people on the receiving end of it.

We spent a lot of time trying to craft a clear vision to rally the team behind and are proud that ended up with:

Vision:

Create the single tool relationship businesses need to send targeted and automated messages to their audience

What’s a relationship business? Any company that values you beyond a single transaction. A typical gas station is probably not a relationship business, but your insurance provider is.

From our vision, we came up with a strategy we’re going to start executing against in 2019. That’s internal only for now.

Board Meetings

As part of the terms of our last financing round, we created a formal board and nominated an independent board member by the end of 2017. Initially, I approached board meetings as a place that I’d be scrutinized.

Someone gave me advice that the board is the place for you (if you’re the CEO) to bring the problems you want help solving. That mindset has helped me. I enjoy preparing and taking time to step back. We get a lot of value out of our quarterly board meetings.

Company Highlights

Premium + Customer Success + Deliverability

We added a premium plan that includes a Customer Success Manager, access to premium Technical Support, and SLAs.

We realized that larger organizations and companies that are growing quickly have more complex needs. By pairing customers up with someone really knowledgeable, we’re able to help them be more successful and provide a lot of value.

That split between basic and premium also means that people who don’t need SLAs, deliverability help, and dedicated IPs don’t pay for them.

Our Customer Success team now covers 98 premium customers.

Building Out a Partnerships Function

Partnerships is now a formal role within the company. We’ve had both technology vendors and agencies within our ecosystem for several years and wanted to make it easier for those partners to be successful with Customer.io.

We’re committed to the relationship: we provide a person to contact and material specifically for partners.

Experiments with Advertising

We spent $185,000 across Facebook, Twitter, Reddit and Linkedin. Paid ads helped us quickly figure out what keywords our audience is interested in. Starting broader and narrowing down was a better approach than starting narrow and broadening. Building a quick way to add new landing pages helped us deliver a tailored experience.

The net result was we doubled trial volume and have more confidence we can insert money to drive demand than we did before.

Calmer Engineering

Engineering was hectic at Customer.io every year before 2018. At the beginning of the year, we completed a migration from our legacy infrastructure to Google Cloud.

Architecturally, things got a lot simpler, which allows us to provide a higher quality of service. The new infrastructure is maintained by our Site Reliability Engineering team and is no longer the responsibility of the Backend Engineers.

Additionally, we added formal Quality Assurance and improved our deployment process. All of these changes mean our engineers can focus more on making the service better, rather than jumping from fire to fire.

How We Build the Product Improved

We implemented a version of Spotify’s Squad model and now have three squads working on improvements to Customer.io.

We tested working in squads by building native Push Notifications at the beginning of the year. We had a team of four (product, design, backend engineering, front-end engineering) focused on Push Notifications. They became subject matter experts, talked to customers, and shipped multiple iterations of that feature. Their work convinced us that organizing into squads would be great for the rest of our efforts.

To make squads work, we went from two to six people on Product by adding two Product Managers and two Product Designers.

Now it’s time to tackle some meaty product challenges!

Design Improvements – Rolling Out in 2019

Adding more designers to the team helped us address a lot of “design debt” in the company.

Creating a New Identity

We worked with Unfold to create a new identity for Customer.io. That work was finished in December; we’re now working to roll out an update across the company.

Design System & Style Guide

We began chipping away at standardizing our UI in the app, and our design principles.

I’m proud of the team’s decision to commit to accessibility. It’s wonderful to see people apply our values of empathy, transparency, and responsibility to any of our business decisions.

Another exciting thing is to see us reimagining Customer.io. We’re still in the early stages of exploration.

You should start to see some pretty great changes to our look and feel in 2019.

GDPR Compliance

Businesses should respect people and their data. Raising the bar is a good thing; we were happy to see the EU leading the charge. It was expensive to do the work needed to comply with the new GDPR requirements and remains to be seen if the EU will become more aggressive in enforcement. Either way, companies using Customer.io are able to comply.

Company Retreats in Chicago and Quebec City

The company got together twice this year—once in Chicago and once in Quebec City, Canada. With a bigger team, we’ve started doing small group dinners and make sure we have lots of planned events in addition to hack projects.

Highlights for me were cooking dinner with the team, curling, and the architecture in Chicago!

Expanding Our Team to Asia

Most distributed companies hire within a few time zones. When one of our engineers decided to move from Poland to Australia, we saw it as an opportunity to learn how to work together across time zones.

There are now four team members located in Asia: India, Bangladesh, Pakistan, and Australia. To me, building a great team means building a global team. Distance and time zones present real challenges that we’ll continue working to overcome. One thing we have learned is that neither of time nor distance prevents great people from doing highly impactful work.


I’m proud of the team’s accomplishments in 2018. We made a lot of progress improving how we work together. The core parts of the company are stronger to set us up for more success in 2019!

How Mailgun Increased Their Customer Onboard Rate by 30%

Mailgun sends billions of emails each month on behalf of their customers. Everything from transactional emails to marketing newsletters, while also providing other email deliverability solutions like Rapid Fire Throughput SLA and email validations.

Mailgun has grown substantially, and with that growth, it has become more and more critical they are able to easily communicate with their customers using automated messaging.

Mailgun depends on making sure they achieve the best possible deliverability for their customers by having a rock-solid backend. However, when it came to the need for a front-end solution that made it easy for their marketing team to create and send automated campaigns using their real-time data, they needed a partner for help.

Infrastructure — Being Genuine

This probably isn’t too shocking, but the Mailgun team prefers to use Mailgun when they’re sending out emails. They stand behind their product. So the team wanted to find a front-end partner that could work flawlessly with Mailgun.

They also wanted to make sure their own marketing team could adopt all the best practices they recommend to their customers. Their transactional emails had to be separated from their marketing emails with different subdomains in order to keep those reputations separate. Changes like these make a world of difference in sending, which they needed the ability to continue doing with their new front-end partner.

Integration Trouble

Mailgun’s biggest hurdle in finding a new front-end provider was data integration. Mailgun’s old provider couldn’t reliably tell them what their customers had or had not done with their Mailgun accounts, even though that data was available in other places.

What exactly does that mean? Instead of segmenting a list to target users on a specific action, they were emailing everyone even if that message didn’t apply to them. For example, a message that said “add your domain now” was being sent to people who already had added their domain.

Mailgun had all of this data at their fingertips in Segment and their data warehouse, but not where they really needed it—in their email marketing solution.

Solution — Customer.io checks all the boxes

As you can see, Mailgun had a lot of problems they needed to solve. They set out to find a solution that would work perfectly with Mailgun, solve their use case needs, and meet their standards for security. It wasn’t an easy task, and they vetted several providers before ultimately choosing Customer.io.

“Not only is the interface super easy to use, but it integrates with our data warehouse securely. All that data is now at our fingertips, so we can send relevant emails to the right people. Plus, we’re using our own Mailgun account for sending. The SMTP integration was quick and straightforward, and Customer.io’s security protocols met our standards — all good things.” – Nicole Jacobson, Marketing Director, Mailgun

Putting it to the test

How is Customer.io actually performing as the front-end solution for Mailgun’s marketing team? Well, in just one marketing email for their email validations product alone, Mailgun had an open rate of 69% and a 4% click-through rate by sending to a segment of 33,000 engaged customers. They’ve also seen a 30% increase in the number of new customers who have fully onboarded since switching to Customer.io for their welcome email sequence.

“Overall, migrating over to Customer.io was a great choice for us moving forward, and we’ve only gotten started.”– Nicole Jacobson, Marketing Director, Mailgun

Mailgun integrates seamlessly to Customer.io through SMTP and their team provides some of the best deliverability available. If you’re interested in learning more about Mailgun, feel free to contact them or sign up for a free account.

November Release Notes: API Triggered Broadcast Improvements and More

We were busy in November. We released quite a few improvements to give you more visibility and control over how your messages behave (or misbehave), squashed a few bugs, and (in the case of our American team members) ate lots of turkey!

New Additions

  • Sending SMS/Push to Unsubscribed Users. Users may unsubscribe from email, but still want to receive messages through Push or SMS. We made it possible to override an unsubscribed behavior when using Segment Triggered Campaigns or API Triggered Broadcasts for non-marketing messages.

  • API Triggered Broadcast improvements. You can now select a specific SMTP server to handle API Triggered Broadcasts, and we also added support for using specific lists of ids to send them.
  • Delivery and activity logs. In the case of Twilio errors, we will now link to Twilio docs if an error code is present:

…and we will also show reasons for bounces and suppressions in delivery logs.

  • To our exports, we added failure reasons to deliveries, and sent_at column to newsletter metrics.
  • Our campaigns dropdown now scrolls overflowing campaign names on hover:

Bug Fixes

  • Some sender identities were being cached across workspaces, causing some draft failures.
  • We encountered a few bugs with redirects on subscription management pages. Sorted!

  • A CSS-related whoops that resulted in lots of OR conditions breaking segment selection:

  • We made it possible to upload people/create imports with duplicate names, by adding a suffix.
  • Fixed a bug which meant that customers created before a manual-segment campaign started were not be included when you uploaded them to the manual segment.

We’ll see you next month! In the meantime, stay updated with the latest releases and improvements by following Customer.io on Twitter.

Questions? Comments? Share them below or send them over to win@customer.io.

Contributors: Adrian, Stephen, Matt, Swastik, Kevin, Jatin, Matthew, Joe, Zaf, Ivana, Kristina, Kate, Madeline, Waqas, Ian, Joe, Brian.

October Release Notes: Manual Segments and Data Index

We released two new features this month! Introducing manual segments and the data index, both of which aim to give you more insight, visibility, and control in Customer.io.

Manual Segments

We created manual segments for situations where you need more hands-on control when it comes to grouping people, or when your integration isn’t ready yet, but you need to send messages.

You can use our data-driven segments, as always, but manual segments allow you a greater degree of control when targeting a fixed group of people. In addition to a UI which allows you to create these segments, we also have API endpoints to add and remove people from them.

Data Index

Our new Data Index feature allows you to get a full picture of all the data available in your workspaces.

You can see and search through all of the events and attributes you have, and see exactly how and where each one is being used.

Enhancements and fixes

  • Multilingual unsubscribes. While this isn’t a custom unsubscribe page, you can now send people to a translated version of our unsubscribe landing page by using the liquid {% unsubscribe_url lang="LANGUAGECODE" %} where LANGUAGECODE is an ISO-639 language code. For example, {% unsubscribe_url lang="es" %} for Spanish. We’ve documented this for you here!
  • Plaintext preview. You can now preview your emails in plaintext, by selecting this option in the composer:

  • We rolled out a few on-the-fly fixes to our newsletter infrastructure.

  • Made some small copy changes throughout the app: we’re more than email, but some of our copy is still a little too e-mail focused!

  • We were converting id or phone attributes to datetimes on the People dashboard—we don’t anymore!

  • When importing people (when you mapped an attribute) the dropdown options didn’t update correctly. That’s now fixed as well!

  • New export endpoints allow you to create exports through our API!

Happy Halloween!

We’ll see you next month! In the meantime, stay updated with the latest releases and improvements by following Customer.io on Twitter.

Questions? Comments? Share them below or send them over to win@customer.io.

Contributors: Kevin, Matt, Stephen, Matthew, Ian, Ivana, Madeline, Kristina, Kate, Swastik, Jatin, Brian, Adrian.

New feature alert: Manual Segments

Have you ever wanted more control over who is in a segment? Or perhaps you have another system that gives you a CSV export of people you want to target for a message, but cannot immediately use it in Customer.io.

We now have a solution for you! Manual segments are available in instances where you need more hands-on control, are expecting limited changes, or when a data integration is not available to you.

What’s new?

When creating a new segment, you will now be required to select between two segment types:

  • Data-driven Segments. These are the same segments you have always used in Customer.io.
  • Manual Segments. When creating new Manual Segments, you will automatically be launched into uploading a CSV file to lookup existing people by id or email in order to create your segment. You can check out the full instructions for creating Manual Segments here.

Using Manual Segments in Newsletters

The biggest reason for adding Manual Segments to our product was to improve the capabilities of uploading a CSV file for Newsletters. Please note that Manual segments has replaced the use of the CSV uploader within Newsletters.

Here was some of the customer feedback we received when trying to use a CSV for targeting Newsletter recipients:

  • “I am having trouble understanding what is wrong with the CSV file I am uploading.”
  • “Sometimes my file has people who do not exist in Customer.io, and it is not an easy thing to figure out on my own.”
  • “I am sending a Newsletter to the same recipients every week, and it would be nice to not have to continuously upload the same file.”
  • “I do not have access to people’s ids, only emails.”

With Manual Segments, all of these issues have been addressed and more!

Other Benefits

You can use Manual Segments to use all of our powerful workflow capabilities while targeting a fixed group of people. \Imagine you have a campaign that is in flight and you now have a list of people you no longer want to be in that campaign,, you can add the manual segment as a blocking trigger.

If you have another system that you want to integrate with to allow for programmatic changes to your manual segment, then that capability is available as part of our API. You are able to both add and remove people from a manual segment.

Questions? Comments? Share them below or send them over to win@customer.io.

New feature alert: Data index!

Have you ever found yourself wondering if that event exists? You know, the one you asked your engineers to send into Customer.io last week? Ever longed for a list of your customer’s attributes to help inform your email content? Maybe you’ve struggled to find a campaign by name, but you know the event that triggers it? Great news! The new Data Index page will solve all of these problems for you, in addition to others.

The Data Index page is a new way to view a complete list of events and attributes that exist in your Customer.io workspace. Read on and get to know this new feature and its benefits!

View all attributes and events in your workspace

With the Data Index, you can get a full picture of all the data available in your workspace. This is a great way to locate typos, understand your team’s naming conventions, and get an idea of all the events and attributes available for personalizing messages.

Do you have hundreds of events and attributes in your workspace? No worries! A simple search will narrow down the lists to get you closer to what you’re looking for.

View usage details

If you’d like to see everywhere the event or attribute is used, click its name in the main list. The detail view will list the campaigns and segments the data is used for and exactly how.

Create a new segment or campaign

This feature is not just an informational, view-only reference. You can create a new segment or campaign directly from the attribute or event’s detail page!

How useful!

Consider some of the other things this page can do for you:
* Ready to propose some data clean-up to your team? Direct them to the Data Index to call out some of the naming inconsistencies or unused data.
* Wondering why your event-triggered campaign has quit sending emails in the past few days? Go to the Data Index to determine if the event has been received recently or if it was renamed without the marketing team knowing.
* Want to find all campaigns and segments that trigger when a user signs up for your application? Locate your signup event in the Data Index.
* Curious about what data is available to you for a specific event and how it is formatted? Go to the Data Index page to view sample data from the event’s last occurrence.

Tell us what you think!

Help us improve the Data Index feature! Here are a few questions you can help us answer:
* What else would you like to do here that you can’t just yet?
* Was it easy for you to find what you were looking for?
* Is anything confusing or unclear when using this feature? Any information you needed but couldn’t find?

More detailed documentation can be found here, and as always, we’re here to listen if you’ve got questions or need a hand at win@customer.io!

September Release Notes

September was multi-channel month! Two of our headline changes involve being able to test and measure the success of not just emails, but all message types—we’ve got metrics and A/B tests for all channels, campaign tagging, and a host of smaller features and improvements. This includes more data for attribute updates, which was one of the projects we did during our Fall Retreat!

Multi-channel metrics and A/B tests!

Metrics became multi-channel. In your campaign’s overview page, you can now view metrics for all messages of a given type, as well as each individual email, push notification, or SMS:

What’s more, all message types now have A/B tests! We covered this in detail in our last blog post, but it’s definitely worth shouting out one more time!

Campaign tags!

You can now tag your campaigns and filter them using those tags with a new-and-improved Campaigns page:

We also wrote about this in a blog post earlier this month. Check it out for more details!

New features & enhancements

  • We continued ongoing improvements to the code of our Settings pages—this month, we improved Team Settings as well as the Security (2FA) sections. Mostly behind-the-scenes stuff, but a few copy changes for clarity, too!
  • One of our hack projects at our Quebec retreat was a small-but-powerful feature which allows you to see who or what was behind a data change:

  • We rolled out an update to the our read API that adds a new created_by field to the campaigns call.
  • Our delivery and activity log rows were not clearly clickable, so we added a little icon at the end to (hopefully) better indicate that:
  • Added a new {{ unsubscribe_address }} variable, in order to enable use of our List-Unsubscribe headers when you’re also using your own subscription centre
  • For our paid customers, we now send out test messages from your configured from address.
  • We now support exporting newsletter templates!
  • We now support full-resolution email activity webhooks, as well as the ability to view and rotate signing keys for those webhooks!

A few bug fixes of note

  • Fixed our error message when a recipient email address is missing—it’s now much more helpful.
  • Returned the “Export to CSV” button for all delivery types and drafts!
  • Fixed a few validation issues with our APNs configuration for Push, as well as our error message in the Push composer when sending a test before Push is fully configured.
  • Fixed a long-standing bug where our Delivery Log showed “Queued” well after the message was sent; no more!

We’ll see you next month! In the meantime, stay updated with the latest releases and improvements by following Customer.io on Twitter.

Questions? Comments? Share them below or send them over to win@customer.io.

Contributors: Matt, Stephen, Adrian, Ivana, Ian, Matthew, Kate, Jatin, Kevin, Swastik, Waqas, Paul, Kristina, Madeline, Dan

New feature alert: Multi-channel A/B Tests

A/B testing isn’t just for email anymore. Say hello to multi-channel A/B tests: all of our email testing capabilities now extend to your push notifications and SMS messages as well!

What’s new?

We’ve added a lot, but changed very little in terms of the user interface you already know (if you’re familiar with Customer.io’s A/B testing). The same way you’d add an A/B test for an email, you can now do for Push and SMS messages—with the click of a button.

This applies to Customer.io Push, Urban Airship Push, and Twilio SMS. For Push, you can also choose which platform your entire test sends to—Android, iOS, or both!

Then, you can check in on your A/B tests’ performance—as you always do—in the A/B Tests tab of your campaigns:

Got feedback?

Help us improve A/B testing! Here are a few questions you can help us answer:

  • Tell us what you think the next steps for testing should be!
  • Something you need to do, but we don’t support? Tell us about your use case!
  • Was a particular part of the interface difficult to find or understand?
  • Any unexpected behaviour?

If you need documentation, it’s here, and as always, we’re here to listen if you’ve got questions or need a hand at win@customer.io!