Complete Merge Tag Reference
Merge tags are placeholders in email content, confirmation pages, and page template HTML that DonorPoint replaces with actual values when content is rendered. Tags are written as #{TAG_NAME} or {TAG_NAME} (both forms are accepted).
Two types of dynamic content are available:
- Uppercase merge tags —
#{DATE},#{CONTACT}, etc. — resolved by substitution before EL evaluation - EL expressions —
#{contact.firstName},#{purchaseOrder.amount}, etc. — evaluated as Dxpression Language
This page documents the complete set of uppercase merge tags. See EL Expression Reference for EL expression syntax.
Inserting Merge Tags
Most DonorPoint editors expose a Merge tags dropdown in the toolbar — both the rich-text editor and the drag-and-drop email designer, as well as the Unlayer designer when editing email-definition content. All three pickers are sourced from this single catalog, so the available tags are consistent across every editor.
Where applicable the dropdown is narrowed to the field’s context — for example, an item’s receipt-description field shows only the merge tags that apply to that item type, while an email body in an autoresponder shows the full set available to that email. This keeps the picker short and relevant to the field you’re editing.
Click a tag in the dropdown to insert it at the cursor. You can also type a tag directly (#{TAG_NAME} or {TAG_NAME} — both forms are equivalent). Tags resolve to their values when DonorPoint renders the content (when an email is sent, a confirmation page is built, and so on).
Transaction Merge Tags
Available in receipt emails, confirmation pages, and any email associated with a transaction.
| Tag | Resolves To |
|---|---|
#{DATE} |
Transaction received date formatted as MM-dd-yyyy |
#{DATETIME} |
Transaction received date and time |
#{CONTACT} |
Donor full name |
#{ADDRESS} |
Donor address as an HTML table |
#{CAMPAIGNNAME} |
Campaign (form) name |
#{ORDERTABLE} |
Full HTML order summary table: items, quantities, subtotal, fees, total |
#{PAYMENT} |
Payment method details as an HTML table (confirmation from payment processor) |
#{ORDER_NO} |
Transaction code / order number |
#{UPDATEFORMTAG} |
HTML anchor link to the donor’s update/edit form |
#{UPDATEFORMURL} |
URL to the donor’s update/edit form (for building custom links) |
#{REFERRALURL} |
URL-encoded referral form URL (includes donor contact ID for referral tracking) |
#{TELLAFRIEND} |
Tell-a-friend link |
#{TELLAFRIENDSUBJECT} |
Tell-a-friend email subject line |
#{TELLAFRIENDEMAIL} |
Tell-a-friend email body |
Contact and User Merge Tags
Available in any email sent to or about a specific constituent.
| Tag | Resolves To |
|---|---|
#{CONTACTFIRSTNAME} |
Recipient’s first name |
#{CONTACTLASTNAME} |
Recipient’s last name |
#{CONTACTEMAIL} |
Recipient’s email address |
#{USER} |
Logged-in staff user’s full name (first + last) |
#{USERFIRSTNAME} |
Logged-in staff user’s first name |
#{USERLASTNAME} |
Logged-in staff user’s last name |
#{USEREMAIL} |
Logged-in staff user’s email address |
#{LOGINLINK} |
Smart login link — campaign-aware, engagement-type-aware; links to the correct login page for the recipient |
#{ACTIVATIONLINK} |
Account activation link including the activation key; used in new account welcome emails |
#{TEMPPASSWORD} |
Temporary password placeholder (legacy; returns “Your existing password” for security) |
Account Merge Tags
Available in any email sent from a specific DonorPoint account.
| Tag | Resolves To |
|---|---|
#{ACCOUNTNAME} |
Your organization’s account name |
#{ACCOUNTIMAGE} |
Your organization’s logo as an inline base64 <img> tag |
#{SIGNATURE} |
Your organization’s account name (alias for #{ACCOUNTNAME}) |
Campaign (Form) Merge Tags
Available in emails associated with a specific campaign (form).
| Tag | Resolves To |
|---|---|
#{CAMPAIGNFORM} |
Campaign’s canonical public URL |
#{CAMPAIGNFORMSHORTURL} |
Campaign’s short URL (brurl.co format) |
Widget Merge Tags
Available in email templates and page template HTML.
| Tag | Resolves To |
|---|---|
#{SOCIAL} |
Social sharing widget (includes email, Facebook, Twitter, etc. |
#{DOUBLETHEDONATION} |
360MatchPro employer match widget; requires 360matchpro_public_key account property configured |
#{MAP} |
Map resource string |
Add-to-Calendar Merge Tags (Parameterized)
Available in any email. These tags take an argument inside parentheses — the syntax is #{TAG(<arg>)} rather than #{TAG}.
Different calendar clients need different formats: Outlook desktop and Apple Mail consume .ics files directly, while Outlook on the Web and Google Calendar each require their own deeplink URL. These tags let you drop calendar links into a receipt or confirmation email and have DonorPoint generate the correct format for every major calendar client.
The argument in parentheses can be any of the following:
- A literal integer id —
#{EVENTICALFILE(123)}resolves Event id 123 - An EL property path evaluating to a number —
#{EVENTICALFILE(purchaseOrder.event.id)}looks up the event id from the current purchase order - An EL expression evaluating to the entity itself —
#{EVENTICALFILE(purchaseOrder.event)}works the same way, with DonorPoint extracting the id automatically - Any nested property path the current context supports —
#{VOLUNTEERADDTOCALENDAR(orderItem.volunteerInstance)}and similar
This means receipt and confirmation email templates can use the same calendar tag in every email without hard-coding ids — DonorPoint resolves the right Event or VolunteerInstance for each recipient at render time.
Event tags
Resolve a com.bigriver.giftwrap.model.event.Event by its database id.
| Tag | Resolves To |
|---|---|
#{EVENTADDTOCALENDAR(<id>)} |
Full HTML <p> block with separate links to Google, Outlook.com, Office 365, and a .ics download — the recommended one-tag drop-in |
#{EVENTICALFILE(<id>)} |
<a href="…">Download event to your calendar</a> anchor pointing at the .ics endpoint (works for Outlook desktop, Apple Calendar, Thunderbird) |
#{EVENTICALFILEURL(<id>)} |
URL only — for the .ics file |
#{EVENTGOOGLECAL(<id>)} |
URL only — Google Calendar template URL |
#{EVENTOUTLOOKWEB(<id>)} |
URL only — Outlook.com deeplink (personal Microsoft accounts) |
#{EVENTOFFICE365(<id>)} |
URL only — Outlook 365 deeplink (work / school Microsoft accounts) |
#{EVENTYAHOOCAL(<id>)} |
URL only — Yahoo Calendar |
Volunteer instance tags
Resolve a com.bigriver.giftwrap.model.volunteering.VolunteerInstance by its database id. Field mapping: name from volunteerPackage.name, description from volunteerPackage.description, start from the instance’s start time, end from the shift’s end time (defaulting to start + 1 hour), location from the shift’s location.
| Tag | Resolves To |
|---|---|
#{VOLUNTEERADDTOCALENDAR(<id>)} |
Combined HTML block, all four links |
#{VOLUNTEERICALFILE(<id>)} |
.ics anchor tag |
#{VOLUNTEERICALFILEURL(<id>)} |
.ics URL only |
#{VOLUNTEERGOOGLECAL(<id>)} |
Google Calendar URL |
#{VOLUNTEEROUTLOOKWEB(<id>)} |
Outlook.com URL |
#{VOLUNTEEROFFICE365(<id>)} |
Outlook 365 URL |
#{VOLUNTEERYAHOOCAL(<id>)} |
Yahoo Calendar URL |
Notes
- All times are written in UTC with a
Zsuffix so the event lands at the right wall-clock time in any recipient’s time zone. - Description text is HTML-stripped and truncated at 500 characters for URL-length safety. The
.icsdownload preserves full HTML in itsX-ALT-DESCproperty. - If the argument can’t be resolved to an existing record, the tag expands to an empty string and a warning is logged — it will not error the email send.
- EL expressions inside the parentheses are evaluated against the current email’s context (purchaseOrder, contact, campaign, orderItem, etc.) just like any other EL expression in the body.
- Outlook on the Web and Google Calendar cannot import a
.icsURL the way Outlook desktop does — they need their own deeplinks. That’s why we provide separate tags for each provider; use the combined…ADDTOCALENDARtag and the recipient picks the link that matches their calendar client.
Examples
Static event id (one-off blast for a single known event):
<p>Your registration for the Annual Gala is confirmed. We hope to see you there!</p>
#{EVENTADDTOCALENDAR(123)}
Dynamic event id, looked up from the current transaction at render time — the same template works for any event the donor registered for:
<p>Your registration for #{purchaseOrder.event.name} is confirmed. We hope to see you there!</p>
#{EVENTADDTOCALENDAR(purchaseOrder.event)}
<p>You can also pick a single calendar:</p>
<ul>
<li><a href="#{EVENTGOOGLECAL(purchaseOrder.event)}">Add to Google Calendar</a></li>
<li><a href="#{EVENTOUTLOOKWEB(purchaseOrder.event)}">Add to Outlook.com</a></li>
<li><a href="#{EVENTOFFICE365(purchaseOrder.event)}">Add to Office 365</a></li>
<li><a href="#{EVENTICALFILEURL(purchaseOrder.event)}">Download .ics (Apple / Outlook desktop)</a></li>
</ul>
Community / Team Fundraiser Merge Tags
Available in community fundraiser and team campaign emails.
Community Level
| Tag | Resolves To |
|---|---|
#{COMMUNITYNAME} |
Community fundraiser name |
#{COMMUNITYGOAL} |
Community’s fundraising goal formatted as currency |
#{COMMUNITYMISSION} |
Community’s description / mission statement |
#{COMMUNITYLABEL} |
Configurable label for the community (e.g., “Community”, “Board”, “Fundraiser”) |
#{COMMUNITYTEAMSNUMBER} |
Number of teams (or initiatives, board members) in the community |
#{COMMUNITYDEADLINE} |
Community end/deadline date |
#{COMMUNITYURL} |
Community’s canonical public URL |
#{COMMUNITYTINYURL} |
Community’s short URL (brurl.co format) |
#{COMMUNITYTOTALRAISED} |
Total amount raised by the community |
#{COMMUNITYDONATIONREFERRALURL} |
Donation referral URL for the community (includes contact ID for referral tracking) |
#{COMMUNITYINVITENEWLEADERSURL} |
URL to invite new team leaders or initiative leaders |
#{COMMUNITYINVITEPARTICIPANTSURL} |
URL to invite participants (can choose to create or join a team) |
#{INVITEJOINURL} |
URL for invitees to join a specific team (not create a new one) |
#{CUSTOMREGISTRATIONURL} |
Custom registration form URL for the community |
#{CUSTOMREGISTRATIONJOINURL} |
Custom registration URL with team join parameters |
Team Level
Available when an email is sent in the context of a specific team.
| Tag | Resolves To |
|---|---|
#{TEAMNAME} |
Team name |
#{TEAMGOAL} |
Team’s fundraising goal |
#{TEAMTOTALRAISED} |
Team’s total raised |
#{TEAMURL} |
Team’s public page URL |
#{TEAMTINYURL} |
Team’s short URL |
#{TEAMREFERRALURL} |
Team’s donation referral URL (includes contact ID) |
#{TEAMLABEL} |
Configurable label for teams (e.g., “Team”, “Initiative”, “Board Member”) |
#{MEMBERURL} |
Donor’s personal fundraising page URL (member page if one exists; otherwise team URL) |
Dynamic Tables
A special feature of DonorPoint email and page template HTML allows you to create EL-driven repeating table rows. Add data-value and data-var attributes to any <table> element:
<!-- Repeat a row for each donation order item -->
<table data-value="#{purchaseOrder.orderItems}" data-var="oi">
<tr>
<td>#{oi.fund.name}</td>
<td style="text-align:right;">$#{oi.extendedPrice}</td>
</tr>
</table>
The data-value attribute is an EL expression returning a list. The data-var attribute names the variable for each item in the loop. All EL expressions inside the <tr> template have access to the loop variable.
Advanced: EL in Email Content
After uppercase merge tag substitution, DonorPoint evaluates any remaining #{...} expressions as DL. This means you can use the full EL expression language in email content:
Your gift of #{commonRenderer.formatAmount(purchaseOrder.amount)}
#{purchaseOrder.amount gt 1000 ? 'qualifies you for our major donor program!' : 'makes a real difference.'}
See Advanced Customization using Scripting and EL Expression Reference for details.