Personalisation: Dynamic content, merge fields, and more


📺 For more video content, check out More Personalisation: Query StringsMore Personalisation: Conditional Logic StatementsMore Personalisation: CSS & Class Attribution. More otherwise continue reading the guide below...


Creating a personalised on-site experience for your donors and fundraisers can result in deeper engagement and greater retention. This is because we desire to seen as an individual rather than just in the collective mass. So how do you achieve this in Raisely and how far can you take it? This is what we can explore… 

Skip Ahead To


How Personalisation Works

Personalisation refers to presenting your content and design in a manner that recognises the individual viewing your site, rather than the collective mass. Typically, a web page contains static content, aimed at and presented for everyone. A personalised page though, contains dynamic (changing) content based on the person who is viewing it.
This dynamic content finds its source in the data you store. For example, if you have the first name of people in the Raisely Supporter Management Tool (your database), then you can use this data (their first name) as dynamic content. Or if you have captured a particular preference people have, say, what fundraising activity they want to do, you can use this as dynamic content.

Where is this data stored? 

There are three data sources you can use: Raisely’s Supporter Management Tool (People) or for campaign pages, the Campaign’s database containing non-people data, and the URL. Data can be stored in these three places for you to use for personalisation. To see all the default data that Raisely stores in the Supporter Management Tool and the Campaign database, check out the Merge Fields - Cheat Sheet.

Data brought in by the URL is common when working with email or social media campaigns. This is because you can place a query string that holds data in the link that directs people to the Campaigns page. They will  look like this: 

Adding Dynamic Content

In Raisely, to add dynamic content you can use merge fields. Simply by typing # you can bring up a list of all the default merge fields available. 
To pull in custom data, created using Raisely’s custom fields, you simply place the custom fields ID in surrounding curly braces {{fieldID}}.
To pull in data found in the sites URL queries, you just need to add query. before the Field ID you are using  - eg. {{query.firstName}}  

In Raisely you can personalise:
  • Any Campaign page
  • Any Message content
The most simple personalisation to make would be to insert the first name of a viewer, either within a message or on a specific campaign page. But more advanced personalisation can lead you to creating dynamically designed campaign pages and content based on conditions (if/else). We’ll explore these in a moment.

Caring for Your Data

The first rule in personalisation is that you can only use the data you have. If you capture it, you can use it.
The second rule in personalisation is that you need to have good data. Say for example you want your Appeal Campaign homepage to greet the viewer with their first name. You can easily add a merge field to display this content, but if one of the first name’s is Aardvark, then that is what will be displayed when that individual accesses the page.
Because of this, it is recommended that when using personalisation, to be sure your data is clean and correct. Working in smaller batches for an email marketing campaign may be a good idea so you can scan for any issues. And creating a solution for when the data isn't there is also a good idea.
Personalisation is a huge time saver, but do spend some time caring for your data.

The Rules

There are a couple of rules to understand before diving into using dynamic content. 

Quick Way

Type  # into a heading/paragraph block to display and search for all different merge fields available. This is the simplest method. Raisely only displays 10 fields in the search dropdown. To find the names of all the fields available, check out the  Merge Fields - Cheat Sheet.

Manual Way - From Database

Every data field in your database, from 'first name' to 'campaign totals', has both a source and a unique field ID. These can be found in Organisation > Custom Fields or refer to the Data Fields Explained guide. To pull data from these fields into content, you use:
{{source.fieldID}}
For example, to insert a users first name you’d type {{user.firstName}} OR to insert a donors first name you’d type {{donation.firstName}}
IMPORTANT: If the field is a custom field you have created, you need to tell the merge field whether it is a private  or public  field . This is seen in the custom fields settings. Therefore, the merge field would be {{source.private.fieldID}} OR   {{source.public.fieldID}}

Manual Way - From URL query string

A query string in a URL is simply made up of a key and a value. The key references the Field ID you are using, whilst the value is the content. They look like this:
To pull this data into your content, you simply use 
{{query.key}}
For example, if the URL is https://raisely.com?firstName=James, then you’d use {{query.firstName}} in the content.
You can use query strings to pull in data to pages, form fields, and class attributes.
Important: If pulling data from the Raisely Supporter Management Tool to use on pages, the user must be logged in for it to work. Otherwise, there is no reference point for the merge field to pull the data from.

Simple Examples

Below are a few common examples of simple personalisation. These should enable you to explore others similar.

### accordion

## expand

# Inserting a person's first name in a greeting on the home page

In your heading/paragraph block, type #first and select User First name.

## expand

## expand

# Inserting a person's first name in a greeting using the URL

In your heading/paragraph block, type {{query.firstName}} This will work if your URL contains ?firstName=name

## expand

## expand

# Pre-fill a form using URL data

Your donation, signup and lead forms all can pull in data found in the URL. All you need to do is get the donation form field to look for its value in the URL query string. To do this:

1
Plan out your URL, so that the data you wish to use is captured using a query string (eg. https://site.com ?firstName=value&lastName=value&email=value)
2
Create any extra Custom fields in Raisely that you’ll need to store this data
3
From the Campaign sidebar, select Settings > Donation Form OR Signup Form
4
Expand each field you are looking to pre-fill and in the Default Value enter {{query.key}} For example, if the URL has …?firstName=James then you’d enter {{query.firstName}}
Now you can load the page with the query string to see the form pre-fill. 

## expand

## expand

# Adding in a date field

Say you have a custom field for Birthday on each persons individual fundraising profile page. To present this field in a neat way, simply add {{prettyDate current.profile.public.birthday}}. The 'prettyDate' prefix converts the date field to a more readable format. 

## expand

### accordion


Advanced Examples

Below are a few common examples of more advanced personalisation. These should enable you to explore others similar.

### accordion

## expand

# Adding conditional dynamic content

Here you are wishing to have content displayed based on certain values within your data fields. For example, if you were wanting to insert an encouragement for those who are yet to receive a donation on their fundraising profile, you can use conditions to show this message just for them and not for others.

A condition statement is simple:

{{#condition &  fieldID & value}} Insert your content which can also include {{merge fields}} in them.{{/condition}}

For example, to use the EQUAL condition, which looks to see if the value allocated matches the persons database field, the statement would be this:

{{#eq profile.total 0}}Getting off the starting blocks can be nerve-racking but we are here to cheer you on. Check out our resources below to help you raise your first dollar!{{/eq}}

IMPORTANT: If your value is not numeric, you need to enclose the value with single quotation marks (eg. 'value ')

To view all the available conditional statements you can use, check out the Advanced Conditions Cheat Sheet.

## expand

## expand

# Adding conditional dynamic content via PURLs (Personalised URLs)

Here you are hoping to dynamically change the content displayed on certain values within your PURL. For example, if you wanted to greet someone with their first name that's found in the PURL, or showing a different message based on a different query parameter found in the PURL.

For example, let's say you have the following PURL:

https://campaignsite.com/?firstName=John

You can add the following conditional statement to your home page: 

{{#if query.firstName}} Hey {{query.firstName}}, thanks for being a great supporter of the campaign! {{else}} Thanks for being a great support of the campaign!{{/if}}

To further elaborate, let's say you have the following PURL with other query parameters found in the PURL:

https://campaignsite.com/?donorType=regular

You can add the following conditional statement to your home page: 

{{#eq query.donorType 'regular'}} As a regular supporter, you help to ensure consistent funding for important programs. {{else eq query.donorType 'major'}} As a generous supporter, you help us shift the needle with making a real impact on these issues. {{else eq query.donorType 'xyz'}} As a xyz supporter, you help us ensure.....{{else}} Help us ensure that.... {{/eq}}

So this then allows you to set up multiple PURLs, with different results on your home page!

## expand

### accordion


Troubleshooting - Conditional Statements & Merge Fields

Applying conditional logic to merge fields is an advanced use of Raisely, and learning can result in times of trial and error. Here is a checklist to follow when your merge fields and conditional statements:

  • If your campaign page displays an error OR the message will not send, the most common reason is that there is a mistype in the statement. Be sure to check -
    • Is the statement missing a curly brace {{  }}
    • Is there a # preceding the condition (eg. {{#if... }})
    • Is the condition closed using a / (eg. {{... /if}}
  • If no data is populating, be sure to check -
    • Is there actually data for that field? Run a Report to view a known record (person, transaction, profile) to see if that data is coming through
    • If entering the merge field manually, be sure that non-numeric values are enclosed by single apostrophe marks (eg. {{#if {{transaction.firstName 'Henry'}}... )
    • Be sure that the data you are calling for aligns with the Message Audience or the Page being used. For example, if your message audience is Donors, you can only reference data related to a single donation. A helpful way to visualise this would be to run a donation report to view data fields related to the audience.
    • If pulling data from a custom field, be sure that the field's privacy setting is added (public/private). For example, {{#if {{donation.private.customField}}. You can check the privacy setting for the field in Organisation > Custom Fields.
    • If you are using conditional statements on a Profile or Team Profile Page, be sure to add current to the manual merge field. For example, {{#gt {{current.profile.goal 500}}... }}. This is so the field references the fundraisers profile path, so it knows where to find the data.

Common Questions

### accordion

## expand

# How can I create a link that automatically logs a user into their account?

You can add a query string to your URL that logs the user in using their unique  access token. Every People account has an access token, which can simply be found by running a People Report. To embed the access token in button link within Raisely's messages, use: 

"https://site.raisely.com/?accessToken={{user.accessToken}}"

## expand

### accordion

Cannot find the support guide you are after? Head on over to our YouTube channel 📺 for more creative content to help you go further. You can even leave us comments, suggesting new content ideas 🤯


Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Our Support Team Contact Our Support Team