GoHighLevel Custom Values vs Custom Fields: When to Use Each

The real difference between GoHighLevel custom values and custom fields, how their merge tags look, and how to keep both organized across sub-accounts.

The question of GoHighLevel custom values vs custom fields comes up in almost every new build. They look similar in the merge field picker, both use double curly braces, and both live under Settings. But they store very different things, and using the wrong one leads to messages that say the wrong name or a blank where a link should be. Here's how to tell them apart and when to use each.

The short answer

HighLevel's own help center puts it simply: custom fields store information tied to individual records, and custom values store reusable information that stays the same wherever it is used.

Custom field Custom value
Stores One value per contact or opportunity One value for the whole sub-account
Example Monthly Revenue, Lender Response Booking link, support phone, company name
Merge tag {{contact.monthly_revenue}} {{custom_values.booking_link}}
Who changes it Forms, imports, workflows, users editing a record An admin in Settings
Where it lives Settings, then Custom Fields Settings, then Custom Values

If the answer would be different for each lead, it's a custom field. If it's the same for every lead in the sub-account, it's a custom value.

GoHighLevel custom values vs custom fields in practice

When to use a custom field

Use a custom field any time you are collecting or tracking something about a specific person or deal:

Custom fields belong to an object. HighLevel's docs note that once a field is created as a contact or opportunity field, it can't be switched to the other, so pick carefully.

When to use a custom value

Use a custom value for sub-account-wide settings that appear in many messages:

The big win is maintenance. If the booking link changes, you update one custom value and every email, SMS and workflow step that uses {{custom_values.booking_link}} picks it up. With hard-coded text, you'd hunt through every template.

This is also why snapshot builders lean on custom values. You build the template with placeholders, load the snapshot into a new sub-account, then fill in that client's values.

How to create each one

Creating a custom value

  1. In the sub-account, go to Settings, then Custom Values.
  2. Add a new value, give it a clear name and enter the value.
  3. Optionally choose a folder to group related values, like links or legal text.
  4. Insert it in messages using the custom values option in the merge field picker.

Creating a custom field

  1. Go to Settings, then Custom Fields.
  2. Choose the object (Contact or Opportunity) at the top.
  3. On the Fields tab, click to create a field, pick a type and name it.
  4. Choose a folder if you want, check the preview, and save.

For the full walkthrough on keys, see how to find a custom field key in GoHighLevel.

A quick decision test

When you're not sure which one to create, ask three questions:

  1. Will two leads ever need different answers? If yes, it's a custom field.
  2. Will a form, import or workflow write to it? If yes, it's a custom field. Custom values are set by an admin in Settings.
  3. Would you change it once for the whole client? If yes, it's a custom value.

A booking link fails question 1 and passes question 3, so it's a custom value. "Preferred Appointment Time" passes question 1, so it's a custom field. If a value is per-rep rather than per-lead, like a rep's own calendar link, neither fits perfectly; most agencies use the contact owner plus user-level settings instead.

Mistakes that show up in real sub-accounts

Where the native way gets slow

Both lists are easy to read on their own. The friction comes from the fact that they are on separate pages:

How Field Finder handles it

Field Finder puts both lists side by side. The custom values viewer shows every custom value in a sub-account with its current value, next to the field browser list of every custom field with its key and merge tag.

That makes a post-onboarding check quick: open the sub-account, scan the custom values for anything still showing template text, and copy the merge tags you need. Field Finder is read-only, so you can hand it to a junior builder without worrying they'll change anything. When you want a record, export the list to CSV.

You can do all of this natively. Field Finder just saves the page-hopping when you're doing it across a lot of clients.

Questions

What is the difference between custom values and custom fields in GoHighLevel?

A custom field stores data per record, so every contact or opportunity can have a different value. A custom value stores one value for the whole sub-account, like a booking link or support email, and every message that uses it shows the same thing.

What does a custom value merge tag look like?

Custom values use the custom_values prefix, for example {{custom_values.calendly_link}}. Contact custom fields use the contact prefix, for example {{contact.monthly_revenue}}.

Are custom values included in snapshots?

Custom values are part of what a snapshot carries, which is why agencies use them for things like company name and booking links. After loading a snapshot, update the values in the new sub-account so the client's details replace the template's.

Features in this guide

Field Browser

Every custom field in a sub-account with its key, ID and merge tag, searchable and copyable in one click.

Custom Values Viewer

Every custom value in a sub-account with its current value and merge tag, shown next to your custom fields.

Keep reading

Field Finder

How to Find a Custom Field Key in GoHighLevel

Where GoHighLevel shows custom field keys and merge tags, how to copy them without typos, and a faster way for agencies running many sub-accounts.

5 min read
Field Finder

GoHighLevel Custom Objects Fields: Setup, Keys and Limits

How GoHighLevel custom objects fields work: creating an object, adding fields, finding their keys, native limits as of October 2026, and merge tag caveats.

4 min read
Field Finder

Delete Unused Custom Fields in GoHighLevel: Cleanup Guide

How to find duplicate and unused custom fields in GoHighLevel, check what depends on them, back up the data, delete safely, and audit many sub-accounts.

6 min read
All 6 tools, all 34 features: $149/month

Every tool above plus everything we release next. $302/month bought separately. 7 days free, cancel any time.

Start the bundle free