Send messages in users' time zones

Customer.io aims to help you send the right messages at the right time to your users. Two critical parts of this are sending messages in a given person’s time zone and localizing time in emails. Here, we’ll explain how to do both.

First, you need a timezone attribute

To send Campaigns and Newsletters in each customer’s time zone, you’ll need to have an attribute named timezone in your user’s profiles. A couple things to note:

  • This attribute name is case sensitive (i.e., you must use timezone instead of   Timezone).
  • The Person’s timezone value must be in the Regional Format shown here, so something like Canada/Pacific will work, but (GMT-08:00) Pacific Time (US & Canada) will not pass.

Testing your timezone attribute

From the left-hand menu in Customer.io, navigate to Workspace Settings -> Time Zone Match.

There you can test that you’ve sent us the timezone attribute in the right format. This is what test looks like, both unsuccessful and successful:

Testing the Time Zone Match feature

Using Time Zone Match in your Campaigns

Time zone match is available when using a “Time Window” delay in your workflows:

Using the Time Zone Match feature
Using the Time Zone Match feature

With this setting, you can tell Customer.io to wait until a given time in a customer’s time zone before taking the next action.

You must also set a fallback here, telling Customer.io which time zone to use if a customer doesn’t have the timezone attribute.

Choosing a fallback time zone
Choosing a fallback time zone

That’s it!

Sending Newsletters in your user’s timezone

On the Review step of creating a Newsletter, you are offered the option to schedule delivery for a later time:

newsletter_schedule.png
newsletter_schedule.png

When you select this, you’ll be presented with the option to send in your user’s time zone:

newsletter_timezone.png
newsletter_timezone.png

You must also set a fallback here, telling Customer.io which timezone to use if a customer doesn’t have the timezone attribute. If a customer has an invalid value (not empty/missing) for the timezone attribute, they will receive the newsletter during the last send date/time across all timezones.

Note that you cannot limit send rate in combination with scheduling the newsletter to send in user time zones.

Using time zone data in messages

If you want the time(s) in your messages to be localized, we can do that, too!

Say you want to send an appointment reminder, and you have an appointment_time timestamp. If that appointment time is a UNIX timestamp— for example, 2014113600—

{{ customer.appointment_time | timezone: customer.timezone | date: "%H:%M %A %b %d, %Y" }}

If customer.timezone is 'US/Pacific', then the above Liquid code will display:

Friday Oct 28, 2033 at 05:00 PDT

A few more resources

For Customer.io and time zones:

Copied to clipboard!
  Contents
Is this page helpful?