GTriggerGoHighLevelReal-timeUpdated June 2026

When does GoHighLevel fire on opportunity stage changes?

Short answer: In TinyCommand, add the GoHighLevel Opportunity Stage Changed trigger to a workflow and publish. It listens through a GoHighLevel webhook and fires your workflow within seconds of the event, with no polling and no code. Add a filter if you only want some events to start a run.

Trigger workflows on Opportunity Stage Changed in GoHighLevel — start free
Anatomy

What this trigger looks like in a workflow.

Drop it on the canvas. Configure a couple of fields. Publish.

In the builder
TriggerG
Opportunity Stage Changed
When the matching event happens
watch for opportunity stage changewhen deal stage changes in gohighlevelpipeline stage movedopportunity moveddeal advancedstage changed
What this trigger returns
for the curious

You don’t need to read this. TinyCommand auto-maps every field into the visual picker so downstream nodes can pull values by clicking. We show it here for power users who want to know what’s on the wire.

{
"name": "Acme Inc — Annual Plan",
"status": "open",
"contactId": "ocQHyuzHvysMo5N5VsXc",
"locationId": "ve9EPM428h8vShlRW1KT",
"pipelineId": "VDm7RPYC2GLUvdpKmBfC",
"monetaryValue": 5000,
"opportunityId": "Tu1Lf5wYC5SqQ8oa6L2y",
"pipelineStageId": "stage_negotiation",
"previousStageId": "stage_qualified"
}
Output shape

Fields available to downstream nodes.

Every field below can be referenced by name in any action or filter that comes after this trigger.

FieldTypeExample
namestring"Acme Inc — Annual Plan"
statusstring"open"
contactIdstring"ocQHyuzHvysMo5N5VsXc"
locationIdstring"ve9EPM428h8vShlRW1KT"
pipelineIdstring"VDm7RPYC2GLUvdpKmBfC"
monetaryValuenumber5000
opportunityIdstring"Tu1Lf5wYC5SqQ8oa6L2y"
pipelineStageIdstring"stage_negotiation"
previousStageIdstring"stage_qualified"
FAQ

Questions about Opportunity Stage Changed.

How does the Opportunity Stage Changed trigger work in GoHighLevel?
Fires when an opportunity transitions between pipeline stages. The high-signal event for revenue forecasting and for "deal at Negotiation → notify VP Sales" workflows.
Is the Opportunity Stage Changed trigger real-time?
Yes. Opportunity Stage Changed uses webhooks or push subscriptions, not polling. Your workflow fires within seconds of the event happening in GoHighLevel.
What data does Opportunity Stage Changed return?
The full event payload from GoHighLevel. The output shape table on this page lists every field, its type, and an example value so you can map fields into downstream nodes.
Can I filter Opportunity Stage Changed so only some events start a workflow?
Yes. Add a Filter node right after the trigger and match on any field, whether that's subject, sender, status, or anything else in the payload. Workflows only continue when the filter passes.
Do I need GoHighLevel admin permissions to use Opportunity Stage Changed?
For most GoHighLevel accounts a standard user can authorize the trigger. Some GoHighLevel plans require an admin to enable third-party webhooks. Check GoHighLevel's docs if the trigger fails to register.
More triggers

Other GoHighLevel triggers.

Trigger
GoHighLevel Contact Tagged
Fires when a tag is added to a contact in GoHighLevel — the agency-favourite CRM/marketing platform. Tags drive GHL's automation triggers; this hook is for cross-system reactions to GHL's tag-based state changes.
Trigger workflows on Opportunity Stage Changed in GoHighLevel — start free