GoHighLevel (GHL) Actions
GoHighLevel actions let you automatically update your GHL CRM after every call. You can log calls, manage contacts, update pipelines, book appointments, and trigger GHL workflows — all without manual data entry.
Prerequisites
Before using GHL actions, you must connect your GoHighLevel account:
- Go to Integrations in the sidebar
- Find GoHighLevel and click Connect
- Follow the OAuth flow to authorize BuildVoiceAI
Available Actions
log_call
Creates a call activity record in GHL associated with the contact.
| Config Field | Description |
|---|---|
| (none) | Call data (duration, direction, recording URL) is automatically included |
The logged call includes the call duration, direction, phone numbers, and a link to the recording. It is associated with the matching GHL contact based on phone number.
create_contact
Creates a new contact in GHL with the caller’s phone number and any available details.
| Config Field | Description |
|---|---|
| (none) | Contact is created with the caller’s phone number. Name is populated from call data if available. |
This action creates a new contact every time it runs. If the contact already exists, you will get duplicates. Use upsert_contact instead if the caller might already be in your CRM.
upsert_contact
Creates a new contact if one does not exist, or updates the existing contact if a match is found (matched by phone number).
| Config Field | Description |
|---|---|
| (none) | Looks up the contact by phone number. Creates if not found, updates if found. |
This is the recommended action for managing contacts, since it prevents duplicates.
add_note
Adds a note to the contact’s record in GHL. The note content can include template variables.
| Config Field | Description |
|---|---|
| Note content | The text of the note. Supports template variables like \{\{summary\}\}, \{\{transcript\}\} |
auto_tag
Adds tags to the contact based on the call outcome.
| Config Field | Description |
|---|---|
| Tags | Comma-separated list of tags to apply. Supports template variables like \{\{sentiment\}\} |
Example tags: ai-called, \{\{sentiment\}\}, follow-up-needed
update_pipeline
Moves a deal to a specific stage in a GHL pipeline.
| Config Field | Description |
|---|---|
| Pipeline ID | The ID of the GHL pipeline |
| Stage ID | The ID of the stage to move the deal to |
Use this to automatically advance deals through your sales pipeline based on call outcomes. For example, move a deal from “Contacted” to “Qualified” after a successful call.
Find your Pipeline ID and Stage ID in your GHL account under Settings > Pipelines. You can also use the GHL API to look them up.
lead_score
Adjusts the lead score for the contact.
| Config Field | Description |
|---|---|
| Score adjustment | The number to add to (positive) or subtract from (negative) the current score |
Example: Set to +10 to increase the score after a positive call, or -5 after a negative one.
book_appointment
Creates a calendar appointment in GHL.
| Config Field | Description |
|---|---|
| Calendar ID | The GHL calendar to book on |
| Title | Appointment title (supports template variables) |
| Duration | Appointment length in minutes |
| Date/Time | When to schedule the appointment |
cancel_appointment
Cancels an existing appointment associated with the contact.
| Config Field | Description |
|---|---|
| (none) | Cancels the most recent upcoming appointment for the contact |
trigger_workflow
Starts a GHL workflow (automation) for the contact.
| Config Field | Description |
|---|---|
| Workflow ID | The ID of the GHL workflow to trigger |
This lets you kick off complex GHL automations (email sequences, SMS drips, task assignments) based on your call data.
update_contact_field
Sets a custom field value on the contact record.
| Config Field | Description |
|---|---|
| Custom Field Key | The key/ID of the custom field to update |
| Custom Field Value | The value to set (supports template variables) |
Use this to populate custom fields with call data, such as storing the call summary, sentiment, or any extracted information.
Template Variables
All text fields in GHL actions support the following template variables:
| Variable | Example Value |
|---|---|
\{\{caller_name\}\} | John Smith |
\{\{phone_number\}\} | +14155551234 |
\{\{summary\}\} | Caller inquired about pricing… |
\{\{sentiment\}\} | positive |
\{\{duration\}\} | 245 |
\{\{transcript\}\} | Agent: Hello… Caller: Hi… |
Example Workflow
A common GHL workflow might include these actions in order:
- upsert_contact — Ensure the caller exists in GHL
- log_call — Record the call on their contact profile
- auto_tag — Tag them with
ai-calledand\{\{sentiment\}\} - add_note — Add the call summary as a note
- update_pipeline — Move their deal to the next stage
This gives your sales team a complete record of the AI call and its outcome without any manual work.