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.