Quick answer
Store the date of birth in a Date field, filter with Equals today and Birthdate mode, and send every day at 09:00 in a Recurring campaign. With Allow Lead Re-entry and a 300-day cooldown, each customer gets the birthday message once a year.
Every day at 9 a.m., each customer who has a birthday gets a happy-birthday message from Padaria Aurora with a dessert on the house, and nobody on your team has to remember.
What you need
- WhatsApp connected to BIP (paid plans) or, for email only, any plan
- A spreadsheet of your customers with name, phone or email, and date of birth
- Each customer's city, if you only want to reach people who live nearby
- A WhatsApp template approved in the Marketing category (the text is ready below)
- A house dessert and a fixed coupon, such as BDAYWHATS
What you'll get
- Birthday wishes on the right day, every day, at the time you choose, with no birthday list taped to the wall.
- One message a year for each customer: never forgotten, never repeated.
- A reason for customers to come back during their birthday week, with dessert on the house.
- Only people who live nearby, if you want: customers in cities within 30 km of the bakery.
- A small draw on your balance each day: each run counts only that day's birthdays.
How it works
- 1Store each customer's date of birth in a Date field
- 2Every day at 9 a.m., BIP finds whose birthday is today
- 3Each of them gets the birthday message with dessert, once a year
The recipe has three parts:
- The Date of birth field, of type Date. This is where Birthdate mode works: BIP compares only the day and month and ignores the year.
- The Today's birthdays segment, with the date Equals today. BIP recalculates the segment on every campaign run, so each day it brings in the right people.
- The Recurring campaign, Daily at 09:00, with Allow Lead Re-entry on. Without re-entry, each customer gets the campaign once in a lifetime, and the following year there's no birthday message.
Each campaign uses one channel. Here, the main path is WhatsApp; the email is ready in Ready to copy and in Variations.
On BIP Lite, each run reserves the segment's count at that moment from the month's balance. Since the segment holds only that day's birthdays, each run uses very little. If the balance doesn't cover everyone, that day's run doesn't go out: nobody receives part of the campaign.
Step by step
1. Create the date and city fields
- In Settings → General, go to Fields and click Add Field.
- In Field Type, choose Date. In Field Name, type Date of birth and click Save.
- Click Add Field again, choose Location, type City and click Save.
The City field is what lets you filter by region. First / Last Location stays empty for anyone who comes in through a spreadsheet or the API; a Location field stores the city from your spreadsheet.

Screenshot coming soon
2. Bring in your customers with their date of birth
- In Leads, click Import Leads and upload the spreadsheet. The template is in Ready to copy.
- In Map Columns, link the date column to Date of birth and the city column to City, under Custom Fields.
- In Validate Data, leave Default Country Code set to Brazil (+55) and, in Tags, add the batch tag, such as
aurora-customers. - Click Next Step, then Import N Record(s), and wait for Import Complete.
Write the date as dd/mm/yyyy (day first) or yyyy-mm-dd, and the city with the state, like Curitiba, PR. If your list only has the day and month, fill in any year, such as 2000: Birthdate mode ignores the year. Anyone already in BIP with the same email or phone is updated, not duplicated.

Screenshot coming soon
3. Build the segment of today's birthdays
- In Segments, click New Segment. In Settings, set the Name to Today's birthdays · WhatsApp and click Save.
- Click 0 filter(s) selected to open the Filter Editor. Click Add Criteria → Field and choose Date of birth.
- In Operator, choose Equals.
- Click Value. In Date Mode, switch on Relative. Leave Relative Time at
0Days and switch on Birthdate. GMT Offset already comes with the account's time zone: for Brasília,-03:00. Preview shows only the day and month, and Value now shows Today. - Click Add Criteria → Field → City (Geo), with In radius. In Select Region, search for
Curitiba, set Radius to30and Unit tokm, and click Close. - Click Add Criteria → Phone, with Starts with and the value
+55. This way, WhatsApp goes only to people with a Brazilian number, and you don't spend balance on contacts without a phone. - In Match, choose All (AND). Click Close, check N matches of T and click Save.
On a day with no birthdays, the count is 0, and the rule is still correct. The radius selects the cities whose center falls inside the circle: location in BIP is always by city.

Screenshot coming soon
4. Create the WhatsApp template
- In WhatsApp, open the Templates tab and click Create template.
- In Identity, fill in Name (lowercase)
aurora_aniversario_sobremesa_en, Category Marketing and Language English (US). - In Header, choose Text and paste the header. In Body, paste the text and fill in the
{{1}}sample withMarina. In Footer, paste the footer. - In Buttons, add a Quick reply Book a table and a URL See the menu, with your menu's address.
- Click Save Template and wait for the Approved status.
The full text is in Ready to copy. The coupon is fixed text in the body: the same for everyone, with no extra field.

Screenshot coming soon
5. Create the recurring campaign
- In Campaigns, click New Campaign.
- In Campaign Details, fill in the Campaign Name, choose the 🎂 emoji and write the Description.
- In Schedule Type, choose Recurring. The tab opens on Daily, at 09:00.
- Check the Time and choose the Timezone: for Brasília, BRT (Sao Paulo) (-03:00). Below, BIP spells out the schedule: Every day at 09:00.

Screenshot coming soon
6. Turn on re-entry: it's what guarantees next year
This is the step people forget most. With Allow Lead Re-entry off, the default, each contact receives the campaign only once, forever. Marina gets her birthday message this year and, on her next birthday, BIP holds the message back.
- In Lead Re-entry Window, switch on Allow Lead Re-entry.
- In Cooldown Period (Days), type
300.
With 300 days, nobody receives it twice in the same year, and next year's message, 365 days later, goes through with room to spare. Use a value well below 365: with the exact number, a difference of a few minutes in the send time can hold back next year's birthday message.

Screenshot coming soon
7. Choose the channel, the template and the segment
- In Channel, click WhatsApp.
- In Template, choose
aurora_aniversario_sobremesa_en. In Phone Number, leave Use account default phone number or choose another number. - In Variable mappings, click Add variable mapping. In Variable, choose Body · {{1}}; in Lead field, choose first name.
- In Segments, switch on Today's birthdays · WhatsApp.

Screenshot coming soon
8. Test and activate
- Click Save → Save Draft.
- Click Test Campaign, type the phone or email of one of your contacts in BIP, ideally yourself, and click Send Test. The message arrives on that contact's WhatsApp, with their first name, and doesn't use any sends.
- Click Save → Save and Activate and confirm with Activate Recurring Campaign.
The campaign becomes Active and runs every day at 09:00. The test doesn't have to happen on your birthday: it goes to the contact you choose.

Screenshot coming soon
Ready to copy
Spreadsheet template
Copy it, paste it into a text editor and save it as aurora-customers.csv. First, create the Date of birth (type Date) and City (type Location) fields.
name,email,phone,tags,date_of_birth,city Marina Alves,marina.alves@exemplo.com,41 99876-5432,customer,12/05/1990,"Curitiba, PR" Tiago Pereira,tiago.pereira@exemplo.com,41 98765-4321,customer,03/11/1985,"São José dos Pinhais, PR" Sofia Costa,,41 99123-4567,customer,27/08/1994,"Colombo, PR" Rafael Lima,rafael.lima@exemplo.com,,customer,15/02/1988,"Curitiba, PR"
| Column | Lead field |
|---|---|
| name | Name |
| phone | Phone |
| tags | Tags |
| date_of_birth | Date of birth (custom field, Date type) |
| city | City (custom field, Location type) |
Segment
Name: Today's birthdays · WhatsApp. Combine the three criteria with All (AND).
| Criterion | Operator | Value |
|---|---|---|
| Field → Date of birth | Equals | Relative: 0 Days, Birthdate on |
| Field → City (Geo) | In radius | Search Curitiba, Radius 30, Unit km |
| Phone | Starts with | +55 |
If your whole customer base is in the region, remove the city criterion. Contacts without City filled in are left out of the radius criterion.
Campaign
| Option | Value |
|---|---|
| Schedule Type | Recurring |
| Frequency | Daily |
| Time | 09:00 |
| Timezone | BRT (Sao Paulo) (-03:00) |
| Allow Lead Re-entry | On |
| Cooldown Period (Days) | 300 |
| Channel | |
| Template | aurora_aniversario_sobremesa_en |
| Segments | Today's birthdays · WhatsApp |
Daily birthday · WhatsApp Dessert on the house for everyone whose birthday is today. Recurring, daily at 09:00; each customer gets it once a year.
aurora_aniversario_sobremesa_en · MARKETING
Buttons: Book a table is a Quick reply; See the menu is a fixed URL, like https://www.exemplo.com.br/cardapio. A tap on Book a table within 24 hours of the send counts as a reply in the campaign's Reply Rate, and the booking continues in the WhatsApp Business app.
| Variable in the campaign | Lead field | Sample value |
|---|---|---|
| Body · {{1}} | first name | Marina |
In Emails Templates, click New Template. In Settings, set the Name to Birthday · Padaria Aurora, choose English as the Language and paste the Subject and the Preview. Build the blocks in this order:
| Order | Block | Suggested setting |
|---|---|---|
| 1 | Add Image | Photo of a house dessert |
| 2 | Add Heading | Birthday wishes with the first name |
| 3 | Add Text | Two short paragraphs, with the coupon |
| 4 | Add Button | See the menu, with Width at 50 |
| 5 | Add Signature | Simple, with the bakery's name and website |
Wherever you see [@first name], type @first, choose lead.firstName() and use friend as the Fallback Value.
Happy birthday, [@first name]! Dessert is on us 🎂
Stop by Padaria Aurora in the next 7 days and pick a sweet treat on us.
Happy birthday, [@first name]! 🎉
Today is all about you, and Padaria Aurora wants to celebrate with you. Come have a coffee with us in the next 7 days: dessert is on us.Show this email at the register or mention the coupon BDAYEMAIL. One dessert per person, in store.
See the menu
How to measure
- Before sending: open the segment. The N matches of T count shows how many customers have a birthday today.
- To check the rule: in the date's Value, change Relative Time to the number of days left until the birthday of a customer you know, close the editor and see if they show up. Then set it back to
0and save. - After the runs: in Campaign Stats, Processed (N runs) adds up every day. Track Sent, Delivered, Read Rate and Reply Rate.
- Re-entry: in Recipient Interactions, filter by Rejected. The reason Lead has already received this campaign means re-entry is off.
- At the register: count the
BDAYWHATSandBDAYEMAILcoupons each week. One coupon per channel shows which one brings more people into the bakery.
Variations
Email or WhatsApp
- Email only: create the email template from Ready to copy and, in step 7, choose Email in Channel and pick the Email Template. In the segment, remove the Phone criterion. Email works on any plan, including the free one.
- Both channels, one message per person: in the campaign list, click Duplicate. In the copy, switch the Channel to Email, choose the Email Template and, in Segments, use the second segment. The copy keeps the schedule and the re-entry settings. Each customer gets it through one channel only:
| Segment | Criteria |
|---|---|
| Today's birthdays · WhatsApp | Date of birth (Birthdate) + City (Geo) + Phone Starts with +55 |
| Today's birthdays · email | Date of birth (Birthdate) + City (Geo) + Tags Does not include any whatsapp |
To split the channels, tag everyone who has a phone with whatsapp at import: in the sample spreadsheet, write "customer,whatsapp" in the tags column of every row with a phone. Rafael has no phone and no tag: he gets his birthday wishes by email.
First-purchase or customer anniversary
Birthdate mode works on any Date field. Create a field such as First purchase or Customer since, fill it in at import and use the same rule: Equals, Relative 0 Days, Birthdate on. Creation Date doesn't have Birthdate mode and, for anyone who came in through a spreadsheet, it records the import date; that's why the real date belongs in a field.
With Easy Auth Wi-Fi
If you use Easy Auth Wi-Fi, the date of birth can come straight from EasySpot, with no spreadsheet. See Today's birthdays on the Easy Auth hotspot.
Frequently asked questions
Why didn't the customer get a message on their next birthday?
The Lead Re-entry Window was off. When it's off, each contact receives the campaign only once, forever. Pause the campaign, switch on Allow Lead Re-entry with a Cooldown Period (Days) of 300 and activate it again.
Do contacts without a date of birth enter the segment?
No. The criterion only finds contacts with Date of birth filled in. Complete the spreadsheet and import it again: anyone already in BIP is updated by email or phone, not duplicated.
Can I send only to people who live in the restaurant's neighborhood?
Not by location: it's always by city, and the radius selects cities. Store the neighborhood in a String field (for example, Neighborhood) or in a tag at import, and filter by Field or Tags.
How many sends does the campaign use?
On each run, the campaign reserves the segment's count at that moment from the month's balance: that day's birthdays. If the balance doesn't cover everyone, that day's run doesn't go out and nobody receives it. Track your usage in Settings → Billing.
See also
- Today's birthdays on the Easy Auth hotspot
- Segments: the 10 criteria to filter contacts
- Campaigns: one-time, recurring and API-triggered
- WhatsApp templates: create, sync and use
- Email editor: blocks, variables and preview
- Import contacts from a spreadsheet
- Plans and limits: sends, capacity and pricing
- Birthdays on the BIP website
- BIP for restaurants