Skip to main content
Personalized emails consistently outperform generic broadcasts. The HoopAI platform gives you several ways to tailor email content to each recipient — from inserting a first name in the subject line to showing entirely different content blocks based on a contact’s data.

Types of personalization variables

The platform uses double-brace merge tags ({{variable}}) to dynamically insert contact and account data into emails at send time.

Standard fields

Built-in contact properties like first name, last name, email, phone, and city. Available for all contacts automatically.

Custom fields

User-defined fields attached to contact records — such as lead type, membership level, birthday, or referral source.

Custom values

Account-level reusable placeholders for static information — company name, support email, address, offer details.

Trigger links

Special links that fire workflow actions when clicked — used to track engagement and automatically update contact records.

Standard merge tags

These tags are available for every contact and do not require setup:
Merge tagOutput
{{contact.first_name}}Contact’s first name
{{contact.last_name}}Contact’s last name
{{contact.full_name}}Contact’s full name
{{contact.email}}Contact’s email address
{{contact.phone}}Contact’s phone number
{{contact.company_name}}Contact’s company
{{contact.address1}}Contact’s street address
{{contact.city}}Contact’s city
{{contact.state}}Contact’s state or region
{{contact.postal_code}}Contact’s postal code
{{contact.country}}Contact’s country

Custom fields

Custom fields extend the contact record with data specific to your business. Common examples:
  • {{contact.lead_type}} — filled in during lead capture
  • {{contact.membership_level}} — updated by a workflow when a contact upgrades
  • {{contact.preferred_location}} — selected in a form or survey
  • {{contact.renewal_date}} — stored when a subscription is created
To create a custom field:
  1. Go to Settings > Custom Fields
  2. Click + Add Field and select the field type (text, number, date, dropdown, etc.)
  3. Give the field a name and save
The merge tag for a custom field follows the format {{contact.field_key}}, where the field key is generated from the field name.

Custom values

Custom values are reusable account-level placeholders. Unlike contact fields (which are unique per contact), custom values hold the same content for all recipients. Use them for:
  • Business name: {{custom_values.business_name}}
  • Support email: {{custom_values.support_email}}
  • Promo code: {{custom_values.promo_code}}
  • Offer expiry date: {{custom_values.offer_expiry}}
  • Location address: {{custom_values.business_address}}
To create a custom value:
  1. Go to Settings > Custom Values
  2. Click + Add Value, name it, and enter the content
  3. Insert the merge tag into your email template wherever needed
When the custom value is updated in settings, it changes everywhere the tag is used — across all templates, campaigns, and workflows. This makes it easy to update seasonal offers, pricing, or contact details without editing individual emails.

Inserting merge tags in the email builder

In the email builder, merge tags can be added in any text element:
  1. Click inside a text element on the canvas to open the inline editor
  2. Click the Custom Values icon in the text toolbar (it looks like a tag or curly-brace icon)
  3. Browse or search the available tags and click to insert
Merge tags also work in:
  • Email subject lines
  • Preview text
  • Button link URLs (for dynamic links)
  • RSS block templates

Previewing personalization

Before sending, verify that merge tags resolve correctly: Send a test email: Click Test Email in the builder. Enter the email address to receive the test. The test email renders the tags using the data from a selected test contact — or leaves the tag blank if no test contact data is available. Preview custom fields in the builder: Use Preview Custom Fields (available in the builder menu) to select a specific contact and see their data rendered in the template canvas without sending an email.
Always preview at least one test with a contact who has incomplete data (a missing field) to see what the email looks like when a tag is blank. Empty fields leave a blank space — plan for this by using wording that still reads naturally if the field is absent.

Conditional content blocks

Conditional elements let you show or hide entire content blocks based on whether a contact’s field contains a specific value. This allows a single template to deliver different experiences to different contacts. How to configure a conditional element:
  1. Select the element or layout section in the builder
  2. Open the Visibility tab in the left panel
  3. Choose Conditional and define the condition:
    • Field: select the custom field to evaluate
    • Operator: equals, does not equal, contains, is not empty, is empty
    • Value: the comparison value
Example scenarios:
  • Show a “Welcome back, customer” block to contacts tagged as “customer” and hide it for all others
  • Display a local phone number to contacts in a specific city
  • Show an upsell offer only to contacts whose membership level equals “basic”

Trigger links are personalized links that fire a workflow action when clicked. When you embed a trigger link in an email, clicking it:
  1. Takes the contact to a destination URL
  2. Simultaneously triggers the linked workflow action (apply a tag, update a field, enroll in another workflow, etc.)
Common trigger link uses in email:
  • “Click here if you’re interested” → tags contact as interested, notifies sales
  • “Click to confirm your registration” → enrolls contact in event follow-up workflow
  • “I want a discount” → applies a tag that triggers a discount delivery workflow
To insert a trigger link in an email, select text or a button, open the link settings, and choose Trigger Link as the link type.

Appointment and workflow merge tags

When sending email from a workflow triggered by an appointment booking, additional merge tags are available:
Merge tagOutput
{{appointment.title}}Name of the appointment type
{{appointment.start_time}}Scheduled start time
{{appointment.end_time}}Scheduled end time
{{appointment.timezone}}Timezone of the appointment
{{calendar.name}}Calendar the appointment was booked on
{{user.first_name}}Assigned staff member’s first name
{{user.email}}Assigned staff member’s email

Important limitations

  • No fallback values — if a merge tag references a field that is empty for a contact, the tag renders as blank. There is no built-in default/fallback value. Write your copy so it reads naturally if the field is absent, or use conditional elements to hide sections when the field is empty.
  • Case sensitivity — merge tags are case-sensitive. {{contact.first_name}} works; {{Contact.First_Name}} does not. Always copy tags exactly from the picker.
  • Custom objects — advanced data structures beyond standard contact fields (such as product details linked to a contact) use a different syntax and require setup in Custom Objects.

Frequently asked questions

The merge tag renders as a blank space. Plan for this by using copy that still makes sense without the value. For example, “Hi {{contact.first_name}},” becomes “Hi ,” for contacts with no first name — consider writing “Hi there,” as a fallback by using conditional blocks to switch between personalized and generic greetings.
Yes. Merge tags work in subject lines and preview text. Common examples include “{{contact.first_name}}, your appointment is confirmed” or “Exclusive offer for {{contact.city}} residents.”
Update the custom value in Settings > Custom Values and save. The new value takes effect in all future sends — templates, campaigns, and workflow emails — without editing them individually.
Yes. Use conditional content blocks to show different product sections based on a contact field (such as industry, membership tier, or purchase history). Each block has its own visibility condition, so only the relevant product appears for each recipient.
In the email builder, click the Custom Values icon in the text toolbar to browse all available tags organized by category. You can also view the complete list in Settings > Custom Values and Settings > Custom Fields.
Last modified on March 7, 2026