ActiveCampaign personalization tags: defaults, HTML and DKIM

ActiveCampaign's %FIRSTNAME% prints a blank space when the field is empty. Set a default value, use conditional content, code custom HTML and set up DKIM.

5,000

Contacts: below this account size, ActiveCampaign is phasing in a generic From address for domains that are not authenticated
On this page
  1. How do ActiveCampaign personalization tags work?
  2. How do I give %FIRSTNAME% a default value?
  3. Conditional content as a fallback for one email
  4. Why is my ActiveCampaign personalization tag not working?
  5. Can you use personalization tags in the subject line?
  6. How to use a custom HTML email template in ActiveCampaign
  7. How to set up an ActiveCampaign sending domain with DKIM and DMARC
  8. Sources

In ActiveCampaign the first-name personalization tag is %FIRSTNAME%, and when a contact's First Name field is empty, the recipient sees a blank space where the name should be. The tag has no fallback of its own. Give the field a default value under Contacts, Fields, or wrap the greeting in conditional content that shows other words when the name is missing.

In the email

Hi %FIRSTNAME%,
% and %
Open and close the tag.
FIRSTNAME
The field's personalization tag. ActiveCampaign generates it, and a custom field's tag can be edited on the field.
|UPPERFIRST
Optional. After a pipe comes one of seven case modifiers. There is no fallback slot.

On the field: Contacts, Fields, the pencil icon

Customize your field options

Field nameFirst Name
Personalization tagFIRSTNAME
Default valuethere

What each contact receives

Ada, first name AdaHi Ada,
Sam, first name empty, no default valueHi (blank),a blank space
Sam, first name empty, default value thereHi there,

Orange: the blank, and the one place a fallback can live

Example. The greeting Hi %FIRSTNAME%, sent to three contacts. The tag holds no fallback; the default value is set on the field. From ActiveCampaign's personalization tags overview and default value guide, read 31 October 2026. The panel is drawn after its screenshot of a custom field's options; check that your First Name field shows the same Default value box.

How do ActiveCampaign personalization tags work?

ActiveCampaign generates a tag for every field: a word in capitals between percent signs, such as %EMAIL%. A custom field's tag can be edited in the field's options, and hyphens are removed from tags you create.

After a pipe, a tag takes one of seven case modifiers, as in %FIRSTNAME|TITLECASE%. The pipe holds nothing else: ActiveCampaign documents no fallback form, so do not expect %FIRSTNAME|there% to print "there".

The tags a custom HTML email uses most, from the overview and the unsubscribe link guide:

TagWhat it inserts
%FIRSTNAME%, %LASTNAME%, %FULLNAME%The contact's names
%EMAIL%The contact's email address
%ORGANIZATION%The contact's organization
%UNSUBSCRIBELINK%A link that unsubscribes the contact from the lists the email went to
%UNSUBSCRIBELINK%&ALLThe same, from every list, and adds the contact to the exclusion list
%UPDATELINK%A link to update subscriptions
%WEBCOPY%, %WEBCOPY-NOSOCIAL%A link to the web copy, with or without social sharing links
%SENDER-INFO%, %SENDER-INFO-SINGLELINE%Your physical address, on several lines or one
%TODAY%, %TODAY+1%Today's date, or tomorrow's

How do I give %FIRSTNAME% a default value?

The default lives on the field. As of October 2026, ActiveCampaign's steps are: Contacts, Fields, the Contacts tab, then hover over the field, click the pencil icon, type the default value and save. It never shows on the contact record; it is "substituted at the time of personalization" when the field is empty. Standard deal and account fields cannot take one.

Can the standard First Name field take one? The guide excludes only standard deal and account fields, but the overview and the page on editing fields present defaults as a custom field option. ActiveCampaign's community manager wrote in March 2026 that without a default, tags like %FIRSTNAME% leave a blank space and a default fills it. Check for a Default value box on First Name before you rely on it.

A default is one value for every email. "there" reads well after "Hi", less well in a subject line such as "%FIRSTNAME%, your invoice", and the guide does not limit defaults to the body.

Conditional content as a fallback for one email

Conditional content shows or hides content by rules on contact fields, tags and more. In the Email Designer, hover over the three dots beside a block, click the Conditional Content icon and set the rule. Two text blocks, Hi %FIRSTNAME%, and "Hi there,", each under its own rule, cover an empty name in one email.

In a custom HTML campaign, choose Insert, then Conditional Content, set the condition, and ActiveCampaign writes the logic at your cursor. Its example, for a contact tag:

%IF in_array('Interested in cameras', $TAGS)%
Insert Content Here
%ELSE%
Insert Alternative Content Here
%/IF%

The page has no example for an empty field. On ActiveCampaign's former community forum, a user reported in 2020 that %IF empty($FIRSTNAME)% worked as the opening line, with the bare greeting before %ELSE% and the named one after it. That is a forum report, not documentation, so preview it.

In that thread, a condition with curly quotes failed. ActiveCampaign lists curly quotes and braces, the percent sign and the backtick as characters known to cause problems in conditional content, so never paste one from a word processor.

Why is my ActiveCampaign personalization tag not working?

  • It was a test email. Tags and conditional content do not render in a test send. Use Test and preview, then Desktop preview, with a contact's email address, or send a copy to a test list.
  • The field is empty. Then the tag worked; ActiveCampaign's own screenshot reads "Hi ,".
  • It is in the preheader. The contact preview does not show preheader text; a test list send does.
  • The campaign is text-only. The text-only builder takes no tags.
  • The tag is not the field's tag. Insert tags from the menu rather than typing them; the help pages do not say what a mistyped tag prints.

Can you use personalization tags in the subject line?

Yes. Click the lightning bolt in the Subject Line field on the Campaign Settings page and pick a field; the tag lands at the end, so add a space or move it (subject line guide). Preheader text takes a tag typed into its field. Message Variables cannot go in a subject line, and the conditional content guide does not list subject lines, so there the field default is the only documented cover.

%UNSUBSCRIBELINK% and %WEBCOPY% print URLs, so they go in a link's href (web copy guide).

How to use a custom HTML email template in ActiveCampaign

Code can go in three places (as of October 2026):

  • The Custom HTML campaign builder. From Email, choose Start from scratch instead; on the Campaign Summary page, open the arrow beside Create with email designer and choose HTML builder (ActiveCampaign). Insert adds personalized content, conditional content, images and RSS.
  • The Email Designer's code view. The Code button opens the HTML and CSS of the email or of one block (HTML with the Email Designer).
  • An HTML block. In the Classic Designer, leave out the doctype, html, head and body tags, which the designer generates; media queries are not supported there.

For a reusable template: Email, Campaign Templates, Create a Template, Custom HTML, Start from Scratch. A template only works in the designer it was made in (templates overview), and the help pages describe no editable regions like Mailchimp's mc:edit.

What does ActiveCampaign strip from custom HTML?

The HTML builder's design guidance:

  • Keep the design 650px wide or less.
  • Inline every style; no CSS classes, no shorthand such as font:, tables rather than floats.
  • Put nothing above the opening <body> tag, because anything there "will likely be stripped and unused".
  • No JavaScript or iframes; absolute image URLs with alt text.

The Email Designer does not support <button>, <form>, <input>, <select>, <textarea>, <iframe>, <script> or <video>. Link tracking, on by default, swaps your URLs for tracking links, and Gmail clips at 102 KB of raw HTML, tracking codes included; more in the Gmail clipping guide.

Every email needs your physical address and an unsubscribe link, so ActiveCampaign adds a default footer. Put %SENDER-INFO% (or %SENDER-INFO-SINGLELINE%) and %UNSUBSCRIBELINK% in your own HTML and the default footer goes; typed text does not count. The address comes from Settings, Addresses, and without one, emails stay in draft. An obscured unsubscribe link triggers a compliance review.

The free editor exports HTML for ActiveCampaign with tags such as %FIRSTNAME%, footer links on %UNSUBSCRIBELINK% and %WEBCOPY%, and fallbacks dropped and listed in the export notes, to set as field defaults. It does not write %SENDER-INFO%, so add it or the default footer stays.

How to set up an ActiveCampaign sending domain with DKIM and DMARC

You must verify a domain before sending, and setting it up covers DKIM, SPF and DMARC. As of October 2026 it is under Settings, Advanced, Sending Domain. Configure Domain signs in to a listed DNS provider and writes the records. Set up manually emails a verification link, valid seven days, to an address at the domain, then shows four records.

What you publish

RecordHostValue
DKIM1CNAMEacdkim1._domainkey.example.comdkim.acdkim1.acems1.comPoints to a 2048-bit key ActiveCampaign publishes, so it can sign as example.com.
DKIM2CNAMEacdkim2._domainkey.example.comdkim.acdkim2.acems1.comA second key, published the same way.
Mailserver DomainCNAMEem-12345.example.comcmd.emsend1.comYour Return-Path. The target publishes the SPF record, so your own SPF record stays as it is.
DMARCTXT_dmarc.example.comv=DMARC1;p=none;A basic policy. Skip it if the domain already has one.

What Gmail shows for a message from you@example.com

FieldBefore the recordsAfter
Beside your namevia acems1.comNothing
mailed-by, the Return-Path checked for SPFs7.acems1.comem-12345.example.com
signed-by, the DKIM d= domainacems1.comexample.com

Underlined in orange: the selectors, and the signing domain that now matches your From address

Example. The four records the Set up manually screen lists for example.com. ActiveCampaign's screenshot cuts the DKIM values short; the full targets and the key size were read from activecampaign.com's own records in public DNS on 31 October 2026, and the em- number differs by account. The header values follow Domains and domain alignment.

Skipping it has a visible cost: for accounts under 5,000 contacts, ActiveCampaign is gradually replacing an unauthenticated From address with a generic one such as myname.my-domain.com.1@12345.emcampaign.com.

Which DKIM selectors does ActiveCampaign use?

acdkim1 and acdkim2, as two CNAMEs at acdkim1._domainkey and acdkim2._domainkey; enter the full acdkim1._domainkey.example.com only if your DNS host does not append the domain. The setup screenshot cuts the targets short, but ActiveCampaign's own domain points them at dkim.acdkim1.acems1.com and dkim.acdkim2.acems1.com, both 2048-bit RSA keys in public DNS on 31 October 2026. DKIM set up by CNAME has used a 2048-bit key since February 2022; an older TXT setup keeps a 1024-bit key until moved.

Does ActiveCampaign need an SPF record?

Not on your domain. The Mailserver Domain record points a host such as em-12345 at cmd.emsend1.com, which publishes the SPF record. That host becomes your Return-Path, so SPF passes and aligns without touching your own record (ActiveCampaign). ActiveCampaign still suggests include:emsd1.com in your own SPF record if you send to France, China or Germany or struggle with Outlook (Advanced Settings FAQ); merge it into your one record and mind the 10-lookup limit.

Does ActiveCampaign's DKIM align with your From domain?

Yes, once the records are live: the DKIM domain becomes your From domain, which DMARC needs, and Gmail drops the "via acems1.com" beside your name. The Mailserver Domain aligns SPF too, in relaxed mode, as a subdomain of yours.

The fourth record, v=DMARC1;p=none;, is what ActiveCampaign calls a placeholder that meets Gmail's and Yahoo's requirement. If your domain already has a DMARC record, keep it: Configure Domain does not add a second, and a receiver that finds more than one discards them all. Tighten the policy only once DKIM passes, or your mail fails DMARC; see the sender requirements.

Yes, with a custom domain, which plays no part in DMARC: a CNAME from a subdomain such as newsletter.example.com to your activehosted.com account address, saved under Settings, Domains (custom domain guide). Campaigns then track links on it. The alignment page lists it for Enterprise accounts.

How to check it once it is live

Records usually propagate in 5 to 10 minutes, rarely 24 hours. Under Settings, Advanced, the domain should read Authenticated; if not, use Recheck Authentication or Resolve Issues (ActiveCampaign). From outside:

dig +short CNAME acdkim1._domainkey.example.com
dig +short CNAME acdkim2._domainkey.example.com
dig +short TXT _dmarc.example.com

Then send to a test list and look for dkim=pass with your domain and dmarc=pass in the Authentication-Results header, or paste the headers into the header analyzer.

The free mail-merge preview flags every empty merge field in a contact export, so you see who gets the default. The DKIM checker takes acdkim1 as the selector, and the email domain checker reads SPF, DKIM and DMARC. Draftship also builds and runs outbound inside a client's own platform.

Sources

Who do you want to hear back from?

Tell us who you sell to and what you have tried. We'll get back to you ASAP, and if it looks like a fit, we build it into your systems within days.

Or write to hello@draftship.io