Author: Ivana McConnell

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.

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!

New feature alert: Campaign tagging!

Not too long ago, we put together an internal team (we call them “squads”) focused around managing campaign-related complexity. We’re digging in and researching pain points and frustrations around campaigns, big and small, and hopefully releasing features which make your life that much easier. The first step towards that goal?

Campaign tags!

You can now add and remove tags from all of your campaigns, as well as filter your campaigns using them. Read on for a look at what we’ve built, and how to get the most out of this new feature!

What’s new?

If you’ve got a lot of campaigns in Customer.io, chances are that you organize them by title. Maybe something like this:

Now, instead of adding a bunch of keywords to your campaign title (and therefore obscuring its actual title) we allow you to add tags to that campaign, both during the creation process and afterwards.

If you need more how-to docs, we’ve got them for you here.

Organize your campaigns with tags

Adding tags is as simple as locating the “Tags” option either while creating or viewing a campaign. Just click “Add tags,” and you’ll see the dropdown that allows you to both create new tags or use any existing ones:

You can also easily remove any existing tags, either from a single campaign…

…or from your workspace entirely:

A few tips

Remember that planning is critical when it comes to organizing your campaigns- don’t go overboard!

  • Look at naming patterns in your campaigns. You likely have terms common to groups of campaigns that can be used as overarching tags, to remove the clutter from your titles. For example: Lifecycle stage, language, channels used (Push, SMS, email), owner/department (product, marketing)– these can all make for good tags.
  • Stay consistent. Once you’ve got your tags in place, keep using them and make corrections as you encounter them.
  • Check in regularly. Not using any tags? Get rid of them!

Find campaigns easily with filters

Once you implement your tagging system, you can then easily find campaigns by tag, description, or a combination both. Check it out:

Filtering by tag:

Filtering by text:

You can also choose whether or not you want to filter all campaigns, or just a particular campaign type, using the dropdown at the end.

Bonus extras!

As part of this feature, we also shipped a couple of small enhancements that should make the editing and viewing of campaigns just a little bit smoother.

Campaign titles and descriptions are now easily editable

Previously, you had to edit campaign titles and descriptions separately—one in an inline editor, the other in a modal. Now, both can be edited quickly inline:

No more metrics for inactive campaigns

Before, even if your campaign hadn’t yet been started, we showed you blank metrics, which likely wasn’t very helpful! We now give you a link to that campaign instead, so you can continue editing it:

Got feedback?

Help us improve tags! Here are a few questions you can help us answer:

  • Tell us what you think the next steps for tags should be!
  • Tell us about your use case for tags– can we make things better in any way?
  • Is the interaction clear? Was it easy for you to add and remove tags?
  • How about tag editing? Was there an aspect of tag management or creation that surprised you?

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!

August Release Notes

Another month gone! In August, Push targeting leveled up, Newsletter sorting became more granular and performant, and quite a few existing features received enhancements. You’ll be hearing more about these in our upcoming emails (if you’re subscribed, that is)!

Push

Now you can get even more personalized with your push notifications, with two improvements:

  1. Create segments based on whether or not a user has a mobile device. Use these segments as you would any others – action conditions, filters, and campaign triggers, to make sure that you’re only sending push notifications to those who can receive them!
  2. Platform-specific targeting allows you to specify, per notification, whether or not you want it to be sent only to iOS or Android users

New Features & Enhancements

  • Building on the ability to segment based on valid email address we shipped last month, all new accounts get auto-created segments for valid email address and invalid email address:

  • Attribute names are editable now!

  • We improved the performance of pagination, searching, and sorting of newsletters. You can use different time filters, sort Newsletters by date/time sent, or sort by scheduling time.

  • After making improvements to our email search UI and its performance, we added a tooltip which helps you get the most out of that search:

  • We now allow export of metrics for all sent newsletters, instead of just the ones that are displayed on the current page.

  • Our Settings code is still getting overhauled, so you might see a few small UI changes there, but the performance will improve!

A few bug fixes of note:

  • While profile attributes were being saved, there was a “Please fix before saving” tooltip around the “Save changes” button — no more!
  • If you click into a specific Newsletter and return to the main list, we persist any filters you had, rather than clearing them.
  • Capitalized attributes weren’t being included in your export searches — they are now!
  • We now ensure that no email webhooks are sent for suppressed users.
  • Segments being used by action conditions can no longer be deleted.

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.

July Release Notes

July was a huge month for Customer.io! Both Push and our drag-and-drop editor left the beta label in the dust! Both have all the desired features to send the right messages to your customers— go check them out, and you’ll be hearing about them in our upcoming emails (if you’re subscribed, that is)!

Read on for more!

Push Notifications

We released a range of features to make your Push experience better:

  • New dynamic previews, so you can better visualise your notifications on a range of possible end user devices and contexts!
  • Better error messaging, so you know exactly how to troubleshoot.
  • More intuitive configuration screens, with step-by-step instruction.
  • Custom payloads: Write your own push notification code for control and flexibility. For extra interactivity, you can also use payloads to add images and deep links!

Drag-and-Drop

All that was stopping our editor from fully taking flight were a couple of bugs—one with saving timeouts, and another with special characters in Liquid. Both are now fixed, and we have a super-fancy new starting screen. No more modal!

Smaller features and improvements

Read API Endpoints

The beta Read API we released last month got lots of shiny new endpoints for exports, messages, customers, message metadata, and segments. Check them out!

New stuff

  • Your campaigns now have description fields:

  • Searching for a specific email address inside sent campaigns, newsletters, drafts, and delivery logs is now available again in the UI! (Keep in mind, though, that it cannot be combined with filters.)

  • Segment based on valid/invalid email addresses:

  • Attributes on the People page are now readable dates, rather than UNIX timestamps.
  • When setting up your campaign, you’ll see your triggers and filters (if you have them) on the Goal page.
  • We added a cool little enhancement: scrolling for campaign and email names in segmentation:

  • Our Settings page UI has a few small changes, but its code got a big overhaul! As a result, you can now move much more smoothly between your workspace and global settings.
  • Our UI now displays better information for anonymous deliveries and deliveries to now-deleted profiles.

A few prominent fixes!

  • Fixed a bug that wasn’t allowing paused A/B tests to be copied, or a winner to be selected.
  • Allow deleting segments used in sent newsletters
  • Our campaign search now matches keywords in any order!

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.

June Release Notes

Here’s the full behind-the-scenes run-down of what our team was up to in June, and what that means for you.

** Read API!** You can now connect your app and automation tools to the data that’s stored in Customer.io. After many requests over the years, we’re proud to roll out read access. You can now programmatically retrieve data on your customers, campaigns, segments, and messages. View the full list of beta API endpoints, and send us your feedback to help shape how we build it.

New features for Push

Push: First and foremost, we want to thank the customers (you know who you are!) who have been participating in our beta, sending push notifications, and giving us priceless feedback. This involvement has directly influenced the following improvements:

We can’t wait to see how our customers integrate multiple channels into campaigns — email, Push, SMS, and beyond — to make sure that people are not just sent the right message, but on the right device at the right time.

Larger fixes

  • CSV imports Problems with your CSVs are more clearly explained and visualized, so you can avoid errors in the data you’re uploading. We also fixed a small edge-case bug with skipping mapping for empty columns.

UI and usability improvements

  • Paid accounts can now send test emails to up to 25 recipients, instead of the previous limit of 3.
  • Dashboard reports now include a failure count which, when clicked, takes you to a filtered view of all of those failed sends:
  • Our signup page has a clearer call to action for those users looking to join an existing company account:
  • Our Activity Logs are now much less confusing when it comes to understanding which data belongs to deleted profiles, when new ones with the same id are created.
  • If the To: field in your emails was anything other than {{customer.email}}, our deliveries export didn’t include that. We do now!
  • Help is just a little bit closer: our support form now defaults to your email address.
  • The drag and drop editor, custom SMTP server, and CSV imports all got some clearer copy throughout!

Sprucing and speeding up

  • Webhook actions using GET or DELETE methods are now sent without a body, just to make sure there are no failures when they’re sent.
  • We’re continuing to overhaul our billing system to make it more secure, maintainable, and performant. No user-facing changes yet, but major improvements behind the scenes
  • We also rolled out some code which significantly improved segment build times in some cases. Build timers went from timing-out long ( > 60 seconds) to 1-2 ms. #speedy

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

Customer.io Hack Week

As a distributed team, one of the best parts of coming together during our retreats is simply being able to work together in the same room. It gives us an opportunity to take advantage of the spontaneous creativity, conversations and ideas that sometimes only arise when we’re co-located, chatting over breakfast or brainstorming how best to answer a customer support ticket. To capitalize on this and give it some structure, we have a hackathon – an activity that allows us to quickly and creatively tackle opportunities for growth that we see across our business. This year’s hackathon was our third. The theme?

“Let’s make customers’ lives easier.”

We also added a voting component so that the winning teams could win a cool trophy (and bragging rights) in the process!

The economically-named “Golden Rocket Pigeon of Victory” and the “Regular Rocket Pigeon Man of Almost Victory” – built by Paul!
With a bit of planning and pitching projects, the teams were able to get going on Day 1. We built nearly 20 prototypes and scrappy MVPs of internal and customer-facing projects. In the days and weeks that followed, we prioritized and put those projects into the product queue and have been bringing them to life.We’re now ready to start sharing the first releases!

Here’s a rundown of what you’ll see first, out of the gate, of our Chicago Hack Week projects.

What we built

In short, we worked on:

  • Tutorial videos which show, don’t tell, the power of Customer.io
  • A CSV importer which makes it easier to add both people and attribute data to Customer.io
  • An option to archive old Layouts, to help you stay organized
  • A Link Status Check tool for the composer to help you see if your links are working
  • Data interactives: see how to build messages with data
  • …and the ability to copy workflow items across workspaces and campaigns!

Read on for more!

Customer.io Academy

You can do a lot with Customer.io, and learning about all these possibilities in our documentation can be overwhelming, especially for the new user. Until this hack week, most of our documentation was text-based (with the occasional gif).

The Customer.io Academy project created videos to give everyone a new avenue for learning Customer.io or leveling up existing skills!

So far, we’ve got video explanations of:

Importing People and Attributes via CSVs

“I want to upload a list of people with a CSV!” has been one of, if not the, most-requested features in Customer.io, and now it’s here! Check it out:

We’re rolling this feature out slowly, but fear not! If you haven’t seen it already, it will be available in less than two weeks—it’s a big feature, and we want to make sure it’s just right before everyone can board the ship! (But if you really really want early access, get in touch!)

Archive layouts & The Link Checker

In addition to our hackathon, we also did all-hands support every day during the retreat– meaning, everyone in the company got together to answer support tickets that we received in the past 24 hours. These two projects were inspired by customer support requests that we encountered during support week!

Archiving an old Layout

We don’t let you delete Layouts that are being used by sent newsletters and campaigns that are currently running; but what if you don’t ever use that layout anymore? You could delete the campaign, but you don’t want to lose that data.

Good news! Now, you can have your data and keep your Layouts organized, too. We split the Layouts area into “Active” and “Archived” layouts: Archived layouts will be available for reference later on, and won’t show up in either Active Layouts or in the Layouts menu in the composer.

Link Status Check!

With one click on the Link Checker, you can see that all the links in a given message are working links — without having to click each one individual from the Preview or a test message. This way, you can quickly make sure that none of your links are broken and, if they are, quickly fix them!

Data Interactives!

Behavioral and event data is the straw that stirs the Customer.io drink; we tell our customers this a lot and many of you experience this first-hand as you get up and running.

For those of you who are new to Customer.io or need help showing other team members how behavioral and transactional data can power personalization within message content, we built some interactive examples for our website. These examples show you how your emails can change, becoming more dynamic and personalized, based on the data you send us. Check them out, and see the power of data in action!

Behavioral data

Transactional data

Copying workflow items

The hackathon winner! Having to manually copy message content or replicate whole campaigns is time-consuming and frustrating. After CSV uploads, adding the ability to copy workflow items has been on our to-do list for a long time.

Now you can copy individual or all workflow items (that’s messages, delays, attribute updates, and webhook actions) from one campaign into another. And that includes copying items across workspaces!

Unfortunately, the confetti isn’t included with the feature; that was just for the internal presentation.

This was fun!

We learned a lot from this hack week, and we’ve got even more improvements (not just features!) that we want to realize after some more iteration and thought.

Rest assured, though, whatever we do end up shipping from this hackathon or the next, our goal will always be the same: to make your lives easier and messaging to your customers better!

Beta feature alert: Push notifications!

Hot on the heels of one beta release, here comes another! Today, we proudly announce a beta release of a new message type: mobile push notifications for both iOS and Android, with all of Customer.io’s personalization powers.

Beta means we need your help as development continues; this is just the start of our journey of making Customer.io just as great for push as we are for email. We want you to be able to communicate thoughtfully with your customers, no matter the medium. For example…

  • Combine messages: Send a follow-up email if a push notification doesn’t drive a conversion
  • Act on event data: when a user enters a specific area, send a push to tell them about areas of interest nearby!
  • Be platform-aware: Let users know via push when you release features specific to their platform!

And that’s just scratching the surface. Read on to learn more, including how to get started!

Getting set up

Push now has its own spot in our Email & Actions area of Customer.io:

From there, you can enable push notifications for Android, iOS, or both. This will entail some engineering-focused changes to your app:

  1. Enable push notifications for your app if you haven’t already
  2. Add certificates to Customer.io
  3. When customers launch your app, identify the device with us
  4. Use events and identify calls to send us data, exactly as you normally would.

We’ve got detailed instructions for this at our Knowledge Base and API docs. Once you’re integrated, anyone (no coding expertise required) can start creating, previewing, and testing push notifications just as you would any message in Customer.io.

Managing users’ devices

We’ve also added a new ‘Devices’ area to each Person page, so that you can manage and view different devices (and their identifying tokens) for everyone in your Customer.io database:

A few things to remember

  • This is a beta feature! There are some rough edges, and we’re looking for your feedback.
  • There are some best practices to consider when it comes to the size of push notifications.
  • You can send to all of a customer’s devices by default. But you can also send to their last used device, a specific token, or even use a Liquid variable!

Got feedback?

We’re very excited and very proud to roll this feature out today! If you’d like to learn more, we’ve documented it on our Knowledge Base and are actively looking for your feedback. Here are a few questions to guide you, as you’re building your notifications…

  • Does the editor offer you everything you need to compose your push? If not, what’s missing, and what kind of message would it help you create?
  • Can you easily measure the success of your notifications after you start campaigns? If not, how would you ideally measure their performance?
  • Is personalization and adding customer data intuitive for you? Does it look as you expect when you test it?
  • Is our copy clear? How about our documentation? Can we improve any of it?

Let us know at win@customer.io!