The system supports different methods depending on the data types used by variables. To learn more about campaign variables, please see this article.
String methods
- ToUpper (string): changes all letters to uppercase.
Example:
${Recipient.OnlyStandardFirstName} — Alex
${ToUpper(Recipient.OnlyStandardFirstName)} → ALEX
- ToLower (string): changes all letters to lowercase.
Example:
${item.AdditionalData.Colour} — Red
${ToLower(item.AdditionalData.Colour)} → red
- Capitalize (string): capitalizes the first letter of the first word in the string.
Example:
${item.Description} — wide black belt
${Capitalize(item.Description)} → Wide black belt
- CapitalizeAllWords (string): capitalizes the first letter of each word.
Example:
${item.Description} — wide black belt
${CapitalizeAllWords(item.Description)} → Wide Black Belt
- ReplaceIfEmpty (string1, string2): displays string 1. If empty, it displays string 2.
Example:
${Recipient.OnlyStandardFirstName} — "" (empty string)
${Recipient.AdditionalData.Nickname} — CoolGuy93
${ReplaceIfEmpty(Recipient.OnlyStandardFirstName, Recipient.AdditionalData.Nickname)} → CoolGuy93
- IsEmpty (string): checks if the string is empty.
Example:
${Recipient.OnlyStandardFirstName} — Alex
${IsEmpty(Recipient.OnlyStandardFirstName)} → true
- Length (string): counts the number of characters in the variable.
Example:
${Recipient.LastName} — Smith
${Length(Recipient.LastName)} → 5
● Truncate (string, character count): cuts off the string to the defined length and adds an ellipsis at the end. This ellipsis is counted as three characters.
Example:
${item.Description} — item description
${Truncate(item.Description, 10)} → item de...
To remove a fixed quantity of characters from the end of a string, use the Length() function. X number of characters are removed from the end and three are added as an ellipsis instead.
For example, the method below removes the last seven characters:
${item.Description} — Ruby ring No.123
${Truncate(item.Description, Length(item.Description) — 4)} → Ruby ring...
- Substring (string, start, length (optional)): returns a substring that starts from the start character and contains the character count specified in Length().
If Length() is omitted, the whole string is returned:
${Recipient.LastReceivedPromoCode.WithTypeUnique.Value} — BGDK4444
${Substring(Recipient.LastReceivedPromoCode.WithTypeUnique.Value, 1, 4)} → BGDK
Use the Length() function if you want to cut off a fixed number of characters from the end of a string.
For example, to remove the last four characters:
${Recipient.LastReceivedPromoCode.WithTypeUnique.Value} — ABCDE1234
${Substring(Recipient.LastReceivedPromoCode.WithTypeUnique.Value, 1, Length(Recipient.LastReceivedPromoCode.WithTypeUnique.Value) — 4)} → ABCDE
To return the last four characters:
${Substring(Recipient.LastReceivedPromoCode.WithTypeUnique.Value) — 3)} → 1234
- ChooseRandomText (random string count, but at least one): randomly chooses a string from the list of variables.
${ChooseRandomText("text1″, "text2″, "text3″)} → text2
Methods for numeric values
- FormatDecimal (numeric value, format): formats any numeric values.
Example:
${balance} — 20,000.12
${FormatDecimal(balance, 'N0′)} → 20,000
${FormatDecimal(balance, 'N1′)} → 20,000.1
${FormatDecimal(balance, 'N2′)} → 20,000.12
Please note that this method returns a numeric value as a string. To use it with some other numeric function, each variable must be unformatted.
Example:
${balance} — 20,000.12
${FormatDecimal (balance, 'N0')} → 20,000
${Forms(balance, 'bonus', 'bonuses')} → bonuses
${Forms(balance, 'bonus', 'bonuses')} → bonuses
When combined:
${FormatDecimal(balance, 'N0')}${Forms(balance, 'bonus', 'bonuses')} → 20,000 bonuses
- Forms (numeric value, form1, form2, form3): returns a grammatically correct word form with respect to the numeric value.
Example:
${Recipient.AdditionalData.Age} — 30
${Forms(Recipient.AdditionalData.Age, 'year old', 'years old')} → years old
- AppendForms (numeric value, form1, form2, form3): returns a numeric value and a relevant word form divided by the space character.
Example:
${Recipient.AdditionalData.Age} — 30
${AppendForms(Recipient.AdditionalData.Age, 'year old', 'years old')} → 30 years old
- Floor (numeric value): returns a max integer value that does not exceed the variable.
Example:
${balance} — 10.9
${Floor(balance)} → 10
This method rounds up a numeric value to the nearest integer.
- Ceiling (numeric value): returns a minimum integer value that is more than or equal to the variable.
Example: ceiling (10.6) returns 11.
${balance} — 10.6
${Ceiling(balance)} → 11
- GetRandomNumber (numeric value, numeric value): returns an integer value within a specified range, including the first number.
Example:
${GetRandomNumber(1, 10)}
— returns a random number from 1 to 9.
Methods for date & time
- FormatDateTime (date, format): formats date & time values.
Example:
${CustomerAction.DateTimeWashington} — 03/12/2024 10:30:00
${FormatDateTime(CustomerAction.DateTimeWashington, "d")} → 03/12/2024
For more details on standard and customizable date & time formats, please see the articles linked.
- ToUnixTimeStamp(date) — convert a date to Unix Time Stamp format:
${Order.DateTime} → 03/12/2024 15:00:00
(On a project with UTC+3:00 timezone)
${ToUnixTimeStamp(Order.DateTime)} → 1710255600
You can calculate the number of days between dates:
${Recipient.CustomField.Date1} → 03/07/2024 00:00:00
${Recipient.CustomField.Date2} → 03/12/2024 00:00:00
${(ToUnixTimeStamp(Recipient.CustomField.Date2)-ToUnixTimeStamp(Recipient.CustomField.Date1)) / 86400} → 5
${(ToUnixTimeStamp(Recipient.CustomField.Date1)-ToUnixTimeStamp(Recipient.CustomField.Date2)) / 86400} → −5
You can calculate the number of hours between dates:
${Recipient.CustomField.Date1} → 03/12/2024 12:00:00
${Recipient.CustomField.Date2} → 03/12/2024 22:00:00
${(ToUnixTimeStamp(Recipient.CustomField.Date2)-ToUnixTimeStamp(Recipient.CustomField.Date1)) / 3600} → 10
${(ToUnixTimeStamp(Recipient.CustomField.Date1)-ToUnixTimeStamp(Recipient.CustomField.Date2)) / 3600} → −10
- AddDays (date, numeric value): returns the date value that is the sum of the date and the specified quantity of days.
Example:
The resulting date is earlier or later by X days:
${Formatdatetime(Recipient.BirthDate, "dd/MM") } — 05/03
${Formatdatetime(AddDays(Recipient.BirthDate, 5), "dd/MM") } → 10/03
${Formatdatetime(AddDays(Recipient.BirthDate, −5), "dd/MM") } → 05/03
- GetDay (date): returns the day in the date as a numeric value. You can apply arithmetic methods to this value.
Example:
${Recipient.BirthDate} — 03/10/1984 00:00:00
${GetDay(Recipient.BirthDate)} → 10
- GetMonth (date): returns the month in the date as a numeric value. You can apply arithmetic methods to this value.
Example:
${Recipient.BirthDate} — 03/15/1993 0:00:00
${GetMonth(Recipient.BirthDate)} → 3
- GetYear (date): returns the year in the date as a numeric value. You can apply arithmetic methods to this value.
Example:
${Recipient.BirthDate} — 04/20/1975 0:00:00
${GetYear(Recipient.BirthDate)} → 1975
${Message.SendingDateTime} — 10/20/2024
${GetYear(Message.SendingDateTime)} → 2024
Methods for collections
- TableRows (collection, quantity of columns): transforms a collection of elements into a set of rows with cells. This can then help create HTML tables.
For more information, please refer to this article.
- Count (collection): returns the number of elements in a collection / list.
Example:
${Count(Order.Items)} → 5
— corresponds to the five line items in the order.
- collection.Take(N): returns the first N elements of the collection.
Example:
Products.GetBySegment("WomenWear").Take(3)
— collection of a maximum of three line items.
Boolean methods (true/false)
- If (conditional statement, string1, string2): returns string1 if the statement is true or string2 if the statement is false.
Example:
${Order.AdditionalData.FreeShipping} — true
${If(Order.AdditionalData.FreeShipping, "free", "$2″)} → free
Methods for images
● ResizeImage (URL, width, height): resizes images.
You can send test emails to check how this method works. Images are resized as emails are composed.
Example:
<img src="${ResizeImage(PictureUrl, 200, 100)}">
The method returns the resized image within the specified width and height.
This method does not crop the image and does not change the aspect ratio.
Hash functions
- MD5 (string): returns the MD5 hash value.
${ MD5(Recipient.Email) }
- SHA1 (string): returns the SHA1 hash value.
${SHA1(Recipient.Email)}
- SHA256 (string): returns the SHA256 hash value.
${SHA256(Recipient.Email)}
- SHA512 (string): returns the SHA512 hash value.
${SHA512(Recipient.Email)}
You can use hash tokens as an authentication method in campaigns.
- toBase64(string): encodes using the Base64 algorithm.
${toBase64(Recipient.Email)}
Methods for codes
- processHtml (argument) tracks clicks in the HTML block.
${processHtml('<a href="https...">Hi</a>')}
You can also put your code into an item’s description and get its value using the variable:
${processHtml(Products.SearchInIdentity("c1").GetByValue("2134").Description)}
Please note:
-
The code in the block should not contain any variables. This is not to be confused with an entire block returned using a variable (as in the example with a product description).
-
You can use multiple blocks in one email. The system will record clicks for each of the blocks.
-
Clicks can be viewed in the customer's profile. UTM parameters are also saved.
-
Clicks will not be shown in reports or heatmaps.