Personalisation: Dynamic content, merge fields, and more
📺 For more video content, check out More Personalisation: Query Strings, More Personalisation: Conditional Logic Statements, More 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
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.
https://raisely.com?utm_campaign=newsletter&utm_source=email
Adding Dynamic Content
In Raisely, you can use merge fields to display dynamic content. By simply typing # in any text editor, you can bring up a list of all available default merge fields.
To pull in custom data created using Raisely’s {{fieldID}}.
Using Session & URL Data
There are now two ways to pull dynamic data into your pages and messages, depending on the type of information:
- Personal Data (Secure): To display a donor's name or email, use the
user.prefix. This pulls data from a secure, 48-hour session created when a donor clicks a link in a Raisely email.- Example:
{{user.firstName}}
- Example:
- Tracking & Public Data (URL Queries): To pull in non-personal data found in the site's URL (like tracking codes or donation amounts), use the
query.prefix.- Example:
{{query.utm_campaign}}or{{query.amount}}
- Example:
Where can you personalise?
In Raisely, you can personalise:
- Any Campaign Page: Greet returning donors or show specific content blocks.
- Any Message Content: Tailor your automated emails and SMS.
The most common use for personalisation is inserting a supporter's first name. By using {{user.firstName}}, you ensure the donor's experience is seamless and their data remains protected. For more advanced setups, you can use conditional logic (if/else) to change entire design elements based on who is viewing the page.
Caring for Your Data
The first rule of personalization is simple: you can only use the data you have. If you’ve captured it in a custom field or a standard profile field, you can use it to tailor the donor experience.
However, great personalization requires high-quality data. For example, if you want your Appeal Campaign to greet a donor by name using {{user.firstName}}, but that donor’s name is recorded as "Aardvark," that is exactly what they will see.
To ensure your campaigns look professional and personal, keep these three principles in mind:
- Clean Your Data: Before launching a large email appeal, scan your contact list for typos, placeholder names, or missing fields. Working in smaller batches can help you spot these issues before they go live.
- Plan for the "Unknown": Always create a fallback for when data is missing. Using Conditional Logic (if/else) ensures that if a donor’s name isn't in your system, they see a friendly "Hi there!" instead of a blank space or an error.
- Use the Right Tool for the Job: Following our SOC 2 security updates, remember that personal data (Name/Email) must be pulled via the
user.prefix from a secure session. Using the old URL-basedquery.method for personal info will no longer work and could leave your donor's data exposed.
Personalisation is a powerful time-saver and conversion booster—but it only works as well as the data behind it. Spend time auditing your records to ensure your donors feel truly seen, not just "processed."
The Rules
Quick Way
Manual Way - From Database
{{source.fieldID}}
Manual Way - From URL query string
A Query String is a snippet of text added to the end of a URL to pass specific, non-sensitive information to a page. It is made up of a key and a value, separated by an equals sign:
https://yourcampaign.com/?key=value
To display this data on your page or use it in a form, use the query. prefix: {{query.key}}
When to Use This (Non-Personal Data)
Query strings are perfect for tracking campaign sources or setting donation defaults.
- Tracking Example:
https://raisely.com?utm_campaign=summer_appeal- Use
{{query.utm_campaign}}to track the source.
- Use
- Donation Example:
https://raisely.com?amount=50- Use
{{query.amount}}to pre-set a donation amount on your form.
- Use
Following our April 7th security update, you can no longer pass personal data (like
firstName or email) via a manual URL query string.
→ Don’t use:
?firstName=James with {{query.firstName}}
→ Do use: The Access Token method. When a donor clicks a link from a Raisely email, their name and email are securely loaded into the
user. object (e.g., {{user.firstName}}) via a private session. This keeps donor data out of the URL bar and browser history.
Reference Points
For query. fields to work, the data must be present in the URL the user is currently visiting. For user. fields to work, the donor must have arrived via a valid Magic Link or Access Token link that was generated within the last 48 hours.
Simple Examples
### accordion
## expand
# Inserting a person's first name in a greeting on the home page
To greet a user by name on a landing page, ensure they arrive via a link from a Raisely email (which automatically includes an access token). Instead of query.firstName, use user.firstName. This pulls the data from the donor's secure session rather than the URL bar.
Then, in your heading/paragraph block, type #first and select "User First name".
## expand
## expand
# Pre-fill a form using URL data
Your donation, signup, and lead forms can automatically pull in data to save your donors time. For security reasons, Raisely now distinguishes between Personal Information (which is handled securely via sessions) and General Data (which uses URL queries).
1. Pre-filling Personal Information (Name & Email)
Personal data is no longer pulled from the visible URL. Instead, it is pulled from the donor's authenticated session using an Access Token.
- 1
-
Ensure your donors arrive at your page via a link from a Raisely Message. This automatically includes the necessary
access_token. - 2
-
From the Campaign sidebar, select Settings > Donation Form (or Signup/Lead Form).
- 3
-
Expand the fields for First Name, Last Name, or Email.
- 4 In the Default Value box, enter the session-based merge fields such as
{{user.firstName}}, {{user.lastName}}, and {{user.email}}.
2. Pre-filling Non-Personal Data (Amounts, Frequency, Tracking, etc)
For non-sensitive data, you can use a manual query string in your URL.
- 1
-
Plan your URL query (e.g.,
https://site.com?source=email). - 2
-
In your form settings, expand the field that you wish to pre-fill (e.g. a custom source field).
- 3
-
In the Default Value box, enter the query-based merge field:
{{query.key}}. Example: If your URL has?source=email, enter{{query.source}}.
## 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}}
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)
You can use conditional statements to change the content of your page based on who is visiting or where they came from. This allows you to serve different messages to different segments of your audience using a single page.
1. Personal Greetings (Session-Based)
To greet a donor by name, Raisely now looks at the secure user session rather than the URL string. When a donor clicks a link from your Raisely emails, they are "remembered" for 48 hours.
Example Logic: If a donor is recognized, greet them personally. If they are an anonymous visitor, show a general welcome.
{{#if user.firstName}}Hey {{user.firstName}}, thanks for being a great supporter!{{else}}Thanks for being a great supporter of this campaign!{{/if}}
2. Segmented Messaging (Query-Based)
For non-personal data—like a donor "type" or a specific marketing "segment"—you can use manual query strings in your PURLs.
Example PURL: https://campaignsite.com/?donorType=regular
Example Logic: You can set up multiple versions of a link, each with a different donorType, to change the impact story a donor sees when they land on 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}}
By combining User sessions for identity and Query strings for categorization, you can create a highly sophisticated, personalized journey for every supporter.
## 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
## expand
# Why isn't my personalisation working?
If the user is visiting the page via a link that contains "?accessToken={{user.accessToken}}", remember that Magic Links/Access Tokens expire after 48 hours. If a donor clicks an old link, they will need to request a new one to see personalised content.
If a user manually types ?firstName=John in the URL, {{user.firstName}} will not work. It must come from a secure Raisely-generated token.
## expand
## expand
# Why can't I use personalised URLs with donor names and email addresses any longer?
To protect donor privacy and meet industry security standards, Raisely no longer displays personal information in URLs. This prevents names and emails from being saved in browser histories or captured by third-party analytics like Google Analytics. All personalisation now happens through secure, short-lived session tokens.
## 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 🤯