A custom object is a record type you create in GoHighLevel when your data doesn't fit the standard objects (contacts, companies and opportunities). Examples include properties for a real estate team, vehicles for a dealer, policies for an insurance agency, or pets for a groomer. Each custom object has its own records, its own custom fields and its own associations.
Associations link custom object records to contacts, companies, opportunities and other custom objects, including one-to-many and many-to-many relationships. One contact can own three properties, and one property can link to an owner and a tenant.
In practice
Admins define custom objects in the sub-account's object settings (as of October 2026). You name the object, add fields to it the same way you add contact fields, then set up associations. Records can be created by hand, imported, or created and updated in workflows.
Contacts still do some things custom objects don't, such as bulk email and marketing campaigns, so most builds keep messaging on the contact and use the custom object to hold the extra structured data.
Custom object fields are easy to lose track of. They don't show up in the same list as contact fields, and their keys follow the object's own naming, so finding the right key for a workflow or integration takes extra clicks.
Where it shows up in RGS Tools
Field Finder's custom object fields lists the fields for every custom object in a sub-account, not just contacts and opportunities, with keys, IDs and merge tags in the same searchable view as the field browser.