HLAI Experts

Guide · Merge fields

HighLevel merge field fallback: why '| default:' breaks a send

In GoHighLevel (GHL), a Liquid-style fallback such as {{contact.your_field | default: "there"}} can stop a message cold: we've seen the send fail with a template parser error and nothing delivered. In email, set the fallback in the merge tag's Default Text Editor. In a snippet, use an if/else block, and prove it by sending.

Rob EasonPublished

Before you touch the template, look at the field. A blank merge field can mean nothing ever wrote to it, and a fallback only hides that.

Two ways this shows up

The first is loud. You add a pipe filter to a merge tag so contacts with an empty field still get a sensible word, and the send fails with a template parser error. In the case we recorded it was a send from the conversation composer, and nothing went out.

The second is quiet. An email arrives with a gap where the merge field should be, because the field on that contact is empty and nothing told HighLevel what to show instead.

Neither one shows in the editor. The composer we used displayed raw merge tokens before sending, so the message looked the same whether the field was filled, empty, or about to break the send.

Why the pipe filter fails

The '| default:' syntax comes from Liquid templates. In the send we recorded, HighLevel's parser didn't skip over it. It rejected the whole message.

A Handlebars-style conditional did work when we tested it in email. That's the pattern we use for fallbacks outside the email builder, with one limit we hold to: it's proven in email, and we haven't verified it by sending a text.

The fix in an email

The email builder has its own fallback, and it's the one HighLevel documents. The default text appears only when the field is empty, and it never changes the value stored on the contact.

HighLevel's help page also documents a default helper you can type into the email builder. If you use it, insert the field from the field picker and keep the token exactly as it comes out. The page's own examples spell the first-name field two different ways, so a token copied from an example can fail without telling you. HighLevel has changed this before, so check the current screen.

  1. Open the email and click the merge tag you want to cover.
  2. Type the fallback text in the Default Text Editor.
  3. Click Save.
  4. Repeat for every other place the same tag appears. Defaults are set per occurrence, so the greeting's default doesn't carry to the sign-off.
  5. Check the subject line and preview text as well. Defaults work there, not just in the body.

The fix in a snippet

The Default Text Editor belongs to the email builder. In a snippet, the fallback has to live in the text itself. Take the pipe filter out, then write a conditional in its place:

{{#if contact.your_field}}{{contact.your_field}}{{else}}your fallback text{{/if}}

Swap contact.your_field for the exact token your field picker inserts, in both places. Our test proved this block in an email send. Treat a text snippet as untested until your own SMS send says otherwise.

  1. Remove the '| default:' filter from the snippet.
  2. Add the if/else block, using the field token from your picker.
  3. Send it to an internal test contact whose field is empty, and check that the fallback text arrives.
  4. Fill the field on that contact, send again, and check that the real value arrives.
  5. Only then put it in front of real contacts.
Prove it twice by sending: once with the field empty, once with it filled. The editor won't show you either result.

Check the field before you blame the template

A fallback covers an empty field. It doesn't explain it. When a value goes missing for some contacts, open one of them and ask what was supposed to write that field.

We've seen a blank that looked like a time zone problem turn out to be a field nothing had ever written. Adding a fallback there would have made the message read fine and left the real fault in place.

  • Open a contact where the value came out blank and look at the field itself.
  • Find the workflow, form or import that's meant to fill it.
  • Check whether that contact ever went through it.

Rather have it set up for you?

We'll find what should be writing your fields, put in fallbacks that are tested to work, and prove them with real sends, starting with a 30-minute 1:1 with Rob.

Book a 1:1 with Rob

Mistakes that bring it back

A fixed fallback can break again the next time someone edits the message. Watch for these.

  • Trusting the composer, which shows raw tokens rather than what the contact will read.
  • Treating an email test as proof for SMS.
  • Setting one default and assuming it covers every copy of the same tag.
  • Typing a field token from an example instead of inserting it from the picker.
  • Using a fallback to cover a field that a broken workflow should be filling.

Questions

Merge field fallback questions

Does HighLevel support Liquid filters like '| default:' in merge fields?
We've seen a pipe default filter fail a HighLevel send with a template parser error, and nothing was delivered. We don't use Liquid filters in HighLevel messages. In email, the merge tag's Default Text Editor is the documented way to set fallback text.
Will a default value change what's stored on the contact?
No. HighLevel's help page says email defaults don't change stored CRM values. The default only appears in that message, and only when the field is empty.
Does the if/else fallback work in SMS?
We've proven it in email only. We haven't verified it by sending a text, so treat SMS as untested and send one to an internal test contact before you rely on it.
Why does my preview show the merge tag instead of a name?
The composer we used showed raw merge tokens before sending, so it can't tell you what a contact will see. The only real preview is a send to an internal test contact whose fields you control.
Do I have to set the default every time the merge tag appears?
Yes. HighLevel sets email defaults separately for each occurrence of a merge tag, so a default on the greeting doesn't cover the same tag further down. Set each one, including any in the subject line and preview text.
Rob Eason

Who you talk to

Rob Eason

Rob runs HLAI Experts and takes the 1:1 calls himself.

He is a HighLevel Certified Admin with the second-most reviews in HighLevel's Certified Admin Directory worldwide, all of them 5 out of 5.

He won HighLevel's Top New Subaccounts via AI Employee award in its 2025 Summer of AI Awards and taught HighLevel's official masterclass on its AI Employee.

Before HighLevel, he co-owned a 60-employee financial services firm and sold his share.

On the call he looks at your account, not a script.

5/5 across 83 reviews in HighLevel's Certified Admin Directory