Liquid is a template language created by Shopify and used by many different software projects and companies. Administrators can use Liquid to build emails and webpages that combine static content, which is the same wherever it is placed, and dynamic content, which changes from one location to the next. The Liquid elements act as placeholders: when the code in the file is compiled and sent, the Liquid is replaced by data from the Rallybound campaign it's associated with. Rallybound uses Liquid to load dynamic content in campaign emails and websites, primarily in the form of placeholders. Liquid is a template language created by Shopify and used by many different software projects and companies. Administrators can use Liquid to build emails and webpages that combine static content, which is the same wherever it is placed, and dynamic content, which changes from one location to the next. The Liquid elements act as placeholders: when the code in the file is compiled and sent, the Liquid is replaced by data from the Rallybound campaign it's associated with. Rallybound uses Liquid to load dynamic content in campaign emails and websites, primarily in the form of placeholders.
The article serves as a cheat sheet, listing all of Rallybound's liquid elements for quick reference. For our full liquid documentation, click here.
Rallybound Liquid objects output pieces of data from a Rallybound campaign. When adding an object to an email or webpage, objects are wrapped in double curly brace delimiters {{.}}
. Liquid objects contain attributes to output dynamic content in the email or webpage.
The Organization
object contains information related to an organization. All organization information included in this object is editable in the Org Admin by clicking on the "i" icon in the top right when on the organization level.
Availability: The Organization
object is a global object, which means it's available in any email, including email blasts and Admin Email Templates, and in any editable area on the website.
Attributes: The Organization
object has the following attributes:
- Organization.Name
- Organization.Address_Line1
- Organization.Address_Line2
- Organization.Phone
- Organization.Tax_ID
- Organization.Website
The Campaign
object contains information related to a Rallybound campaign.
Availability: The Campaign
object is a global object, which means it's available in any email, including email blasts and Admin Email Templates, and in any editable area on the website.
Attributes: The Campaign
object has the following attributes:
- Campaign.Name
- Campaign.Alternate_Name
- Campaign.Location
- Campaign.URL
- Campaign.Description
- Campaign.Goal_Amount
- Campaign.Amount_Raised
- Campaign.Amount_To_Goal
- Campaign.Event_Year
- Campaign.Event_Date
- Campaign.Dashboard_URL
- Campaign.Terms
The Address
object contains information related to the primary user associated with the present email. User address can be changed by the user in their User Profile, or by an administrator through the Admin Panel user record.
Availability: The Address
object is available anywhere a user being addressed. Consequently, it's available in any email, including email blasts and Admin Email Templates, but not in editable areas on the website.
Attributes: The Address
object has the following attributes:
Address.Address1
Address.Address2
Address.City
Address.State
Address.Zip
Address.Country
Address.Phone
The User
object contains information related to a user.
Availability: The User
object is available anywhere there is a user. Consequently, it's available in any email, including email blasts and Admin Email Templates. The User
object is available on the personal and team (with Captain
handle) fundraising pages (for defaults). The User object is also available in any editable area or dictionary entry throughout the campaign site with the handle Current_User
. Keep in mind that this only recognizes a logged in user, so be sure to use an if tag or default filter to account for the non-logged in user.
Different attributes of the User
object will be available depending on where it's being used. Additionally, the object handle will be different depending on where it's being used. For example, in the Online Donation Confirmation email, there are two User
objects, labeled Donor
and Fundraiser
. To determine the proper handle in a given environment, open the Placeholders popup to see how the User
object is referenced. The various possible handles for the User object are listed here:
- User (when not otherwise specified, use this handle)
- Current_User
- Donor
- Primary_Registrant
- Registrant
- Registered_By
- Fundraiser
- Captain
Attributes: The User
object has the following attributes:
User.First_Name
User.Last_Name
- User.Salutation
- User.Suffix
User.Company
User.Email
- User.Is_Primary
User.Is_Fundraiser
User.Is_Attendee
User.Is_Team_Captain
- User.Roles (array of Role object)
- Fundraiser extension:
- Fundraiser.Goal_Amount
- Fundraiser.Amount_Raised
- Fundraiser.Amount_To_Goal
- Fundraiser.Campaign_Name
- Fundraiser.Fundraising_Page
- Fundraiser.Direct_Donate
- Registrant extension:
- Registrant.Registration_Fee
- Registrant.Registration_Fields
- Registrant.Amount_Discounted
The Team
object contains information related to a Rallybound team.
Availability: The Team
object is available anywhere there may be a team. It is available in most emails, including email blasts and Admin Email Templates, as well as in the defaults of team pages. It is not available in editable areas on the website.
Attributes: The Team
object has the following attributes:
- Team.Name
- Team.Captains
- Team.Member_Count
- Team.Goal_Amount
- Team.Amount_Raised
- Team.Amount_To_Goal
- Team.Fundraising_Page
The Role
object contains information related to a role assigned to a registrant who registered through the Role Registration Flow.
Availability: The Role
object is available in the Registration emails on Role Registration campaigns.
Attributes: The Role
object has the following attributes:
Role.Name
Role.Cost
Role.Amount_Paid
Role.Discount_Amount
Role.Label
- Role.Api_Name
- Role.Form_Fields (array of Form Field object)
The Donation
object contains information related to a Rallybound donation.
Availability: The Donation
object is available in editable areas and dictionary entries on the post-donation thank you page, and all automated emails related to donations. The latter includes:
- Donation Confirmation
- Offline Donation emails
- Recommitment Charge email
- Recurring Donation emails
- Registration emails
- Member/Team Donation Notification emails
- Ticket Purchased emails
- User to User Thank You
Attributes: The Donation
object has the following attributes:
Donation.Donor_Display_Name
Donation.Amount
Donation.Date
Donation.Message
- Donation.Recipient (Goal object)
- Donation.Additional_Donation
- Donation.Is_Company_Donation
- Donation.Is_Corp_Sponsorship
- Donation.Is_Pledge
- Donation.Is_Verified
The Recurring Donation
object contains information related to a Rallybound recurring donation plan.
Availability: The Recurring Donation
object is available on the following Recurring Donation emails:
- Admin Recurring Donation Instance Failed Notification
- Recurring Donation Instance Failed
- Recurring Donation Plan Ended Notification
- Recurring Donation Plan Modified Notification
- Recurring Donation Plan Reactivated Notification
- Recurring Donation Plan Suspended Notification
Attributes: The Recurring Donation
object has the following attributes:
- Recurring_Donation.Amount
- Recurring_Donation.Status
- Recurring_Donation.Start_Date
- Recurring_Donation.Recurring_Period
Recurring_Donation.Recurring_Manage_URL
- Recurring_Donation.Recurring_Upgrade_URL
- Recurring_Donation.Charged_Count
Recurring_Donation.Total_Charge_Count
- Recurring_Donation.Failed_Charge_Count
- Recurring_Donation.Currency_Key
The Notification
object contains information related to a tribute notification submitted by a donor along with their donation.
Availability: The Notification
object is available on the Donation Confirmation and Donation Tribute Notification emails, and only on campaigns or donation pages which have the tribute feature enabled (see here for more).
Attributes: The Notification
object has the following attributes:
Notification.Recipient (User object)
Notification.Message
Notification.Media
Notification.Is_Email_Notification
Notification.Is_Mail_Notification
Notification.Address (Address object)
The Ticket
object contains information related to a ticket purchased or reserved through a ticketing page on a campaign or standalone ticketing page.
Availability: The Ticket
object is available on the Ticket Purchased Confirmation email.
Attributes: The Ticket
object has the following attributes:
Ticket.Name
Ticket.Description
Ticket.Price
Ticket.Tax_Deductible_Amt
- Ticket.Amount_Discounted
- Ticket.Tickets_Purchased_Count
The Form Field
object contains information related to a custom field that was submitted in any form.
Availability: The Form Field
object is available when calling it through another object which has custom fields, such as registrations, donations, or tickets.
Attributes: The Form Field
object has the following attributes:
Form_Field.Name
- Form_Field.Api_Name
Form_Field.Label
Form_Field.Value
The Payment
object contains information related to a Rallybound payment. Payments are created with every Rallybound transaction, including registrations, donations, and ticket purchases. The Payment
object is also available on refund emails, where its handle is Refund
.
Availability: The Payment
object is available on all transaction emails. These include:
- Donation Confirmation
- Offline Donation Verified
- Recommitment Charged
- Recurring Donation Plan and Instance emails
- Refund Donation Notification (object handle is
Refund
) - Registration Confirmation emails
- RSVP Confirmation
- Ticket Purchased Confirmation
Attributes: The Payment
object has the following attributes:
Payment.Name
Payment.Amount
- Payment.Base_Amount
- Payment.Additional_Amount_For_Fees
Payment.Method
- Payment.Card_Type
Payment.Last_Four_Digits_On_Card
- Payment.Bank_Account_Number
- Payment.Bank_Routing_Number
- Payment.Currency_Key
The Goal
object contains information related to a fundraising goal in Rallybound. This could be a campaign goal, a team page/goal, or a personal fundraising page/goal.
Availability: The Goal
object is available primarily as the Recipient
on the Donation
object. Due to the fact that Recipient
is the only forward-facing instance of the Goal
object, we will refer to the object here as Recipient
.
Attributes: The Goal
object has the following attributes:
- Recipient.Type
- Recipient.Name
- Recipient.Goal_Amount
- Recipient.Amount_Raised
- Recipient.Amount_To_Goal
- Recipient.Amount_Raised_Without_Champion
- Recipient.Amount_To_Goal_Without_Champion
- Recipient.Page
The Endurance_Challenge object contains information related to an Endurance Challenge.
Availability: The Endurance_Challenge
object is implemented on the Campaign
, Team
, and User
objects, and is available within those objects in the following emails:
- Registration Confirmation
- Registration Invite
- Fundraiser Goal Reached
- Team Goal Reached
Attributes: The Endurance_Challenge
object has the following attributes:
- Endurance_Challenge.Name
- Endurance_Challenge.Progress_To
- Endurance_Challenge.Metric
The Endurance_Goal
object contains information related the progress towards an Endurance Challenge logged by a fundraiser, or aggregated by a team or campaign.
Availability: The Endurance_Goal
object is implemented on the Campaign
, Team
, and User
objects, and is available within those objects in the following emails:
- Registration Confirmation
- Registration Invite
- Fundraiser Goal Reached
- Team Goal Reached
Attributes: The Endurance_Goal
object has the following attributes:
- Endurance_Goal.Goal_Amount
- Endurance_Goal.Progress_Amount
- Endurance_Goal.Activity_Count
- Endurance_Goal.Amount_To_Goal
The Summary Letter
object contains attributes that can include helpful information on a Donation Summary Letter.
Availability: The Summary Letter
object is available in Summary Letter editable message, which can be edited in the Admin, under Forms > Customize once configured for your organization (click here to learn more).
Attributes: The Summary Letter
object has the following attributes:
- Summary_Letter.Year
- Summary_Letter.Total_Eligible_Amount
The Cause
object contains information related to a cause, otherwise referred to as Event Listing. A cause/Event Listing is an object that can be associated with a fundraiser and/or donation. The most common use of this feature is for fundraisers to create events that are displayed on their page.
Availability: The Cause
object is available in cause-related emails:
- Member/Team Created Cause
- Custom cause-related email
Attributes: The Cause
object has the following attributes:
- Cause.Name
- Cause.Description
- Cause.Date
- Cause.Total_Amount
- Cause.Address (Address object)
There are various miscellaneous Liquid items that are available where they are applicable. Below is a list of Liquid objects, arrays and attributes that aren't included elsewhere.
Links
Activate_Page_Link
Create_Account_Link
Confirm_Reg_Link
Confirm_Registration_Link
Recommitment_Link
Reset_Password_Link
Verify_Email_Link
Amounts
- Eligible_Amount
- Eligible_Amount_Without_Fees
Attendee_Count
Attendees_Total
- Coupon_Code
- "now"
Registered_Via_Social
- User_Personal_Message
Liquid tags are used to create logic and control flow for templates. They are placed within curly brace percentage delimiters {% %}
.
Control flow tags create conditions that decide whether blocks of Liquid code get executed. Control flow tags:
if
Executes a block of code only if a certain condition is true
.
unless
The opposite of if: executes a block of code only if a certain condition is not met.
else / elsif
Adds more conditions within an if
or unless
block.
case / when
Creates a switch statement to compare a variable with different values. case
initializes the switch statement, and when
compares its values.
Iteration tags run blocks of code repeatedly. Iteration tags:
for
Repeatedly executes a block of code.
Variable tags create new Liquid variables. Variable tags:
assign
Creates a new variable.
capture
Captures the string inside of the opening and closing tags and assigns it to a variable. Variables created through capture are strings.
Filters are simple methods that modify the output of numbers, strings, variables and objects. They are placed within an output tag {{ }}
and are denoted by a pipe character |
.
Array filters change the output of arrays and/or return specific content in the array. Array filters:
all_info
Returns a pre-formatted text block pulled from the array information. This filter works on the following Rallybound arrays:
- Roles
- Registration Fields
- Tickets
contact_info
Returns a pre-formatted text block pulled from the array information. This filter works on the Captain
array, for which it displays the full name (or company if first/last aren’t applicable) and email address of each team captain:
field_by_api_name
Returns the value of any custom field, identified by the api name. Identifying by the api name ensures that the correct field is referenced, being that unique api names are required for custom fields.
field_by_label
Returns the value of any custom field, identified by the field name.
first
Returns the first item of an array.
last
Returns the last item of an array.
term_by_name
Use on the Campaign.Terms
object to access any dictionary term in the campaign.
Math filters allow you to apply mathematical tasks. Math filters can be linked and, as with any other filters, are applied in order of left to right. Math filters:
plus
Adds a number to another number.
minus
Subtracts a number from another number.
times
Multiplies a number with another number.
divided_by
Divides a number by another number.
String filters are used to manipulate outputs and variables of the string type. String filters:
adverb
Returns the adverb of a recurring interval. Works specifically on the Recurring Donation
object.
append
Concatenates two strings and returns the concatenated value.
capitalize
Makes the first character of a string capitalized.
downcase
Makes each character in a string lowercase.
natural_language
Prepends the word "Team" to team names that don't already have the word in their name. Works specifically on the Team.Name
object.
prepend
Adds the specified string to the beginning of another string.
prepend_an_or_a
Adds "an" or "a" before the word as grammatically appropriate. Note: only works on a single item — it does not remove the "a" or "an" for a plural version.
remove
Removes every occurrence of the specified substring from a string.
replace
Replaces every occurrence of the first argument in a string with the second argument.
split
Divides a string into an array using the argument as a separator. split
is commonly used to convert comma-separated items from a string to an array.
to_title_case
Makes the first letter of each word in a string uppercase.
upcase
Makes each character in a string uppercase.
Listed below are additional filters:
date
Converts a timestamp into another date format. Accepts the same parameters as Ruby's strftime
method. You can find a list of the shorthand formats in Ruby's documentation or use a site like strfti.me.
default
Sets a default value for any variable with no assigned value. Can be used with strings, arrays, and hashes.
exists
Checks to see if the object or attribute exists. Does not work on all objects.
money
Returns a number in monetary format.
name
Returns the user's full name (first and last). If there is no name listed, it will return the company name. Only works for fundraisers, not donor-only or org-level users.