The newsletters module is an easy tool to manage address lists and send out newsletters. Using powerful templates you can personalize your messages.

Create lists

Create a list by clicking the add button in the “Lists” toolbar. Then click the add button from the “Contents” toolbar in the middle to add contacts.

You can add contacts one by one but you can also add entire search results using filters.


To send a newsletter click the add button from the “Sent items” panel.




From the composer you can also manage templates. Via the menu shown in the screenshot above. You can use the following variables in these templates:


Fields of the recipient

  • contact.salutation
  • contact.prefix
  • contact.firstName
  • contact.middleName
  • contact.lastName
  • contact.suffix
  • contact.jobTitle
  • contact.gender
  • contact.organizations: Array(same properties as contact)
  • contact.dates: Array (type, date)
  • contact.emailAddresses: Array(type, email)
  • contact.phoneNumbers: Array(type, number)
  • contact.addresses: Array(type, street, street2, zipCode, city, state, country, countryCode)
  • contact.urls: Array(type, url)
  • contact.debtorNumber
  • contact.IBAN
  • contact.vatNo
  • Custom fields (The database name prefixed with “contact.customFields.”)


  • unsubscribeUrl
  • now (Date) The time the message is sent


Fields of the user who created the newsletter

  • creator.displayName
  • creator.username


A variable is written like this:


Or a custom field:


Arrays can be written like this:


You can also iterator over arrays:

[each address in contact.addresses]
  [if {{address.type}} == "billing"]

And filter arrays by property and only write first match using “eachIndex”:

[each emailAddress in contact.emailAddresses | filter:type:"billing"]
    [if {{eachIndex}} == 1]

But this is probably the best way to handle the case where you prefer a type of address but just use the first if that’s not found. It uses [assign] to create a new variable. If it’s empty it will use the first address:

[assign address = contact.addresses | filter:type:"postal" | first]
[if !{{address}}]
[assign address = contact.addresses | first]

An advanced example for printing a custom salutation (Just an example. You can use {{contact.salutation}}):

Dear [if {{contact.prefixes}}]{{contact.prefixes}}[else][if !{{contact.gender}}]Ms./Mr.[else][if {{contact.gender}}=="M"]Mr.[else]Ms.[/if][/if][/if] {{contact.lastName}}

A simple example template:

Hi {{contact.salutation}},

Best regards,



You can use filters to format data. They can be used with a “|” char followed by the filter name. Optionally the filter can take arguments separeted by a “:”.

For example a date:


A number formatted in Dutch style with 2 decimals: