Wispcode cover graphic reading Keep Every Customer Record Current with a record and refresh icon

Let Your CRM Update Itself the Moment Something Changes

August 06, 20266 min read

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.

	GoHighLevel sidebar with Automation selected and the Workflow List open showing existing workflows
The Workflow List under Automation, the starting point for any record keeping automation.

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.

	GoHighLevel Create Workflow dropdown with Start from Scratch highlighted
Create Workflow, then Start from Scratch for a clean canvas.

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.

GoHighLevel Add New Trigger panel with Contact Changed highlighted in the Contact category
Choosing Contact Changed from the Contact category in the trigger picker.

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.

GoHighLevel Contact Changed trigger named Website Address Updated with a Website filter set to Has changed
A named trigger with a custom field filter set to Has changed.

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.

GoHighLevel Contact Changed filter dropdown showing Assigned User, DND, Tags and a Custom Field section
The filter options: Assigned User, DND and Tags under Standard Fields, with your custom fields listed 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.

    GoHighLevel contact detail page showing contact fields, tags and activity panels
    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.

Wispcode Team

Wispcode Team

Wispcode team provides the gohighlevel updates to give understanding to the agency owners.

LinkedIn logo icon
Youtube logo icon
Back to Blog

At Wispcode, we deliver pioneering digital engineering strategies that empower businesses to grow with confidence.

Get in touch with us

Email:

Phone:

Hours: 24/7 avaailable

Copyright @2026 Wispcode. All Rights reserved.