平台
特點
代理工作室
快速建立和自訂您的代理
自主引擎
使用LLMs 來引導對話和工作
知識庫
使用自訂知識來源訓練您的機器人
表格
儲存及管理對話資料
頻道
Whatsapp 標誌
WhatsApp
Instagram
Instagram
FacebookMessenger 標誌
Messenger
Slack 標誌
Slack
所有頻道
整合
Hubspot 標誌
HubSpot
Notion 標誌
Notion
Jira 標誌
Jira
Calendly 標誌
Calendly
所有整合
LLM 提供者
OpenAI 標誌
OpenAI
Anthropic 標誌
Anthropic
Groq 標誌
Groq
HuggingFace 標誌
Hugging Face
所有LLMs
解決方案
適用於
企業
自動執行關鍵任務的生產工作流程
代理機構
提供精密的代理服務
開發人員
探索用於代理程式開發的強大 API
客戶故事
向成功客戶了解Botpress 如何改變全球業務。
按行業
電子商務
教育
財務
接待服務
所有行業
部門
銷售
工程設計
產品
ITSM
所有部門
按使用個案
購物助理
潛在客戶開發
員工體驗
票務管理
所有使用個案
資源
必要
Academy
透過精選課程學習建立
圖書館
增強您 AI 工作流程的資源
部落格
有關Botpress 和 AI 代理的洞察與更新
建築
Discord
加入數以千計的同行並分享想法
文件
全面的指南和參考資料
API
與外部系統搭配使用的參考資料
LLM 排名
比較模型提供者的效能與成本
影片
教學、示範和產品導覽
變更日誌
隨時掌握Botpress 的最新更新
合作夥伴
成為合作夥伴
加入我們的認證專家網路
聘請專家
與合作夥伴和顧問連線
文件
企業
定價
登入
聯絡人註冊
返回 Hub

GoHighLevel

v1.0.1
在工作區上安裝
維護者 Botpress 成長團隊
  # Botpress Integration: GoHighLevel

## **GoHighLevel OAuth Integration Guide** ##

For further details, refer to the [**GoHighLevel API documentation**](https://highlevel.stoplight.io/docs/integrations/0443d7d1a4bd0-overview). 


### **[Loom video walk through setting up the OAuth configuration.](https://www.loom.com/share/0b7aad49278d4411993c2e88e05405f8?sid=4bbd0c57-b64f-49e6-b6a4-1ab12a05af21)** ###

## **Step 1: Create a Developer App**

1. Go to the [GoHighLevel Marketplace](https://marketplace.gohighlevel.com/).  
2. Sign up for a **developer account** (if you haven’t already).  
3. Navigate to **"My Apps"**, then click on **"Create App."**  
4. Fill in the required details in the form and submit it. Your app will be created.  
5. Click on your newly created app to access its settings.  
6. Configure the required **redirect URI**, **OAuth scopes** and generate API keys.

### **Required OAuth Scopes (If using every card)**

```contacts.readonly
contacts.write
conversations.readonly
users.write
opportunities.readonly
opportunities.write
payments/orders.readonly
payments/orders.write
calendars.readonly
calendars.write
calendars/events.readonly
calendars/events.write
companies.readonly
businesses.readonly
businesses.write
```

## **Step 2: Generate the Authorization URL**

Use the appropriate **authorization URL** based on whether you are using the standard GoHighLevel or a white-label instance.

### **Standard (Non-White Label) URL**
```
https://marketplace.gohighlevel.com/oauth/chooselocation?response_type=code&redirect_uri=BOTPRESS_WEBHOOK/oauth&client_id=CLIENT_ID&scope=contacts.readonly contacts.write conversations.readonly users.write opportunities.readonly opportunities.write payments/orders.readonly payments/orders.write calendars.readonly calendars.write calendars/events.readonly calendars/events.write companies.readonly businesses.readonly businesses.write
```
### **White Label URL**

```
https://marketplace.leadconnectorhq.com/oauth/chooselocation?response_type=code&redirect_uri=BOTPRESS_WEBHOOK/oauth&client_id=CLIENT_ID&scope=contacts.readonly contacts.write conversations.readonly users.write opportunities.readonly opportunities.write payments/orders.readonly payments/orders.write calendars.readonly calendars.write calendars/events.readonly calendars/events.write companies.readonly businesses.readonly businesses.write
```
## **Step 3: Obtain the Authorization Code**

When a user grants access, their browser will be **redirected to the specified redirect URI** with an **authorization code** as a query parameter.

 Example:

 https://myapp.com/oauth/callback/gohighlevel?code=7676cjcbdc6t76cdcbkjcd09821jknnkj

**Copy the authorization code** from the URL.

## **Step 4: Exchange the Code for an Access Token**

1. Go to [GoHighLevel API Token Exchange](https://highlevel.stoplight.io/docs/integrations/00d0c0ecaa369-get-access-token).  
2. Enter the following details:  
   * **Client ID**  
   * **Client Secret**  
   * **Authorization Code** (from Step 3\)  
3. Submit the request.

## **Step 5: Save the Access and Refresh Tokens**

Once you successfully exchange the authorization code, you will receive a response containing:

{  
  "access\_token": "your\_access\_token\_here",  
  "refresh\_token": "your\_refresh\_token\_here",  
}

* **Save the `access_token` and `refresh_token`.**  
* Enter these credentials into **Botpress and your client id and secret id** for authentication.


## Overview
This Botpress integration allows seamless interaction with the **GoHighLevel** CRM. It enables users to manage contacts, opportunities, appointments, and orders directly through their chatbot.

## Features
- **Contacts Management:** Create, retrieve, update, delete, and upsert contacts.
- **Opportunities Management:** Create, update, delete, and retrieve opportunities.
- **Appointments & Calendar Events:** Create, update, retrieve, and delete events.
- **Orders Management:** List orders and retrieve orders by ID.
- **General API Call:** Execute custom API requests to GoHighLevel.


---
## API Functions & Usage
Below are the available actions in this integration:

### 1️⃣ **Contacts Management**

#### **Create Contact**
- **Description:** Creates a new contact.
- **Method:** `POST /contacts/`
- **Input:**
  ```json
  {
    "firstName":"John",
    "lastName":"Doe",
    "locationId":"qWRoUZ6kNRf4Mx3RRtgs"
  }
  ```
- **Output:**
  ```json
  {
    "success": true,
    "message": "Contact created successfully",
    "data": "{contact details}"
  }
  ```

#### **Get Contact**
- **Description:** Retrieves a contact by ID.
- **Method:** `GET /contacts/{contactId}`
- **Input:**
  ```json
    contactId: 123456
  ```
- **Output:** Same as above.

#### **Update Contact**
- **Description:** Updates an existing contact.
- **Method:** `PUT /contacts/{contactId}`
- **Input:**
  ```json
    contactId: 12345
    
  {    
    "firstName": "NewFirstName"
  }
  ```
- **Output:** Same as above.

#### **Delete Contact**
- **Description:** Deletes a contact by ID.
- **Method:** `DELETE /contacts/{contactId}`
- **Input:**
  ```json
    contactId: 123456
  ```
- **Output:**
  ```json
  {
    "success": true,
    "message": "Contact deleted successfully"
  }
  ```

#### **Upsert Contact**
- **Description:** Creates or updates a contact based on existing data.
- **Method:** `POST /contacts/upsert`
- **Input:** Same as `Create Contact`.
- **Output:** Same as `Create Contact`.

#### **Get Contacts by Business ID**
- **Description:** Retrieves contacts for a specific business ID.
- **Method:** `GET /contacts/business/{businessId}`
- **Input:**
  ```json
    businessId: 123456
  ```
- **Output:**
  ```json
  {
    "success": true,
    "message": "Contacts retrieved successfully",
    "data": "{list of contacts}"
  }
  ```

---
### 2️⃣ **Opportunities Management**

#### **Create Opportunity**
- **Description:** Creates a new opportunity.
- **Method:** `POST /opportunities/`
- **Input:**
  ```json
  {
    "pipelineId":"J0VnRDNAXHjlq2GbcnEm",
    "locationId":"qWRoUZ6kNRf4Mx3RRtgs",
    "name":"New Opp",
    "pipelineStageId":"a1ecd775-b7eb-4352-8a07-c2298dca1e7b",
    "status":"open",
    "contactId":"eKJzJtRYlFlcjqiUArC7"
  }
  ```
- **Output:** Same as `Create Contact`.

#### **Get Opportunity**
- **Description:** Retrieves an opportunity by ID.
- **Method:** `GET /opportunities/{opportunityId}`
- **Input:**
  ```json
    opportunityId: 123456
  ```
- **Output:** Same as above.

#### **Update Opportunity**
- **Description:** Updates an opportunity.
- **Method:** `PUT /opportunities/{opportunityId}`
- **Input:** Same as `Update Contact`.
- **Output:** Same as `Update Contact`.

#### **Update Opportunity Status**
- **Description:** Updates an opportunity.
- **Method:** `PUT /opportunities/{opportunityId}`
- **Input:** Same as `Update Contact`.
- **Output:** Same as `Update Contact`.

#### **Delete Opportunity**
- **Description:** Deletes an opportunity by ID.
- **Method:** `DELETE /opportunities/{opportunityId}`
- **Input:**
  ```json
    opportunityId: 123456
  ```
- **Output:** Same as `Delete Contact`.

#### **Upsert Opportunity**
- **Description:** Creates or updates an opportunity.
- **Method:** `POST /opportunities/upsert`
- **Input:** Same as `Create Opportunity`.
- **Output:** Same as `Create Opportunity`.

---
### 3️⃣ **Orders Management**

#### **List Orders**
- **Description:** Retrieves a list of orders.
- **Method:** `GET /payments/orders`
- **Input:**
  ```json
  {
    "altId": "string",
    "altType": "string"
  }
  ```
- **Output:**
  ```json
  {
    "success": true,
    "message": "Orders retrieved successfully",
    "data": "{list of orders}"
  }
  ```

#### **Get Order By ID**
- **Description:** Retrieves an order by ID.
- **Method:** `GET /payments/orders/{orderId}`
- **Input:**
  ```json
    orderId: 123
    altId: 123
    altType: abc
  ```
- **Output:** Same as above.

---
### 4️⃣ **Appointments & Calendar Events**

#### **Create Appointment**
- **Description:** Creates an Appointment.
- **Method:** `POST /calendars/events/appointments`
- **Input:**
  ```json
    {
      "calendarId":"5Bv4N9KLGetAIdfZCyGo",
      "locationId":"qWRoUZ6kNRf4Mx3RRtgs",
      "contactId":"655SZAMnQw45ImQenL3b",
      "startTime":"2025-07-23T03:30:00+05:30"
    }
  ```
- **Output:** Same as above.

#### **Get Appointment**
- **Description:** Gets an Appointment.
- **Method:** `GET /calendars/events/appointments/{appointmentId}`
- **Input:**
  ```json
    appointmentId: 123456
  ```
- **Output:** Same as above.

#### **Get Calendar Events**
- **Description:** Gets all Appointments for a calendar.
- **Method:** `GET /calendars/events`
- **Input:**
  ```json
    {
      "calendarId":"5Bv4N9KLGetAIdfZCyGo",
      "locationId":"qWRoUZ6kNRf4Mx3RRtgs",
      "startTime":"2025-07-22T15:00:00-07:00",
      "endTime":"2025-07-22T16:00:00-07:00"
    }
  ```
- **Output:** Same as above.

#### **Update Appointment**
- **Description:** Updates an Appointment.
- **Method:** `PUT /calendars/events/appointments/{appointmentId}`
- **Input:**
  ```json
    {
      "startTime":"2025-11-22T15:00:00-07:00",
      "title":"Updated event"
    }
  ```
- **Output:** Same as above.

#### **Delete Event**
- **Description:** Deletes an Appointment.
- **Method:** `DELETE /calendars/events/{eventId}`
- **Input:**
  ```json
    appointmentId: 123456
  ```
- **Output:** Same as above.

---
### 5️⃣ **General API Call**

- **Method:** Dynamic
- **Input:**
  ```json
  {
    "endpoint": "string",
    "method": "GET | POST | PUT | DELETE",
    "data": "Optional JSON object",
    "params": "Optional params"
  }
  ```
- **Output:** Dynamic based on response.
---
## Notes
- API responses are standardized to include `success`, `message`, and `data`.

For further details, refer to the [**GoHighLevel API documentation**](https://highlevel.stoplight.io/docs/integrations/0443d7d1a4bd0-overview).

---

**🔗 Developed for seamless CRM automation in Botpress.** 🚀


使用Botpress建立更好的網站

打造驚人的 AI 代理體驗。

開始使用 - 免費
箭頭圖示
進一步了解Botpress Academy

使用我們精心挑選的課程、指南和教學,更好更快地建立 AI 代理。

聘請專家

與我們的認證開發人員聯繫,尋找適合您需求的專業建築商。

所有系統運作正常
SOC 2
認證
GDPR
符合規定
© 2025
平台
定價
代理工作室
自主引擎
知識庫
表格
Hub
整合
頻道
LLMs
資源
與銷售人員交談
文件
聘請專家
影片
客戶故事
API 參考資料
部落格
狀態
v12 資源
社區
社區支援
成為合作夥伴
成為大使
成為會員
公司簡介
關於
工作機會
新聞
法律條款
隱私權
©Botpress 2025