HomeHelp CenterEmail & Communications

Merge fields and personalization

Insert dynamic data per recipient with dotted variable syntax.

2 min read · Updated Jul 4, 2026

Merge fields are placeholders that get replaced with each recipient's actual data when the email sends.

Syntax

Merge fields use a dotted {{category.field}} form, wrapped in double curly braces. For example {{contact.first_name}} is replaced with the contact's first name. The categories are contact, deal, donation, organization, and custom.

Contact fields

  • {{contact.first_name}}, {{contact.last_name}}
  • {{contact.email_primary}}
  • {{contact.phone_primary}}
  • {{contact.company_name}} — the associated company's name
  • {{contact.job_title}}
  • {{contact.lifecycle_stage}}

Deal fields (B2B)

  • {{deal.name}}, {{deal.value}}
  • {{deal.stage_name}}, {{deal.pipeline_name}}
  • {{deal.expected_close_date}}
  • {{deal.owner_name}} — the deal's owner

Donation fields (Nonprofit)

  • {{donation.amount}}, {{donation.date}}
  • {{donation.campaign_name}}, {{donation.fund_name}}
  • {{donation.type}}, {{donation.payment_method}}

Organization fields

  • {{organization.name}} — your organization's name from your settings
  • {{organization.website}}

Custom field merge

Any custom field is available as {{custom.field_name}}, e.g. {{custom.donor_segment}}.

Conditional blocks

For content that should only appear when a field has a value, wrap it in a conditional: {{#if contact.first_name}}Hi {{contact.first_name}}{{else}}Hi there{{/if}}. This is the supported way to handle missing data — there is no |default fallback pipe.

Validating before send

Send a test to yourself from the campaign builder to confirm your merge fields resolve. Any field that can't resolve for a recipient renders empty.