There are two ways to send birthday and anniversary videos automatically. The traditional way is a date-based automation: a workflow that watches a date stored on each contact record and fires when that date arrives. The newer way is to upload a file of important dates to an AI agent and ask it, in plain language, to build one recurring routine that covers all of them.
A client asked us this exact question recently. She wanted to send happy birthday, happy anniversary and happy holidays videos to her clients, she wanted them to go out on the right dates without her remembering, and she did not want to become a technical wizard to make it happen.
That is a fair ask, and the honest answer is that both routes work. One has existed for years and gives you precise control. The other did not exist two years ago and takes about ninety seconds. Below I walk through both, when each one is the right call, and the small details that quietly break date sends in every tool I have used.
What Is Date-Based Automation?
Date-based automation is a workflow trigger that fires on a calendar date stored against a contact record, rather than on something the contact does. Most marketing automation fires on behavior: a tag gets added, a video gets watched, a link gets clicked. A date-based trigger fires on the calendar instead, which is why it is the only trigger type that can handle a birthday.
In Dubb, this sits alongside the behavior triggers you may already be using. The standard workflow triggers are things like a tag being added, a video being viewed, a page being viewed or a call to action being clicked. Date-based automation is the one that watches the calendar, so the birthday greeting, the policy renewal note and the one-year client anniversary video all become standing jobs rather than things you hope to remember.
What is on this page
- The traditional way: one workflow per date
- The new way: one file and one request
- Which approach should you use?
- What your date file needs to contain
- Common mistakes that break date sends
- How Dubb compares to other date-based tools
- Consent, data and sending rules worth checking
- Proof: why this actually works
- Frequently asked questions
- Start with one date and build from there
The Traditional Way: One Workflow Per Date
The traditional approach is to build the automation once and let it run forever. You create a birthday workflow, you point it at the birthday date field on your contact records, and whenever a contact's birthday arrives, that workflow fires and sends your greeting. It can be an email with a video in it, or a text message, depending on how you have set the workflow up.
The shape of it is always the same, whatever tool you are in:
- Record the video once. One birthday video that works for every client, not one per person. This is the step people over-think. A warm thirty second message that does not name a specific year or event will carry for years.
- Get the dates onto the contact records. The automation can only fire on a date it can read. If the birthday lives in a spreadsheet on your desktop, no workflow anywhere can see it. Dubb supports contact import in CSV format, which is how most people get dates in the first time.
- Build one workflow per occasion. Birthday is one. Client anniversary is another. Policy renewal, closing anniversary, membership renewal are each their own.
- Set the send window. On the day is the obvious choice. Some people prefer the morning before, so the message is sitting at the top of the inbox when the day starts.
- Let it run. A date-based workflow is genuinely set and forget. It fires every year on its own.
This is what we spent years building, and it works. The cost is setup. You need the data, you need it in the right field, you need a workflow per occasion, and if you have never built a video email automation before, the first one takes a while. That is exactly the "technical wizard" problem the client was describing.
The New Way: One File and One Request
Here is the same job done the other way. You open your agent, start a new chat, and upload one CSV file containing the important dates for your clients. Then you type or say what you want, in the words you would use with a person:
That is the whole setup. One file, one request, one recurring routine that covers every date in the file. No workflow builder, no trigger configuration, no separate automation per occasion.
What makes this different is not that it is faster, although it is. It is that the hard part moved. In the traditional build, the hard part was translating what you wanted into the tool's logic: which trigger, which field, which condition, which branch. In the new version, you describe the outcome and the agent handles the translation. The skill you need is describing a job clearly, which is a skill you already have.
Worth being precise about one thing: the agent still needs the dates. The file is not optional. What disappears is the workflow building, not the data work.
Which Approach Should You Use?
Both exist and both are supported. The choice comes down to how much control you need and how many occasions you are covering.
| Question | Date-based workflow (traditional) | Agent routine (new) |
|---|---|---|
| How you set it up | Build a workflow in the automation builder and connect it to a date field. | Upload a file of dates and describe what you want in plain language. |
| Time to first send | Longer. Most of it goes on data preparation and the first workflow. | Short. One conversation, assuming the file is ready. |
| Occasions covered | One workflow per occasion. Five occasions means five builds. | One routine can cover every date column in the file. |
| Control over branching | High. Conditions, waits, and different paths per segment are all visible and editable. | Lower by default. You get what you described, then refine it by asking for changes. |
| Who it suits | Teams with an existing contact database and someone comfortable in an automation builder. | Solo operators and small teams who have the dates in a spreadsheet and want it handled today. |
| Where it breaks | Dates missing from records, or stored in a field the trigger cannot read. | A vague request, or a messy file with inconsistent column headings. |
My own rule: if you are covering one or two occasions and you already live in your CRM, build the workflow. If you are covering five occasions and the dates are sitting in a spreadsheet, hand the spreadsheet to the agent and describe the job. The result lands in the same place.
What Your Date File Needs to Contain
Whichever route you take, the file is the thing that decides whether this works. Both approaches read the same data, so it is worth getting right once.
| Column | Example | Why it matters |
|---|---|---|
| First name | Maria | Carries the greeting. A birthday email that opens with "Hi there" defeats the point of sending one. |
| maria@example.com | The delivery address. One per row, no shared inboxes for personal greetings. | |
| Birthday | 03/14 | Month and day is usually all you want. Including a birth year invites an automation to treat it as a one-off date that already passed. |
| Client since | 06/02/2023 | The anniversary date. Here the year is useful, because "three years with us" is the message. |
| Renewal or milestone | 11/30 | Policy renewals, closing anniversaries, membership dates. Anything you would otherwise track in your head. |
| Segment or tag | Commercial | Optional, but it lets you send a different holiday video to different groups later without rebuilding anything. |
Keep one row per person and one heading per column. Do not merge cells, do not stack two dates in one field, and do not leave the heading row out. Every problem I have watched someone hit with date sends traced back to the file, not the automation.
Common Mistakes That Break Date Sends
These come up repeatedly, and none of them are obvious until the send does not happen.
Storing the birthday as a full date with a year. This is the most common one and it is not specific to any single platform. Mailchimp's own documentation for automated birthday emails is explicit that the birthday field has to be in month and day format, and that a regular month, day and year field will not work with that automation type. The logic is the same everywhere: a full date is a single point in the past, while a month and day repeats every year. Check which one your tool expects before you import.
Sending the same video for three years running. A recorded greeting is the right call. Sending the identical file to the same person every year is not. Re-record once a year, or record two and alternate them.
Treating a holiday like a birthday. Holidays are the same date for everybody, so they are a scheduled bulk send. Birthdays and anniversaries are different for everybody, so they are individual sends triggered per contact. Mixing the two produces either a birthday email that goes to your whole list, or a holiday send that dribbles out one at a time.
Forgetting that dates go stale. People leave companies, change addresses and stop being clients. A date-based automation will keep sending happily to all of them. Review the list once a year, in the quiet week before the holidays.
Making the greeting a pitch. A birthday video with a call to action to book a call is not a birthday video. Send the greeting. Ask for nothing. The goodwill is the point, and it compounds.
Recording thirty separate videos. Personalization in this context comes from the name, the timing and the fact that you bothered. It does not require a unique recording per client. If you want to go further, personalized video messages are worth their effort on deals, not on greetings.
How Dubb Compares to Other Date-Based Tools
Date-based triggers are not unique to us, and for some jobs another tool is the better fit. Here is the honest picture.
Dubb makes sense when the greeting is a video and you want to know whether it was watched. The whole platform is built around video in email and text, with tracking attached, so the birthday message is the same object as everything else you send. This is the fit for anyone whose relationship business runs on being seen and heard rather than read.
Mailchimp is the better fit when the greeting is one small part of a much larger email marketing programme, and your list is big. Its date-based automations are mature and the birthday flow is a documented, standard feature. If you already run campaigns there, you can send a video through Mailchimp rather than choosing between the two.
ActiveCampaign is the better fit when the date is one condition among several and you need real branching: renewal date approaching, but only for contacts on a certain plan, who have not already been contacted this quarter. Its date-based trigger is designed for that kind of compound logic. Dubb connects to it, so you can still send trackable video from ActiveCampaign.
Follow Up Boss is the better fit for real estate teams who want the closing anniversary and the home purchase date living inside the same system as the lead pipeline, because the dates that matter to an agent are already in the CRM record.
The pattern across all four is the same: the trigger is easy, the data is the work. Whichever you choose, you are going to spend your time on the spreadsheet.
Consent, Data and Sending Rules Worth Checking
Two things here are genuinely worth a minute of your attention before you switch anything on.
Text messages are not email. If you plan to send greetings by text rather than email, the consent rules are stricter and they vary by jurisdiction. A client who gave you their mobile number to coordinate a closing has not necessarily consented to marketing texts, and a birthday text from a business is treated differently in different places. Check the rules that apply where your clients are, not where you are, and keep an easy way to opt out of the greeting without opting out of everything else.
A file of client birthdays is personal data. Dates of birth are a common identity verification field, which is exactly why they deserve more care than a list of email addresses. Store the file where you store client records rather than in a downloads folder, use month and day only where the year is not needed, and delete working copies once the import is done.
Neither of these should stop you. They are the kind of thing that is trivial to handle on day one and awkward to retrofit later.
Proof: Why This Actually Works
Based on anonymized usage patterns across relationship-driven Dubb accounts, meaning insurance, real estate, financial services and agency users rather than high volume outbound teams, observed across the 2024 and 2025 holiday and renewal cycles, three patterns hold consistently.
The first is that date-triggered greetings get replies at a noticeably higher rate than any other automated message those same accounts send. They are also a different kind of reply: a thank you, a personal update, occasionally a referral, rather than a question about the product.
The second is that the accounts getting value from this have one thing in common, and it is not send volume. It is date coverage. An account with birthdays on most of its contact records gets a steady trickle of these moments all year. An account with birthdays on a handful gets almost nothing, regardless of how good the video is.
The third is that the setup either happens in the first week or it never happens. The accounts that intended to get around to building the workflow, and did not, are the clearest argument for the conversational route. Ninety seconds of describing the job beats a perfect automation you never built.
Frequently Asked Questions
How do I send automatic birthday emails to my clients?
You need two things: the birthdays stored somewhere your sending tool can read, and something that fires on the date. Traditionally that means importing your contacts with a birthday field and building a date-based workflow that sends your greeting when the date arrives. The faster route is to upload a file of dates to an AI agent and ask it to create a recurring routine that handles the sends for you.
What is a date-based automation?
A date-based automation is a workflow that triggers on a calendar date stored against a contact, instead of on something the contact does. Most automation triggers are behavioral, such as a tag being added or a video being watched. A date-based trigger is the one that can handle birthdays, anniversaries, renewals and any other recurring milestone, because those are fixed in the calendar rather than caused by an action.
Can I send a video instead of a plain email on someone's birthday?
Yes, and it is the main reason to do this at all. A recorded greeting with your face and voice in it reads as a personal gesture in a way that a designed email template does not. Record one general birthday video that does not reference a specific year, attach it to the automation, and re-record it once a year so regular clients are not receiving the identical file every time.
Do I need a separate automation for every holiday?
With a traditional workflow builder, usually yes, because each occasion has its own trigger and its own message. With the conversational route you can describe all of them in one request and get a single recurring routine that covers every date in your file. Either way, keep holidays and birthdays conceptually separate: holidays are a bulk send on a fixed date, birthdays are individual sends that differ per person.
What format should birthdays be in for an automation?
For recurring birthday sends, month and day is normally what you want, written consistently across every row. A full date including the birth year is often read as a single point in the past that has already happened, which is why several platforms require a dedicated month and day field for birthday automations specifically. Anniversary dates are the exception, because there the year is what lets you say how long someone has been a client.
Is it better to build a workflow or ask an AI agent?
It depends on control versus speed. Build the workflow when you need visible branching, conditions and different paths for different segments, and when the automation is going to run for years on a database you maintain carefully. Ask the agent when you have the dates in a spreadsheet, you want several occasions covered at once, and you would rather have something running today than something perfect next month. Both produce real sends.
Start With One Date and Build From There
The thing I would push back on gently is the instinct to plan the whole calendar before sending anything. You do not need every milestone mapped. Pick birthdays, get the dates into one clean file, record one thirty second greeting, and switch it on. The first time a client replies to a birthday video with a thank you and a piece of personal news, you will find the motivation to add the anniversary.
Both routes are open in Dubb. If you want the control, build the date-based workflow and keep automation doing what it has always done well. If you want it handled this afternoon, open the agent, upload your file, and describe the job the way you would explain it to a new assistant. We built both because both are the right answer for somebody.
If you are not sure which one fits your list, bring the spreadsheet to a session and we will look at it with you. That is usually a five minute conversation, and it saves a fortnight of intending to get around to it.