Category: Blog

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

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
  • 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, 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

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 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 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!

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 on Twitter.

Questions? Comments? Share them below or send them over to

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’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 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!

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, 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!

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)!


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 on Twitter.

Questions? Comments? Share them below or send them over to

July Release Notes

July was a huge month for! 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!


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 on Twitter.

Questions? Comments? Share them below or send them over to

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 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 {{}}, 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

May Release Notes

New Features!

Here’s a quick summary of the new features and improvements that we released in May:

People Imports: Yes! You can now upload lists of people (and people attributes) into your account! Here’s documentation on uploading people via CSV, including how to prep your file, upload, and troubleshoot.

Copy workflow items between campaigns and workspaces! No need to recreate emails, any other workflow items, or even whole campaigns, from scratch if you’d like to use it again!

Link checker: This quick-as-a-click tool ensures that all links in your message are working as you expect, without having to test each one from the preview or a test message. Here’s how the link checker works.

Archive layouts that you don’t use anymore. They’ll stop cluttering up your Email Layouts area while keeping the associated campaign(s) and data intact.

Larger fixes

There was a bug with our new drag-and-drop editor where emails including images uploaded and added via the editor (rather than hosted elsewhere) were arriving in spam or showing a phishing warning. This wasn’t good at all, but is now fixed. All existing and future emails created in the drag-and-drop editor no longer have this issue.

Throughout the month, we deployed lots of incremental changes to ensure our compliance with GDPR, including the ability to export all data associated with a single person.

Smaller fixes and improvements:

Drag-and-Drop Editor

  • When building emails in our drag-and-drop email editor, links clicked in Preview were opening empty pages. Now they’ll actually open the link assigned to them.
  • Occasionally, the drag-and-drop save button wouldn’t show up after changes were made in the body of a message. Hopefully, we squashed that one, and we implemented some additional error tracking in case it spooks us again.
  • An unsubscribe link wasn’t initially displaying in our drag-and-drop preview. Meanwhile, the Review Links button wasn’t appearing in the UI, either. Both are now appearing as they should!
  • Read-only users can now no longer edit drag-and-drop emails.


  • Deployed a fix to our test emails API endpoint. This means we’ll return more useful information when your from- address is invalid.
  • Added copy to a campaign’s all-time metrics view in the campaign’s Overview, to clarify that they include metrics from deleted emails.

all-time metrics include deleted emails

  • Improved saving behavior for actions and templates, to make sure that the action you’re editing will save when you want it to.
  • Some accounts weren’t assigned our default whitelabel domain during account creation. We’ve fixed that!

  • Exports now have human readable timestamp columns in the delivery exports for:

    • created
    • sent
    • delivered
    • opened
    • clicked
    • converted
    • bounced
    • spammed
    • unsubscribed
    • failed
  • And in the customer exports (when exporting All Attributes) for:
    • _created_in_customerio_at
    • _last_visit
    • _last_emailed
    • _segment:[segment id]

Sprucing up

We improved how we process event counts to make them faster! Plus we made performance improvements for delivery metrics logging, account creation, and faster building of segments with lots of conditions.

We also built some fun data interactives, which lets anyone see the power of’s message personalization for both transactional and behavioral emails!

Questions? Comments? Share them below or send them over to 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
  • A CSV importer which makes it easier to add both people and attribute data to
  • 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! Academy

You can do a lot with, 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 Academy project created videos to give everyone a new avenue for learning 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, 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 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 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!