Structuring Zero-Party Data for Lifecycle Marketing: A Birthday Reminder Use Case
Using Customer-Submitted Data to Power Lifecycle Email Triggers
About the Author:
Marketing Operations 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:
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).
Email Capture (if needed): If the visitor hasn’t provided their email before, they’re given the option to add it for future reminders.
Personalized Confirmation: Once the information is submitted, the system confirms the setup and encourages users to add more reminders.
Data Storage & Event Creation: Each answer is stored as an event in the customer profile, ensuring future retrieval for email automation.
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 marketing operations with us or explore potential collaboration, feel free to schedule a meeting using the link below: