Send messages in users' time zones
UpdatedCustomer.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 ofTimezone
). - The Person’s
timezone
value must be in the Regional Format shown here, so something likeCanada/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:
Using Time Zone Match in your Campaigns
Time zone match is available when using a “Time Window” delay in your workflows:
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.
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:
When you select this, you’ll be presented with the option to send in your user’s time zone:
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:
- There are multiple filters for handling dates and time in Liquid
- Here’s a full list of time zone formats supported in Customer.io
- Online conversion of Epoch and unix timestamps