Tracking customer birthdays

Tracking customer birthdays

mariannemca
Excursionist
38 0 10

Hi Community. When customers sign up for our newsletter using shopify forms, I have a metafield for capturing their birthdays. It makes me include the year also (which I would prefer not to but don't seem to have an option). How can I then pull a report of customers with birthdays coming up this month? The challenge is when I do the filters, the date format includes the year which makes it a bit tricky to just show birthdays this month... Thanks for any help!

Replies 7 (7)

goldi07
Navigator
376 41 67

Hello @mariannemca You're facing a common challenge with birthday tracking in Shopify. Here's how to solve it:

 

Solutions:
Option 1: Using Shopify Admin Filters (Manual Approach)
1. Go to Customers in your Shopify admin

2. Click "Add filter" → "Other filters" → "Customer metafield"

3. Select your birthday metafield

4. For current month birthdays, use these date ranges (adjust for current month):

. birthday >= 2024-05-01 AND birthday <= 2024-05-31

. (Replace 2024 with current year and 05 with current month)

Limitation: You'll need to update the year manually each year.

 

 

Option 2: Using Shopify Reports (More Automated)
1. Create a custom report using Shopify's Report Builder:

. Select "Customers" as the data source

. Add filters for your birthday metafield

. Use the formula MONTH(birthday_metafield) = MONTH(TODAY())

 

 

Option 3: Using ShopifyQL (For Shopify Plus)

SELECT email, birthday_metafield
FROM customers
WHERE MONTH(birthday_metafield) = MONTH(TODAY())
ORDER BY DAY(birthday_metafield)

 

Option 4: Using an App
Consider apps like:

. Birthday Mail

. Loyalty & Rewards apps with birthday features

. Metafield reporting apps

 

Option 5: Custom Liquid Code (For Theme/Email)
If you need to display this in your theme or emails, you could use Liquid code that checks the month/day only.

 

 

Best Long-Term Solution:
Consider modifying your form to collect just month/day (as text or separate fields) rather than a full date, which would make filtering much easier.

 

Thank you 😊

Was I helpful?

Buy me a coffee


APPS BY US :

Professional Customer Accounts APP


Want to modify or custom changes or bug fix on store . Or Need help with your store? Or -Want Complete Storefront
Email me -Goldi184507@gmail.com - Skype: live:.cid.819bad8ddb52736c -Whatsapp: +919317950519
Checkout Some Free Sections Here
mariannemca
Excursionist
38 0 10

Hi there - thanks for this info. It is incredible how something that should be so straightforward like a birthday is made so complicated by Shopify! I am really keen to go with your first option but the challenge I have is that you say  - birthday >= 2024-05-01 AND birthday <= 2024-05-31 - the challenge I have is in the 'where' logic it is metafields.facts.birth_date >=  and not 'birthday' - am I getting this wrong? because customers will have put in the years they were born in the birth date field... so if i put 2025 - no customers will pull in...

Solutions:
Option 1: Using Shopify Admin Filters (Manual Approach)
1. Go to Customers in your Shopify admin

2. Click "Add filter" → "Other filters" → "Customer metafield"

3. Select your birthday metafield

4. For current month birthdays, use these date ranges (adjust for current month):

. birthday >= 2024-05-01 AND birthday <= 2024-05-31

. (Replace 2024 with current year and 05 with current month)

Limitation: You'll need to update the year manually each year.

goldi07
Navigator
376 41 67

hey  You're absolutely right to point out this issue! Let me clarify and provide a more precise solution for your specific situation with the metafields.facts.birth_date field.

 

The Core Problem
Shopify's date filtering requires a full date (YYYY-MM-DD), but you want to ignore the year when filtering birthdays. This creates challenges because:

. Customers entered their actual birth years (e.g., 1990-05-15)

. Filtering for 2024-05-01 to 2024-05-31 won't match those records

 

Working Solution for Your Metafield

 

Option 1 (Revised): Using Advanced Filters
1. Go to Customers → Click "Add filter" → "Other filters" → "Customer metafield"

2. Select your facts.birth_date metafield

3. Use this exact filter syntax:

facts.birth_date.day >= 1 AND facts.birth_date.month = 5
AND facts.birth_date.day <= 31 AND facts.birth_date.month = 5

 

Why This Works:
. facts.birth_date.month extracts just the month portion (1-12)

. facts.birth_date.day extracts just the day portion (1-31)

. This completely ignores the year value

 

Important Notes:
1. You must use the exact metafield namespace/key (in your case facts.birth_date)

2. For months with fewer than 31 days, you can adjust the day range (e.g., use day <= 30 for April)

3. For February, consider day <= 29 to catch leap year birthdays

 

Alternative Syntax:
You can also use this slightly cleaner version:

facts.birth_date.month = 5 AND facts.birth_date.day >= 1 AND facts.birth_date.day <= 31

 

 

Proof This Works:
If customers have these birthdates:

. 1985-05-15

. 1992-05-03

. 1978-12-25 (December birthday - won't show up)

. 2000-05-30

The filter will show only the May birthdays (first, second, and fourth customers) regardless of their birth years.

 

For Future Automation:
If you're comfortable with Shopify's API, you could create a simple script that:

1. Queries all customers

2. Filters by month/day in code

3. Exports the list

 

 

Thank you 😊

Was I helpful?

Buy me a coffee


APPS BY US :

Professional Customer Accounts APP


Want to modify or custom changes or bug fix on store . Or Need help with your store? Or -Want Complete Storefront
Email me -Goldi184507@gmail.com - Skype: live:.cid.819bad8ddb52736c -Whatsapp: +919317950519
Checkout Some Free Sections Here
mariannemca
Excursionist
38 0 10

Hi, thanks for the clarification but I still am not sure that option works? Once I select WHERE metafields.facts.birth_date (which is in the format with the year in it) - and I get the below options, which do I select before I then paste your syntax?

mariannemca_0-1747141482991.png

 

goldi07
Navigator
376 41 67

Here's how to properly implement the birthday filtering given Shopify's interface limitations:

 

Step-by-Step Solution Using URL Parameters (Works in All Plans)
This bypasses the default date picker and uses Shopify's hidden filter syntax:

 

1. Construct URL Manually
Use this template (replace CAPS with your values):

https://admin.shopify.com/STORE_ID/customers?filter1=metafield.facts.birth_date.month=CURRENT_MONTH_NUMBER&filter2=metafield.facts.birth_date.day>=1&filter3=metafield.facts.birth_date.day<=LAST_DAY_OF_MONTH

 

 

2. Find Your Values:

. STORE_ID: Found in URL when logged into Shopify admin (numbers after /admin/)

. CURRENT_MONTH_NUMBER: 1-12 (May=5, June=6, etc.)

. LAST_DAY_OF_MONTH: 28-31 depending on month

 

 

Example for May:

https://admin.shopify.com/1234567890/customers?filter1=metafield.facts.birth_date.month=5&filter2=metafield.facts.birth_date.day>=1&filter3=metafield.facts.birth_date.day<=31

 

3. Bookmark It
Save this URL and update the month/number each time you need it.

 

 

Why This Works:
. Uses Shopify's hidden filter parameters for metafields

. Ignores the year completely

. Shows only birthdays in specified month/day range

 

 

Alternative Solutions:
A. For Shopify Plus Users (Using ShopifyQL):

SELECT email, metafields.facts.birth_date
FROM customers
WHERE 
  MONTH(metafields.facts.birth_date) = MONTH(TODAY())
  AND DAY(metafields.facts.birth_date) BETWEEN 1 AND DAY(LAST_DAY(TODAY()))

 

B. Manual Export Method:

1. Export all customers (Customers → Export)

2. Open CSV in Excel/Sheets

3. Use formula in new column:
=TEXT(D2,"mm-dd") (where D2=birth_date cell)

4. Filter by current month (e.g., "05-*" for May)

 

C. Recommended App:
Use Birthday Mail ($9.99/mo) for automated birthday tracking and email campaigns.

 

Key Notes:
. The "day <=31" works for all months (Shopify ignores invalid days)

. For February, use "day <=29" to include leap years

. Update the month number in the URL each month

This method gives you precise control over birthday filtering despite Shopify's date format limitations. 

 

Was I helpful?

Buy me a coffee


APPS BY US :

Professional Customer Accounts APP


Want to modify or custom changes or bug fix on store . Or Need help with your store? Or -Want Complete Storefront
Email me -Goldi184507@gmail.com - Skype: live:.cid.819bad8ddb52736c -Whatsapp: +919317950519
Checkout Some Free Sections Here

KennyAtBonify
Excursionist
25 1 2

Hi @mariannemca 👋

If you're looking for an automated way to handle this, you might want to check out the Arigato Workflow Automation app. It's a super flexible tool that lets you set up scheduled tasks — for example, you can create a workflow that runs once a month and automatically exports all customers with a birthday to Google Sheets, or even sends you an email with their details.

If you’d like help getting that set up, feel free to ask! You can also browse other handy use cases in the workflow library here to see what else the app can do.

Hope this helps!

lesterdefreitas
Shopify Partner
32 0 17

I believe there is a pretty standard solution for this in the customer segments templates:

 

lesterdefreitas_0-1749810301182.png

 

I have tested this and the customer is correctly added to the segment. You can combine this with the "Customer joined segment" trigger in Shopify Flow to automate a promotional email with the customer etc. from there.

 

lesterdefreitas_1-1749810355360.png

 

Hope this helps!

 

Lester de Freitas
The Web Elite | Shopify Experts