Introduction

Merge Tags are used inside mailing contents as placeholders for personalized output.

Merge Tags can be used in:

  • the subject
  • the sender alias
  • the recipient alias
  • the html version
  • the text version

Notation

The syntax definitions are given in general form. The following notations are used for syntax definitions:

notation definition
[ something ] „something“ is optional.
alternative1 | alternative2 A logical or, marking alternatives.
( something ) Group „something“, used in conjunction with |, * and +.
* The asterisk shows that zero or more repetitions of the preceding expression may be present.
+ The plus sign shows that one or more repetitions of the preceding expression may be present.
code Literal merge tag code is shown in a fixed-width font with a light gray background.
placeholder Placeholders are printed in italics in the same format as literal code. They are further explained in the „Description“ section of each tag.

Basic merge tags

Properties
Syntax [[namespace|property [ |fallback]]]
Description Displays the value of a property of the mailing, the contact or the account.

  • namespace is one of CONTACT, ACCOUNT, and MAILING.
  • property identifies the property to display, e.g. the name of the contact field for the namespace CONTACT.
  • fallback is an optional default value to use if the property is not set.
Example
sender / recipient alias yes
subject yes
text / html yes
Open (tracking) pixels
Syntax [[OPEN-PIXEL]]
Description Generates a URL that returns an tiny open pixel to register opening events.
Example
sender / recipient alias no
subject no
text / html yes
Unsubscribe links
Syntax [[UNSUBSCRIBE]]
Description Generates an unsubscribe URL.
Example
sender / recipient alias no
subject no
text / html yes
„Update profile“ links
Syntax [[UPDATE-PROFILE]
Description Generates an update profile URL.
Example
sender / recipient alias no
subject no
text / html yes
Online version links
Syntax [[ONLINE-VERSION]]
Description Generates an online version URL which is also called rescue link to preview the mailing content in the browser.
Example
sender / recipient alias no
subject no
text / html yes
Trackable links
Syntax [[LINK|url]]
Description Generates a trackable link that redirects to url.
Example
sender / recipient alias no
subject no
text / html yes
Trackable links with tags
Syntax [[LINK|url|tags]]
Description Generates a trackable link that redirects to url and maps the provided tags to the link in reports. Note that the tags must be separated by #. The tag names must be alphanumeric.
Example
sender / recipient alias no
subject no
text / html yes
Conditionals
Syntax [[IF|condition|namespace|property]]

( [[ELSE-IF|condition|namespace|property]]
)*
[ [[ELSE]]
]
[[/IF]]
Description Includes template parts conditionally based on the value of a property

  • namespace is the namespace of the property. Valid values are TRANSACTION, CONTACT, ACCOUNT, and MAILING.
  • property identifies the property to test against. When namespace is TRANSACTION, this is a dot-separated JSON path. For CONTACT, ACCOUNT, and MAILING, it is the name of the respective property.
  • condition is the condition to test against the specified property. See Conditionals for a list of supported test conditions.
Example
This will print „he“ for male contacts, „she“ for female contacts and „they“ when GENDER is not set for the contact.
sender / recipient alias no
subject no
text / html yes

Transaction merge tags

See Transactions on how to provide content to these merge tags.

Example transaction content:

{
  "order": {
    "id": "2418",
    "date": "2014-05-28 11:34:21",
    "url": "http://www.my-shop.com/order/2418?action=status",
    "items": [
      {
        "price": 20,
        "quantity": 4,
        "product": "product a"
      },
      {
        "price": 25,
        "quantity": 2,
        "product": "product b",
        "category": "category b"
      },
      {
        "price": 10,
        "quantity": 3,
        "product": "product c"
      }
    ]
  },
  "currency": "EURO",
  "sum": 160
}

Reading transaction attributes
Syntax [[ [ stringfunc| ] TRANSACTION|path [ |fallback ] ]]
Description Displays a transaction attribute, with optional default value and optional text transformation. The placeholders work as follows:

  • path is the path of a primitive (i.e. non-array, non-object) transaction attribute. Path elements are separated using a dot. Example: [[TRANSACTION|order.date]] will yield the result „2014-05-28 11:34:21“ for the example transaction above.
  • fallback is a default value to use if the attribute is not present in the transaction. Example: [[TRANSACTION|order.id|0]] will yield „0“ for the example transaction above.
  • stringfunc is a text transformation as defined in String functions.
sender / recipient alias no
subject no
text / html yes
Iterating lists
Syntax [[LIST|TRANSACTION|path|alias
[ |ORDER-BY('relative_path', ( DESC | ASC ) ) ]
[ |RANGE( [ from ] , [ to ] ) ]
]]

[[ITEM|alias|path2 [ |fallback ] ]]

[[/LIST]]
Description [[LIST|TRANSACTION]] loops over the items of a JSON array in the transaction content. The placeholders are defined as follows:

  • path is the path of the JSON array within the transaction. Path elements are separated with dots. Example: 'order.items'
  • alias is the name to bind to the current item inside the loop body.
  • relative_path is a JSON path (relative to the current item) that identifies the attribute to order by. Example: ORDER-BY('price', ASC) will order the items in the example transaction content by their price attribute, from lowest to highest.
  • from and to are inclusive, 1-based item positions that define which range of items to select. Note that either or both may be omitted.
  • path2 is a JSON path (relative to the current item) that identifies the attribute to display. Example: [[ITEM|i|product]] will display the value of the product attribute of each item.
  • fallback is a default value to display if the item does not contain the referenced attribute. Example: [[ITEM|i|category|none]] will display the value of the attribute category of each item, or „none“ if the attribute is not set for the item.
Example
<table border="1">
<tr>
  <th>quantity</th>
  <th>item</th>
  <th>category</th>
  <th>price</th>
</tr>
[[LIST|TRANSACTION|order.items|i|ORDER-BY('quantity', DESC)]]
<tr>
  <td>[[ITEM|i|quantity]]</td>
  <td>[[ITEM|i|product]]</td>
  <td>[[ITEM|i|category|none]]</td>
  <td>[[ITEM|i|price]] [[TRANSACTION|currency]]</td>
</tr>
[[/LIST]]
<tr>
  <td colspan="3"><strong>total</strong></td>
  <td>[[TRANSACTION|sum]] [[TRANSACTION|currency]]</td>
</tr>
</table>

For the example transaction above, this will produce the following table:

quantity item category price
4 product a none 20 EURO
3 product c none 10 EURO
2 product b category b 25 EURO
total 160 EURO
sender / recipient alias no
subject no
text / html yes
List item indexes
Syntax [[ITEM-INDEX|alias|start]]
Description Used inside the body of a [[LIST-construct.

  • alias is the name the list item is bound to inside the loop.
  • start is the base for counting, i.e. the index of the first item of the list.
Example
will produce the following output:
sender / recipient alias no
subject no
text / html yes
Trackable links with personalization
Syntax [[LINK|"
([ link_part ]
[
[ [ +| ] TRANSACTION|path [ |fallback ] ] ])+ "]]
Description Generates a trackable link that redirects to a URL that was personalized using transaction attributes.

  • link_part is a constant substring of the URL to construct.
  • path is the JSON path of a transaction attribute.
  • fallback is a default value to use if the transaction does not contain the attribute referenced by path.
  • Adding +| before TRANSACTION will prevent Maileon from url-encoding the attribute value. Use this when the transaction attribute contains complete URLs or URL parts that should not be escaped (e.g. slashes in subpaths).
Example [[LINK|"http://www.xqueue.com/[TRANSACTION|order.id]/foo"]] will generate a link that redirects to http://www.xqueue.com/2418/foo given the example transaction above.
[[LINK|"[+|TRANSACTION|order.url]"]] will generate a link that redirects to http://www.my-shop.com/order/2418?action=status given the example transaction above.
sender / recipient alias no
subject no
text / html yes
Conditionals on transaction properties
Syntax [[IF|condition|TRANSACTION|path]]

( [[ELSE-IF|condition|TRANSACTION|path]]
)*
[ [[ELSE]]
]
[[/IF]]
Description Includes template parts conditionally based on the value of a transaction attribute. Also see the documentation for the general form of if statements.

  • path is the path of the attribute to perform the conditional computation on. Path segments are separated by dots.
  • condition is the condition to test against the transaction attribute. See Conditionals for a list of supported test conditions.
Example
For the example transaction, this will print „Your total is 160 €.“.
sender / recipient alias no
subject no
text / html yes
Conditionals on JSON array items
Syntax [[IF|item-condition|ITEM|alias]]

( [[ELSE-IF|item-condition|ITEM|alias]]
)*
[ [[ELSE]]
]
[[/IF]]
Description Includes template parts conditionally based on the value of a JSON array item. Can only be used inside a list construct.

  • alias is the alias of the item inside th eloop.
  • item-condition is an item-specific condition to test against the item. See Conditionals.
Example
For the example transaction, this will print:
sender / recipient alias no
subject no
text / html yes

String functions

These functions transform strings. Input for the examples is 'EURO'.

function description syntax example result
REPLACE perform string substitution [[REPLACE('R','X')|TRANSACTION|currency]] EUXO
CAP-FIRST capitalize the first word [[CAP-FIRST|TRANSACTION|currency]] EURO
CAPITALIZE capitalize all words [[CAPITALIZE|TRANSACTION|currency]] EURO
CSV-COUNT count the number of comma-separated fields [[|TRANSACTION|currency]] 1
HTML escape all html entities [[HTML|TRANSACTION|currency]] EURO
LENGTH count the number of characters [[LENGTH|TRANSACTION|currency]] 4
LOWER-CASE replace all letters with their lower-case counterparts [[LOWER-CASE|TRANSACTION|currency]] euro
SUBSTRING return part of the string [[SUBSTRING(1,2)|TRANSACTION|currency]] U
TRIM remove leading and trailing white space [[TRIM|TRANSACTION|currency]] EURO
UNCAP-FIRST lower-case the first letter of the first word [[UNCAP-FIRST|TRANSACTION|currency]] eURO
UPPER-CASE upper-case the whole string [[UPPER-CASE|TRANSACTION|currency]] EURO
URL perform url escaping [[URL|TRANSACTION|currency]] EURO

Conditionals

The following table shows the available conditional functions („test functions“) for use in [[IF...]] constructs:

name description example
CONTAINS test if a string attribute contains a constant string input: 'Maileon'
CONTAINS('l') = true
CONTAINS('m') = false
CONTAINS-IGNORE-CASE test if a string attribute contains a constant string, case insensitive input: 'Maileon'
CONTAINS-IGNORE-CASE('l') = true
CONTAINS-IGNORE-CASE('m') = true
CONTAINS-ANY test if a string contains any of a number of constant strings input: 'Maileon'
CONTAINS-ANY('m','e','x') = true
CONTAINS-ANY('mail','S','xkcd') = false
CONTAINS-ANY-IGNORE-CASE test if a string contains any of a number of constant strings, case insensitive input: 'Maileon'
CONTAINS-ANY-IGNORE-CASE('m','e','x') = true
CONTAINS-ANY-IGNORE-CASE('mail','S','xkcd') = true
CONTAINS-NONE test if a string does not contain any of a number of constant strings input: 'Maileon'
CONTAINS-NONE('u','S','D') = true
CONTAINS-NONE('e','S','D') = false
CONTAINS-NONE-IGNORE-CASE test if a string does not contain any of a number of constant strings, case insensitive input: 'Maileon'
CONTAINS-NONE-IGNORE-CASE('E','B','P') = false
CONTAINS-NONE-IGNORE-CASE('G','B','P') = true
ENDS-WITH test if a string ends with a given constant strings input: 'Maileon'
ENDS-WITH('eon') = true
ENDS-WITH('ile') = false
ENDS-WITH-ANY test if a string ends with any of a number of constant strings input: 'Maileon'
ENDS-WITH('eon','ile') = true
ENDS-WITH('Mail','eo') = false
ENDS-WITH-ANY-IGNORE-CASE test if a string ends with any of a number of constant strings, case insensitive input: 'Maileon'
ENDS-WITH-ANY('EON','ro') = true
ENDS-WITH-NONE test if a string does not end with any of a number of constant strings input: 'Maileon'
ENDS-WITH-NONE('BP','SD') = true
ENDS-WITH-NONE('eon','SD') = false
ENDS-WITH-NONE-IGNORE-CASE test if a string does not end with any of a number of constant strings, case insensitive input: 'Maileon'
ENDS-WITH-NONE-IGNORE-CASE('EON','sd') = true
ENDS-WITH-NONE-IGNORE-CASE('eue','sd') = false
EQUALS test string equality input: 'Maileon'
EQUALS('Maileon') = true
EQUALS('maileon') = false
EQUALS-IGNORE-CASE test string equality, case insensitive input: 'Maileon'
EQUALS-IGNORE-CASE('Maileon') = true
EQUALS-IGNORE-CASE('maileon') = true
NOT-EQUALS test string inequality, case sensitive input: 'Maileon'
NOT-EQUALS('Maileon') = false
NOT-EQUALS('maileon') = true
CSV-CONTAINS test if string contains a comma-separated-value element input: 'Maileon,XQueue'
CSV-CONTAINS('Maileon') = false
CSV-CONTAINS('maileon') = true
CSV-CONTAINS-ANY test if string contains any of a number of comma-separated-value elements input: 'Maileon,XQueue'
CSV-CONTAINS-ANY('XQueue','Maileon') = true
CSV-CONTAINS-ANY('Maileon','Alice') = true
CSV-CONTAINS-ANY-IGNORE-CASE test if string contains any of a number of comma-separated-value elements input: 'Maileon,XQueue'
CSV-CONTAINS-ANY-IGNORE-CASE('xqueue','maileon') = true
CSV-CONTAINS-ANY-IGNORE-CASE('maileon','Alice') = true
CSV-CONTAINS-NONE test if string does not contain any of a number of comma-separated-value elements input: 'Maileon,XQueue'
CSV-CONTAINS-NONE('XQueue','maileon') = false
CSV-CONTAINS-NONE('maileon','Alice') = true
CSV-CONTAINS-NONE-IGNORE-CASE test if string does not contain any of a number of comma-separated-value elements, case insensitive input: 'Maileon,XQueue'
CSV-CONTAINS-NONE-IGNORE-CASE('XQueue','maileon') = false
CSV-CONTAINS-NONE-IGNORE-CASE('maileon','Alice') = false
STARTS-WITH test if string starts with the given constant string input: 'Maileon'
STARTS-WITH('Mail') = true
STARTS-WITH('mail') = false
STARTS-WITH-IGNORE-CASE test if string starts with the given constant string, case insensitive input: 'Maileon'
STARTS-WITH-IGNORE-CASE('Mail') = true
STARTS-WITH-IGNORE-CASE('mail') = true
STARTS-WITH-ANY test if string starts with any of the given constant strings input: 'Maileon'
STARTS-WITH-ANY('XQ','Mail') = true
STARTS-WITH-ANY('XQ','mail') = false
STARTS-WITH-ANY-IGNORE-CASE test if string starts with any of the given constant strings, case insensitive input: 'Maileon'
STARTS-WITH-ANY-IGNORE-CASE('XQ','Mail') = true
STARTS-WITH-ANY-IGNORE-CASE('XQ','mail') = true
STARTS-WITH-NONE test if string does not start with any of the given constant strings input: 'Maileon'
STARTS-WITH-NONE('XQ','Mail') = false
STARTS-WITH-NONE('XQ','mail') = true
STARTS-WITH-NONE-IGNORE-CASE test if string does not start with any of the given constant strings, case insensitive input: 'Maileon'
STARTS-WITH-NONE-IGNORE-CASE('XQ','Mail') = false
STARTS-WITH-NONE-IGNORE-CASE('XQ','mail') = false
EXISTS test if value exists / is non-null input: 'Maileon'EXISTS = true
input: nullEXISTS = false
IS-NUMBER test if something is of type number input: 4, IS-NUMBER = true
input: '4', IS-NUMBER = false
input: 'Maileon', IS-NUMBER = false
IS-BOOLEAN test if something is of type boolean input: false, IS-BOOLEAN = true
input: 'false', IS-BOOLEAN = false
input: 'Maileon', IS-BOOLEAN = false
EQ test number or string containing number for equality input: 3, EQ(3) = true
input: '3', EQ(3) = true
input: 'Maileon', EQ(3) = false
NE test number or string containing number for inequality input: 3, NE(3) = false
input: '3', NE(3) = false
input: 'Maileon', NE(3) produces a template error
LT test if number or string containing number is less than a given constant number input: 2, LT(3) = true
input: '2', LT(3) = true
input: 'Maileon', LT(3) produces a template error
LE test if number or string containing number is less than or equal to a given constant number input: 2, LE(3) = true
input: '3', LE(3) = true
input: 'Maileon', LE(3) produces a template error
GT test if number or string containing number is greater than a given constant number input: 4, GT(3) = true
input: '4', GT(3) = true
input: 'Maileon', GT(3) produces a template error
GE test if number or string containing number is greater than or equal to a given constant number input: 4, GE(3) = true
input: '3', GE(3) = true
input: 'Maileon', GE(3) produces a template error
HAS-NEXT item-specific condition that tests if a list item is not the last element of the list input list: ['a', 'b', 'c']
for item 'b': HAS_NEXT = true
for item 'c': HAS_NEXT = false
IS-ITEM-EVEN item-specific condition that tests if a list item has an index that is divisible by two input list: ['a', 'b', 'c']
for item 'a': IS-ITEM-EVEN = false
for item 'b': IS-ITEM-EVEN = true
IS-ITEM-ODD item-specific condition that tests if a list item has an index that is not divisible by two input list: ['a', 'b', 'c']
for item 'a': IS-ITEM-ODD = true
for item 'b': IS-ITEM-ODD = false

RSS2Email merge tags

The RSS2EMail extension allows sending e-mails once a pre-defined number of new entries have been added to an RSS / ATOM feed. The following example feed will be used for this documentation:

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>Cutlery sale</title>
    <description>This is an example feed used to explain RSS2Email merge tags.</description>
    <link>http://www.example.com/cutlery/index.html</link>
    <author>sales@example.com</author>
    <image>http://www.example.com/fork-and-knife.png</image>
    <category>Cutlery</category>

    <item>
      <title>Spoons are on sale!</title>
      <author>spoons.r.us@example.com</author>
      <category>Cutlery</category>
      <category>Spoons</category>
      <description>Get our wonderful spoons here.</description>
      <link>http://www.example.com/spoons-sale</link>
      <image>http://www.example.com/spoons/product.jpg</image>
      <guid>7bd204c6-1655-4c27-aeee-53f933c5395f</guid>
      <content>Spoon content goes here...</content>
    </item>
    
    <item>
      <title>Forks are on sale!</title>
      <author>forks.r.us@example.com</author>
      <category>Cutlery</category>
      <category>Forks</category>
      <description>Get our wonderful forks here.</description>
      <link>http://www.example.com/forks-sale</link>
      <image>http://www.example.com/forks/product.jpg</image>
      <guid>7bd204c6-1655-4c27-aeee-53f933c5395f</guid>
      <content>Forks content goes here...</content>
    </item>

  </channel>
</rss>
Feed properties
Syntax {{feed: feed-property ( parameter )* }}
Description Displays a feed property.

  • feed-property identifies the feed property to display. Valid values are author, categories, image, link, and title
  • parameter is one of the property parameters. Note that each property supports a different set of parameters and they need to be specified in the order given in the specific syntax for the property.
sender / recipient alias no
subject yes
text / html yes
Feed author
Syntax {{feed:author
[ prefix= ( true | false )]
[ fallback=fb ]
[ onmissingvalue= ( "fail" | "ignore" | "empty" | "fallback" ) ] }}
Description Displays the feed author.
Example
displays „sales@example.com“ for the example RSS feed given above. If the feed author was not set, „info@example.com“ would be displayed instead.
sender / recipient alias no
subject yes
text / html yes
Feed categories
Syntax {{feed:categories [ separator="sep" ] }}
Description Displays the feed categories.
Example
displays „Cutlery“ for the example RSS feed given above.
sender / recipient alias no
subject yes
text / html yes
Feed image
Syntax {{feed:image
[ fallback="fallback" ]
[ onmissingvalue= ( "fail" | "ignore" | "empty" | "fallback" ) ]
[ backup= ( true | false ) ]
[ inline= ( true | false ) ]
[ htmltag= ( true | false ) ]
[ width ] [ height ] }}
Description Displays the feed image.
Example
produces the image at „http://www.example.com/fork-and-knife.png“ as an inline image, with the width and height properties of the HTML img tag set to 300 and 200, respectively.
sender / recipient alias no
subject no
text / html yes
Feed link
Syntax {{feed:link
[ prefix= ( true | false )]
[ fallback="fallback" ]
[ onmissingvalue= ( "fail" | "ignore" | "empty" | "fallback" ) ] }}
Description Displays the feed link.
Example
produces a link that redirects to „http://www.example.com/cutlery/index.html“ for the example feed. If the feed link property was not set, a link redirecting to „http://www.example.com“ would be generated instead.
sender / recipient alias no
subject yes
text / html yes
Feed title
Syntax {{feed:title
[ prefix= ( true | false )]
[ fallback="fallback" ]
[ onmissingvalue= ( "fail" | "ignore" | "empty" | "fallback" ) ] }}
Description Displays the feed title.
Example
produces „Cutlery sale“ for the example feed. If the feed title property was not set, the text „Forks &amp; Spoons“ would be produced instead.
sender / recipient alias no
subject yes
text / html yes
Feed item properties
Syntax {{feed:item: item-property ( parameter )* }}
Description Displays a feed item property. Can only be used inside a feed loop construct.

  • item-property identifies the feed item property to display. Valid values are author, categories, image, link, title, content, and description.
  • parameter is one of the property parameters. Note that each property supports a different set of parameters and they need to be specified in the order given in the specific syntax for the property.
sender / recipient alias no
subject yes
text / html yes
Looping over feed items (entries)
Syntax {{feed:loop}}

{{feed:item:...}}

{{feed:end-loop}}
Description Iterate over the new feed entries. The syntax for retrieving individual properties of the entries is described separately below.
Example
produces the output

for the example feed.
sender / recipient alias no
subject yes
text / html yes
Item author
Syntax {{feed:item:author
[ prefix= ( true | false )]
[ fallback="fallback" ]
[ onmissingvalue= ( "fail" | "ignore" | "empty" | "fallback" | "skip item" ) ] }}
Description Displays the feed author.
Example
produces the output

for the example feed. If the author property of the „spoons“ entry was not set, only the second line would be output.
sender / recipient alias no
subject yes
text / html yes
Item link
Syntax {{feed:item:link
[ prefix= ( true | false )]
[ fallback="fallback" ]
[ onmissingvalue= ( "fail" | "ignore" | "empty" | "fallback" | "skip item" ) ] }}
Description Displays the item link.
Example
produces the links given in the feed items, with „http://www.example.com“ as a fallback value for each item.
sender / recipient alias no
subject yes
text / html yes
Item categories
Syntax {{feed:item:categories [ separator="sep" ] }}
Description Displays the item categories.
Example
displays „Cutlery, Spoons“ and „Cutlery, Forks“, respectively, for the items of the example RSS feed.
sender / recipient alias no
subject yes
text / html yes
Item description
Syntax {{feed:item:description
[ fallback="fallback" ]
[ onmissingvalue= ( "fail" | "ignore" | "empty" | "fallback" | "skip item" ) ]
[ striphtml= ( true | false )]
[ backupimages= ( true | false )]
[ inline= ( true | false )]
[ tracklinks= ( true | false )] }}
Description Displays the item description.
Example
produces the output
sender / recipient alias no
subject yes
text / html yes
Item content
Syntax {{feed:item:content
[ fallback="fallback" ]
[ onmissingvalue= ( "fail" | "ignore" | "empty" | "fallback" | "skip item" ) ]
[ striphtml= ( true | false )]
[ backupimages= ( true | false )]
[ inline= ( true | false )]
[ tracklinks= ( true | false )] }}
Description Displays the item content.
Example
produces the output
sender / recipient alias no
subject yes
text / html yes
Item title
Syntax {{feed:item:title
[ prefix= ( true | false )]
[ fallback="fallback" ]
[ onmissingvalue= ( "fail" | "ignore" | "empty" | "fallback" | "skip item" ) ] }}
Description Displays the item title.
Example
produces the output
sender / recipient alias no
subject yes
text / html yes
Item image
Syntax {{feed:item:image
[ fallback="fallback" ]
[ onmissingvalue= ( "fail" | "ignore" | "empty" | "fallback" | "skip item" ) ]
[ backup= ( true | false ) ]
[ inline= ( true | false ) ]
[ htmltag= ( true | false ) ]
[ width ] [ height ] }}
Description Displays the item image.
Example
produces the images for the feed entries.
sender / recipient alias no
subject no
text / html yes

Property parameters

syntax description
prefix= ( true | false ) Only return the first word (word boundary is space) of the property.
fallback=fb if the property is not set, display fb instead
onmissingvalue= ( "fail" | "ignore" | "empty" | "fallback" | "skip item" ) What to do when the property is not set.

parameter value
"fail" Produce a template error. This is the default behaviour.
"ignore" Produce the template expression (including merge tag syntax) and continue processing.
"empty" Produce no text and continue processing.
"fallback" Produce the fallback if one is given, otherwise behave as if "empty" was specified. If a fallback value is defined, specifying onmissingvalue=fallback is optional.
"skip item" If the property is undefined, skip the entire loop body. Only supported for feed item properties.
separator="sep" The string separator used to concatenate multiple categories into a single string. The default is "#".
htmltag= ( true | false ) Applies to image properties only. When set to true while generating an HTML document, an tag is generated for the image URL.Otherwise, the image URL is returned instead. The default is false.
backup= ( true | false ) Applies to image properties only. Backup the image into the media repository and use the URL of the backed-up version instead of the original image. The default is false.
inline= ( true | false ) Applies to image properties only. Attach the image as part of the e-mail instead of linking to a web resource. The default is false.
width Applies to image properties only. The display width of the image in the generated HTML mailing.
height Applies to image properties only. The display height of the image in the generated HTML mailing.
striphtml= ( true | false ) Remove all HTML entities from item description or content. The default is true for non-HTML mailings, false otherwise.
backupimages= ( true | false ) Backup all images in the HTML content or description of an item into the media repository and use the URLs of the backed-up images in the emitted HTML code. The default is false.
tracklinks= ( true | false ) Convert all links in the HTML content or description of an item into tracking links. The default is false.