
Let Your CRM Update Itself the Moment Something Changes
Automatically Update Customer Records Using the Contact Changed Trigger in GoHighLevel
A CRM is only as good as the last person who updated it. Somebody changes a client's status, adds a tag, reassigns an owner, and then the rest of the business finds out days later, or never. The information was captured correctly and simply did not travel.
The Contact Changed trigger in GoHighLevel closes that gap. It starts a workflow whenever a watched field on a contact record changes, so the update itself becomes the thing that notifies people, moves the record and starts the next process. This guide covers exactly which fields it watches, which it does not, how to configure it, and what it cannot do.
What This Trigger Actually Watches
This is the single most important thing to understand about the trigger, and it is easy to get wrong. The workflow builder shows an in product note stating that this trigger only runs for changes in Tags, Assigned user, DND, and Custom fields.
In other words, editing somebody's first name, email address or phone number doesnotfire this trigger. Those are standard contact fields and they sit outside its scope. If you build a workflow expecting to catch a corrected phone number, it will look perfectly configured on the canvas and never run once.

What it does watch is the set of fields that usually carry meaning in an account: a tag being applied, an owner being assigned, a DND setting changing, and any custom field you have built. Custom fields are the reason this trigger is worth learning, because that is where the business specific data lives: contract value, renewal date, onboarding stage, plan type, referral source.
One further limitation worth planning around: HighLevel documents that the trigger does not track removed values. It reacts to something being set or changed rather than cleared. Do not build logic that depends on catching a field being emptied.
Setting Up the Trigger Step by Step
Open Automation, go to Workflows, then click Create Workflow and choose Start from Scratch.

On the empty canvas, click Add New Trigger and open the Contact group in the picker. Select Contact Changed, which sits directly above Contact Created in the list.

Name the trigger after the change you are catching.Website Address UpdatedorRenewal Date Changeddescribes the event. A generic name does not, and this trigger in particular tends to appear several times in a mature account.
Then add a filter. This step is close to mandatory here, because without one the workflow fires on every watched change on every contact, which on a busy account is a lot of noise for very little signal.

Choosing the Right Filter
Open the filter dropdown and you get Assigned User,DND and Tags under Standard Fields, with every custom field on the sub account listed in its own section below.

Picking a specific field is what makes the workflow useful. Filtering on a single custom field such as Renewal Date means the workflow runs only when that field is touched, and every other edit on the record passes silently. Filtering on Assigned User catches reassignment, which is the natural trigger for a handover notification. Filtering on Tags overlaps with the dedicated Contact Tag trigger, and where the two overlap the Contact Tag trigger is usually the more precise choice because it can distinguish a tag being added from one being removed.
As with every trigger in the builder, multiple filters combine with AND logic, so all conditions must be true. Multiple separate trigger blocks on one workflow behave as OR instead, and any one of them will enrol the contact.
Workflows Worth Building on It
Handover notification.Filter on Assigned User. When ownership changes, notify the new owner with an internal notification, create their first task, and add a note recording the handover.
Renewal watch.Filter on your renewal date custom field. When it changes, alert the account manager and create a task dated ahead of the new date.
Onboarding stage progression.Filter on an onboarding stage custom field. Each change fires the messaging and the internal checklist for the stage the client just reached.
Compliance logging.Filter on DND. Tag the record, log a note and notify whoever owns marketing so the change is visible rather than buried.
Data quality alerts.Filter on a field that should rarely change, such as company name or plan type, and route the change to somebody who can confirm it was intentional.

The contact record, where tags, assignment, DND and custom fields all live.
Underneath any of these, the actions that earn their place are mostly internal: Send Internal Notification, Add Task, Add to Notes, Update Contact Field, Assign to User and Add Contact Tag. Customer facing messages are possible but need care, since a client receiving an email every time a colleague tidies a field is a poor experience.
Limitations Worth Knowing Before You Build
Standard fields are out of scope.Tags, assigned user, DND and custom fields only. Name, email and phone edits do not fire it.
Cleared values are not tracked.The trigger reacts to values being set or changed, not removed.
Rapid edits enrol repeatedly.Somebody correcting a field three times in a minute produces three enrolments. Control it with the Allow Re-entry setting on the Settings tab, or an If/Else condition before your notification step.
Workflows can trigger themselves.If a workflow updates a custom field and another workflow triggers on that same field changing, you can build a loop. Keep the writing workflows and the listening workflows on clearly different fields, and check Enrollment History after publishing.
Frequently Asked Questions
Why is my Contact Changed workflow not firing when I edit a phone number?
Because standard contact fields are outside the trigger's scope. The builder itself notes that it only runs for changes in Tags, Assigned user, DND and Custom fields. To track a phone or email correction you would need to mirror that value into a custom field and watch the custom field instead.
Does it fire when a field is cleared?
No. HighLevel documents that the trigger does not track removed values, so emptying a field is not a reliable event to build on. If clearing a field genuinely matters in your process, have the person doing it apply a tag as well and trigger on that.
What is the difference between this and the Contact Tag trigger?
Contact Changed can filter on Tags, but the dedicated Contact Tag trigger distinguishes between a tag being added and a tag being removed, and lets you name the specific tags. For anything tag driven, Contact Tag is the more precise tool.
Will the trigger fire when another workflow updates a field?
Yes. The trigger reacts to the change itself rather than to who made it, so updates from workflows, from users and from the API all count. That is useful for chaining processes together and it is also how accidental loops get built, so review Enrollment History after publishing.
Need Expert Help with GoHighLevel?
New to GoHighLevel and ready to get started? Buy your GoHighLevel account here and launch with confidence.
Already know what you need and want our team to handle everything, from complete setup and customization to funnels, workflows, automations, CRM, and pipelines? Click here.



