← GoHighLevel Review / Custom Fields
Feature Guide · Updated July 2026

GoHighLevel Custom Fields: Setup, Merge Tags & Workflow Triggers

How to create them, where they show up, and the folder system that keeps a big field list usable.

Affiliate disclosure: This page contains affiliate links. If you sign up through them we may earn a commission at no extra cost to you.
TL;DR — Custom fields store per-contact data GoHighLevel doesn't track by default (policy number, membership tier, move-in date). Create them at Settings → Custom Fields, choose a type (text/number/date/dropdown/checkbox/file), and they become available as merge tags in messages, fields on forms, and conditions in workflows. Different from tags (on/off labels) and from custom values (account-wide constants, not per-contact). Use folders + naming conventions once the list grows.

What are custom fields?

Custom fields hold contact-specific data GoHighLevel doesn't track out of the box. A gym might add "Membership Tier"; an insurance agency might add "Policy Number" and "Renewal Date"; a real estate agent might add "Budget Range" and "Preferred Area." Unlike tags, which are simple on/off labels, custom fields carry an actual value per contact that you can display, insert into messages, or act on.

How to create one

Custom fields vs custom values

Custom fieldsCustom values
ScopePer-contact (varies by person)Account-wide (same for everyone)
ExamplePolicy Expiry Date, Membership TierBusiness phone number, booking link
Use casePersonalization, segmentation, workflow logicReusable constants across every message/funnel
Both insert into messages the same way, via merge tags — the difference is whether the value changes per contact (field) or stays fixed (value). Mixing them up is a common early setup mistake.

Using fields to trigger workflows

This is where custom fields earn their keep. A workflow can branch or fire based on a field's value: only send a renewal reminder if "Policy Expiry Date" is within 30 days, route a lead to a different pipeline stage based on a "Budget Range" dropdown captured on a form, or personalize a message with "{{contact.membership_tier}}" instead of writing a generic blast. Fields turn static data into active automation logic, the same way tag triggers do for behavioral signals.
Keep the field list usable: group related fields into folders (by industry snapshot, by form, by use case) and apply a naming convention as the list grows — the same discipline recommended for tags. An unorganized field list with 80+ entries and no structure becomes a liability fast, especially across multiple sub-accounts or a resold snapshot.
Try GoHighLevel Free →30-day trial · custom fields + workflows + CRM in one platform

Frequently asked questions

What are custom fields?

Per-contact data GoHighLevel doesn't track by default — policy numbers, membership tiers, dates. Different from tags (on/off labels).

How do I create one?

Settings → Custom Fields → choose Contact/Opportunity/Company → pick a type → name and save.

Custom fields vs custom values?

Fields vary per contact; values are account-wide constants (like your phone number) reused everywhere.

Can fields trigger workflows?

Yes — branch or fire workflows based on a field's value, like a renewal date or a form dropdown answer.

Is there a field limit?

No published hard cap, but use folders + naming conventions once the list grows or it becomes unmanageable.