i have email template for our lead follow up emails where we usually suggest a date 2 business days of sending the email. currently, it is a pain to manually update the date every time we send email. is there a way to insert it dynamically the way we can do the personalization attributes?
There is no token that you can use that inserts the date.
One thing you could try is a workflow to manage the email send. If you use a workflow then you can have a field with the date that triggers the email then you can use a personalization token for a date field.
Can we please get on creating such an option. Competitors like Salesloft and others have had this implemented for years.
You don’t need a personalization token or workflow. You just need one little line of HubL -
{{ datetimeformat(local_dt, '%B %e, %Y') }}
You can hardcode it into a module or you can even paste it into the HTML of a richtext module. Note: if placed in a richtext module it’ll show as code in the page editor, but the date will be rendered in preview and on send). Ex:
Page Editor (Do not type directly into the rich text, open the source code)
Preview
Hi,
I need to add a variable date as well, but I’d like to add, for example, 21 days after the current date. I’m using this to communicate an expiration date that changes with an email send from a workflow. It can’t link to the content.update information. It needs to link to whatever date the email is sent out. Can you help me?
Thanks in advance,
Lora B
Found this while looking for a way to insert a dynamic date into an automatic email, this worked perfectly - thank you!
Did you manage to insert this into a template? For a 1:1 email? Or only in a Marketing email?
Thanks
Rob
You can use the plus_time filter to get a future date from the current date, like so:
{% set future_date = local_dt|plus_time(21, 'days')%}
{{ datetimeformat(future_date, '%B %e, %Y') }}
This is great!!
I’ve been looking through HubL, some really good stuff.
One more additional question on this one.
in a workflow within an email can I set the date as ‘end of the month’ for example: Available until the end of May
So then June arrives and it will prepopulate to now be Available until the end of June.
Thank you in advance.
@CCassidy You can grab the current month like so :
{{ datetimeformat(local_dt, '%B') }}
So at the time of me posting this that code would output “May” then on June 1st it’ll start outputting “June”.
Hello Alyssa,
Is there a way how to change the format of personalization tokens? For example, instead of 7/14/2022, the output will be Jul 14, 2022.
Here’s what it looks like from the source code:
![]()
Thank you in advance.
@Glay_Imutan I believe using the filter instead of the function is better suited for personalization tokens:
{{ company.subscription_end_date|datetimeformat('%b %e, %Y') }}
@Glay_Imutan Sorry, I completely missed that this post was about email. Unfortantely, Hubspot does not support formatting on contact properties in email. ![]()
As stated in their documentation :
“Please note that using filters on any personalization variables (such as but not limited to contacts, company, and deal variables) is not currently supported for email in HubSpot due to how emails are rendered”
Oh no worries! thanks for checking and for helping me. Greatly appreciate your effort ![]()
I’ll just use zapier to do the format.
@alyssamwilie This is really great, thanks for the solution. I’m curious to how this would work if I only wanted to show the next 4 business days? If its showing today (a Thursday), it would show Friday, Monday, and Tuesday. Is that possible through Hubl?
@spogue Not sure if you can get them concurrently but you can use multiple plus_time calls to get the next three days and %A in the format to get the weekday.
{{ datetimeformat(local_dt|plus_time(1, ‘days’), “%A”) }}
{{ datetimeformat(local_dt|plus_time(2, ‘days’), “%A”) }}
{{ datetimeformat(local_dt|plus_time(3 , ‘days’), “%A”) }}
@alyssamwilie Makes sense. Have you ever seen code to only show business days?
For example, if I took the way you just wrote the code, but I only wanted to show the next 3 business days, is there a way to “skip” weekdays if one of those days is a Saturday or Sunday? Like this:
Friday, September 24, 2021
Monday, September 27, 2021
Tuesday, September 28, 2021
Thanks again for the help.
@spogue You can use a for loop and if statements to increase the plus_time if the weekday lands on a Saturday or Sunday. You’ll probably want to put this in a custom module instead of directly in the email though.
{% for day in [1, 2, 3] %}
{% if datetimeformat(local_dt|plus_time(day,'days'), '%A') == "Saturday" %}
{{ datetimeformat(local_dt|plus_time(day + 2,'days'), '%A, %B %e, %Y') }}<br>
{% elif datetimeformat(local_dt|plus_time(day,'days'), '%A') == "Sunday" %}
{{ datetimeformat(local_dt|plus_time(day + 1,'days'), '%A, %B %e, %Y') }}<br>
{% else %}
{{ datetimeformat(local_dt|plus_time(day,'days'), '%A, %B %e, %Y') }}<br>
{% endif %}
{% endfor %}
Thank you! This was very helpful!


