This guide explains how partners can connect GoHighLevel (GHL) with a Newo.ai AI Employee and configure AI-powered booking, CRM sync, and pipeline automation.
Create a new project
Before connecting GoHighLevel, you need to create a new project in the Newo.ai Builder and add the GHL integration module. Use the following values when creating the project:
Idn: gohighlevel
Title: gohighlevel
Module: ghl_integration
To create a new project, follow the steps in Create a new project.
Authorize GoHighLevel with OAuth
The GoHighLevel OAuth authorization (ghl_oauth_code) is required to establish the connection between Newo.ai and GoHighLevel. The integration will not function without completing this one-time authorization flow. The OAuth process generates a single-use verification code that Newo.ai uses to create secure access tokens.
Navigate to the Attributes page in the Builder and navigate to the GoHighLevel settings.
In the
ghl_oauth_codeattribute, click the authorization link to open the GoHighLevel authorization page.Follow the onscreen prompts to log in, review app details, select the sub-account, and confirm the conversation provider.
On the "Access Granted" screen, click the verification code to copy it. This code is single-use only.
Return to the Builder. Paste the copied code into the
ghl_oauth_codeattribute field.Click Save.
Click Publish All.
β οΈ CAUTION
The OAuth code is single-use. If it expires or fails, you must repeat the entire authorization flow to generate a new code.
ποΈ NOTE
To reveal the ghl_oauth_code field, toggle Show Hidden on the AI Employee dashboard.
Calendar selection logic
The ghl_selection_type setting defines how your AI Employee selects a calendar during a booking conversation. This is the most critical integration setting because it controls the entire downstream booking flow.
Selection modes
Mode | Attribute value | Description | Best for |
Single |
| The AI Employee always uses the default booking calendar set in | Single-service businesses (e.g., a dentist office with one appointment type). |
Name |
| The AI Employee listens for a service name during the conversation and selects the matching calendar. Requires AI selection instructions. | Multi-service businesses with distinct offerings (e.g., a salon offering "Haircut" and "Color Treatment"). |
Duration |
| The AI Employee detects the requested meeting length (e.g., 30 or 60 minutes) and selects the matching calendar. Requires one calendar per duration and AI selection instructions. | Businesses that differentiate appointments by length (e.g., a consultant offering 30-minute and 60-minute sessions). |
ββ IMPORTANT
Calendar selection modes are mutually exclusive. You cannot combine Name and Duration logic. Choose one mode that best fits the business.
Example β Single mode: A dental clinic offers only general checkups. Set ghl_selection_type to Single and select a calendar in the ghl_calendar attribute. Every booking goes to that one calendar.
Example β Name mode: A spa offers "Massage" and "Facial" services, each with its own calendar in GoHighLevel. Set ghl_selection_type to Name. When a caller says "I'd like to book a massage," the AI Employee matches "Massage" to the corresponding calendar. The ghl_calendar attribute is ignored in this mode.
Example β Duration mode: A law firm offers 30-minute consultations and 60-minute strategy sessions, each with a separate calendar. Set ghl_selection_type to Duration. When a caller requests "a 30-minute consultation," the AI Employee selects the 30-minute calendar. The ghl_calendar attribute is ignored in this mode.
AI selection instructions
The ghl_selection_criteria setting provides the AI Employee with instructions on how to determine the correct calendar when ghl_selection_type is set to Name or Duration. This field is required for dynamic selection modes and is ignored in Single mode.
ββ IMPORTANT
The AI Employee must return one single value in plain text based on these instructions. Do not include explanations, extra formatting, or multiple values.
Example β Name mode instructions:
Identify the service the caller is requesting. Available calendars: Consultation, Demo, Follow-Up. Return only the exact calendar name.
In this example, if the caller says "I'd like a demo," the AI Employee returns Demo and selects the matching calendar.
Example β Duration mode instructions:
Extract the appointment duration in minutes from the conversation. Return only the number: 30 or 60.
In this example, if the caller says "I need an hour-long session," the AI Employee returns 60 and selects the 60-minute calendar.
ποΈ NOTE
Calendar names in your instructions must match GoHighLevel calendar names exactly. Even small differences (capitalization, spacing, punctuation) cause matching failures.
Save conversation history
The ghl_enable_client_history setting controls whether conversation transcripts are saved to the contact's Notes section in GoHighLevel.
This setting does not affect booking behavior or AI Employee logic. It is purely for record-keeping.
Value | Behavior |
| Transcripts are saved to the GoHighLevel contact record. Useful for debugging, quality review, and team visibility. |
| No conversation data is written to the contact record. |
Example: An agency managing multiple client accounts enables this setting (True) during the initial rollout period so they can review AI Employee conversations and verify booking accuracy. After the integration is stable, they may choose to disable it.
Detect time zone from conversation
The ghl_use_timezone_from_conversation setting determines whether the AI Employee adapts availability to the caller's local time zone or uses the calendar's fixed time zone.
Value | Behavior | Best for |
| The AI Employee detects time zone cues from the conversation (e.g., "I'm in PST" or "Eastern time") and adjusts available slots accordingly. | Virtual or remote businesses that serve callers in multiple time zones. |
| The AI Employee presents availability using the calendar's configured time zone only. | Local businesses with a fixed physical location (e.g., dental clinics, restaurants, local service providers). |
Pre-load availability on start
The ghl_check_availability_on_conversation_start setting allows the AI Employee to proactively suggest open time slots at the beginning of a call, rather than waiting for the caller to ask.
This setting only works when ghl_selection_type is set to Single. In Single mode, the AI Employee knows which calendar to check before the conversation begins, so it can pre-load slots immediately.
β οΈ CAUTION
Enabling this setting with Name or Duration logic causes the AI Employee to suggest availability from the default calendar before the correct calendar has been identified. This results in incorrect slot suggestions.
Sync call status
The ghl_sync_conversation setting controls whether final call outcomes (completed, busy, no-answer, etc.) are synced back to GoHighLevel after a conversation ends.
This setting is optional. Enable it only if you use GoHighLevel workflows that are triggered by call status changes.
Value | Behavior |
| Call status is synced to GoHighLevel when the conversation ends. Enables workflow triggers based on call outcomes. |
| No call status data is sent to GoHighLevel. |
Example: An agency builds a GoHighLevel workflow that sends a follow-up SMS when a call status is "no-answer." They set ghl_sync_conversation to True so the call outcome data is available to trigger the workflow.
Pipeline automation
Pipeline automation allows the AI Employee to update opportunity stages in GoHighLevel after a conversation ends. This feature requires four related settings.
Enable pipeline updates
Set ghl_update_pipeline to True to allow the AI Employee to move opportunities through pipeline stages. When set to False, all other pipeline settings are ignored.
Select a pipeline
The ghl_pipeline_item setting specifies which GoHighLevel pipeline the AI Employee should update. Select the pipeline from the dropdown that corresponds to the business process you want to automate.
Review pipeline stages
The ghl_pipeline_stages field is a read-only JSON list of all stages configured in the selected pipeline. Use the exact stage names shown here when writing your stage selection rules.
Example value:
[ "New Lead", "Appointment Scheduled", "Appointment Completed", "Closed Won", "Closed Lost" ]
Define stage selection rules
The ghl_pipeline_criteria setting maps conversation outcomes to pipeline stages. Write clear rules that tell the AI Employee which stage to assign based on what happened during the call.
Example instructions:
If the appointment was successfully scheduled, move to "Appointment Scheduled". If the caller declined to book, move to "Closed Lost". If the caller requested a callback, move to "New Lead".
ποΈ NOTE
Stage names in your rules must match the names in ghl_pipeline_stages exactly.
Publish and refresh
Changes to the following settings do not take effect until you click Publish All in the Newo.ai Builder:
ghl_selection_typeghl_calendarghl_selection_criteria
Example scenario: Bright Smile Dental Clinic
Bright Smile Dental Clinic is a local dental office in Austin, Texas. They offer one appointment type (general checkup) and want the AI Employee to handle booking calls.
Configuration:
In GoHighLevel, they create a calendar named "General Checkup."
They complete the OAuth flow, copying the verification code and pasting it into the
ghl_oauth_codefield in the Newo.ai Portal.They configure the following settings:
Setting | Value | Reason |
|
| Only one appointment type. |
| General Checkup | The only calendar in their account. |
| (left blank) | Not required for Single mode. |
|
| To review call transcripts during the first month. |
|
| Local business; all appointments are in Central Time. |
|
| The AI Employee proactively offers available slots. |
|
| They do not use call-status workflows. |
|
| They do not use pipeline automation. |
Save all configured settings.
They click Publish All.
They place a test call. The AI Employee answers, offers available times for the General Checkup calendar, confirms a slot, and creates the booking in GoHighLevel.
Example scenario: Acme Software
Acme Software is a B2B software company that offers product demos and consultations. They want the AI Employee to book the correct meeting type based on what the caller requests.
Configuration:
In GoHighLevel, they create separate calendars: "Demo" and "Consultation."
They complete the OAuth flow, copying the verification code and pasting it into the
ghl_oauth_codefield in the Builder.They configure the following settings:
Setting | Value | Reason |
|
| Multiple meeting types require dynamic calendar selection. |
| (ignored) | Not used in Name mode. |
| Identify the meeting type the caller is requesting. Available calendars: Demo, Consultation. Return only the exact calendar name. | Instructions for the AI Employee to match the meeting type. |
|
| To review call transcripts. |
|
| Serves clients in multiple time zones. |
|
| Cannot pre-load until the meeting type is identified. |
|
| They do not use call-status workflows. |
|
| They do not use pipeline automation. |
Save all configured settings.
They click Publish All.
They place a test call. When a caller says "I'd like to schedule a demo," the AI Employee identifies the meeting type, selects the "Demo" calendar, checks availability, and creates the booking.
