How we can send one single email to multiple customers based on their timezone.

Let's suppose we have 10 US customers and as we have different timezones in every state. We have to customise email in such a way that if we will click send , then, the subscriber receives the mail according to his/her time zone.

Can we apply any ampscript code in email ?

3 Answers 3


One of the ways that I can think of is to use the wait by attribute activity in journey builder.

Basically you'd need below list to achieve this:

  • a date and time field (say SendTime) in your entry source DE with contact's respective timezone to be sent. (optional if you have contacts timezone converted to account's timezone)

  • another field (say convertSendTime) in your entry source DE which reflects the timezone of the sfmc account.

  • automation studio with query activity to populate the convertSendTime field in the entry source DE by checking against SendTime field.

  • Journey Builder enabled in the account to send the email.

The next step then is to create a journey with your wait by attribute activity first and the email activity after it.

You'd then configure your wait by attribute to reference the convertSendTime field in your entry source DE.

Once the journey is fired up the contacts will be evaluated where they will be held up at the first step at wait by attribute activity until the time of convertSendTime.


  • The date and time setup in SendTime field needs to set up with respect to account timezone which means you'll need to convert the different timezones to singular timezone.
  • If there is no attribute value when a contact reaches the wait or no row for the contact exists, the contact proceeds directly to the next activity.
  • Thanks @brad .. combining both of your solutions, it helped me to solve my problem. Jul 7, 2020 at 12:12
  • No Problem :) I am glad you found it helpful. Jul 7, 2020 at 22:15

You can't achieve this in Ampscript. If you are planning to send out an email from a journey then you can make use of wait by attribute activity. I have written an article on How to send an email with respect to Country TimeZone. Please feel free to have a look at it.

Here is the quick overview:

  • Create a data extension with all states and their timezones. Take one constant time zone as reference and add a time difference difference column.
  • Create a new attribute in source data extension and Use a SQL Query to populate the local time for different states based on time difference.
  • Use this attribute in the wait attribute.

Journey will wait till the time mentioned in wait attribute and send out an email.

Let me know if this helps.

  • Thanks @naveen. It helped me to solve the problem. Jul 7, 2020 at 12:13
  • you are welcome @DrishtiJindal
    – Naveen VM
    Jul 7, 2020 at 16:05

I followed following approach to achieve this scenario:

Created a DE where i imported all the states and their time difference in GMT. Field : State, Standard_Time, Day_Light_Saving Created a sendable DE where i have fields Email_Address, State, Send_Time , Timezone, Convert_Send_Time . Send_Time will have the time that we will populate according to IST. As of now, Timezone and Convert_SendTime will be blank. Created 2 Automations : i. From this, firstly, the timezone will be populated in sendable DE following this below query : Select a.Email_Address, ar.Standard_Timezone as 'Timezone' from A_Timezone_Refer_POC ar join A_Timezone_POC a on ar.State = a.State

ii. After timezone is populated, we will populate the Convert_Send_Time field : Select Email_Address, cast(switchoffset(todatetimeoffset(SendTime, '+05:30'), Timezone)as datetime) as ConvertSendTime from A_Timezone_POC ** +05:30 is according to IST in GMT. IST time is GMT+05:30. You can specify according to your zone, from which you want to calculate. **

Created a journey : Configured sendable DE, configured wait by attribute before sending email where the wait by attribute will be configured by Convert_Send_Time field. So, whenever the journey is started it will wait until the time specified and on the Convert_Send_time that email will be sent to the subscriber.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .