Custom Fields vs Custom Values

They sound similar but work completely differently. Here's the breakdown.

These two terms come up constantly in Grow, and almost everyone confuses them at first. They both use the same {{curly bracket}} syntax when inserted into messages, which makes them look identical. But they pull data from completely different places and serve completely different purposes.

Understanding the difference is essential before you touch contacts, workflows, or any kind of communication template.

Custom Fields

A custom field is a piece of data stored on a specific contact. Every contact in Grow has their own set of field values, and those values are unique to that person. Think of custom fields as columns in a spreadsheet where each row is a different contact.

Some fields are standard and built into every Grow account (first name, last name, email, phone number). Others are custom fields that were created either manually or by the Core to Grow integration.

Settings > Custom Fields showing the Core to Grow Sync folder with fields like First Booking Date (DATE), First Booking Status (SINGLE_OPTIONS), Intro Offer (CHECKBOX), Active Package (TEXT), Active Package Category (TEXT), Past Active Packages (TEXT), Attendance Total (NUMERICAL), and Late Cancel Accrual (NUMERICAL). Each field shows its unique key in curly bracket syntax.
The Custom Fields list inside the Core to Grow Sync folder, showing field names, types, and their unique keys.

Examples of custom fields

FieldWhat it storesExample value
contact.first_nameThe contact’s first nameSarah
contact.active_packageTheir current membership or packageUnlimited Monthly
contact.days_absentDays since their last class12
contact.intro_offerWhether they have claimed an intro offerclaimed
contact.location_statusTheir current status at the locationactivePackage
contact.first_booking_statusStatus of their very first bookingattended

The key thing: these values are different for every contact. Sarah’s days_absent might be 12, while James’s might be 0 because he has a class booked tomorrow.

Where custom fields come from

Most of the custom fields you see in Grow were created automatically by the Core to Grow integration. When the sync runs, it pushes data from Core (membership status, attendance, packages) into custom fields on each contact record in Grow. The full list of synced fields is documented in the Core to Grow Integration section.

You can also create your own custom fields in Settings > Custom Fields for any additional data you want to track on contacts that the sync does not cover.

Where custom fields are used

  • Workflow conditions: “If contact.intro_offer equals claimed, then send this message”
  • Smart List filters: “Show me all contacts where contact.location_status equals activePackage
  • Pipeline automations: “Move to the next stage when contact.first_booking_status changes to attended
  • Personalized messages: “Hey {{contact.first_name}}, you have not visited in {{contact.days_absent}} days”

Custom Values

A custom value is a piece of data stored at the location level. It is not tied to any individual contact. It is the same for every single person at that location. Think of custom values as global variables for the studio account.

Custom values are set once in Settings > Custom Values and then referenced throughout SMS templates, email templates, landing pages, and workflows.

Settings > Custom Values showing 71 values with columns for Name, Folder, Key, and Value. Visible entries include Calendar Link, Cancellation Form, Facebook, FromName_Lead, FromName_Member, GHL Location ID, Google Review URL, Instagram, LinkedIn, Location Short, and others. Several values show PLEASE ADD placeholders while others like LinkedIn and PS Drip Delay are filled in.
The Custom Values list in the template account. Values marked PLEASE ADD need to be filled in by each location.

Examples of custom values

ValueWhat it storesExample
Website URLThe studio’s website addresshttps://strongpilates.com/melbourne-cbd
App URLLink to download the booking apphttps://app.strongpilates.com
Studio PhoneThe studio’s main phone number+61 3 9000 1234
Studio AddressPhysical address for directions123 Collins Street, Melbourne VIC 3000
Intro Offer PriceCurrent intro offer pricing$49 for 2 weeks

The key thing: these values are the same for every contact at that location. When an SMS says “Book at {{custom_values.website_url}}”, every person who receives that message gets the same URL.

Why custom values matter

Because STRONG Pilates uses a template account to push workflows and communications out to 142+ locations, the actual studio details cannot be hardcoded into message templates. Instead, templates use custom value placeholders. When a message goes out, Grow replaces the placeholder with whatever value that specific location has set.

This means one SMS template can say:

Hey {{contact.first_name}}, thanks for signing up! Download the app at {{custom_values.app_url}} and book your first class at {{custom_values.website_url}}.

And it works for every location, as long as each location has filled in their custom values.

Empty custom values break messages

If a custom value is left blank, the placeholder gets replaced with nothing. Your message will read “Download the app at” with an empty space where the link should be. This is one of the most common issues with communications and it is entirely preventable. Check your custom values in Settings > Custom Values and make sure every field relevant to your location is filled in.

Side by side

Custom FieldsCustom Values
Stored onIndividual contact recordsThe location account
Unique perContactLocation
Set byCore sync, workflows, or manual entryStudio manager in Settings
Example{{contact.days_absent}}{{custom_values.website_url}}
Changes between contacts?Yes, every contact has their own valueNo, same for everyone at that location
Found inSettings > Custom FieldsSettings > Custom Values

How they look in a message

Here is what a typical SMS template looks like with both custom fields and custom values in use:

Hey {{contact.first_name}}, we noticed it has been {{contact.days_absent}} days since your last class at STRONG Pilates. We miss you! Book your next session at {{custom_values.website_url}} or call us at {{custom_values.studio_phone}}.

When this sends to a contact named Sarah who has not visited in 14 days at the Melbourne CBD location, it becomes:

Hey Sarah, we noticed it has been 14 days since your last class at STRONG Pilates. We miss you! Book your next session at https://strongpilates.com/melbourne-cbd or call us at +61 3 9000 1234.

The {{contact.}} placeholders pulled from Sarah’s individual record. The {{custom_values.}} placeholders pulled from the Melbourne CBD location settings. Same template, personalized output.

Quick rule of thumb

If the data changes from person to person, it is a custom field. If the data is the same for everyone at a location, it is a custom value.

What we set up vs what you need to fill in

When a new location is set up or a campaign snapshot is deployed, Kaizen fills in the majority of custom values for you. However, there are two that only the studio can fill in because they require information we do not have.

What Kaizen handles

These are configured by Kaizen during setup or deployment. You do not need to touch them.

Custom ValueWhat it does
WebsiteYour studio’s website URL, used in SMS and email links
Location ShortShort name for your studio (e.g. “Melbourne CBD”), used across 36+ SMS templates
Purchase LinkLink for members to purchase packages
Calendar LinkBooking calendar link for consultations
Cancellation FormLink to the cancellation request form
Google Review URLDirect link for members to leave a Google review
Facebook / Instagram URLsSocial media profile links
Twilio NumberThe phone number used for SMS communications
Intro Offer Price / Purchase LinksPricing and deep links for the current intro offer
GHL Location IDInternal system identifier

What the studio needs to fill in

These two are on you

Kaizen cannot fill these in because they depend on who is managing leads and member communications at your studio. Only you know the right name to put here.

Custom ValueWhat it doesWhere to find it
FromName_LeadThe name that appears in SMS messages sent to new leadsSettings > Custom Values
FromName_MemberThe name that appears in SMS messages sent to current membersSettings > Custom Values

Why FromName matters

These two values appear in some of the most important SMS messages your studio sends. FromName_Lead is used in 11 templates including the first message a lead receives after enquiring, call booking confirmations, and no show follow ups. FromName_Member is used in 4 templates including the message a new member receives right after completing their first class.

If these are left at the default placeholder, here is what your members actually receive after their very first visit:

Hi Sarah, (PLEASE ADD) Lead Manager/Staff Name here from STRONG. Well done on completing your first STRONG Pilates class today. How did you go?

That is the actual message that goes out if the value is never updated. Compare that to what it should look like:

Hi Sarah, Jess here from STRONG. Well done on completing your first STRONG Pilates class today. How did you go?

The difference is significant. The first version immediately tells the member that the message is automated and no one is actually paying attention. The second feels personal and opens the door for a real conversation.

What to put in these fields

Use the first name of the person at your studio who manages leads and member communications. If that is one person, use the same name for both. If your studio has a dedicated sales lead and a separate member experience manager, use each name in the appropriate field.

Common mistakes

  • Editing synced custom fields manually. Fields populated by the Core integration (like contact.active_package or contact.location_status) will be overwritten on the next sync cycle. If you need to correct something, fix it in Core and let the sync update Grow.
  • Leaving custom values empty after a snapshot. When a new campaign or workflow gets deployed to your location, it may reference custom values that you have not filled in yet. Always check Settings > Custom Values after receiving a snapshot.
  • Confusing the two in workflow conditions. A workflow condition that checks “if website URL is not empty” needs to reference the right source. Checking a custom value when you meant a custom field (or the other way around) will produce unexpected results.