This article describes how you can personalize your emails, pop-ups, and Web Push notifications to enhance customer experience and enrich your analytics.
The SALESmanago platform allows you to personalize the content of your emails, pop-ups, and Web Push notifications, as well as the URLs of links included in such communications. Insert special placeholders (attributes) into the content or a link’s URL, and the system will replace the placeholders with data from the Contact Card to display individual Contact details.
Contents
1. Getting started
Personalization is a powerful marketing tool that allows you to enhance customer experience and enrich your analytics. You can adjust the content received by your customers based on data from their profiles, and you can track their interactions with your marketing communications.
One way to personalize your marketing communications is to use special placeholders, or attributes (taking the following form: $placeholder$), which will be replaced with individual Contact data by the SALESmanago system the moment your communications are sent or displayed to the recipient. Such attributes can be used in the following marketing tools:
- emails,
- pop-ups, and
- Web Push notifications.
In all these tools, personalization attributes can be used in two ways:
- to personalize content,
- to personalize link URLs.
This article provides a full list of attributes (with examples), as well as instructions on how to construct advanced attribute combinations and conditional statements.
IMPORTANT: All attributes (placeholders) are case sensitive. Make sure to insert them in the exact form in which they are provided in the tables.
Additionally, pay close attention to text formatting: the entire placeholder formula requires the exact same formatting.
You can, however, format the entire placeholder formula in any way you want. You can also freely format any text that is not part of the formula.
EXAMPLE | COMMENT |
---|---|
[#if $name$]Dear $name$![#else]Dear Stranger![#end] | This conditional statement will not work because part of the formula ($name$]) has different formatting (underline). |
Hi $name.p1$! | This placeholder will not work because part of the formula (p1) has different formatting (bold). |
Hi $name.p1$! | This placeholder will work, as the entire formula has the same formatting. |
[#if $name$]Dear Customer![#else]Dear Stranger![#end] | This conditional statement will work, as the entire formula has the same formatting. Only text that is not part of the formula is formatted differently. |
[#if $name$]Dear $name.p1$![#else]Dear Stranger![#end] | This conditional statement will work, as the entire conditional statement formula has the same formatting. Only text that is not part of the formula (which includes $name.p1$) is formatted differently. |
TIP: To verify the correct functioning of placeholders or conditional statements, send a number of test emails (preferably, some of the recipients should meet and others should not meet the specified conditions).
2. List of attributes
A. Contact data
Attribute type | Placeholder | Example | Suggested use | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
Content |
||||||||||
$email$ | Please confirm that you want to receive our newsletter at this email address: name@example.com | Content |
|||||||||||
Company | $company$ | We are happy that we can count your company, Acme Corporation, as another satisfied customer. | Content |
||||||||||
Phone number | $phone$ | We may call you at +1 555 444 3333 to confirm your order. | Content/URL | ||||||||||
Street address | $streetAddress$ | Main Street | Content | ||||||||||
City | $city$ | Check out the upcoming events in Anytown! | Content/URL | ||||||||||
Zip code | $zipCode$ | AB 00000 | Content/URL | ||||||||||
Province | $Province$ | See what’s new in California >> | Content/URL | ||||||||||
Country | $country$ | Only this week – free shipping to the USA! | Content/URL | ||||||||||
Birthday | $birthday$ | Today is a special day! 06.01 – your birthday! (format: DD.MM) | Content | ||||||||||
Contact’s detail | $cst.detail_name$ IMPORTANT: Do not use the words “points” or “tier” in detail names because the system may interpret them differently (these words are used in placeholders related to the Loyalty Program). |
We have wonderful toys for your dog! | Content/URL | ||||||||||
Dictionary detail | $cst.dictionary_detail_name.dictionary_property$ IMPORTANT: Do not use the words “points” or “tier” in dictionary detail names because these words are used in placeholders related to the Loyalty Program and the system may misinterpret them. |
Your height: 69.1 inches | Content/URL | ||||||||||
Number of points in a Loyalty Program | $program_name.points$ | You have scored 314 points in our Loyalty Program! | Content; If/else statements | ||||||||||
Loyalty Program tier | $program_name.tier$ | We are pleased to inform you that you have reached the SILVER tier of our Loyalty Program! | Content; If/else statements | ||||||||||
Contact ID | $contactID$ | a254b80b-fac2-4401-b0a1-6eda1bf45ed9 | URL | ||||||||||
Contact’s external ID | $externalId$ | U12345 | URL | ||||||||||
Contact’s scoring | $scoring$ | 420 | If/else statements |
B. Opt-in/opt-out URLs
Attribute type | Placeholder | Example | Suggested use |
---|---|---|---|
BASIC | |||
Opt-in link | $opt-in$ | Click here to confirm your subscription | URL |
Opt-out link | $opt-out$ | Click here to unsubscribe | URL |
ADVANCED | |||
Opt-in link adding a tag to the Contact | $opt-in: TAG_TO_ADD$ | Click here to confirm your subscription | URL |
Opt-in link adding a tag to the Contact and redirecting to a page | $opt-in: TAG_TO_ADD$&redirect=https://… | Click here to confirm your subscription | URL |
Opt-out link removing a tag from the Contact | $opt-out-tags: TAG_TO_REMOVE$opt-out-add-tags: $ | Click here to unsubscribe | URL |
Opt-out link removing a tag from the Contact and redirecting to a page | $opt-out-tags: TAG_TO_REMOVE$opt-out-add-tags: $&redirect=https://… | Click here to unsubscribe | URL |
Opt-out link removing a tag from the Contact, adding a tag to the Contact, and redirecting to a page | $opt-out-tags: TAG_TO_REMOVE$opt-out-add-tags: TAG_TO_ADD$&redirect=https://… | Click here to unsubscribe | URL |
IMPORTANT: The URL address provided for the redirects must include the https:// protocol, e.g., https://www.salesmanago.com/ or https://salesmanago.com/ (NOT: www.salesmanago.com).
IMPORTANT: Remember to run a test to verify the functioning of your opt-in/opt-out link.
EXAMPLE: If you want to test the functioning of both an opt-in link and an opt-out link, create a test Contact with the opt-in status (and, potentially, a tag).
STEP 1: Send two test emails—one with an opt-in link and the other with an opt-out link—to the test Contact.
STEP 2: Click the opt-out link and check if the Contact’s status has changed on the Contact Card (and, potentially, if the redirect works correctly and if any tags have been added/removed). If you have confirmed that everything works as intended, go to step 3.
STEP 3: Click the opt-in link. Check if the Contact’s status has changed on the Contact Card (if a tag has been added; and if the redirect works correctly).
C. External Event data fields
External Event data field | Placeholder formula | Example for External Event: PURCHASE |
---|---|---|
ID | $cst.extEvent.TYPE.eventId$ | $cst.extEvent.PURCHASE.eventId$ |
External ID | $cst.extEvent.TYPE.externalId$ | $cst.extEvent.PURCHASE.externalId$ |
Value | $cst.extEvent.TYPE.value$ | $cst.extEvent.PURCHASE.value$ |
Date | $cst.extEvent.TYPE.date$ | $cst.extEvent.PURCHASE.date$ |
Products | $cst.extEvent.TYPE.products$ | $cst.extEvent.PURCHASE.products$ |
Description | $cst.extEvent.TYPE.description$ | $cst.extEvent.PURCHASE.description$ |
Location | $cst.extEvent.TYPE.location$ | $cst.extEvent.PURCHASE.location$ |
Detail 1 | $cst.extEvent.TYPE.detail1$ | $cst.extEvent.PURCHASE.detail1$ |
Detail 2 | $cst.extEvent.TYPE.detail2$ | $cst.extEvent.PURCHASE.detail2$ |
Detail X | $cst.extEvent.TYPE.detailX$ | $cst.extEvent.PURCHASE.detailX$ |
D. Other purposes
Attribute type | Placeholder | Example | Suggested use |
---|---|---|---|
Coupon | $cst.coupon_name.coupon$ IMPORTANT: When entering the coupon name, pay attention to the letter case. For instance, a placeholder for a coupon called “Spring_Summer” must look as follows: $cst.Spring_Summer.coupon$ | Here’s your discount code: SPRING20 | Content/URL |
Date (long) | $date.long$ | Saturday, 22 Nov 2014 | Content |
Date (short) | $date.short$ | 2023-09-14 | Content |
Sending time (long, with seconds) | $time.long$ | 10:14:12 | Content |
Sending time (short) | $time.short$ | 10:14 | Content |
Initial capitalization (e.g., if the Contact’s name on the Contact Card is “JOHN DOE” or “john doe”, it will be displayed as “John Doe” in the email) | $cap:field_name$ IMPORTANT: Enter the text of a placeholder formula from Table 2.A (Contact data) as the field name. Example for the Company field: $cap:company$Example for first name: $cap:name.p1$ | Dear John, We have wonderful toys for Sammy | Content |
Preview (e.g., if the images are not displayed correctly, view this email in your browser) | $preview$ | https://www.salesmanago.com/email/messageView.htm?conversation=e2c5(…)b9&co=b166(…)7e60 | URL (the placeholder will be replaced with a full preview link) |
SHA1 | sha1($field_name$) | d4c362(…)6165a1 | URL |
3. Advanced options—conditional statements
Condition | Formula | Example |
---|---|---|
IF Use case: If the attribute field is not empty, display text |
[#if $attribute$]TEXT[#else] [#end] |
[#if $name$]Dear $name.p1$[#else] [#end] If the Contact is known by name (the Name field on the Contact Card is not empty), their first name will be displayed. |
IF… ELSE… Use case: If the attribute field is not empty, display text; if it is empty, display other text |
[#if $attribute$]TEXT[#else]OTHER TEXT[#end] |
[#if $name$]Dear $name$[#else]Dear Stranger![#end] If the Name field on the Contact Card is not empty, the Contact’s name will be displayed. Otherwise, the Contact will be addressed as “Stranger.” |
Advanced IF… ELSE… Use case: If the attribute is set to a specific value, display text; otherwise, display other text |
[#if $attribute$='value']TEXT[#else]OTHER TEXT[#end] |
[#if $cst.pet_type$=’dog’]Lots of fun for you doggy![#else]Lots of fun for your best friend![#end] If the Contact has a dog, they will see “Lots of fun for your doggy!” in the email. Otherwise, they will see “Lots of fun for your best friend!”. |
IF… ELSEIF… ELSE… Use case: If the attribute is set to a specific value, display text; else, if the attribute is set to another specific value, display other text; otherwise, display yet another text NOTE: #elseif can only be used once in a single formula. |
[#if $attribute$='value']TEXT[#elseif $attribute$='other_value'] OTHER
TEXT[#else]YET ANOTHER
TEXT[#end] |
[#if $cst.pet_type$=’dog’]Lots of fun for your dog![#elseif $cst.pet_type$=’cat’]Lots of fun for your cat![#else]Lots of fun for your best friend![#end] If the Contact has a dog, they will see “Lots of fun for your dog!” in the email.If the Contact has a cat, they will see “Lots of fun for your cat!” Otherwise, they will see “Lots of fun for your best friend!”. |
TIP: If you want to use more advanced conditions, read the article about Conditional content >>
Submit your review | |