Short answer: You can update gohighlevel contact in GoHighLevel by hand from its own interface, but it won’t repeat itself. On TinyCommand, add the GoHighLevel Update GoHighLevel Contact action to a workflow, map its 7 inputs from any upstream app, and it runs automatically every time the trigger fires. No code, and a free tier to start.
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.