top of page

Customised Salesforce Marketing Cloud Email Send Timing Based upon Time Zone / Country

Updated: May 14, 2021

In my last blog, we have seen how to make a dynamic email based on different languages. But, how can we control the send timing for different countries?

It is very hard to maintain a different Journey Builder / automation studio to maintain it for different countries with scheduling on their specific timezone.

In this example, we are going to send a birthday email exactly at 12 AM regardless of different time zones for customers in different countries.

Step 1: Create a data extension with attributes as per the below csv file link and name it as 'Time Zone' data extension:

  • Country_code is the common identifier between Time Zone data extension and Target data extension.

  • I have taken UTC as a common time zone

  • Time_Diff is the column which is the difference between UTC and other time zones

  • Time_Difference_in_Seconds_for_SFMC column which we need to add with Date of Birth field to get the local time value.

Step 2: Create a target data extension and have different countries.

  • In this example I have taken First Name, Last Name, Date of Birth, Country_code, Email and Local_Time.

  • Initially the local_time attribute is blank as of now.

  • Assuming Date of Birthday all the values are 12 AM.

Step 3: Create an automation to update the value for Locale_Time.

  • The below automation (view code snippet) find the difference between Birthday year & Current Year and add the difference to the Birthday Year

  • Also, it is adding the seconds from 'Time_Difference_in_Seconds_for_SFMC' to the date of birth attribute

  • Schedule the automation to daily and use an update activity

Now you can see that Local Time has been added with the current year birthday and also with local time 12 AM in UTC time zone.

Step 4: Create a journey Builder:

  • Add a decision split if Date of birth is anniversary of today and Date of Birthday is not Null

  • Add a wait by attribute activity and pass the local time and wait interval of 0 days

  • It is important to maintain the time zone as London (UTC) since we are maintaining the time difference in UTC

  • Schedule the journey every hour

Please note that if the local time (wait by attribute) date is past or Null then it will just simply skip the activity and move to the next one. So, it is good to have a decision split before on wait by attribute.

Journey Builder for Send Timing Based upon Time Zone
Journey Builder for Send Timing Based upon Time Zone


  • Now customers will receive an email exactly at 12 AM regardless of time zone.

  • But if you prefer that there is a more open rate at 10 AM for all time zones then you can change the date of birth instead of 12 AM and change it as 10 AM. So that email goes out at 10 AM for all countries.

  • If you prefer that the higher open rate is of a different time for different countries. Then adjust the attribute 'Time_Difference_in_Seconds_for_SFMC ' according to your higher open rate timings.

  • In this same way, you can also use this for weekly newsletter, recurring emails by having a single email by making it dynamic and also send it in a single journey rather than maintaining different journeys for different countries.

Please feel free to leave your feedback or reach me out in terms of any queries.

Happy Learning!

4,413 views1 comment

Recent Posts

See All

1 Comment

Feroz Khan
Feroz Khan
Dec 28, 2022

Hi, Thanks for the blog but i am new to sfmc and i dont know what datatypes you have used for each columns.

I am getting this error "Argument data type nvarchar is invalid for argument 2 of dateadd function."

bottom of page