Send messages in users' time zones

Updated

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.

How it works

You can schedule messages for your users in their time local timezones, so you engage customers at the right times, wherever they are. This feature relies on a timezone attribute you set yourself or the cio_timezone attribute, which is set by our automatic geolocation data collection.

If the timezone attribute exists, we’ll use it to send the message in the customer’s time zone. If it doesn’t exist, we’ll use the cio_timezone attribute as a fallback. If neither of these attributes exist, we’ll use a fallback timezone. This ensures that people who don’t have timezone data still get messages.

You can use our recommended send time feature to automatically schedule messages at the best times for your audience.

Campaigns: schedule a message with a time window

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

user-timezone.png
user-timezone.png

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.

Send newsletters in your user’s time zone

When you create a newsletter, you can schedule delivery in the Review step:

newsletter_schedule-review.png
newsletter_schedule-review.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 time zone to use if a customer doesn’t have the timezone or cio_timezone attributes. 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 time zones.

Keep in mind, you cannot send in user timezones if your newsletter contains variants for A/B tests. If this is important for your company, please email win@customer.io with your use case!

Use time zone data in messages

You can also localize time in your messages using liquid syntax. Imagine that you want to send an appointment reminder, and you have an appointment_time attribute formatted as a UNIX timestamp.

The way you use time zone data in your messages depends on the liquid version you’re using.

{{ customer.appointment_time | date: "%H:%M %A %b %d, %Y", customer.timezone }}
{{ 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: 05:00 Friday Oct 28, 2033.

Copied to clipboard!
  Contents