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.
Drop it on the canvas. Configure a couple of fields. Publish.
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"}
Every field below can be referenced by name in any action or filter that comes after this trigger.
| Field | Type | Example |
|---|---|---|
| name | string | "Acme Inc — Annual Plan" |
| status | string | "open" |
| contactId | string | "ocQHyuzHvysMo5N5VsXc" |
| locationId | string | "ve9EPM428h8vShlRW1KT" |
| pipelineId | string | "VDm7RPYC2GLUvdpKmBfC" |
| monetaryValue | number | 5000 |
| opportunityId | string | "Tu1Lf5wYC5SqQ8oa6L2y" |
| pipelineStageId | string | "stage_negotiation" |
| previousStageId | string | "stage_qualified" |