Date-based automations (Birthday and Specific date field) are scanned and fired by a daily worker. Every day, Mailpro looks at every contact whose date matches today (with your offset applied) and triggers the workflow once for each eligible contact. The send goes out within minutes of the worker pass.
Once a day, not once an hour
The daily scan keeps the system predictable and protects deliverability — you don’t want a thousand birthday emails firing at 00:01 server time, all together. A daily window also means a contact whose birthday is today gets exactly one workflow run today, never two. The OncePerDay guardrail enforces this even if you mis-configure.
What if Mailpro misses a day
The daily worker is robust, but if for any reason a contact’s date is missed in one pass, the contact does not get retried on a later day. A date-triggered email is "today or never" by design. For business-critical timing (renewal cut-off, expiry), the safer pattern is to set the offset earlier (J-7 instead of J+0) so the email goes out before the date is consumed.
Tag and Subscribe triggers are different
EventTag and EventList triggers do not wait for a daily scan — they fire within seconds of the tag or list-membership change. The daily-window behaviour only applies to date triggers (Birthday and Specific date field).
Plan your timing right
See the automated birthday emails page and the broader triggers overview.