← Dashboard Dashboard Workflows Glossary Custom Builds
GHL Lesson · Data & Personalization

Custom Values vs. Custom Fields.

Two features. One letter of difference in their name. Completely different jobs — and confusing them will break your automations.

~10 Min Read GHL Fundamentals Personalization
Custom Values
Seen by Everyone.
The same value for every single contact in your account. Your studio name, your phone number, your booking link. Set once — appears everywhere, for everyone, always identical.
Custom Fields
Personal. Just Hers.
A different value for each contact — stored on her record alone. Her session date, her collection, her payment plan. Sarah's is different from Jasmine's. Always.
The Simplest Explanation

One sentence. Each.

Custom Values

Your Studio. Your Info.

Information that is the same for every single contact — it belongs to your business, not to any one person.
  • Set once in your GHL account settings
  • Applied globally — every contact, every email, every workflow sees the same value
  • Examples: your studio name, your phone number, your booking link, your session fee amount, your Instagram handle
  • When you change it in one place, it updates everywhere instantly
  • Works in emails, SMS, workflows, and funnels
  • Found under: Settings → Custom Values
Custom Fields

Her Info. Personal.

Information that is unique to each individual contact — stored on her record, different for every person.
  • Created as a field type, filled in per-contact via forms, workflows, or manual entry
  • Personal — each contact has her own value stored separately
  • Examples: her session date, her collection choice, her payment plan start date, her intake form answers, her referral source
  • Pulled into emails and SMS using merge tags to personalize messages
  • Works in emails, SMS, and workflows — does NOT work in funnels
  • Found under: Settings → Custom Fields → Contacts
Think Of It This Way

The easiest way to remember the difference.

Imagine you are writing a letter to every client you have ever booked — all at once.

Custom Values are the parts of that letter that never change. Your return address. Your studio name. Your phone number at the bottom. Your booking page URL. You write those once and they print the same on every single letter. That is a Custom Value — it belongs to your business, not to her.

Custom Fields are the parts that are different for each person. Her name. Her session date. The collection she chose. How many images she ordered. You pull those from her individual record and they print differently on each letter. That is a Custom Field — it belongs to her contact record.

✦ Example — Email Subject Line

Using a Custom Value: Your session at {{custom_values.studio_name}} is confirmed → prints as "Your session at Moonlight and Lace Boudoir is confirmed" for every single client. Same every time.

Using a Custom Field: {{contact.first_name}}, your session is on {{contact.session_date}} → prints as "Sarah, your session is on August 14" for Sarah and "Jasmine, your session is on September 3" for Jasmine. Different for each person.

Where Each One Works

Which features support which type.

Custom Values — Where They Work
  • Emails — subject lines, body text, footers
  • SMS messages — merge into texts seamlessly
  • Workflow actions — conditions, wait steps, action text
  • Funnels and websites — dynamic text elements, buttons, headlines
  • Calendars — booking confirmation messages
  • Forms — default text and labels
Custom Fields — Where They Work
  • Emails — personalize every message with her specific data
  • SMS messages — her name, her date, her details
  • Workflow actions — conditions based on her data, personalized text
  • Calendars — confirmation messages with her specific details
  • Funnels — does NOT work. Explained in full below.
⚠ Important — Read This Before You Build Anything In A Funnel

Custom Fields do not work in GHL funnels.

This is one of the most common points of confusion in GHL and it has burned a lot of photographers. You go to build a funnel page — a thank-you page, a booking confirmation page, a session prep page — and you try to personalize it with her name or her session date using a Custom Field merge tag. It does not populate. It either shows the raw tag code or it shows nothing at all.

This is not a bug. It is a fundamental architectural limitation of how GHL funnels work.

Here is why: when a contact views a funnel page, GHL renders that page as a static web page served to anyone who visits the URL. There is no active session or logged-in context that tells GHL which specific contact is viewing it at that moment. Because GHL cannot identify which contact record to pull from, it cannot populate contact-specific Custom Fields. The page has no way to know whether it is Sarah or Jasmine opening it.

Custom Values work in funnels because they do not belong to any contact — they belong to your account. GHL renders them at the account level before serving the page. No contact identification needed.

The workaround: if you need personalized content on a funnel page, deliver it through an email or SMS instead. The email fires after the funnel form submission, pulls her Custom Fields correctly, and delivers the personalized content in her inbox — where contact-level merge tags work perfectly. Your funnel page itself uses Custom Values for your studio info, and your follow-up email handles everything personal.

Boudoir-Specific Examples

What belongs where in your studio.

✦ These Are Custom Values — Studio-Wide, Set Once

{{custom_values.studio_name}} — Moonlight and Lace Boudoir. Same in every email forever.

{{custom_values.photographer_name}} — Deanna. Same signature on every automated message.

{{custom_values.studio_phone}} — Your studio number. Every SMS footer.

{{custom_values.booking_link}} — Your booking page URL. One change updates every single email that links to it.

{{custom_values.session_fee}} — $600. Change it once when your pricing changes. Every email that mentions the session fee updates automatically.

{{custom_values.instagram_handle}} — @moonlightandlaceboudoir. Every email footer that links to Instagram.

{{custom_values.studio_address}} — Your street address for parking instructions and session day emails.

✦ These Are Custom Fields — Per-Contact, Personal to Her

{{contact.first_name}} — Already built in. Her first name. Personalize every single message.

{{contact.session_date}} — Her specific session date. Pulled from your calendar or intake form into her contact record.

{{contact.collection_choice}} — Which collection she booked. Used in confirmation and prep emails.

{{contact.payment_plan_start}} — Her first installment date. Used in payment reminder workflows.

{{contact.referral_source}} — Who sent her. Used to trigger your referral thank-you workflow.

{{contact.session_prep_notes}} — Anything specific she mentioned in her intake form. Used to personalize her pre-session email.

{{contact.total_investment}} — Her final order total. Used in the thank-you and delivery confirmation email.

How To Create Each One

Exactly where to find them in GHL.

  1. I.

    Creating a Custom Value

    Go to Settings → Custom Values in your GHL account left sidebar. Click + Add Custom Value. Give it a name (e.g. "Studio Name") and a value (e.g. "Moonlight and Lace Boudoir"). Click Save. GHL will generate the merge tag automatically — it will look like {{custom_values.studio_name}}. Copy that tag and use it anywhere in your emails, SMS, and workflows.

  2. II.

    Creating a Custom Field

    Go to Settings → Custom Fields → Contacts. Click + Add Field. Choose the field type — Text for names and free-form answers, Date/Time for session dates, Number for dollar amounts, Dropdown for fixed choices like collection names. Name it clearly. The merge tag will look like {{contact.your_field_name}}. This field now appears on every contact record and can be filled in manually, via a form, or by a workflow action.

  3. III.

    Filling a Custom Field automatically via workflow

    Inside any workflow, add an Update Contact Field action. Choose the Custom Field you want to fill. Set the value — either a static value, a merge tag from another field, or a dynamic value from the trigger event. This is how your booking page automatically populates her session date, her collection choice, and her payment plan details into her contact record without you touching anything.

  4. IV.

    Using merge tags in emails and SMS

    In any email or SMS in GHL, click the { } merge tag button or type double curly braces. You will see a dropdown of all available tags — both Custom Values (under Custom Values) and Custom Fields (under Contact). Select the one you want. GHL inserts the tag. When the message sends, it replaces the tag with the actual value for that specific contact. If the field is empty for a contact, the tag renders as blank — so always make sure the field is populated before a message that uses it fires.

Common Mistakes

What photographers get wrong.

✦ The Short Version ✦

Studio info = Custom Value. Her info = Custom Field.

Every time you are about to create something in GHL, ask one question: is this the same for every contact, or is it specific to her? Same for everyone = Custom Value. Specific to her = Custom Field. That one question solves 90% of the confusion — and it will save you from the funnel headache before it happens.