Merge Tags

Merge tags are placeholders that you put in emails and texts. Solidarity Tech replaces each tag with the person's value when it sends the message. For example, {{ user.first-name }} becomes Joe when sent to a Person named Joe.

You can use merge tags in emails, texts, and the text blocks of page forms. Page builder sections, such as 'Text' and 'Custom HTML', show merge tags as plain text. Merge tags use the Liquid template language.

The dashboard email and text editors have a 'Merge Tags' button. It lists common tags for that context:


Common Merge Tags

Person Tags

TagOutput
{{ user.first-name }}Person's first name
{{ user.last-name }}Person's last name
{{ user.full-name }}Full name
{{ user.alternate-name }}Alternate name
{{ user.preferred-name }}Alternate name if set, otherwise first name
{{ user.email }}Email address
{{ user.phone-number }}Phone number
{{ user.date-of-birth }}Date of birth (YYYY-MM-DD)
{{ user.age }}Age in whole years
{{ user.city }}City
{{ user.state }}State
{{ user.zip-code }}Zip code
{{ user.branch }}Person's branch name (scope-aware)
{{ user.branches }}Comma-separated list of the person's branches in the sending chapter or organization
{{ chapter.name }}Name of the person's chapter
📘

Scope-Aware Tags: {{ user.branch }} and {{ user.branches }} depend on the chapter or organization that sends the message. They show only the person's branches in that scope and in the chapters under it. For the person's chapter, use {{ chapter.name }}. Branches need the Professional or Enterprise plan.

💡

Formatting {{ user.date-of-birth }}: The tag outputs the raw stored value in YYYY-MM-DD format. To display it as prose (e.g. "March 22, 1985"), use the Liquid date filter: {{ user.date-of-birth | date: "%B %-d, %Y" }}. If the Person has no date of birth on file, the tag renders as an empty string — use {{ user.date-of-birth | default: 'not provided' }} to supply a fallback.

Agent Tags

TagOutput
{{ agent.first-name }}In email blasts, text blasts, and automations, it shows the first name of the person's 'Assigned Agent'. In textbank scripts and Solidarity app text templates, it shows the first name of the team member who sends.

Organization Tags

TagOutput
{{ organization.name }}Your top-level organization's name
📘

About {{ organization.name }}: In most messages, this tag shows your top-level organization's name. In event emails, event texts, and textbank scripts for an event, it shows the event's organization or chapter name. If you have multiple sub-organizations or chapters with their own branding and want the receipt to show the specific sub-org name, use the context-specific tag instead. For donation receipts, that's {{ donation-charge.recipient }} (see below).

Donation Tags

TagOutput
{{ user.total-donated }}Total lifetime donations
{{ user.most-recent-donation }}Most recent donation amount

Donation Receipt Tags

These tags work in the 'Donation Receipt' and 'Donation Refunded' system emails at Settings > System Emails. They resolve from the actual donation charge.

TagOutput
{{ donation-charge.recipient }}The name of the organization or chapter that received the donation, taken from the Stripe payout account(s) on the donation page. For pages with multiple Stripe payouts, names are joined with " & ".
{{ donation-charge.amount }}The charged amount with currency symbol (e.g. $25.00)
{{ donation-charge.date }}The charge date (e.g. May 02, 2026)
{{ donation-charge.receipt-number }}The receipt number (e.g. #D193-67BF)
{{ donation-charge.receipt-url }}A public URL to view the receipt in the browser
{{ donation-charge.type }}Either One-Time or Recurring
{{ donation-charge.card.brand }}The card brand (e.g. Visa)
{{ donation-charge.card.last4 }}The last four digits of the card
📘

Recommended for receipt subjects: Use {{ donation-charge.recipient }} (not {{ organization.name }}) in the Donation Receipt subject line. The recipient tag automatically shows the specific sub-organization or chapter that received the donation, which is what most organizations with multiple Stripe accounts or sub-orgs want. For organizations with a single Stripe account scoped to the root organization, both tags render the same value.

Email Wrapper Tags

These tags are available in email wrappers (Settings → Email Wrappers) and in email content that renders inside a wrapper. Note that unlike most merge tags, these use underscores rather than hyphens.

Social media URLs come from your Social Media settings. Emails use the 'Social Media' settings of the organization or chapter that sends them, and that scope can inherit its parent's links. Emails with no sending scope, such as system emails, use the settings of the wrapper's organization or chapter.

TagOutput
{{ organization.twitter_url }}X (Twitter) URL from Social Media settings
{{ organization.facebook_url }}Facebook URL
{{ organization.instagram_url }}Instagram URL
{{ organization.tiktok_url }}TikTok URL
{{ organization.youtube_url }}YouTube URL
{{ organization.bluesky_url }}Bluesky URL
{{ organization.discord_url }}Discord URL
{{ organization.mastodon_url }}Mastodon URL
{{ organization.threads_url }}Threads URL
{{ organization.upscrolled_url }}Upscrolled URL
{{ organization.image_url }}Organization logo image URL
{{ organization.mailing_address }}Organization mailing address
{{ unsubscribe_url }}Personalized unsubscribe link for the recipient
{{ wrapper_header_image_url }}The wrapper's custom header image URL
{{ wrapper_footer_image_url }}The wrapper's custom footer image URL

Matching icon images are available for building social link rows. {{ social_icons.<network> }} returns a black icon URL (for light backgrounds) and {{ social_icons_white.<network> }} returns a white icon URL (for dark backgrounds). Available networks: twitter, facebook, instagram, tiktok, youtube, threads, bluesky, discord, mastodon, upscrolled.

{% if organization.instagram_url %}
  <a href="{{ organization.instagram_url }}"><img src="{{ social_icons.instagram }}" width="24" /></a>
{% endif %}
📘

Email wrappers only: Social media URL and icon tags are only available in email rendering. On public pages, social media links come from the website's settings, not from Liquid merge tags.

Some tags work only in certain contexts, and the 'Merge Tags' button does not list every tag.


Using Default Values

If a Person doesn't have a value for a field, you can provide a fallback using the default filter:

Hi {{ user.first-name | default: 'friend' }}, welcome!

This outputs "Hi friend, welcome!" if no first name is available.


Page Link Merge Tags

Page link merge tags create a personal link for each recipient. The page's 'Recognizes User' setting decides if the link recognizes the person. This is one of the most powerful features for reducing friction and preventing duplicate records.

Why Use Page Links?

When you send a link like {{ action-page.your-page-slug }}:

  • The Person is recognized when they arrive, as the page's 'Recognizes User' setting allows
  • Fields set to 'Visible If Blank' stay hidden when the recognized person already has a value
  • You avoid duplicate records from re-entered phone numbers or emails
  • The experience is cleaner and faster

Always use page link merge tags when sending links to your Pages via email or text.

Example

Instead of:

Sign up here: https://myorg.solidarity.tech/join

Use:

Sign up here: {{ action-page.join }}

The recipient gets a personal link that recognizes them as the page's 'Recognizes User' setting allows.


Context-Specific Tags

Some merge tags are only available in certain contexts:

Event tags include:

  • {{ event.title }} - Event name
  • {{ event-session.start-time }} - Session start time
  • {{ event-session.location-address }} - Event location
  • {{ event-session.confirm-rsvp-url }}: Personalized link that confirms an existing RSVP. It works only when RSVP confirmations are on for the event.
  • {{ event-session.cancel-rsvp-url }} - Personalized link to cancel an RSVP
  • {{ event-session.add-to-calendar-url }} - Personalized link to add the event to a calendar app

Event emails, event texts, and textbank scripts for an event can use the title, time, and location tags. The tags render blank in email blasts, text blasts, and automation 'Send a Text' steps.

Custom User Properties you've created are also available as merge tags.


Advanced: Referrals Loop

For power users familiar with Liquid templating, you can iterate over a Person's referrals in email and text blasts. This is useful for sending recruiters a personalized list of everyone they've referred.

Template Pattern

{% for referral in referrals %}
{{ referral.first-name }} {{ referral.last-name }}{% if referral.submitted-action-page.name %} - signed up for {{ referral.submitted-action-page.name }}{% endif %}
{% endfor %}

Available Fields

FieldDescription
{{ referral.first-name }}Referral's first name
{{ referral.last-name }}Referral's last name
{{ referral.full-name }}Referral's full name
{{ referral.email }}Referral's email
{{ referral.phone-number }}Referral's phone number
{{ referral.submitted-action-page.name }}Name of the page they signed up through (if applicable)
{{ referrals.size }}Number of entries in the list, up to 500.

Example Use Case

Send an email to recruiters showing their referral activity:

Hi {{ user.first-name }},

Thanks for spreading the word! You've referred {{ referrals.size }} people:

{% for referral in referrals %}
• {{ referral.first-name }} {{ referral.last-name }}{% if referral.submitted-action-page.name %} ({{ referral.submitted-action-page.name }}){% endif %}
{% endfor %}

Keep sharing!
⚠️

Limit: Returns up to 500 referrals. To see everyone a person referred, open their profile and use the 'Referred People' links.


Did this page help you?