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 recipients’ timezones

You can schedule delivery of a newsletter in the Review step. Here you have the option to Send in recipient’s timezone.

Under the date/time of your schedule, you can togggle on the option to send in recipient's timezone.
Under the date/time of your schedule, you can togggle on the option to send in recipient's timezone.

You must also set a Fallback Time Zone, 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 date/time we send to across all timezones.

Keep in mind, you cannot send in a recipient’s timezone in these situations:

  • 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!
  • If your newsletter has a daily rate limit. This is to ensure your customers receive newsletters in a timely fashion. If you’re sending across multiple timezones with a daily rate limit, it’s possible a significant number of your customers won’t receive this newsletter until days after.

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