Personalizing WhatsApp Messages with Customer Data
Personalization helps your WhatsApp messages stand out and feel relevant, whether you’re confirming an order, reminding someone about an appointment, or sending a loyalty reward.
In Meiro CDP, personalization happens by mapping user data (like a name, order ID, or link) into pre-approved message templates. These templates contain variable placeholders, such as {{1}}
or {{first_name}}
— which are automatically filled with real values during campaign execution.
While WhatsApp templates themselves do not support scripting inside the text (like logic or loops), Meiro lets you apply LiquidJS outside the template, during the message configuration. This means you can use logic, conditions, and formatting (e.g., default
, limit
, if
) when mapping data to template placeholders, just like in Mobile Push or Email.
The logic is processed before the message is sent, and the final message includes the resolved values, ensuring that personalization is both flexible and compliant with WhatsApp template rules.
You can personalize the following parts of a WhatsApp message:
- Header – Include user-specific images (like an invoice) or text (like a booking ID).
-
Message Body – Add names, order numbers, delivery dates, etc.
-
Call-to-action Buttons – Add deep links that include parameters from user profiles.
Personalization Example
Let’s say you want to send a delivery update after an order is shipped.
Header template structure:
Order #{{1}} confirmed!
Body template structure:
Hi {{1}}, thanks for your order! 🎉
We’re preparing your items for shipment.
You’ll receive updates once it’s on the way.
Expected delivery: {{2}}
You can track your order or view your invoice below.
Mapped attributes:
-
{{1}}
→order_id
→"12345"
{{1}}
→first_name
→"David"
{{2}}
→delivery_datetime
→"30 Jul 2025"
Final message sent:
Order #12345 confirmed!
Hi David, thanks for your order! 🎉
We’re preparing your items for shipment.
You’ll receive updates once it’s on the way.
Expected delivery: 30 Jul 2025
You can track your order or view your invoice below.
[Track Order]
Mapping Attributes in WhatsApp Campaigns
When creating a WhatsApp campaign in Meiro, you’ll:
-
Choose an approved message template that includes placeholders.
-
For each placeholder, select a corresponding attribute from the CDP (like
first_name
,delivery_datetime
, ororder_id
) -
Provide a default value in case the data is missing for a user.
You can use attributes such as:
-
Text (e.g., name, status)
-
Numbers (e.g., points earned, order amount)
-
Dates (formatted delivery_date)
-
Links (e.g., booking URLs or PDFs)
Using Default Values
WhatsApp requires that all placeholders have a value. If a mapped attribute is missing and no default value is provided, the message will fail to send.
To prevent this, you can use a default value that fills in when a piece of data is missing. This ensures your message is still delivered and remains clear for the user.
WhatsApp Template Structure:
Hi {{1}}
, We´re glad to have you with us in {{2}}
!🌍
With fallback:
Hi {{customer_first_name | default: "there"}}
, We´re glad to have you with us in {{geo_country | default: "this part of the world"}}
!🌍
If the name is missing, the message becomes:
Hi there, We´re glad to have you with us in this part of the world!🌍
This way, the message is still friendly, complete, however most importantly, delivered successfully.
Alternative approach:
You can also filter your audience segment to include only users who have all the required attributes.
Learn more about segment filtering → here.
Use Cases: Common Personalization Scenarios
Here are a few common ways to apply personalization in WhatsApp campaigns:
🎉Milestone Celebration Message
Template Structure:
-
Header:
Congratulations, {{1}}! -
Body:
You’ve just earned {{1}} points in our loyalty program.
Keep engaging to unlock even more rewards. -
Footer:
Thank you for being part of our community. -
Button (CTA):
View Rewards → https://loyalty.meiro.com/user/{{3}}
Mapped Attributes:
-
-
{{1}}
→first_name
→ Sarah -
{{2}}
→loyalty_points
→ 1200 -
{{3}}
→user_id
→ 94738291
-
Final Message:
Congratulations, Sarah!
You’ve just earned 1200 points in our loyalty program.
Keep engaging to unlock even more rewards.
[View Rewards]
🛒 Abandoned Cart Reminder
Template Structure:
-
Header (Text):
Still thinking it over? -
Body:
Hey {{1}}, you left a {{2}} in your cart.
Complete your purchase while it’s still in stock. -
Footer:
Need help? We’re here. -
Button (CTA):
Resume Checkout → https://shop.com/cart/{{3}}
Mapped Attributes:
-
{{1}}
→first_name
→ James -
{{2}}
→cart_product_name
→ Wireless Charger -
{{3}}
→cart_id
→ 839123
Final Message:
Still thinking it over?
Hey James, you left a Wireless Charger in your cart.
Complete your purchase while it’s still in stock.
[Resume Checkout]
✈️ Travel Check-In with Deep Link
Template Structure:
-
Header (Media):
Image of a plane or boarding pass -
Body:
Your check-in is ready, {{1}}.
Click below to confirm your flight to {{2}}. -
Footer:
Safe travels! -
Button (CTA):
Check In Now → https://travel.com/checkin/{{3}}
Mapped Attributes:
-
{{1}}
→first_name
→ David -
{{2}}
→destination_city
→ Berlin -
{{3}}
→booking_id
→ 5432110
Final Message:
(Image header)
Your check-in is ready, David.
Click below to confirm your flight to Berlin.
[Check In Now]
Testing Personalization Messages
Before sending your campaign, always test personalization carefully:
-
Use the Preview to verify how messages will look for real profiles.
-
Send test messages to internal users or test accounts.
-
Check that all variables resolve correctly.
-
Review logs for failed messages due to missing data.
No Comments