GoHighLevel

Use this guide to connect GoHighLevel to Synthflow, sync agencies and subaccounts, import calendars for Real Time Booking, and build inbound/outbound call workflows.

Overview

GoHighLevel is an all-in-one marketing, sales, and CRM platform designed for agencies and businesses to manage customer relationships, automate marketing, and streamline sales processes. With Synthflow, you can connect GoHighLevel to:

  • Sync agencies and subaccounts.
  • Enable Real Time Booking via GoHighLevel calendars.
  • Automate inbound and outbound calls with AI agents.
  • Push call data back into your GoHighLevel workflows.

Getting Started

GoHighLevel has two account types that change how you connect to Synthflow:

  • Agency accounts manage and authorize subaccounts. Connect once at the agency level, then import or create subaccounts in Synthflow (see more on managing subaccounts here.)
  • Subaccounts are where you connect calendars and actions. Each subaccount can import its GoHighLevel calendars to power Real Time Booking actions.

How to connect

1

In Synthflow, navigate to Integrations > GoHighLevel and click Connect. You will be redirected to GoHighLevel’s marketplace dedicated page for Synthflow’s app.

2

Read carefully the permissions requested by Synthflow. Then scroll down and click Next.

3

Then you will be invited to choose the GoHighLevel account you want to connect to Synthflow. There can be two types of accounts, select one of the two options below that corresponds with your usecase to continue this connection guide.

Agency

1

After selecting your GHL agency account, you’ll be prompted to install all current and future subaccounts in Synthflow. Select both checkboxes (as shown below) and click Proceed.

2

When you are redirected back to Synthflow, this confirmation screen indicates the GoHighLevel connection is complete and you can start managing subaccounts in Synthflow.

If you face trouble trying to connect to GoHighLevel, try using an incognito browser window to log in to Synthflow, then repeat the connection flow to authorize GoHighLevel.

Import GoHighLevel subaccounts

Synthflow lets you import existing GoHighLevel subaccounts directly inside the app. Go to Agency > Subaccounts > Create Subaccount > GoHighLevel, then select the subaccounts you want to import. Any changes made to those subaccounts stay in sync between GoHighLevel and Synthflow.

This feature is specific to GoHighLevel agency accounts.

Subaccount

After selecting your GoHighLevel subaccount in the account selector, you’ll be redirected back to Synthflow and should see the confirmation screen below.

Import your calendars

You can import your GoHighLevel calendars so Synthflow agents can book appointments via the Real Time Booking action. Go to Actions > Real Time Booking > Create Event, select the calendar from your GHL account you wish to import to sync for bookings.

Learn more about the Real Time Booking action configurations here.

Set up an inbound call

Requirements

There are two main requirements to set up an inbound call in Synthflow:

  1. An inbound agent within Synthflow.
  2. An inbound webhook trigger in your GoHighLevel workflows.

Step-by-step guide

Here is a detailed step by step on how to set up your inbound agent:

1

Within your Synthflow portal, create an Inbound agent.

2

Then navigate to the Deployment tab of your agent. The goal is to find a webhook URL for your post-call processing. This URL can be found in your GHL account.

3

Navigate to your GoHighLevel account, then Automation > Create Workflow. In this example we will be creating a workflow from scratch.

4

Add a new trigger. Search for the Inbound Webhook trigger, as in the image below.

5

Copy the URL and then navigate back to your Synthflow agent. Paste that URL in the post-call webhook and initialize it.

6

Now that your webhook is initialized, head back to your GHL account, and map the most recent payload that your webhook has received. Your payload should have a structure similar to the following JSON:

1{
2 "status": "completed",
3 "error_message": " ",
4 "lead": {
5 "name": "David",
6 "phone_number": "+1123456789",
7 "prompt_variables": {}
8 },
9 "call": {
10 "status": "completed",
11 "end_call_reason": "human_goodbye",
12 "model_id": "12345x54321",
13 "timezone": "Europe/Berlin",
14 "call_id": "12345x54321",
15 "duration": 120,
16 "start_time": "2024-07-30T15:35:47.632839+02:00",
17 "transcript": "\nhuman: I want to open a meeting.\nbot: Sure, I can help with that. \nbot: Are you looking to schedule a follow-up interview or a different type of meeting? Let me know how I can assist you with the meeting details. \nhuman: What is your availability?\nbot: Let me check our availability for you. \nbot: Just a moment... \nbot: Checking our available slots for the next few days...\nbot: We have some available slots coming up. \nbot: Here are the options: \nbot: - Wednesday, July 31: 12 AM, 3 AM, 6 AM \nbot: Would any of these times work for you? \nbot: If not, let me know a day and time that suits you better! \nhuman: Six AM.\nbot: Great choice! \nbot: I'll book that for you. \nbot: Just a moment... \nbot: Booking your meeting for six AM on Wednesday, July thirty-first...\nbot: Please wait a moment while I book your meeting\nbot: Your meeting is all set for six AM on Wednesday, July thirty-first. \nbot: If you need to reschedule, please use the link in your email. \nbot: Is there anything else I can help you with today? -\nhuman: No. Thank you. By the way, my name is Leonardo\nbot: You're welcome, Leonardo! \nbot: If you have any more questions or need further assistance, feel free to ask. ",
18 "recording_sid": "12345",
19 "recording_url": "url"
20 }
21 ...

You can find more information about the post-call webhook structure in its dedicated page.

7

All that is left is to assign a phone number to the contact created in your workflow. For that, you will need to add a new field, select Phone, and map it to the Inbound Webhook Trigger lead phone number. See the image below for reference.

8

Save the action, then click Save to finish the workflow.

Set up an outbound call

Use this flow to trigger outbound calls from GoHighLevel data.

  1. In GoHighLevel, open App Marketplace and install the Synthflow app, then go to Automation and click Create Workflow.
  2. Choose Start from Scratch, then Add New Trigger. Search triggers and pick Contact Tag (or another trigger such as Pipeline Stage, Opportunity Status, or Form Completed). Add a filter for Tag Added, select/create the tag, and Save Trigger.
  3. Add an action and choose Make A Phone Call.
  4. In Synthflow, open your agent, go to Deployment, and copy the Model ID and your API key.
  5. Back in GoHighLevel, paste the Model ID and API key into the action.
  6. Map contact fields:
    • Phone: Contact → Phone (raw format)
    • Name: Contact → Full Name (or first/last as needed)
    • Custom variables: create them in Synthflow (e.g., dealership_name) and map the value from GoHighLevel.
  7. Save the action.
  8. Open Settings for the workflow and enable Allow re-entry, then Save.
  9. (Optional) To capture call data, create another workflow with trigger Inbound Webhook:
    • Copy the provided webhook URL.
    • In Synthflow Deployment, paste the webhook and click Initialize.
    • Back in GoHighLevel, Fetch Sample Requests, select a reference payload, and Save Trigger.
    • Add fields/notes to map call data such as call → transcript, call → recording_url, and executed_actions → action_transfer_call → return_value → status.
    • Save the action and then Save the workflow.

FAQ

It depends on your usecase. If you want to manage your GoHighLevel subaccounts inside Synthflow, you will need an agency-level account. If you want to connect your normal GoHighLevel account to perform actions such as importing your calendars, then an agency-level account is not required.

Yes. You can create and manage subaccounts in Agency > Subaccounts, and import existing ones from GoHighLevel. See managing subaccounts for more details.

Import the subaccount’s GoHighLevel calendar when creating a Real Time Booking action (Actions > Real Time Booking > Create Event), then attach that action to the Assistant in its Actions tab.

Disconnect GoHighLevel under Agency > Integrations > GoHighLevel, then reconnect with Allow access to all sub-accounts and Enable Automatic Future Installation checked. Confirm you chose the correct agency account. If you see “Invalid Authentication,” retry in an incognito window.