Short answer: Drop the "GoHighLevel → Update GoHighLevel Contact" action anywhere in your workflow, map the inputs from upstream nodes, and publish.
Every field can be mapped from an upstream trigger, AI step, table row, or hard-coded literal.
| Field | Type | Required | Description |
|---|---|---|---|
Contact ID contactId | string | Required | The GoHighLevel contact ID to update. |
Email email | string | Optional | New email. e.g. "user@example.com" |
Phone phone | string | Optional | New phone in E.164 format. |
First Name firstName | string | Optional | New first name. |
Last Name lastName | string | Optional | New last name. |
Company companyName | string | Optional | New company name. |
Tags tags | string | Optional | Comma-separated tags. Replaces existing tags. |
{"contactId": "ocQHyuzHvysMo5N5VsXc","email": "user@example.com","phone": "+15551234567","firstName": "{{trigger.firstName}}","lastName": "{{trigger.lastName}}"}
{"contact": {"id": "ocQHyuzHvysMo5N5VsXc","tags": ["customer"],"email": "jane@example.com","lastName": "Smith","firstName": "Jane","dateUpdated": "2026-04-11T11:00:00.000Z"}}
Use these fields in downstream nodes for routing, logging, or error handling.
Any of these apps can fire this action as part of a workflow.
Triggered by anything in the catalog. Free tier available. No credit card.