Hi @KMausner and thank you for following up and sharing your perspective.
I understand how important it is for scheduling data to be accurate in all scenarios. The current behavior of local_dt is actually expected, it captures the time when the email is scheduled, not when it’s sent, due to how our system pre-renders batch emails.
In HubSpot, batch emails are actually pre-rendered when you schedule or publish them, not when they’re sent. The first rendering step (handled by cos-renderer) occurs as soon as you hit “Schedule”, at this point, the HTML is created and stored for later delivery. As a result, local_dt gets its value right at this scheduling moment, rather than at the send time.
The rendering process works in two phases: the initial pass pre-renders everything that isn’t specific to a contact (including local_dt). Then, a lighter second pass happens for each recipient, focusing on details like personalization tokens (for example, {{ contact.firstname }}). Since local_dt is a global variable and gets set during the first pass, there’s no built-in way to have it reflect the actual send time.
While this isn’t ideal for all use cases, especially scheduled sends, it’s not considered a bug, but rather a limitation of our existing architecture.
Your feedback is valuable and helps us prioritize future improvements so I’ve passed it along internally so that we can clarify the documentation regarding this point.
I’ll check for potential workarounds and will update the thread if there are any.
If you have any other questions or need further clarification, I’m happy to help!
Bérangère
This post was created with the assistance of AI tools