Release Notes

Check out the latest features and fixes for the Customer.io platform. This page covers releases beginning in 2021. Go to our blog to see a history of releases before 2021!

May 2022

Segment Source integration now supports all channels

Data integrations Ui improvements
Segment Source integration now supports all channels

When you use Customer.io as a Segment Source, you’re no longer limited to just email events. Now you can pipe event information for all of your message channels a Segment Destination, where you can aggregate customer data. To enable other channels, you just need to disable your integration and re-enable it.

Go to the docs

Try out new experimental features

Ui improvements
Try out new experimental features

You can now click the user icon in the upper right corner and go to Experimental Features to try out new features before they’re released. This gives you access to some of the things we’re working on and presents you the opportunity to tell us how you feel about them. Tell us whether you like a feature or not and what might improve it, so that we build the right features for you!

Go to the docs

Export your data on regular intervals to Microsoft Azure Blob Storage

Data integrations
Export your data on regular intervals to Microsoft Azure Blob Storage

Now you can sync metrics, deliveries, people data, and more to your Microsoft Azure Blob Storage bucket. We sync data up to every 15 minutes to help you keep up with your Customer.io data. Once in your Azure bucket, you can ingest data to your data warehouse and analyze your Customer.io data.

Go to the docs

Capture custom metrics in periods longer than 120 days

Ui improvements
Capture custom metrics in periods longer than 120 days

If you wanted to see how your campaigns and messages performed, you used to be limited to custom date ranges within the past 120 days. Now, you can check metrics using any custom date range in the past 12 months, making it easy to see how your campaigns and messages performed over the specific time periods that you care about.

Go to the docs
April 2022

Submit forms without writing code

Data integrations
Submit forms without writing code

Now you can capture HTML form submissions using your forms' action attribute. This makes it easy to gather form responses from your audience without writing code or installing our JavaScript Forms snippet.

Like other form integrations, this feature also lets you trigger campaigns when people fill out your form, so you can automatically respond to your audience with information relevant to the forms they submit.

Go to the docs

Batch update: update a group of people related to an account, order, job, or another object

Data integrations Ui improvements
Batch update: update a group of people related to an account, order, job, or another object
March 2022

Schedule your database sync start time

Data integrations
Schedule your database sync start time

Want to set up a database source, but not ready to import people just yet? Now you can schedule the start time of your initial database sync integrations, so you can turn your integration on at a date and time that you’re comfortable with. The start time represents the beginning of your first sync operation with recurring syncs on an interval after the start time.

Segment and filter people based on device attributes

Automation Mobile sdk
Segment and filter people based on device attributes

You can now set a series of attributes on mobile devices in Customer.io, and use these attributes to segment and filter people in campaigns, broadcast audiences, etc. If you use our SDKs, we capture some pre-defined device attributes—like operating system version and device model—automatically. For our SDKs, this feature is only currently available in Alpha builds, but we’ll roll it out to new releases soon enough.

Read more

See where Snippets are used

API developers Ui improvements
See where Snippets are used

Now, when you click a snippet, you’ll see where it’s used, helping you understand the impact of changes to your snippets! You can also sort, filter, and search for your snippets, making it easier to find the snippets that you want to use or edit. This update also adds a check that prevents you from deleting snippets that are in use, making sure that you don’t inadvertently change a message or campaign.

Go to the docs

Use Javascript to personalize actions

API developers Ui improvements
Use Javascript to personalize actions

Do you need to reshape your trigger data or perform calculations to reformat values? This update lets you manipulate values in Create or Update Person and Create Event actions using JavaScript return statements. If you’re already familiar with JavaScript, you may have an easier time using JavaScript to convert and re-shape JSON values than you might with Liquid.

For example, where you might have checked if a variable existed by writing a complicated Liquid if statement, you can now write simple JavaScript instead!

return trigger.plan_name ?? 'free_trial';
{% if trigger.plan_name != blank %}
  {{ trigger.plan_name }}
{% else %}
  free_trial
{% endif %}
Go to the docs

Segment and filter on device attributes

Ui improvements
Segment and filter on device attributes

You can now create segments, filters, or set campaign conditions using the platform, last_used, and last_status attributes attached to your audience’s devices. This update lets you use device attributes in the same way that you use people’s other attributes, helping you send push notifications to a targeted audience of people with relevant devices.

Our SDKs gather these attributes automatically, but you can also set them when you add and update devices using our API. The last_status attribute is set automatically based on the delivery status of the last message sent to the device—sent, bounced, suppressed, or an empty string if the device hasn’t received a push notification before.

Updated integration catalog view

Ui improvements
Updated integration catalog view

We’ve updated our Data & Integrations > Integrations page to better reflect your active integrations and suggest integrations that might be relevant to you. The new page organizes your active integrations into Data in and Data out categories at the top of the page, showing which direction your active integrations flow.

February 2022

Beta API official release

API developers

The formerly-known Beta API is officially released! These endpoints are now available under our App API: the endpoints that you used to access with https://beta-api.customer.io/v1/api/, are now available at https://api.customer.io/v1/; if you’re in the EU region, former https://beta-api-eu.customer.io/v1/api/ endpoints are now at https://api-eu.customer.io/v1. These endpoints are stable parts of the Customer.io platform and you can use them confidently.

If you’re currently integrated with “beta-api” endpoints, you can continue to use those routes, but we encourage you to update your integration to use the new https://api.customer.io/v1/ paths. Beta API endpoints will continue to work, but we may eventually deprecate and remove them in the future (with advanced notice).

Go to the docs

Create or update people in your workflows

Ui improvements
Create or update people in your workflows

We’ve replaced our attribute update action with an improved Create or update people action. This new action lets you update multiple attributes for a person with a single action in any campaign workflow. You can also update someone other than the person currently in the campaign journey—or create a new person if they don’t exist. This is particularly useful if you’re connecting data and third-party tools using a Data Campaign

Go to the docs

Filters in the Message Library

Ui improvements
Filters in the Message Library

Now you can filter your message library by status—Sent, Drafted, etc.—and type, making it easier to find your messages. This release also lets you exclude messages from archived campaigns, helping you narrow your scope when you look for a message. Go to Content > Message Library to search through your messages.

Go to the docs

Create event in any campaign

Automation Ui improvements
Create event in any campaign

Our Create Event workflow action used to be limited to Data Campaigns. Now you can create an event in any campaign, regardless of campaign trigger, providing a handy way to trigger parallel campaigns and add people to segments. You can create an event for the person in your current campaign, or another related person: anybody whose ID or email that you can access from the trigger event or the current person’s attributes.

This release also makes it easier to add properties to your events, letting you click to select the values that you want your event to include so you don’t have to write liquid.

Go to the docs
January 2022

Capture forms from Wordpress using WPForms

Data integrations

You can now capture form submissions from the Wordpress WPForms plugin without Zapier. To identify and capture responses from people who fill out your forms, simply add the JavaScript forms snippet to pages containing a form.

We developed and tested Wordpress form support with the WPForms plugin. You may be able to capture forms from other form plugins in Wordpress, but we cannot guarantee that they’ll work. Let us know if you use a different plugin and run into compatibility issues. We’ll do our best to support your use case.

Go to the docs

Send multi-language newsletters the easy way!

Messaging Ui improvements
Send multi-language newsletters the easy way!

Allow changes to email with an ID

API developers

If your workspace identifies people by email or id, we added this setting to make it easier to change people’s email addresses. Enabling this setting can help cut down on Failed Attribute Change errors and is on by default for all new workspaces.

In workspaces created before today, if you use both email and id to identify people, you needed to use cio_id to change either value—a value that you might not have available to your integration. This setting lets you change email values with id, making it easier to modify your audience without preventing you from identifying people by their email address.

Go to the docs

Import people from Amazon Redshift

API developers Data integrations

Connect your Redshift data warehouse to Customer.io, and import or update people on a regular interval. This integration helps ensure that your workspace always reflects the latest information about your audience.

When you set up a sync, you provide a query determining the information that you want to reflect as attributes on people in Customer.io. You’ll also set the frequency of import operations from your Redshift instance. On each interval, you’ll import and/or update people in your workspace from your Redshift database!

Go to the docs

Official iOS and Android SDKs

API developers Mobile sdk
Official iOS and Android SDKs

Import people from your Microsoft SQL Server

API developers Data integrations

You can connect your Microsoft SQL server to Customer.io, and import or update people on a regular interval. This integration helps ensure that your workspace always reflects the latest information about your audience.

When you set up a sync, you provide a query determining exactly what information you want to reflect as attributes on people in Customer.io. You’ll also set the frequency of import operations from your Microsoft SQL instance, helping you keep your workspace up to date.

Go to the docs
December 2021

Direct integration with Jotform

Data integrations Ui improvements
Direct integration with Jotform

You can now capture form submissions directly from Jotform without using Zapier as an intermediary to transform data. To set up a Jotform integration, go to Data & Integrations > Integrations > Jotform. Copy the personalized webhook URL, add it to your Jotform, and you’re all set!

Go to the docs

Import people from Google BigQuery

API developers Data integrations
Import people from Google BigQuery

Segment people by mobile device platform

Automation Mobile sdk
Segment people by mobile device platform

Now you can segment people by device platform, if you want to start campaigns or messages based on the device platform(s) your audience uses. You might segment by device platform to let people know when a new feature or version for your app—on Android or iOS, comes out.

Go to the docs

Convert incoming webhooks to events the easy way

Automation Data integrations Ui improvements
Convert incoming webhooks to events the easy way

Data campaigns accept data of any shape. But, to take advantage of that data, you need to reshape it and associate it with a person in Customer.io. We’ve made that process easier with the new Create Event action. Use this new action to send messages and segment people based on data from services external to Customer.io!

Go to the docs

Track screen views

API developers Mobile sdk
Track screen views

You can now track and segment your audience by screen views in your mobile apps. Use the API to manually track screen views or integrate our iOS and Android SDKs to automatically track screen views.

Go to the docs

Import people from Snowflake

API developers Data integrations
Import people from Snowflake

Schedule transactional messages

Automation Messaging

Now you can schedule your transactional messages up to 90 days in the future, rather than having to schedule your transactional requests at the exact moment you want to send someone a message. This feature helps with things like event reminders, or letting your audience know when a product they expressed interest in will become available.

Go to the docs

Increased database sync sizes and improved error handling

Data integrations

Our database import feature lets you import and update people from your MySQL or Postgres database. We’ve recently increased the capacity of imports from 2 million to 10 million rows, making it easier to support large audiences! As a part of this update, we also exposed error files for each sync interval; these files show which rows failed to import, which can help you refine your query or tables and provides a path to import or update people represented by errored rows.

Go to the docs
November 2021

Data Campaigns: Zapier-like data transformations in Customer.io

API developers Data integrations Ui improvements
Data Campaigns: Zapier-like data transformations in Customer.io

Created and updated dates on segments and campaigns

Ui improvements
Created and updated dates on segments and campaigns

Campaigns, broadcasts, newsletters, and segments now show their creation date and when they were last edited. We hope this change makes it easier to understand when you started using an asset, and helps you track down issues related to segment, campaign, and newsletter changes.

Direct integration with Typeform

Data integrations Ui improvements
Direct integration with Typeform

You can now capture form submissions directly from Typeform without using Zapier as an intermediary to transform data. To set up a Typeform integration, go to Data & Integrations > Integrations > Typeform. Copy the personalized webhook URL, add it to your Typeform, and you’re all set!

Go to the docs

Deduplicate email newsletter recipients

Messaging

We added a Skip duplicate email addresses setting to email newsletters in ID only workspaces. If people in your newsletter audience have the same email attribute, prevents you from sending your email newsletter multiple times to the same address.

Go to the docs

SSL connections for MySQL and Postgres integrations

Data integrations

You can now connect your MySQL or Postgres database to Customer.io over SSL, helping you securely import data to your Customer.io workspace from external sources.

Go to the docs
October 2021

Sharing Google Sheets with Customer.io

Data integrations Ui improvements
Sharing Google Sheets with Customer.io

You no longer need to explicitly share Customer.io sheets with cio_share@customer.io. Now, before you import your first Google sheet, you’ll authorize Customer.io to access specific files in your Google Drive. After you grant access, you can easily pick the sheets you want to share from your Google account—to add people, create segments, and update collections—without having to get individual links for each sheet that you want to share with us.

Go to the docs

Collection queries: match an item in an array

Ui improvements
Collection queries: match an item in an array

When you query a collection, you can now match against a value in an attribute containing an array of values. For example, if you store your audience’s interests as an array in an attribute called interests, you can now query your collection to return data where people’s interests include a specific interest—like “cooking” or “football”!

Go to the docs

Shortcuts: Use Customer.io as your back-office tool

Data integrations Ui improvements
Shortcuts: Use Customer.io as your back-office tool

Add sticky notes to your workflow

Ui improvements
Add sticky notes to your workflow

As campaign workflows become larger and more complicated, it can become challenging to read campaign logic or remember what each branch, split, and message action does. Now you can leave notes for yourself and others, to help explain your workflow at a glance.

Go to the docs

Segment source integrations support people without an ID

Data integrations

Previously, our Segment Source integration wouldn’t send events for people who did not have an ID. Now, if a person has an email but does not have an id, we send events to Segment using the email address as an anonymousId. This lets you map events for leads in Customer.io to another destination.

Go to the docs

Segment people based on messages in a campaign

Messaging Ui improvements

You can now segment people based on messages in individual campaigns. This helps you see which individual people opened a message, or received a specific message in a campaign split.

When you create a segment, select the message type under Message Data. Then you can click Any , and search for the campaigns or individual messages that you want to segment on by name.

Go to the docs

See recent journeys

Ui improvements
See recent journeys

After you start a campaign, you can click the campaign’s Journeys tab to see the most recent journeys that started for that campaign. These journeys can help you understand if your campaign works the way you expect it to.

Automatically resolve duplicate people

API developers Data integrations
Automatically resolve duplicate people
September 2021

Resolve duplicate people using the API

API developers Data integrations

We’ve added an API endpoint that you can use to merge duplicate people. The payload lets you identify a primary person and a secondary person. The primary person remains after the merge. The secondary person’s information is merged into the primary, and then it is deleted.

Go to the docs

Find messages with the new Message Library

Ui improvements
Find messages with the new Message Library

We added a new message library, making it easy to search for messages in your workspace without having to click through your campaigns and broadcasts to find them. Go to Content > Message Library to search through your messages.

Go to the docs

Merge and resolve duplicate profiles

Admin billing Ui improvements
Merge and resolve duplicate profiles

Send webhooks for a newsletter audience

API developers Data integrations

Set up a newsletter webhook, sending a request for every member of a newsletter audience. This provides a handy way to trigger in-app messages and other external services based on a segment of people in Customer.io!

Go to the docs
August 2021

SQL Sync: import people from a MySQL or Postgres database

API developers Data integrations
SQL Sync: import people from a MySQL or Postgres database

Edit and delete saved rows in the drag-and-drop editor

Ui improvements
Edit and delete saved rows in the drag-and-drop editor

Now you can edit, recategorize, and delete rows saved rows in our drag-and-drop editor. This helps you prune saved rows and prevent other members of your team from accidentally reusing stale content! Note that deleting a row does not remove it from existing messages; it only prevents you (and others) from using that row in the future.

Go to the docs

Disable open tracking

Data integrations Ui improvements

Connect web forms to your workspace

Automation Data integrations
Connect web forms to your workspace

Campaign and Journey Metrics Update

Data integrations Ui improvements
Campaign and Journey Metrics Update

Save rows in the drag-and-drop editor

Ui improvements
Save rows in the drag-and-drop editor

You can save rows of content in emails that you create in our drag-and-drop editor. This helps you save reusable content, like headers and footers, so that your messages all have the same look and feel without having to re-create message blocks every time you write an email!

Go to the docs
Filters