Datacop

Datacop

Home
Notes
eCommerce Marketing Techstack
Data Collection Best Practices
Analytical Use-Cases
Bloomreach Engagement
Email & SMS Marketing
CRO & Website Personalization
Archive
About

Structuring Zero-Party Data for Lifecycle Marketing: A Birthday Reminder Use Case

Using Customer-Submitted Data to Power Lifecycle Email Triggers

Samuel Babic's avatar
Samuel Babic
Mar 20, 2025
Cross-posted by Datacop
"🎂 𝗦𝘂𝗽𝗲𝗿𝗽𝗼𝘄𝗲𝗿𝘀 𝗰𝗼𝗺𝗲 𝗶𝗻 𝗮𝗹𝗹 𝗳𝗼𝗿𝗺𝘀. 𝗟𝗶𝗸𝗲 𝗿𝗲𝗺𝗲𝗺𝗯𝗲𝗿𝗶𝗻𝗴 𝘆𝗼𝘂𝗿 𝘀𝗶𝘀𝘁𝗲𝗿-𝗶𝗻-𝗹𝗮𝘄’𝘀 𝗯𝗶𝗿𝘁𝗵𝗱𝗮𝘆 𝗳𝗼𝗿 𝘆𝗼𝘂. For one of the clients, we built a solution that does exactly that - and turns it into an automated customer experience, so the message shows up exactly when you need it. Here’s how it works: 🎁 Customers set up birthday reminders for friends and family via a web-layer - name, date, gift category 📬 Emails go out 10 days before the big day, with personalized gift ideas 🧠 Behind the curtain: Bloomreach reports + Jinja templates that handle multiple birthdays per user It’s a great reminder (oh yes, indeed) that when you ask for the right data in the right way, you don’t need to guess what customers want - they’ll tell you."
- Samuel Babic

About the Author:
Technical Marketing Consultant specializing in web personalization, email automation, tracking and analytics. Focused on bridging strategy and execution to help marketing teams drive measurable business outcomes. Has worked with brands such as Dedoles, Bella & Duke, and Foodora CZ.

In an era where privacy concerns and cookie restrictions are reshaping digital marketing, businesses must find innovative ways to gather customer insights. One of the most effective solutions? Zero-party data - information that customers willingly share in exchange for a more personalized experience.

With this in mind, we helped a client implement a web-layer solution that focuses on capturing valuable customer inputs and turning them into personalized birthday reminder emails. It’s a practical example of how zero-party data can be translated into meaningful lifecycle communication.

How the Birthday Reminder Web Layer Works

Traditional gifting campaigns often rely on seasonal promotions. But what if customers could proactively tell you who they want to shop for - and when? That opens the space for relevant communication that feels helpful rather than purely transactional.

In this use case, we designed a web layer experience that enables customers to set up birthday reminders for their loved ones.

Here’s how the process unfolds:

  1. User Input Collection: The web layer prompts users to enter a recipient’s first name, birthdate, and preferred gift category (e.g., clothing, accessories, footwear).

  2. Email Capture (if needed): If the visitor hasn’t provided their email before, they’re given the option to add it for future reminders.

  3. Personalized Confirmation: Once the information is submitted, the system confirms the setup and encourages users to add more reminders.

  4. Data Storage & Event Creation: Each answer is stored as an event in the customer profile, ensuring future retrieval for email automation.

Image no. 1: Web layer UI
Image no. 2: Custom event for input collection

Smart Automation: Delivering the Right Message at the Right Time

With the data stored in correct format, our automation scenario takes over:

Note: This solution is deployed using Bloomreach Engagement, and the following section explains how to set it up within that platform. While similar results may be achievable with other toolstacks, some limitations may arise if those tools lack equivalent functionality to Bloomreach.

  • Triggering the Reminder: A repeating scenario runs daily at a scheduled time, scanning all customer profiles for birthday reminders set 10 days ahead. Customers with a matching event are then passed through the flow for voucher assignment and email delivery.

  • Custom Email Personalization: Jinja templates are used to tailor each email with the recipient’s name and birthday, while the chosen gift category drives the recommendations shown - making the message feel personal and contextually relevant. There’s one important consideration, though: each customer can set multiple birthday reminders for different people. Handling this kind of multi-entry logic within a single email requires a more advanced setup. In the next section, we’ll look at how we addressed this challenge using Bloomreach reports.

💡 Pro Tip: Using Reports as a Scalable Workaround for Multi-Entry Personalization in Jinja

The email templates leverage Jinja to dynamically render content for each upcoming birthday. A core challenge in this setup was enabling multiple reminders per customer - a scenario where a single user might create entries for several different people (e.g., a partner, sibling, and colleague).

In Bloomreach Engagement, expression functions like aggregates or running_aggregates are limited in handling nested or repeated data structures. Since each customer could submit multiple reminders - each with a different name, birth date, and category - we needed a more flexible solution.

To address this, we implemented a custom report-based data layer. Each reminder is saved as a dedicated event, and a central report stores these entries using the customer’s email address as the ID key. This setup effectively acts as a quasi-database, allowing us to:

  • Maintain multiple reminders per customer

  • Store and retrieve each reminder as a discrete object

  • Avoid flattening or overwriting data in expressions

This design ensures high fidelity in personalization and makes it possible to iterate over every reminder tied to a given customer during Jinja rendering.

Simplified Jinja Template:

{% set reminders = report_value_by_key('REMINDER_REPORT', customer.email) %}

{% set target_date = (time + 10 * 24 * 60 * 60) | int %}
{% set target_day = target_date | from_timestamp('%d') %}
{% set target_month = target_date | from_timestamp('%m') %} 

{% for birthday_timestamp, data in reminders.items() %}

{% set bday_day = birthday_timestamp | from_timestamp('%d') %}
{% set bday_month = birthday_timestamp | from_timestamp('%m') %}

{% if bday_day == target_day and bday_month == target_month %}
{% for name, preferences in data.items() %}

🎁 {{ name }}’s birthday is on {{ bday_day }}.{{ bday_month }} — here are {{ preferences.category }} gift ideas with your exclusive discount.

{% endfor %}
{% endif %}
{% endfor %}

This logic supports:

  • Multiple recipients per customer

  • Time-based filtering and targeting

  • Dynamic rendering without additional campaign branching

Note: While Bloomreach reports have a known scope limit of 10,000 records visible in the Reports UI, this appears to be primarily a display limitation rather than a strict data cap. In practice, entries beyond this threshold may not be accessible through the report interface, but they can still be referenced in Jinja logic or used in scenarios. While this behavior isn’t formally documented in detail, we've observed that data beyond the visible limit is preserved and remains functional in live use cases — making reports a workable option for storing and accessing larger sets of structured inputs.

Real-World Performance: 2x Higher Engagement Than Top Newsletter Segments

Since its launch, this birthday reminder flow has shown promising results. While it acts more like a personalized service than a traditional marketing campaign, engagement metrics clearly show its impact. The average click-to-delivered rate of this automated flow is around 4 to 7 times higher than the client’s typical newsletter performance.

It’s important to note that the flow only targets users who interacted with the birthday reminder web layer — a naturally more engaged subset of the audience. Still, even when compared to the most active newsletter recipients, the flow performs about twice as well in terms of click-through rate.

Final Thoughts

This birthday reminder use case demonstrates how zero-party data, when captured and activated thoughtfully, can evolve into a scalable lifecycle touchpoint that delivers both customer value and measurable business outcomes. By combining an on-site weblayer with Bloomreach’s automation and personalization features, we built a reminder system that reaches customers at the right time.

While built around birthday reminders, this logic can be applied to other time-based or intent-driven interactions where personalization and timely communication are key.

As privacy regulations and customer expectations continue to shift, brands that invest in collecting and activating zero-party data will be best positioned to deliver personalization that feels timely, respectful, and useful.


If you found this post valuable…

We hope this article was valuable to you. If you enjoyed it, don’t miss out on future articles—subscribe for free and have our latest content delivered straight to your inbox.

If you'd like to discuss any aspect of eCommerce technical marketing with us or explore potential collaboration, feel free to schedule a meeting using the link below:

Book a meeting

No posts

© 2025 Datacop · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture