](https://marketplace.gohighlevel.com/docs/ghl/saas/enable-saas-location-deprecated)
[ποΈ Pause location\
------------------\
\
Pause Sub account for given locationId](https://marketplace.gohighlevel.com/docs/ghl/saas/pause-location-deprecated)
[ποΈ Update Rebilling\
--------------------\
\
Bulk update rebilling for given locationIds](https://marketplace.gohighlevel.com/docs/ghl/saas/update-rebilling-deprecated)
[ποΈ Get Agency Plans\
--------------------\
\
Fetch all agency subscription plans for a given company ID](https://marketplace.gohighlevel.com/docs/ghl/saas/get-agency-plans-deprecated)
[ποΈ Get Location Subscription Details\
-------------------------------------\
\
Fetch subscription details for a specific location from location metadata](https://marketplace.gohighlevel.com/docs/ghl/saas/get-location-subscription-deprecated)
[ποΈ Bulk Enable SaaS\
--------------------\
\
Enable SaaS mode for multiple locations with support for both SaaS v1 and v2](https://marketplace.gohighlevel.com/docs/ghl/saas/bulk-enable-saas-deprecated)
[ποΈ Get SaaS Locations\
----------------------\
\
Fetch all SaaS-activated locations for a company with pagination](https://marketplace.gohighlevel.com/docs/ghl/saas/get-saas-locations-deprecated)
[ποΈ Get SaaS Plan\
-----------------\
\
Fetch a specific SaaS plan by plan ID](https://marketplace.gohighlevel.com/docs/ghl/saas/get-saas-plan-deprecated)
[ποΈ Get locations by stripeId with companyId\
--------------------------------------------\
\
Get locations by stripeCustomerId or stripeSubscriptionId with companyId](https://marketplace.gohighlevel.com/docs/ghl/saas/locations)
[ποΈ Update SaaS subscription\
----------------------------\
\
Update SaaS subscription for given locationId and customerId](https://marketplace.gohighlevel.com/docs/ghl/saas/generate-payment-link)
[ποΈ Disable SaaS for locations\
------------------------------\
\
Disable SaaS for locations for given locationIds](https://marketplace.gohighlevel.com/docs/ghl/saas/bulk-disable-saas)
[ποΈ Enable SaaS for Sub-Account (Formerly Location)\
---------------------------------------------------\
\
](https://marketplace.gohighlevel.com/docs/ghl/saas/enable-saas-location)
[ποΈ Pause location\
------------------\
\
Pause Sub account for given locationId](https://marketplace.gohighlevel.com/docs/ghl/saas/pause-location)
[ποΈ Update Rebilling\
--------------------\
\
Bulk update rebilling for given locationIds](https://marketplace.gohighlevel.com/docs/ghl/saas/update-rebilling)
[ποΈ Get Agency Plans\
--------------------\
\
Fetch all agency subscription plans for a given company ID](https://marketplace.gohighlevel.com/docs/ghl/saas/get-agency-plans)
[ποΈ Get Location Subscription Details\
-------------------------------------\
\
Fetch subscription details for a specific location from location metadata](https://marketplace.gohighlevel.com/docs/ghl/saas/get-location-subscription)
[ποΈ Bulk Enable SaaS\
--------------------\
\
Enable SaaS mode for multiple locations with support for both SaaS v1 and v2](https://marketplace.gohighlevel.com/docs/ghl/saas/bulk-enable-saas)
[ποΈ Get SaaS Locations\
----------------------\
\
Fetch all SaaS-activated locations for a company with pagination](https://marketplace.gohighlevel.com/docs/ghl/saas/get-saas-locations)
[ποΈ Get SaaS Plan\
-----------------\
\
Fetch a specific SaaS plan by plan ID](https://marketplace.gohighlevel.com/docs/ghl/saas/get-saas-plan)
---
# SaaS API | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/saas/saas-api/index.html#__docusaurus_skipToContent_fallback)
Version: 1.0
SaaS API
========
API Service for SaaS
Authentication[β](https://marketplace.gohighlevel.com/docs/ghl/saas/saas-api/index.html#authentication "Direct link to Authentication")
----------------------------------------------------------------------------------------------------------------------------------------
* HTTP: Bearer Auth
* HTTP: Bearer Auth
* HTTP: Bearer Auth
Use the Access Token generated by exchanging API Key for token id
| | |
| --- | --- |
| Security Scheme Type: | http |
| HTTP Authorization Scheme: | bearer |
| Bearer format: | JWT |
Use the Access Token generated with user type as Location
| | |
| --- | --- |
| Security Scheme Type: | http |
| HTTP Authorization Scheme: | bearer |
| Bearer format: | JWT |
Use the Access Token generated with user type as Company
| | |
| --- | --- |
| Security Scheme Type: | http |
| HTTP Authorization Scheme: | bearer |
| Bearer format: | JWT |
---
# Update Rebilling | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/saas/update-rebilling/index.html#__docusaurus_skipToContent_fallback)
Update Rebilling
================
POST
/saas/update-rebilling/:companyId
---------------------------------
Bulk update rebilling for given locationIds
Request[β](https://marketplace.gohighlevel.com/docs/ghl/saas/update-rebilling/index.html#request "Direct link to Request")
---------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/saas/update-rebilling/index.html#responses "Direct link to Responses")
---------------------------------------------------------------------------------------------------------------------------------
* 201
---
# Create Snapshot Share Link | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/snapshots/create-snapshot-share-link/index.html#__docusaurus_skipToContent_fallback)
Create Snapshot Share Link
==========================
POST
/snapshots/share/link
---------------------
Create a share link for snapshot
Request[β](https://marketplace.gohighlevel.com/docs/ghl/snapshots/create-snapshot-share-link/index.html#request "Direct link to Request")
------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/snapshots/create-snapshot-share-link/index.html#responses "Direct link to Responses")
------------------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
Successful response
Bad Request
Unauthorized
---
# Get Snapshots | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/snapshots/get-custom-snapshots/index.html#__docusaurus_skipToContent_fallback)
Get Snapshots
=============
GET
/snapshots/
-----------
Get a list of all own and imported Snapshots
Request[β](https://marketplace.gohighlevel.com/docs/ghl/snapshots/get-custom-snapshots/index.html#request "Direct link to Request")
------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/snapshots/get-custom-snapshots/index.html#responses "Direct link to Responses")
------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
Successful response
Bad Request
Unauthorized
---
# Update Rebilling | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/saas/update-rebilling-deprecated/index.html#__docusaurus_skipToContent_fallback)
Update Rebilling
================
POST
/saas-api/public-api/update-rebilling/:companyId
------------------------------------------------
deprecated
This endpoint has been deprecated and may be replaced or removed in future versions of the API.
Bulk update rebilling for given locationIds
Request[β](https://marketplace.gohighlevel.com/docs/ghl/saas/update-rebilling-deprecated/index.html#request "Direct link to Request")
--------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/saas/update-rebilling-deprecated/index.html#responses "Direct link to Responses")
--------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 404
* 500
Rebilling updated successfully
Bad Request
Unauthorized
Resource not found
Internal server error
---
# Get Last Snapshot Push | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/snapshots/get-latest-snapshot-push/index.html#__docusaurus_skipToContent_fallback)
Get Last Snapshot Push
======================
GET
/snapshots/snapshot-status/:snapshotId/location/:locationId
-----------------------------------------------------------
Get Latest Snapshot Push Status for a location id
Request[β](https://marketplace.gohighlevel.com/docs/ghl/snapshots/get-latest-snapshot-push/index.html#request "Direct link to Request")
----------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/snapshots/get-latest-snapshot-push/index.html#responses "Direct link to Responses")
----------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
Successful response
Bad Request
Unauthorized
---
# Get Snapshot Push between Dates | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/snapshots/get-snapshot-push/index.html#__docusaurus_skipToContent_fallback)
Get Snapshot Push between Dates
===============================
GET
/snapshots/snapshot-status/:snapshotId
--------------------------------------
Get list of sub-accounts snapshot pushed in time period
Request[β](https://marketplace.gohighlevel.com/docs/ghl/snapshots/get-snapshot-push/index.html#request "Direct link to Request")
---------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/snapshots/get-snapshot-push/index.html#responses "Direct link to Responses")
---------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
Successful response
Bad Request
Unauthorized
---
# Snapshots | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/snapshots/snapshots/index.html#__docusaurus_skipToContent_fallback)
Documentation for Snapshots API
[ποΈ Get Snapshots\
-----------------\
\
Get a list of all own and imported Snapshots](https://marketplace.gohighlevel.com/docs/ghl/snapshots/get-custom-snapshots)
[ποΈ Create Snapshot Share Link\
------------------------------\
\
Create a share link for snapshot](https://marketplace.gohighlevel.com/docs/ghl/snapshots/create-snapshot-share-link)
[ποΈ Get Snapshot Push between Dates\
-----------------------------------\
\
Get list of sub-accounts snapshot pushed in time period](https://marketplace.gohighlevel.com/docs/ghl/snapshots/get-snapshot-push)
[ποΈ Get Last Snapshot Push\
--------------------------\
\
Get Latest Snapshot Push Status for a location id](https://marketplace.gohighlevel.com/docs/ghl/snapshots/get-latest-snapshot-push)
---
# Snapshots API | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/snapshots/snapshots-api/index.html#__docusaurus_skipToContent_fallback)
Version: 1.0
Snapshots API
=============
Documentation for Snapshots API
Authentication[β](https://marketplace.gohighlevel.com/docs/ghl/snapshots/snapshots-api/index.html#authentication "Direct link to Authentication")
--------------------------------------------------------------------------------------------------------------------------------------------------
* HTTP: Bearer Auth
* HTTP: Bearer Auth
* HTTP: Bearer Auth
Use the Access Token generated with user type as Location (OR) Personal Integration Token from Location.
| | |
| --- | --- |
| Security Scheme Type: | http |
| HTTP Authorization Scheme: | bearer |
| Bearer format: | JWT |
Use the Access Token generated with user type as Location (OR) Personal Integration Token from Location.
| | |
| --- | --- |
| Security Scheme Type: | http |
| HTTP Authorization Scheme: | bearer |
| Bearer format: | JWT |
Use the Access Token generated with user type as Agency (OR) Personal Integration Token from Agency.
| | |
| --- | --- |
| Security Scheme Type: | http |
| HTTP Authorization Scheme: | bearer |
| Bearer format: | JWT |
---
# Attach facebook pages | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-facebook-page-group/index.html#__docusaurus_skipToContent_fallback)
Attach facebook pages
=====================
POST
/social-media-posting/oauth/:locationId/facebook/accounts/:accountId
--------------------------------------------------------------------
Attach facebook pages
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-facebook-page-group/index.html#request "Direct link to Request")
-----------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-facebook-page-group/index.html#responses "Direct link to Responses")
-----------------------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Account | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/account/index.html#__docusaurus_skipToContent_fallback)
Documentation for Social Media Posting API
[ποΈ Get Accounts\
----------------\
\
Get list of accounts and groups](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-account)
[ποΈ Delete Account\
------------------\
\
Delete account and account from group](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-account)
---
# Attach Instagram Professional Accounts | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-instagram-page-group/index.html#__docusaurus_skipToContent_fallback)
Attach Instagram Professional Accounts
======================================
POST
/social-media-posting/oauth/:locationId/instagram/accounts/:accountId
---------------------------------------------------------------------
Attach Instagram Professional Accounts
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-instagram-page-group/index.html#request "Direct link to Request")
------------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-instagram-page-group/index.html#responses "Direct link to Responses")
------------------------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Attach linkedin pages and profile | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-linkedin-page-profile/index.html#__docusaurus_skipToContent_fallback)
Attach linkedin pages and profile
=================================
POST
/social-media-posting/oauth/:locationId/linkedin/accounts/:accountId
--------------------------------------------------------------------
Attach linkedin pages and profile
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-linkedin-page-profile/index.html#request "Direct link to Request")
-------------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-linkedin-page-profile/index.html#responses "Direct link to Responses")
-------------------------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Attach Tiktok profile | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-tiktok-profile/index.html#__docusaurus_skipToContent_fallback)
Attach Tiktok profile
=====================
POST
/social-media-posting/oauth/:locationId/tiktok/accounts/:accountId
------------------------------------------------------------------
Attach Tiktok profile
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-tiktok-profile/index.html#request "Direct link to Request")
------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-tiktok-profile/index.html#responses "Direct link to Responses")
------------------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Attach oauth accounts | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-oauth-accounts/index.html#__docusaurus_skipToContent_fallback)
Attach oauth accounts
=====================
POST
/social-media-posting/oauth/:locationId/:platform/accounts/:accountId
---------------------------------------------------------------------
Attach oauth accounts
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-oauth-accounts/index.html#request "Direct link to Request")
------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-oauth-accounts/index.html#responses "Direct link to Responses")
------------------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 422
Successful response - Account attached. Response structure varies by platform.
Bad Request
Unauthorized
Unprocessable Entity
---
# Attach Twitter profile | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-twitter-profile/index.html#__docusaurus_skipToContent_fallback)
Attach Twitter profile
======================
POST
/social-media-posting/oauth/:locationId/twitter/accounts/:accountId
-------------------------------------------------------------------
deprecated
This endpoint has been deprecated and may be replaced or removed in future versions of the API.
As of December 4, 2024, X (formerly Twitter) is no longer supported. We apologise for any inconvenience.
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-twitter-profile/index.html#request "Direct link to Request")
-------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/attach-twitter-profile/index.html#responses "Direct link to Responses")
-------------------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Category | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/category/index.html#__docusaurus_skipToContent_fallback)
Documentation for Social Media Posting API
[ποΈ Get categories by location id\
---------------------------------\
\
Get categories by location id](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-categories-location-id)
[ποΈ Get categories by id\
------------------------\
\
Get categories by id](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-categories-id)
---
# Bulk Delete Social Planner Posts | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/bulk-delete-social-planner-posts/index.html#__docusaurus_skipToContent_fallback)
Bulk Delete Social Planner Posts
================================
POST
/social-media-posting/:locationId/posts/bulk-delete
---------------------------------------------------
Deletes multiple posts based on the provided list of post IDs. This operation is useful for clearing up large numbers of posts efficiently.
Note:
1.The maximum number of posts that can be deleted in a single request is '50'.
2.However, It will only get deleted in Highlevel database but still it is recommended to be cautious of this operation.
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/bulk-delete-social-planner-posts/index.html#request "Direct link to Request")
-----------------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/bulk-delete-social-planner-posts/index.html#responses "Direct link to Responses")
-----------------------------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 404
* 422
* 500
Posts deleted successfully
Cannot delete more than 50 posts at a time.
Unauthorized
No posts found with the given IDs.
Unprocessable Entity
An error occurred while trying to delete the posts. Please try again later.
---
# Create post | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/create-post/index.html#__docusaurus_skipToContent_fallback)
Create post
===========
POST
/social-media-posting/:locationId/posts
---------------------------------------
Create posts for all supported platforms. It is possible to create customized posts per channel by using the same platform account IDs in a request and hitting the create post API multiple times with different summaries and account IDs per platform.
The content and media limitations, as well as platform rate limiters corresponding to the respective platforms, are provided in the following reference link:
Link: [Platform Limitations](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations "Social Planner Help")
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/create-post/index.html#request "Direct link to Request")
--------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/create-post/index.html#responses "Direct link to Responses")
--------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Category Queue | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/category-queue/index.html#__docusaurus_skipToContent_fallback)
Documentation for Social Media Posting API
[ποΈ Fetch available categories for a queue\
------------------------------------------\
\
Retrieves a list of available categories for a specified location, indicating whether each category is already associated with a queue or not.](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-available-categories)
[ποΈ Create a category queue\
---------------------------\
\
Creates a new queue for a specific category within a location. This initializes the queue with all existing published posts from that category. If the category does not have any published posts, the queue is created with an empty post.](https://marketplace.gohighlevel.com/docs/ghl/social-planner/create-queue)
[ποΈ Fetch category queues for a location\
----------------------------------------\
\
Retrieves a paginated list of all category queues for a given location, excluding any that have been marked as deleted.](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-queues)
[ποΈ Fetch a category queue by ID\
--------------------------------\
\
Retrieves the details of a single category queue by its unique ID. The response includes a count of posts within the queue that have errors.](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-queue-by-id)
[ποΈ Update a category queue\
---------------------------\
\
Updates the parameters of a specific category queue, such as its status (e.g., active, paused) or skipDateTime to delete a post on a specific date.](https://marketplace.gohighlevel.com/docs/ghl/social-planner/update-queue)
[ποΈ Fetch items from a category queue\
-------------------------------------\
\
Retrieves a paginated list of items within a specific category queue. This can be filtered to show only items that have errors.](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-queue-items)
[ποΈ Delete an item from a queue\
-------------------------------\
\
Deletes an item from a specific category queue.](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-queue-item)
[ποΈ Update an item in a queue\
-----------------------------\
\
Updates the content or variations of a specific item within a category queue.](https://marketplace.gohighlevel.com/docs/ghl/social-planner/update-queue-item)
[ποΈ Fetch calendar list for queues\
----------------------------------\
\
Retrieves a list of scheduled posts from all active queues for a given location, formatted for a calendar view.](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-calendar-list)
[ποΈ Delete an active post and schedule the next one\
---------------------------------------------------\
\
Deletes a post that is currently scheduled and automatically triggers the scheduling of the next available post in the queue.](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-current-active-post-and-schedule-next)
[ποΈ Reset an item in a queue\
----------------------------\
\
Resets a specific queue item to its original state, discarding any modifications made.](https://marketplace.gohighlevel.com/docs/ghl/social-planner/reset-queue-item)
[ποΈ Create a new item in a category queue\
-----------------------------------------\
\
Creates a new post item directly within a specified category queue. This is useful for adding new queue items without any existing published post.](https://marketplace.gohighlevel.com/docs/ghl/social-planner/create-queue-item)
---
# Create a category queue | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/create-queue/index.html#__docusaurus_skipToContent_fallback)
Create a category queue
=======================
POST
/social-media-posting/category/queues
-------------------------------------
Creates a new queue for a specific category within a location. This initializes the queue with all existing published posts from that category. If the category does not have any published posts, the queue is created with an empty post.
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/create-queue/index.html#request "Direct link to Request")
---------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/create-queue/index.html#responses "Direct link to Responses")
---------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 422
The queue has been successfully created.
Bad Request
Unauthorized
Unprocessable Entity
---
# Create a new item in a category queue | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/create-queue-item/index.html#__docusaurus_skipToContent_fallback)
Create a new item in a category queue
=====================================
POST
/social-media-posting/category/queues/:queueId/create/item
----------------------------------------------------------
Creates a new post item directly within a specified category queue. This is useful for adding new queue items without any existing published post.
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/create-queue-item/index.html#request "Direct link to Request")
--------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/create-queue-item/index.html#responses "Direct link to Responses")
--------------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 422
The queue item has been successfully created.
Bad Request
Unauthorized
Unprocessable Entity
---
# CSV | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/csv/index.html#__docusaurus_skipToContent_fallback)
Documentation for Social Media Posting API
[ποΈ Upload CSV\
--------------\
\
Upload CSV](https://marketplace.gohighlevel.com/docs/ghl/social-planner/upload-csv)
[ποΈ Get Upload Status\
---------------------\
\
Get Upload Status](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-upload-status)
[ποΈ Set Accounts\
----------------\
\
Set Accounts](https://marketplace.gohighlevel.com/docs/ghl/social-planner/set-accounts)
[ποΈ Get CSV Post\
----------------\
\
Get CSV Post](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-csv-post)
[ποΈ Start CSV Finalize\
----------------------\
\
Start CSV Finalize](https://marketplace.gohighlevel.com/docs/ghl/social-planner/start-csv-finalize)
[ποΈ Delete CSV\
--------------\
\
Delete CSV](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-csv)
[ποΈ Delete CSV Post\
-------------------\
\
Delete CSV Post](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-csv-post)
---
# Delete CSV | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-csv/index.html#__docusaurus_skipToContent_fallback)
Delete CSV
==========
DELETE
/social-media-posting/:locationId/csv/:id
-----------------------------------------
Delete CSV
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-csv/index.html#request "Direct link to Request")
-------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-csv/index.html#responses "Direct link to Responses")
-------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Delete Account | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-account/index.html#__docusaurus_skipToContent_fallback)
Delete Account
==============
DELETE
/social-media-posting/:locationId/accounts/:id
----------------------------------------------
Delete account and account from group
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-account/index.html#request "Direct link to Request")
-----------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-account/index.html#responses "Direct link to Responses")
-----------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Delete CSV Post | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-csv-post/index.html#__docusaurus_skipToContent_fallback)
Delete CSV Post
===============
DELETE
/social-media-posting/:locationId/csv/:csvId/post/:postId
---------------------------------------------------------
Delete CSV Post
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-csv-post/index.html#request "Direct link to Request")
------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-csv-post/index.html#responses "Direct link to Responses")
------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Delete an active post and schedule the next one | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-current-active-post-and-schedule-next/index.html#__docusaurus_skipToContent_fallback)
Delete an active post and schedule the next one
===============================================
DELETE
/social-media-posting/category/queues/:postId/active-post
---------------------------------------------------------
Deletes a post that is currently scheduled and automatically triggers the scheduling of the next available post in the queue.
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-current-active-post-and-schedule-next/index.html#request "Direct link to Request")
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-current-active-post-and-schedule-next/index.html#responses "Direct link to Responses")
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successfully deleted the active post and scheduled the next one.
Bad Request
Unauthorized
Unprocessable Entity
---
# Delete Post | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-post/index.html#__docusaurus_skipToContent_fallback)
Delete Post
===========
DELETE
/social-media-posting/:locationId/posts/:id
-------------------------------------------
Delete Post
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-post/index.html#request "Direct link to Request")
--------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-post/index.html#responses "Direct link to Responses")
--------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Edit post | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/edit-post/index.html#__docusaurus_skipToContent_fallback)
Edit post
=========
PUT
/social-media-posting/:locationId/posts/:id
-------------------------------------------
Create posts for all supported platforms. It is possible to create customized posts per channel by using the same platform account IDs in a request and hitting the create post API multiple times with different summaries and account IDs per platform.
The content and media limitations, as well as platform rate limiters corresponding to the respective platforms, are provided in the following reference link:
Link: [Platform Limitations](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations "Social Planner Help")
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/edit-post/index.html#request "Direct link to Request")
------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/edit-post/index.html#responses "Direct link to Responses")
------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Delete an item from a queue | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-queue-item/index.html#__docusaurus_skipToContent_fallback)
Delete an item from a queue
===========================
DELETE
/social-media-posting/category/queues/:queueId/items/:itemId
------------------------------------------------------------
Deletes an item from a specific category queue.
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-queue-item/index.html#request "Direct link to Request")
--------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/delete-queue-item/index.html#responses "Direct link to Responses")
--------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
The queue item has been successfully deleted.
Bad Request
Unauthorized
Unprocessable Entity
---
# Fetch available categories for a queue | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-available-categories/index.html#__docusaurus_skipToContent_fallback)
Fetch available categories for a queue
======================================
GET
/social-media-posting/category/queues/available-categories
----------------------------------------------------------
Retrieves a list of available categories for a specified location, indicating whether each category is already associated with a queue or not.
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-available-categories/index.html#request "Direct link to Request")
-----------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-available-categories/index.html#responses "Direct link to Responses")
-----------------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successfully retrieved available categories.
Bad Request
Unauthorized
Unprocessable Entity
---
# Fetch items from a category queue | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-queue-items/index.html#__docusaurus_skipToContent_fallback)
Fetch items from a category queue
=================================
POST
/social-media-posting/category/queues/:queueId/items
----------------------------------------------------
Retrieves a paginated list of items within a specific category queue. This can be filtered to show only items that have errors.
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-queue-items/index.html#request "Direct link to Request")
--------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-queue-items/index.html#responses "Direct link to Responses")
--------------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 422
Successfully retrieved queue items.
Bad Request
Unauthorized
Unprocessable Entity
---
# Fetch calendar list for queues | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-calendar-list/index.html#__docusaurus_skipToContent_fallback)
Fetch calendar list for queues
==============================
POST
/social-media-posting/category/queues/list/calendar
---------------------------------------------------
Retrieves a list of scheduled posts from all active queues for a given location, formatted for a calendar view.
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-calendar-list/index.html#request "Direct link to Request")
----------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-calendar-list/index.html#responses "Direct link to Responses")
----------------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 422
Successfully retrieved calendar list.
Bad Request
Unauthorized
Unprocessable Entity
---
# Fetch a category queue by ID | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-queue-by-id/index.html#__docusaurus_skipToContent_fallback)
Fetch a category queue by ID
============================
GET
/social-media-posting/category/queues/:queueId
----------------------------------------------
Retrieves the details of a single category queue by its unique ID. The response includes a count of posts within the queue that have errors.
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-queue-by-id/index.html#request "Direct link to Request")
--------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-queue-by-id/index.html#responses "Direct link to Responses")
--------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successfully retrieved the category queue.
Bad Request
Unauthorized
Unprocessable Entity
---
# Get Accounts | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-account/index.html#__docusaurus_skipToContent_fallback)
Get Accounts
============
GET
/social-media-posting/:locationId/accounts
------------------------------------------
Get list of accounts and groups
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-account/index.html#request "Direct link to Request")
--------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-account/index.html#responses "Direct link to Responses")
--------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Fetch category queues for a location | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-queues/index.html#__docusaurus_skipToContent_fallback)
Fetch category queues for a location
====================================
POST
/social-media-posting/category/queues/list
------------------------------------------
Retrieves a paginated list of all category queues for a given location, excluding any that have been marked as deleted.
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-queues/index.html#request "Direct link to Request")
---------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/fetch-queues/index.html#responses "Direct link to Responses")
---------------------------------------------------------------------------------------------------------------------------------------
* 201
* 400
* 401
* 422
Successfully retrieved category queues.
Bad Request
Unauthorized
Unprocessable Entity
---
# Get categories by id | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-categories-id/index.html#__docusaurus_skipToContent_fallback)
Get categories by id
====================
GET
/social-media-posting/:locationId/categories/:id
------------------------------------------------
Get categories by id
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-categories-id/index.html#request "Direct link to Request")
--------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-categories-id/index.html#responses "Direct link to Responses")
--------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Get facebook pages | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-facebook-page-group/index.html#__docusaurus_skipToContent_fallback)
Get facebook pages
==================
GET
/social-media-posting/oauth/:locationId/facebook/accounts/:accountId
--------------------------------------------------------------------
Get facebook pages
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-facebook-page-group/index.html#request "Direct link to Request")
--------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-facebook-page-group/index.html#responses "Direct link to Responses")
--------------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response, runs Facebook OAuth and redirects to application
Bad Request
Unauthorized
Unprocessable Entity
---
# Get CSV Post | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-csv-post/index.html#__docusaurus_skipToContent_fallback)
Get CSV Post
============
GET
/social-media-posting/:locationId/csv/:id
-----------------------------------------
Get CSV Post
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-csv-post/index.html#request "Direct link to Request")
---------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-csv-post/index.html#responses "Direct link to Responses")
---------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Get categories by location id | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-categories-location-id/index.html#__docusaurus_skipToContent_fallback)
Get categories by location id
=============================
GET
/social-media-posting/:locationId/categories
--------------------------------------------
Get categories by location id
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-categories-location-id/index.html#request "Direct link to Request")
-----------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-categories-location-id/index.html#responses "Direct link to Responses")
-----------------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Tutorial Intro | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/intro/index.html#__docusaurus_skipToContent_fallback)
On this page
Let's discover **Docusaurus in less than 5 minutes**.
Getting Started[β](https://marketplace.gohighlevel.com/docs/intro/index.html#getting-started "Direct link to Getting Started")
-------------------------------------------------------------------------------------------------------------------------------
Get started by **creating a new site**.
Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new/)
**.
### What you'll need[β](https://marketplace.gohighlevel.com/docs/intro/index.html#what-youll-need "Direct link to What you'll need")
* [Node.js](https://nodejs.org/en/download/)
version 14 or above:
* When installing Node.js, you are recommended to check all checkboxes related to dependencies.
Generate a new site[β](https://marketplace.gohighlevel.com/docs/intro/index.html#generate-a-new-site "Direct link to Generate a new site")
-------------------------------------------------------------------------------------------------------------------------------------------
Generate a new Docusaurus site using the **classic template**.
The classic template will automatically be added to your project after you run the command:
npm init docusaurus@latest my-website classic
You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor.
The command also installs all necessary dependencies you need to run Docusaurus.
Start your site[β](https://marketplace.gohighlevel.com/docs/intro/index.html#start-your-site "Direct link to Start your site")
-------------------------------------------------------------------------------------------------------------------------------
Run the development server:
cd my-websitenpm run start
The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there.
The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at [http://localhost:3000/](http://localhost:3000/)
.
Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes.
* [Getting Started](https://marketplace.gohighlevel.com/docs/intro/index.html#getting-started)
* [What you'll need](https://marketplace.gohighlevel.com/docs/intro/index.html#what-youll-need)
* [Generate a new site](https://marketplace.gohighlevel.com/docs/intro/index.html#generate-a-new-site)
* [Start your site](https://marketplace.gohighlevel.com/docs/intro/index.html#start-your-site)
---
# Get Linkedin pages and profile | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-linkedin-page-profile/index.html#__docusaurus_skipToContent_fallback)
Get Linkedin pages and profile
==============================
GET
/social-media-posting/oauth/:locationId/linkedin/accounts/:accountId
--------------------------------------------------------------------
Get Linkedin pages and profile
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-linkedin-page-profile/index.html#request "Direct link to Request")
----------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-linkedin-page-profile/index.html#responses "Direct link to Responses")
----------------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Get google business locations | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-google-locations/index.html#__docusaurus_skipToContent_fallback)
Get google business locations
=============================
GET
/social-media-posting/oauth/:locationId/google/locations/:accountId
-------------------------------------------------------------------
Get google business locations
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-google-locations/index.html#request "Direct link to Request")
-----------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-google-locations/index.html#responses "Direct link to Responses")
-----------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# Get Instagram Professional Accounts | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-instagram-page-group/index.html#__docusaurus_skipToContent_fallback)
Get Instagram Professional Accounts
===================================
GET
/social-media-posting/oauth/:locationId/instagram/accounts/:accountId
---------------------------------------------------------------------
Get Instagram Professional Accounts
Request[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-instagram-page-group/index.html#request "Direct link to Request")
---------------------------------------------------------------------------------------------------------------------------------------------
Responses[β](https://marketplace.gohighlevel.com/docs/ghl/social-planner/get-instagram-page-group/index.html#responses "Direct link to Responses")
---------------------------------------------------------------------------------------------------------------------------------------------------
* 200
* 400
* 401
* 422
Successful response
Bad Request
Unauthorized
Unprocessable Entity
---
# FAQs | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/oauth/Faqs/index.html#__docusaurus_skipToContent_fallback)
On this page
Here you will find answers to commonly encountered questions.
> If you are having trouble and cannot find a suitable answer, please reach out to support.
### How do I listen to webhook events?[β](https://marketplace.gohighlevel.com/docs/oauth/Faqs/index.html#how-do-i-listen-to-webhook-events "Direct link to How do I listen to webhook events?")
For listening to the webhook events -
1. Register for an app.
2. Go to the app settings and update the webhook url (where you want to listen for events)
3. Under the settings, also add the scope needed for the webhook event under the scopes section.
4. Ask the location/agency admin to go to the app page in marketplace and click on "Add App".
5. Select the location, it will redirect you to the redirect uri with the authorization code.
6. Use the authorization code to get the access token.
7. You would start receiving the webhook event for the location.
### How long are the access tokens valid?[β](https://marketplace.gohighlevel.com/docs/oauth/Faqs/index.html#how-long-are-the-access-tokens-valid "Direct link to How long are the access tokens valid?")
The access tokens are valid for a day. After that, you can use the refresh token to get a new access token which will be valid for another day.
### How long are the refresh tokens valid?[β](https://marketplace.gohighlevel.com/docs/oauth/Faqs/index.html#how-long-are-the-refresh-tokens-valid "Direct link to How long are the refresh tokens valid?")
The refresh tokens are valid for a year unless they are used. If they are used, the new refresh token is valid for a year as well.
### How should we handle token expiry?[β](https://marketplace.gohighlevel.com/docs/oauth/Faqs/index.html#how-should-we-handle-token-expiry "Direct link to How should we handle token expiry?")
You should:
1. Make a request to any of our APIs using the accessToken.
2. If you get a response saying that the token is expired, refresh the token using our API and save the new access token and refresh token in your database.
3. Make the request again with the new accessToken.
You can write a wrapper function on your end to achieve this. You can use it for all the API calls you make to our APIs.
### What are current rate limits for API 2.0?[β](https://marketplace.gohighlevel.com/docs/oauth/Faqs/index.html#what-are-current-rate-limits-for-api-20 "Direct link to What are current rate limits for API 2.0?")
GHL has implemented rate limits on our public V2 APIs using OAuth to ensure optimal performance and stability. These limits have been adjusted to:
Burst limit: A maximum of 100 API requests per 10 seconds for each Marketplace app (i.e., client) per resource (i.e., Location or Company). Daily limit: 200,000 API requests per day for each Marketplace app (i.e., client) per resource (i.e., Location or Company).
These new limits contribute to better overall performance and stability of our system.
To monitor your limited usage, refer to the following API response headers:
'X-RateLimit-Limit-Daily': Your daily limit 'X-RateLimit-Daily-Remaining': The remaining number of requests for the day 'X-RateLimit-Interval-Milliseconds': The time interval for burst requests 'X-RateLimit-Max': The maximum request limit in the specified time interval 'X-RateLimit-Remaining': The remaining number of requests in the current time interval
Example: If the 'GHL-APP' is installed on two locations (Sub-account A and Sub-account B) on the GHL Marketplace, the rate limits for each location would be as follows:
1. Sub-account A: 'GHL-APP' can make 200,000 API requests per day and 100 API requests per 10 seconds.
2. Sub-account B: 'GHL-APP' can make 200,000 API requests per day and 100 API requests per 10 seconds.
* [How do I listen to webhook events?](https://marketplace.gohighlevel.com/docs/oauth/Faqs/index.html#how-do-i-listen-to-webhook-events)
* [How long are the access tokens valid?](https://marketplace.gohighlevel.com/docs/oauth/Faqs/index.html#how-long-are-the-access-tokens-valid)
* [How long are the refresh tokens valid?](https://marketplace.gohighlevel.com/docs/oauth/Faqs/index.html#how-long-are-the-refresh-tokens-valid)
* [How should we handle token expiry?](https://marketplace.gohighlevel.com/docs/oauth/Faqs/index.html#how-should-we-handle-token-expiry)
* [What are current rate limits for API 2.0?](https://marketplace.gohighlevel.com/docs/oauth/Faqs/index.html#what-are-current-rate-limits-for-api-20)
---
# Billing Webhook | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#__docusaurus_skipToContent_fallback)
On this page
This webhook is essential for externally billed apps within our marketplace. It must be accessed by developers to authorize the installation of the app.
The primary purpose of this webhook is to capture and update payment information for apps that employ a Paid business model and do not utilize HighLevel's internal billing mechanism.
1\. Prerequisites for using this webhook[β](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#1-prerequisites-for-using-this-webhook "Direct link to 1. Prerequisites for using this webhook")
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Before using this webhook, ensure that you meet the following prerequisites on the [Marketplace](https://marketplace.gohighlevel.com/)
:
1. You should have an app with a Business Model marked as Paid.
2. External Billing must be enabled for your app.
3. You must have entered the Billing URL.
2\. Retrieving Parameters from the Billing URL[β](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#2-retrieving-parameters-from-the-billing-url "Direct link to 2. Retrieving Parameters from the Billing URL")
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
When an Agency or Location installs your app, they will be redirected to the Billing URL specified in the configuration. You will receive the following parameters in the URL:
| Parameter Name | Possible Values | Notes |
| --- | --- | --- |
| clientId | `
` | Used for validation. |
| installType | `location`, `agency` | You will receive `agency,location` in case of both agency and location. |
| locationId | `` | You will receive this in case of `location` or `agency,location`. |
| companyId | `` | You will receive this in case of `agency` or `agency,location`. |
3\. Using The Webhook[β](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#3-using-the-webhook "Direct link to 3. Using The Webhook")
------------------------------------------------------------------------------------------------------------------------------------------------------
After successfully processing the payment on your end, you need to make a request to our billing webhook endpoint:
https://services.leadconnectorhq.com/oauth/billing/webhook
The parameters you need to include in the webhook request are as follows:
**Request Method:** POST
**Request Headers:**
| Name | Value | Notes |
| --- | --- | --- |
| x-ghl-client-key | Your client key | This should be from the same client for which you are authorizing the payment. |
| x-ghl-client-secret | Your Client Secret | The corresponding client secret for the client key used. |
| Content-Type | application/json | |
**Request Body:**
| Name | Value | Notes |
| --- | --- | --- |
| clientId | Your client ID | |
| authType | Enum | Possible values are `company` and `location`. |
| locationId | `` | Required when authType is `location`. |
| companyId | `` | Required when authType is `company`. |
| subscriptionId | Your subscription ID | You can include this if you have configured a subscription model. |
| paymentId | Your Payment ID | In case of a one-time payment model, you can send this parameter. |
| amount | Billed Amount | Required. |
| status | Enum | Possible values are `COMPLETED` and `FAILED`. |
| paymentType | Enum | Possible values are `one_time` and `recurring`. |
### Example[β](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#example "Direct link to Example")
Here is a sample cURL command for the webhook request:
curl --location 'https://services.leadconnectorhq.com/oauth/billing/webhook' \--header 'x-ghl-client-key: ' \--header 'x-ghl-client-secret: ' \--header 'Content-Type: application/json' \--data '{ "clientId": "", "authType": "location", "locationId": "", "subscriptionId": "", "paymentId": "", "amount": 12, "status": "COMPLETED", "paymentType": "recurring"}'
Webhook FAQs[β](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#webhook-faqs "Direct link to Webhook FAQs")
------------------------------------------------------------------------------------------------------------------------------
### Can I get multiple location ids in the Billing URL?[β](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#can-i-get-multiple-location-ids-in-the-billing-url "Direct link to Can I get multiple location ids in the Billing URL?")
Yes, in the case of multiple installations, you will receive a list of locationIds in a comma-separated format in the billing URL.
### Can I update for multiple locations in one call?[β](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#can-i-update-for-multiple-locations-in-one-call "Direct link to Can I update for multiple locations in one call?")
No, you need to trigger the webhook for each location and company separately.
* [1\. Prerequisites for using this webhook](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#1-prerequisites-for-using-this-webhook)
* [2\. Retrieving Parameters from the Billing URL](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#2-retrieving-parameters-from-the-billing-url)
* [3\. Using The Webhook](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#3-using-the-webhook)
* [Example](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#example)
* [Webhook FAQs](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#webhook-faqs)
* [Can I get multiple location ids in the Billing URL?](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#can-i-get-multiple-location-ids-in-the-billing-url)
* [Can I update for multiple locations in one call?](https://marketplace.gohighlevel.com/docs/oauth/Billing/index.html#can-i-update-for-multiple-locations-in-one-call)
---
# HighLevel AI Agent Contest 2025: Getting Started Guide | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#__docusaurus_skipToContent_fallback)
On this page
**Audience:** AI Agent Contest participants building Conversation AI or Voice AI agents and publishing them as Marketplace templates.
**Outcome:** By the end of this guide, youβll have a working agent (chat or voice), packaged as a reusable template, and a Marketplace listing ready for review and installation.
* * *
Watch Demo[β](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#watch-demo "Direct link to Watch Demo")
---------------------------------------------------------------------------------------------------------------------------------------
Prerequisites[β](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#prerequisites "Direct link to Prerequisites")
------------------------------------------------------------------------------------------------------------------------------------------------
* A **HighLevel Agency** account. If you do not have a HighLevel agency account, you can create one by signing up on [Marketplace Portal](https://marketplace.gohighlevel.com/)
. Once logged in, head to the **Testing** tab to create a sandbox account.
* **Role:** If you're using an existing HighLevel account, you must be an **Agency Owner or Admin** to create Marketplace listings.
* **Developer Portal:** You must be signed in to (marketplace.gohighlevel.com) for listing the agent on the marketplace.
* A clear **use case** (e.g., lead qualification, appointment booking, call routing, support triage).
* * *
Step 1 β Design your agent[β](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-1--design-your-agent "Direct link to Step 1 β Design your agent")
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
* **Define the job-to-be-done.** βWho does this agent help, and how do we measure success?β
* **Map the interaction.** Draft happy path + recovery paths (fallback, transfer to human, re-ask, escalate).
* **List required assets.** Workflows, calendars, custom fields/values, tags, custom fields, etc.
* **Guardrails & tone.** Style, compliance boundaries, PII handling, and off-topic responses.
**Pro tip:** Draft 6β10 **suggested questions** youβll later add to the Marketplace listing so buyers can try-before-install (for chat agents).
* * *
Step 2 β Build in HighLevel[β](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-2--build-in-highlevel "Direct link to Step 2 β Build in HighLevel")
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Choose your channel and configure essentials:
### [Creating Conversation AI Agents (chat & messaging)](https://help.gohighlevel.com/support/solutions/articles/155000001335-conversation-ai-bot-explained)
[β](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#creating-conversation-ai-agents-chat--messaging "Direct link to creating-conversation-ai-agents-chat--messaging")
### [Creating Voice AI Agents (phone)](https://help.gohighlevel.com/support/solutions/articles/155000004107-creating-voice-ai-agents)
[β](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#creating-voice-ai-agents-phone "Direct link to creating-voice-ai-agents-phone")
* * *
> **New to prompt writing?** Check out [Prompting 101](https://learnprompting.org/)
> for tips on crafting effective prompts.
* * *
Step 3 β Test like a buyer[β](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-3--test-like-a-buyer "Direct link to Step 3 β Test like a buyer")
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
* **Conversation AI:** Run endβtoβend chats with your suggested questions. Verify outputs, field mapping, workflow triggers, and error messages.
* **Voice AI:** Place **test calls** from multiple devices; review call history (transcript, audio, summary), tune prompts, and confirm transfers/appointments.
* **Edge cases:** noβshow calendars, invalid emails, multiβturn clarifications, rate limits.
**Go/NoβGo checklist**
* [ ] Agent completes the core task unaided 3Γ in a row
* [ ] Recovery paths work (re-ask, escalate, or handoff)
* [ ] Workflows, calendars, and custom fields update correctly
* [ ] Clear user feedback on failures + safe fallbacks
* * *
Step 4 β Package as a Template and Sell on Marketplace[β](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-4--package-as-a-template-and-sell-on-marketplace "Direct link to Step 4 β Package as a Template and Sell on Marketplace")
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
* Convert your single agent **or** multiβagent team into a reusable template.
* In **Conversation AI** or **Voice AI**, choose your agent/template and select **Sell this Template/Agent on Marketplace**.
* Youβll be redirected to the **Developer Portal** with a special link representing your package.
* To update an existing listing later, copy the new Marketplace link from the agent and update it in the Developer Portal.
* Ensure the template includes its **underlying assets** (workflows, calendars, custom fields/values, etc.).
* **Do not** include restricted assets from IPβprotected snapshots.
**Cataloging guidance**
* **Title:** Clear outcome + audience. _Example:_ βDental Lead Qualifier & Scheduler (Chat + Voice)β
* Fill **Use cases**, **Agent description**, **Available actions** (workflows, appointments, transfers, etc.).
* Add **Suggested questions** buyers can try in the Marketplace preview (for chat agents).
* Review nonβeditable **channels** (SMS, email, Instagram, calls) and confirm accuracy.
Step 5 β Complete **App Details** in the Developer Portal[β](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-5--complete-app-details-in-the-developer-portal "Direct link to step-5--complete-app-details-in-the-developer-portal")
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
**Listing polish tips**
* Navigate to Profile > App Profile page to catalog your agent effectively.
* Lead with the outcome and who benefits.
* Show videos/screenshots/gifs of the agent in action + firstβrun checklist.
* * *
Step 6 β Pricing[β](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-6--pricing "Direct link to Step 6 β Pricing")
--------------------------------------------------------------------------------------------------------------------------------------------------------
Make sure to keep your agent free to be eligible for the Contest duration. For detailed steps, see the [App Pricing Setup Guide](https://help.gohighlevel.com/support/solutions/articles/155000001217-set-up-your-app-pricing)
.
* * *
Step 7 β Finalize & Submit for review[β](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-7--finalize--submit-for-review "Direct link to Step 7 β Finalize & Submit for review")
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
* Complete **Basic Info**, **App Profile**, **Pricing**, and **Support** sections.
* Submit for **Marketplace review**. Once approved, your listing goes live.
* * *
* [Watch Demo](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#watch-demo)
* [Prerequisites](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#prerequisites)
* [Step 1 β Design your agent](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-1--design-your-agent)
* [Step 2 β Build in HighLevel](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-2--build-in-highlevel)
* [Creating Conversation AI Agents (chat & messaging)](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#creating-conversation-ai-agents-chat--messaging)
* [Creating Voice AI Agents (phone)](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#creating-voice-ai-agents-phone)
* [Step 3 β Test like a buyer](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-3--test-like-a-buyer)
* [Step 4 β Package as a Template and Sell on Marketplace](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-4--package-as-a-template-and-sell-on-marketplace)
* [Step 5 β Complete **App Details** in the Developer Portal](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-5--complete-app-details-in-the-developer-portal)
* [Step 6 β Pricing](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-6--pricing)
* [Step 7 β Finalize & Submit for review](https://marketplace.gohighlevel.com/docs/other/AIAgentsGettingStarted/index.html#step-7--finalize--submit-for-review)
---
# External Authentication | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#__docusaurus_skipToContent_fallback)
On this page
External authentication enables developers to authenticate HighLevel users using their credentials with the developerβs system before installing the application on HighLevel.
This feature allows you to configure custom authentication fields as necessary, such as:
* apiKey
* username
* password
* oauth 2.0
###### How to enable external authentication on the application?[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#how-to-enable-external-authentication-on-the-application "Direct link to How to enable external authentication on the application?")
Navigate to Developer Marketplace > My Apps > select your app and click on 'External Authentication' tab in the navigation pane. We support API Key/Basic Auth and OAuth2.0
OAuth 2.0[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#oauth-20 "Direct link to OAuth 2.0")
-----------------------------------------------------------------------------------------------------------------------------------
Adding OAuth v2 Authentication to Marketplace Apps This document outlines the process of configuring OAuth 2.0 authentication for external calls within Marketplace apps. Currently, only the "Authorization Code" grant type is supported. HighLevel manages token pairs and includes them in custom actions and triggers, enabling a wide range of integration possibilities.
### 1\. Configuration[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#1-configuration "Direct link to 1. Configuration")
Follow these steps to configure OAuth v2 authentication:
1. **App Details and Scopes:**
Provide the name of your third-party app, client key, and client secret. Specify the required scopes for your third-party integration. Separate scopes with spaces or commas. Include only the necessary scopes for the integration.
2. **Redirect URL:**
Copy the redirect URL provided in your Marketplace app configuration and paste it into your third-party app's configuration settings.
3. **Authorization URL Configuration:**
Configure the authorization URL. Marketplace pre-populates some standard fields, which you can adjust based on the third-party app's documentation. The state parameter is a standard OAuth2 security feature that prevents authorization requests from being initiated by unauthorized parties. Marketplace uses the state parameter to verify the validity of callback requests. Ensure this parameter is not modified for seamless integration.
4. **PKCE (Proof Key for Code Exchange):**
Enable PKCE for enhanced security during the OAuth authorization flow. When enabled:
* A unique code verifier is generated for each authorization request
* The code challenge (derived from code verifier) is included in the authorization request
* The code verifier is securely stored and used during token exchange
* Helps prevent authorization code interception attacks
* Recommended for public clients and enhanced security
5. **Access & Refresh Token Request Configuration:**
Configure the access and refresh token request settings according to the third-party app's documentation. Marketplace pre-populates some standard configurations, which you can modify as needed. Click the "More Options" button to add any additional call details required.
Example Expected Response:
{ "access_token": "your_access_token", "refresh_token": "your_refresh_token", "expires_in": 3600, // Example expiry time in seconds}
When PKCE is enabled, the token request will automatically include the code\_verifier parameter for verification.
6. **Auto Refresh Token:**
Enable the "Auto refresh token" option to automatically fetch new token pairs using the refresh API when tokens expire. If auto-refresh is disabled, the connection will break after token expiration. The user will need to re-authorize to re-establish the connection. We recommend to enable this option for smooth hustle free experience.
7. **Test API:**
Configure a test API endpoint (ideally a GET call requiring no special configuration) to validate the token. HighLevel will call this API to check token validity. If the test fails and auto-refresh is enabled, Marketplace will attempt to refresh the token. The access token is included by default in all API calls. If your API requires additional configuration for the test call, click the "More Options" button to add the necessary options.
Refresh Mechanism: The refresh mechanism is triggered only when a workflow with custom actions/triggers is about to execute. The access token is passed to all external calls involved in Marketplace custom action/trigger configurations.
#### Glossary[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#glossary "Direct link to Glossary")
##### OAuth Parameters[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#oauth-parameters "Direct link to OAuth Parameters")
The following table describes the essential OAuth parameters used in the authorization flow:
| Parameter | System Value | Description |
| --- | --- | --- |
| `client_id` | `{{externalApp.clientId}}` | Unique identifier issued by the third-party application. This ID is used to identify your application during the OAuth process. |
| `client_secret` | `{{externalApp.clientSecret}}` | A confidential key issued alongside the client\_id. This secret key is used to authenticate your application when exchanging the authorization code for tokens. Must be kept secure and never exposed to clients. |
| `scope` | `{{externalApp.scope}}` | A space-separated list of permissions that your application requires to access the third-party application's resources. These scopes determine the level of access granted to your application. |
| `response_type` | `code` | Specifies the type of response expected from the authorization server. GHL exclusively supports the `code` response type, which returns an authorization code that can be exchanged for access and refresh tokens. |
| `state` | `{{bundle.state}}` | A security token generated by GHL to prevent CSRF attacks. This value must be returned unchanged in the callback response. The request will be rejected if the state parameter doesn't match the original value. |
| `redirect_uri` | `{{bundle.redirectUrl}}` | The callback URL where the third-party application will send the authorization response. This URL must be pre-registered and must match exactly with the URL provided during the OAuth configuration. |
| `grant_type` | `authorization_code` or `refresh_token` | Specifies the type of grant being requested from the authorization server:
\- `authorization_code`: Used when exchanging the authorization code for access tokens
\- `refresh_token`: Used when requesting new access tokens using a refresh token |
| `code_challenge` | Generated value | When PKCE is enabled, this parameter is included in the authorization request. It is derived from the code\_verifier using SHA-256 hashing and base64URL encoding. |
| `code_challenge_method` | `S256` | When PKCE is enabled, this parameter indicates the method used to generate the code challenge. Currently, only `S256` (SHA-256) is supported. |
| `code_verifier` | Generated value | When PKCE is enabled, this parameter is included in the token request. It is a high-entropy cryptographic random string that was used to generate the code\_challenge. |
##### Token Parameters[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#token-parameters "Direct link to Token Parameters")
These parameters are used during the OAuth token exchange process:
| Parameter | System Value | Description |
| --- | --- | --- |
| `code` | `{{bundle.code}}` | The authorization code received from the third-party application after successful authorization. This code is temporary and can only be used once to obtain access and refresh tokens. |
| `access_token` | `{{bundle.accessToken}}` | The token used to authenticate requests to the third-party API. This token has a limited lifetime and needs to be refreshed periodically. |
| `refresh_token` | `{{bundle.refreshToken}}` | A long-lived token used to obtain new access tokens when the current access token expires. This token remains valid until explicitly revoked. |
### 2\. Testing the Integration[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#2-testing-the-integration "Direct link to 2. Testing the Integration")
Developers can test their configurations using the built-in test functionality. This initiates the OAuth process with the third-party app. Once the token is generated, the configured test API is called. Ensure all configurations are saved before testing.
**Important Note:** Switching between external authentication types (e.g., from Basic to OAuth) is currently not supported.\[Coming soon\]
* * *
API Key or Basic Auth[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#api-key-or-basic-auth "Direct link to API Key or Basic Auth")
------------------------------------------------------------------------------------------------------------------------------------------------------------------------

There are three sections available.
**Section 1:** Configure your fields This section contains all the fields that developers want to ask from users while installing the application.

To add a field to the user's authentication form, you may configure the following:
* **Label:** It is a helpful text describing the field.
* **Key:** The key that holds the value of the user's input. You may pass the user's input to your authentication endpoint in the header or body by using the key.
* **Type:** The type of input shown to the user. Currently, two field types are supported: "text" and "password."
* **Required:** Is the field required?
* **Help Text:** A brief about the field that is displayed to the user. You can
* **Default field:** Default value to be sent in case the user leaves the field empty.
###### NOTE: We currently support a maximum of three fields only.[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#note-we-currently-support-a-maximum-of-three-fields-only "Direct link to NOTE: We currently support a maximum of three fields only.")

**Section 2:** Configure authentication endpoint This section lets you configure the HTTP request template that would be made when a user tries to install the application.

**Type of request:** The request can be one of "GET", "POST", "PUT" or "PATCH" (When GET is selected, you will not be able to configure the request body) **URL:** It is the URL that would be hit with the request. **URL params:** The params that need to be sent with the request. **HTTP headers:** The headers that need to be sent with the request. **Request Body:** The body that needs to be sent with the request.
###### IMPORTANT NOTE:[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#important-note "Direct link to IMPORTANT NOTE:")
1. You may need to pass the user-entered value, such as API Key/ Username / Password for authentication. You can easily access user input data from the userData object, which has the key of field and value entered by the users and can be accessed with {{userData.key}}. For example, if your field's key is 'apiKey', then you may access the user-entered value for the 'apiKey' using {{userData.apiKey}}.
2. For external auth verification to complete the authentication url should return one of the following status codes: 200, 201, 202, 204.
**Section 3:** Test your authentication
This section will allow developers to test the authentication flow with sample values.


Installation of the application At the time of installation, user would be asked to enter the fields that you have configured. Here's a sample authentication form displayed to the user at the time of installation.

###### External auth request parameters[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#external-auth-request-parameters "Direct link to External auth request parameters")
| Key | Type | Details |
| --- | --- | --- |
| companyId | string | * This parameter is set to agencyId if the application was installed by an agency;
* It will be null if the application was installed by a location |
| `{field_key}` | string | * Key: The key for the parameter is the key of the field.
* There can be a maximum of three fields and hence three keys in the request parameter.
* The value for the parmeters will be as per the agency user's response |
| approveAllLocations | boolean | * True - if "Select all N sub-accounts" checkbox was selected during installation
* False - if "Select all N sub-accounts" checkbox was not selected during installation
 |
| locationId | string\[\] | * If approveAllLocations = false, this parameter contains an array of locationIds selected during installation
* If approveAllLocation = true, this parameter is set to null. |
| excludedLocations | string\[\] | * If approveAllLocations = false, this parameter is set to null.
* If approveAllLocation = true, this parameter contains an array of locationIds which were not selected during installation |
###### NOTE:[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#note "Direct link to NOTE:")
* In the POST, PATCH, and PUT requests, the above fields would be sent as part of the body
* In the GET request, the fields would be passed as params
###### Examples:[β](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#examples "Direct link to Examples:")
* Say an agency has 5 locations - A,B,C,D,E
* Let's assume that the app requires two fields, "username" and "password".
* Scenario 1: User selects location A while installing the app
{"companyId": "123","locationId": {"A"},"username" : "user1","password" : "password123","approveAllLocations": false,"excludedLocations": null}
* Scenario 2: User selects locations A and B while installing the app
{"companyId": "123","locationId": {"A","B"},"username" : "user1","password" : "password123","approveAllLocations": false,"excludedLocations": null}
* Scenario 3: User selects "Select all 5 locations"
{"companyId": "123","locationId": null,"username" : "user1","password" : "password123","approveAllLocations": true,"excludedLocations": null}
* Scenario 4: User selects "Select all 5 locations", but unchecks location C and D
{"companyId": "123","locationId": null,"username" : "user1","password" : "password123","approveAllLocations": true,"excludedLocations": {"C","D"}}
* [OAuth 2.0](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#oauth-20)
* [1\. Configuration](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#1-configuration)
* [2\. Testing the Integration](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#2-testing-the-integration)
* [API Key or Basic Auth](https://marketplace.gohighlevel.com/docs/oauth/ExternalAuthentication/index.html#api-key-or-basic-auth)
---
# Getting Started | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/oauth/GettingStarted/index.html#__docusaurus_skipToContent_fallback)
**HighLevel** is growing at a rapid scale. We have over 70000+ agencies 600,000+ businesses actively using our product.
The Developer Marketplace is a platform provided by HighLevel where developers can create and distribute their custom applications and integrations for use with the HighLevel CRM.
This Document will act as a Onboarding Document for the Developers and will the developers in getting started and help you create great APPs on our Marketplace.
---
# Country List | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/oauth/country/index.html#__docusaurus_skipToContent_fallback)
Select country code whenever a contact will create or update with country field
| **Country Code** | **Country Name** | |
| --- | --- | --- |
| AF | Afghanistan | |
| AX | Aland Islands | |
| AL | Albania | |
| DZ | Algeria | |
| AS | American Samoa | |
| AD | AndorrA | |
| AO | Angola | |
| AI | Anguilla | |
| AQ | Antarctica | |
| AG | Antigua and Barbuda | |
| AR | Argentina | |
| AM | Armenia | |
| AW | Aruba | |
| AU | Australia | |
| AT | Austria | |
| AZ | Azerbaijan | |
| BS | Bahamas | |
| BH | Bahrain | |
| BD | Bangladesh | |
| BB | Barbados | |
| BY | Belarus | |
| BE | Belgium | |
| BZ | Belize | |
| BJ | Benin | |
| BM | Bermuda | |
| BT | Bhutan | |
| BO | Bolivia | |
| BA | Bosnia and Herzegovina | |
| BW | Botswana | |
| BV | Bouvet Island | |
| BR | Brazil | |
| IO | British Indian Ocean Territory | |
| BN | Brunei Darussalam | |
| BG | Bulgaria | |
| BF | Burkina Faso | |
| BI | Burundi | |
| KH | Cambodia | |
| CM | Cameroon | |
| CA | Canada | |
| CV | Cape Verde | |
| KY | Cayman Islands | |
| CF | Central African Republic | |
| TD | Chad | |
| CL | Chile | |
| CN | China | |
| CX | Christmas Island | |
| CC | Cocos (Keeling) Islands | |
| CO | Colombia | |
| KM | Comoros | |
| CG | Congo | |
| CD | Congo | (The Democratic Republic of the) |
| CK | Cook Islands | |
| CR | Costa Rica | |
| CI | Cote D"Ivoire | |
| HR | Croatia | |
| CU | Cuba | |
| CY | Cyprus | |
| CZ | Czech Republic | |
| DK | Denmark | |
| DJ | Djibouti | |
| DM | Dominica | |
| DO | Dominican Republic | |
| EC | Ecuador | |
| EG | Egypt | |
| SV | El Salvador | |
| GQ | Equatorial Guinea | |
| ER | Eritrea | |
| EE | Estonia | |
| ET | Ethiopia | |
| FK | Falkland Islands (Malvinas) | |
| FO | Faroe Islands | |
| FJ | Fiji | |
| FI | Finland | |
| FR | France | |
| GF | French Guiana | |
| PF | French Polynesia | |
| TF | French Southern Territories | |
| GA | Gabon | |
| GM | Gambia | |
| GE | Georgia | |
| DE | Germany | |
| GH | Ghana | |
| GI | Gibraltar | |
| GR | Greece | |
| GL | Greenland | |
| GD | Grenada | |
| GP | Guadeloupe | |
| GU | Guam | |
| GT | Guatemala | |
| GG | Guernsey | |
| GN | Guinea | |
| GW | Guinea-Bissau | |
| GY | Guyana | |
| HT | Haiti | |
| HM | Heard Island and Mcdonald Islands | |
| VA | Holy See (Vatican City State) | |
| HN | Honduras | |
| HK | Hong Kong | |
| HU | Hungary | |
| IS | Iceland | |
| IN | India | |
| ID | Indonesia | |
| IR | Iran | (Islamic Republic Of) |
| IQ | Iraq | |
| IE | Ireland | |
| IM | Isle of Man | |
| IL | Israel | |
| IT | Italy | |
| JM | Jamaica | |
| JP | Japan | |
| JE | Jersey | |
| JO | Jordan | |
| KZ | Kazakhstan | |
| KE | Kenya | |
| KI | Kiribati | |
| KP | Korea | (Democratic People"S Republic) |
| KR | Korea | (Republic of) |
| XK | Kosovo | |
| KW | Kuwait | |
| KG | Kyrgyzstan | |
| LA | Lao People's Democratic Republic\` | |
| LV | Latvia | |
| LB | Lebanon | |
| LS | Lesotho | |
| LR | Liberia | |
| LY | Libyan Arab Jamahiriya | |
| LI | Liechtenstein | |
| LT | Lithuania | |
| LU | Luxembourg | |
| MO | Macao | |
| MK | Macedonia | (The Former Yugoslav Republic of) |
| MG | Madagascar | |
| MW | Malawi | |
| MY | Malaysia | |
| MV | Maldives | |
| ML | Mali | |
| MT | Malta | |
| MH | Marshall Islands | |
| MQ | Martinique | |
| MR | Mauritania | |
| MU | Mauritius | |
| YT | Mayotte | |
| MX | Mexico | |
| FM | Micronesia | (Federated States of) |
| MD | Moldova | (Republic of) |
| MC | Monaco | |
| MN | Mongolia | |
| ME | Montenegro | |
| MS | Montserrat | |
| MA | Morocco | |
| MZ | Mozambique | |
| MM | Myanmar | |
| NA | Namibia | |
| NR | Nauru | |
| NP | Nepal | |
| NL | Netherlands | |
| AN | Netherlands Antilles | |
| NC | New Caledonia | |
| NZ | New Zealand | |
| NI | Nicaragua | |
| NE | Niger | |
| NG | Nigeria | |
| NU | Niue | |
| NF | Norfolk Island | |
| MP | Northern Mariana Islands | |
| NO | Norway | |
| OM | Oman | |
| PK | Pakistan | |
| PW | Palau | |
| PS | Palestinian Territory | (Occupied) |
| PA | Panama | |
| PG | Papua New Guinea | |
| PY | Paraguay | |
| PE | Peru | |
| PH | Philippines | |
| PN | Pitcairn | |
| PL | Poland | |
| PT | Portugal | |
| PR | Puerto Rico | |
| QA | Qatar | |
| RE | Reunion | |
| RO | Romania | |
| RU | Russian Federation | |
| RW | Rwanda | |
| SH | Saint Helena | |
| KN | Saint Kitts and Nevis | |
| LC | Saint Lucia | |
| MF | Saint Martin | |
| PM | Saint Pierre and Miquelon | |
| VC | Saint Vincent and the Grenadines | |
| WS | Samoa | |
| SM | San Marino | |
| ST | Sao Tome and Principe | |
| SA | Saudi Arabia | |
| SN | Senegal | |
| RS | Serbia | |
| SC | Seychelles | |
| SL | Sierra Leone | |
| SG | Singapore | |
| SX | Sint Maarten | |
| SK | Slovakia | |
| SI | Slovenia | |
| SB | Solomon Islands | |
| SO | Somalia | |
| ZA | South Africa | |
| GS | South Georgia and the South Sandwich Islands | |
| ES | Spain | |
| LK | Sri Lanka | |
| SD | Sudan | |
| SR | Suriname | |
| SJ | Svalbard and Jan Mayen | |
| SZ | Swaziland | |
| SE | Sweden | |
| CH | Switzerland | |
| SY | Syrian Arab Republic | |
| TW | Taiwan | |
| TJ | Tajikistan | |
| TZ | Tanzania | (United Republic of) |
| TH | Thailand | |
| TL | Timor-Leste | |
| TG | Togo | |
| TK | Tokelau | |
| TO | Tonga | |
| TT | Trinidad and Tobago | |
| TN | Tunisia | |
| TR | Turkey | |
| TM | Turkmenistan | |
| TC | Turks and Caicos Islands | |
| TV | Tuvalu | |
| UG | Uganda | |
| GB | UK | |
| UA | Ukraine | |
| AE | United Arab Emirates | |
| US | United States | |
| UM | United States Minor Outlying Islands | |
| UY | Uruguay | |
| UZ | Uzbekistan | |
| VU | Vanuatu | |
| VE | Venezuela | |
| VN | Viet Nam | |
| VG | Virgin Islands | (British) |
| VI | Virgin Islands | (U.S.) |
| WF | Wallis and Futuna | |
| EH | Western Sahara | |
| YE | Yemen | |
| ZM | Zambia | |
| ZW | Zimbabwe | |
---
# Highlevel MCP Server | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#__docusaurus_skipToContent_fallback)
On this page
Weβre excited to announce that the GoHighLevel MCP (Model Context Protocol) server is now **live and ready for use!** , opening up a world where advanced AI assistants can talk directly to your GHL data and tools. Think of it as a bridge: you can now **query, automate, and orchestrate** everything in your GoHighLevel account with AI, in any app that supports HTTP based MCP (like Cursor, Windsurf, OpenAI Playground, and more).
**You can also build your own agent. Plug in your favorite AI. Let automation and insights flow.**
Model Context Protocol (MCP)
============================
MCP is an open protocol that standardizes how applications provide context to LLMs. GHL-MCP provides a standardized way to connect AI models to different data sources and tools without worrying about internal details of how highlevel apis function.
Quickstart Guide[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#quickstart-guide "Direct link to Quickstart Guide")
--------------------------------------------------------------------------------------------------------------------------------------
### 1\. **Get Your Private Integration Token (PIT)**[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#1--get-your-private-integration-token-pit "Direct link to 1--get-your-private-integration-token-pit")
* Go to **Settings > Private Integrations** in the GoHighLevel Location you want to use.
* Click **βCreate New Integrationβ**, choose the required scopes (see below), and copy the generated token.
### 2\. **Configure Your Agent/Client**[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#2--configure-your-agentclient "Direct link to 2--configure-your-agentclient")
* Add the MCP endpoint and authentication headers to your agent. The locationId in header is optional - and can be passed as part of prompts as well if needed.
{ "mcpServers": { "ghl-mcp": { "url": "https://services.leadconnectorhq.com/mcp/", "headers": { "Authorization": "Bearer pit-12345", "locationId": "110411007T" } } }}
### 3\. **Start Making Requests**[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#3--start-making-requests "Direct link to 3--start-making-requests")
* Use any compatible client or agent to send HTTP requests to the MCP server endpoint.
* You can now access GHL data using natural language and tool calls.
* * *
| # | Tool Name | Endpoint | Description |
| --- | --- | --- | --- |
| 1 | Get Calendar Events | `calendars_get-calendar-events` | Get calendar events (requires userId, groupId, or calendarId) |
| 2 | Get Appointment Notes | `calendars_get-appointment-notes` | Retrieve appointment notes |
| 3 | Get All Tasks | `contacts_get-all-tasks` | Get all tasks for a contact |
| 4 | Add Tags | `contacts_add-tags` | Add tags to a contact |
| 5 | Remove Tags | `contacts_remove-tags` | Remove tags from a contact |
| 6 | Get Contact | `contacts_get-contact` | Fetch contact details |
| 7 | Update Contact | `contacts_update-contact` | Update a contact |
| 8 | Upsert Contact | `contacts_upsert-contact` | Update or create a new contact |
| 9 | Create Contact | `contacts_create-contact` | Create a contact |
| 10 | Get Contacts | `contacts_get-contacts` | Get contacts from GHL |
| 11 | Search Conversation | `conversations_search-conversation` | Search/filter/sort conversations |
| 12 | Get Messages | `conversations_get-messages` | Get messages by conversation ID |
| 13 | Send a New Message | `conversations_send-a-new-message` | Send a message into a conversation thread |
| 14 | Get Location | `locations_get-location` | Get sub-account (location) details by ID |
| 15 | Get Custom Fields | `locations_get-custom-fields` | Retrieve custom field definitions for a location |
| 16 | Search Opportunity | `opportunities_search-opportunity` | Search for opportunities by criteria |
| 17 | Get Pipelines | `opportunities_get-pipelines` | Retrieve all opportunity pipelines |
| 18 | Get Opportunity | `opportunities_get-opportunity` | Fetch an opportunity by ID |
| 19 | Update Opportunity | `opportunities_update-opportunity` | Update an existing opportunity |
| 20 | Get Order by ID | `payments_get-order-by-id` | Fetch order details by unique order ID |
| 21 | List Transactions | `payments_list-transactions` | Paginated list, supports filtering |
* * *
Authentication & Required Scopes[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#authentication--required-scopes "Direct link to Authentication & Required Scopes")
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> **Note:** For full tool access, your Private Integration Token (PIT) must include the following scopes. else just do the view location scope in combination with required scopes for your AI.

* View Contacts
* Edit Contacts
* View Conversations
* Edit Conversations
* View Conversation Messages
* Edit Conversation Messages
* View Opportunities
* Edit Opportunities
* View Calendars
* View Payment Orders
* View Custom Fields
* View Payment Transactions
* View Forms
* View Locations
* View Calendar Events
* Edit Calendar Events
* Edit Calendars
_Youβll be prompted to select these scopes when creating your Private Integration under Settings > Private Integrations in GoHighLevel._
* * *
Demo Video of General Setup and usage with OpenAI & Cursor[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#demo-video-of-general-setup-and-usage-with-openai--cursor "Direct link to Demo Video of General Setup and usage with OpenAI & Cursor")
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
* [Demo Video (ClickUp)](https://t8631005.p.clickup-attachments.com/t8631005/e34ef7a7-5b16-4a8b-bcf1-bd85fb3a6319/Demo.mov?view=open)
* * *
Integration with n8n[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#integration-with-n8n "Direct link to Integration with n8n")
--------------------------------------------------------------------------------------------------------------------------------------------------
You can seamlessly integrate the Highlevel MCP server with n8n to automate workflows and connect your GHL data with hundreds of other applications. Hereβs how to set it up:
### 1\. Configure the MCP Client in n8n[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#1-configure-the-mcp-client-in-n8n "Direct link to 1. Configure the MCP Client in n8n")
In your n8n workflow, add the MCP client node and set the MCP URL to `https://services.leadconnectorhq.com/mcp/`. For the transport protocol, select **HTTP Streamable**, which is available in n8n v1.104 and later.
### 2\. Set Up Authentication[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#2-set-up-authentication "Direct link to 2. Set Up Authentication")
* Choose **Header based Auth** and provide the following credentials:
* **Key**: `Authorization`
* **Value**: `Bearer pit-token-here`
### 3\. Provide the Location ID[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#3-provide-the-location-id "Direct link to 3. Provide the Location ID")
Our MCP server supports dynamic `locationId`s. You can either hardcode it or provide it dynamically:
* **System Prompt**: For a fixed location, set it in the system prompt of your LLM node:
The location id is
* **User Prompt**: Alternatively, the tool can request the `locationId` during the conversation, and you can provide it in a chat message.
### 4\. Select Your Tools[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#4-select-your-tools "Direct link to 4. Select Your Tools")
Once configured, you can select any of the available GHL tools as needed for your workflow.
### Demo Video[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#demo-video "Direct link to Demo Video")
Watch this demo to see the n8n integration in action: [n8n MCP Integration Demo](https://www.loom.com/share/67b253f6a88a41649361ae06e630b573?sid=ab46ab96-c600-4698-bd84-0a35cca2152b)
* * *
Sample Langgraph Agent for the MCP[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#sample-langgraph-agent-for-the-mcp "Direct link to Sample Langgraph Agent for the MCP")
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
import asynciofrom langchain_openai import ChatOpenAIfrom langchain_mcp_adapters.client import MultiServerMCPClientfrom langgraph.prebuilt import create_react_agentasync def main(): client = MultiServerMCPClient( { "ghl": { "url": "https://services.leadconnectorhq.com/mcp/", "transport": "streamable_http", "headers": { "Authorization": "Bearer pit-token-here", "locationId": "location-id-here" } } } ) tools = await client.get_tools() # Create OpenAI model with API key llm = ChatOpenAI( model="gpt-4o", api_key="openai-api-key-here" ) agent = create_react_agent( llm, tools ) response = await agent.ainvoke( {"messages": [{"role": "user", "content": "Give me all my contacts"}]} ) print(response)if __name__ == "__main__": asyncio.run(main())
A few things you can do with this MCP[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#a-few-things-you-can-do-with-this-mcp "Direct link to A few things you can do with this MCP")
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### 1\. **Contact Management on Autopilot**[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#1--contact-management-on-autopilot "Direct link to 1--contact-management-on-autopilot")
* Instantly **fetch, update, or create contacts** via AI prompts.
* **Tag and segment** your contacts for targeted campaigns, all through a chat interface.
* **Upsert** contactsβAI will figure out if it needs to create or update.
> _**Example:**_ βShow me all contacts added last week and tag them as βNew Leadβ.β
### 2\. **Conversational AI That Can Text for You**[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#2--conversational-ai-that-can-text-for-you "Direct link to 2--conversational-ai-that-can-text-for-you")
* **Send new messages** to any conversation using your AI agentβnever miss a follow-up.
* **Search conversations** by keywords, status, or participant.
* **Auto-reply** to common questions by integrating MCP with your chatbots.
> _**Example:**_ βFind all unread messages and send a follow-up: βHey! Just checking inβlet us know if you have questions!ββ
### 3\. **Custom Workflows & Multi-Step Automation**[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#3--custom-workflows--multi-step-automation "Direct link to 3--custom-workflows--multi-step-automation")
* Chain together multiple MCP actions to create true business workflows on your AI Agents.
* **Example:** On new contact creation, tag them, send a welcome message, and add to a pipeline.
### 4\. **Payment & Transaction Intelligence**[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#4--payment--transaction-intelligence "Direct link to 4--payment--transaction-intelligence")
* **Fetch order details** and transaction history on demand.
* Build AI-powered dashboards for payment data analysis.
> _**Example:**_ βShow me the last 10 transactions over $100, and flag any with a refund request.β
* * *
**You can do much more beyond these above examples.**
Roadmap & Vision[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#roadmap--vision "Direct link to Roadmap & Vision")
-------------------------------------------------------------------------------------------------------------------------------------
* npx package for rapid integration with clients that donβt support HTTP Streamable protocol yet (including Claude Desktop).
* OAuth support.
* Goal to expand to **250+ tools** as part of a unified orchestrator layer. This will lead to MCP being a single connector with all these capabilities without eating up LLM tokens.
* Enable full automation, integration, and orchestration across the GoHighLevel ecosystem.
Try It Out & Feedback[β](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#try-it-out--feedback "Direct link to Try It Out & Feedback")
----------------------------------------------------------------------------------------------------------------------------------------------------
* Please try out the MCP serverβthis is our first release and we value your feedback!
* Integrate with your clients, or create custom agents.
* For questions or support, feel free to reach out.
* [Quickstart Guide](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#quickstart-guide)
* [1\. **Get Your Private Integration Token (PIT)**](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#1--get-your-private-integration-token-pit)
* [2\. **Configure Your Agent/Client**](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#2--configure-your-agentclient)
* [3\. **Start Making Requests**](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#3--start-making-requests)
* [Authentication & Required Scopes](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#authentication--required-scopes)
* [Demo Video of General Setup and usage with OpenAI & Cursor](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#demo-video-of-general-setup-and-usage-with-openai--cursor)
* [Integration with n8n](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#integration-with-n8n)
* [1\. Configure the MCP Client in n8n](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#1-configure-the-mcp-client-in-n8n)
* [2\. Set Up Authentication](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#2-set-up-authentication)
* [3\. Provide the Location ID](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#3-provide-the-location-id)
* [4\. Select Your Tools](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#4-select-your-tools)
* [Demo Video](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#demo-video)
* [Sample Langgraph Agent for the MCP](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#sample-langgraph-agent-for-the-mcp)
* [A few things you can do with this MCP](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#a-few-things-you-can-do-with-this-mcp)
* [1\. **Contact Management on Autopilot**](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#1--contact-management-on-autopilot)
* [2\. **Conversational AI That Can Text for You**](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#2--conversational-ai-that-can-text-for-you)
* [3\. **Custom Workflows & Multi-Step Automation**](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#3--custom-workflows--multi-step-automation)
* [4\. **Payment & Transaction Intelligence**](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#4--payment--transaction-intelligence)
* [Roadmap & Vision](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#roadmap--vision)
* [Try It Out & Feedback](https://marketplace.gohighlevel.com/docs/other/mcp/index.html#try-it-out--feedback)
---
# User Context in Marketplace Apps | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#__docusaurus_skipToContent_fallback)
On this page
HighLevel provides a secure mechanism for accessing authenticated user information through signed tokens. This guide explains how you can generate and use `Shared Secret` key to access user context in secured manner.
Setting Up Shared Secret[β](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#setting-up-shared-secret "Direct link to Setting Up Shared Secret")
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### Generating a Shared Secret Key[β](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#generating-a-shared-secret-key "Direct link to Generating a Shared Secret Key")
First you'll need to generate a Shared Secret key for your application:
1. Navigate to your application's Advanced Settings
2. Go to the Auth section
3. Under Shared Secret, click the Generate button to create your Shared Secret key

Frontend Implementation Methods[β](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#frontend-implementation-methods "Direct link to Frontend Implementation Methods")
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
There are two ways in which you can access this data in your frontend, depending on where your code runs:
### 1\. Custom JavaScript Implementation[β](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#1-custom-javascript-implementation "Direct link to 1. Custom JavaScript Implementation")
If you're using custom JavaScript injected into HighLevel pages, use the `exposeSessionDetails` method:
async function getUserData() { try { // APP_ID is your application's unique identifier const encryptedUserData = await window.exposeSessionDetails(APP_ID); // Send this encrypted data to your backend for decryption const response = await fetch("your-backend-endpoint", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ encryptedData: encryptedUserData }), }); const userData = await response.json(); return userData; } catch (error) { console.error("Failed to fetch session details:", error); throw error; }}
### 2\. Custom Pages Implementation[β](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#2-custom-pages-implementation "Direct link to 2. Custom Pages Implementation")
If you're trying to get user context in custom page, use the `postMessage` method to communicate with the parent window:
async function getUserData() { try { const encryptedUserData = await new Promise((resolve) => { // Request user data from parent window window.parent.postMessage({ message: "REQUEST_USER_DATA" }, "*"); // Listen for the response const messageHandler = ({ data }) => { if (data.message === "REQUEST_USER_DATA_RESPONSE") { window.removeEventListener("message", messageHandler); resolve(data.payload); } }; window.addEventListener("message", messageHandler); }); // Send encrypted data to your backend for decryption const response = await fetch("your-backend-endpoint", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ encryptedData: encryptedUserData }), }); const userData = await response.json(); return userData; } catch (error) { console.error("Failed to fetch user data:", error); throw error; }}
Backend Implementation[β](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#backend-implementation "Direct link to Backend Implementation")
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Regardless of which frontend method you use, the backend decryption process remains the same:
const CryptoJS = require("crypto-js");function decryptUserData(encryptedUserData, sharedSecretKey) { try { const decrypted = CryptoJS.AES.decrypt( encryptedUserData, sharedSecretKey ).toString(CryptoJS.enc.Utf8); return JSON.parse(decrypted); } catch (error) { throw new Error("Failed to decrypt user data"); }}// Example Express endpointapp.post("/decrypt-user-data", (req, res) => { try { const { encryptedData } = req.body; const userData = decryptUserData( encryptedData, process.env.GHL_APP_SHARED_SECRET ); res.json(userData); } catch (error) { res.status(400).json({ error: "Failed to decrypt user data" }); }});
Decrypted Data Structure[β](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#decrypted-data-structure "Direct link to Decrypted Data Structure")
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
After decryption, the data will be returned as a JSON object containing user information. The structure varies based on whether the user is accessing from an Agency or Location context.
### Agency Context[β](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#agency-context "Direct link to Agency Context")
When accessing from an Agency context, the decrypted data will have the following structure:
{ "userId": "MKQJ7wOVVmNOMvrnKKKK", // Unique identifier for the user "companyId": "GNb7aIv4rQFVb9iwNl5K", // Unique identifier for the company/agency "role": "admin", // User's role in the system "type": "agency", // Indicates this is an agency user "userName": "John Doe", // Full name of the user "email": "[emailΒ protected]", // User's email address "isAgencyOwner": true // If the loggedIn user is agency owner}
### Location Context[β](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#location-context "Direct link to Location Context")
When accessing from a Location context, the decrypted data will include an additional `activeLocation` field:
{ "userId": "MKQJ7wOVVmNOMvrnKKKK", // Unique identifier for the user "companyId": "GNb7aIv4rQFVb9iwNl5K", // Unique identifier for the company/agency "role": "admin", // User's role in the system "type": "agency", // Indicates this is an agency user "activeLocation": "yLKVZpNppIdYpah4RjNE", // Unique identifier for the active location "userName": "John Doe", // Full name of the user "email": "[emailΒ protected]", // User's email address "isAgencyOwner": false // If the loggedIn user is agency owner}
### Field Descriptions[β](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#field-descriptions "Direct link to Field Descriptions")
| Field | Type | Description |
| --- | --- | --- |
| userId | string | Unique identifier for the user |
| companyId | string | Unique identifier for the company/agency |
| role | string | User's role in the system (e.g., 'admin', 'user') |
| type | string | Context type ('agency' or 'location') |
| activeLocation | string | (Location context only) Unique identifier for the active location |
| userName | string | Full name of the user |
| email | string | User's email address |
| isAgencyOwner | boolean | If the loggedIn user is agency owner |
### Reference Implementation[β](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#reference-implementation "Direct link to Reference Implementation")
For a complete example implementation, you can refer to our marketplace app template repository:
[GoHighLevel Marketplace App Template](https://github.com/GoHighLevel/ghl-marketplace-app-template/tree/main)
The relevant implementation can be found in the `/decrypt-sso` endpoint of the template.
### Security Considerations[β](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#security-considerations "Direct link to Security Considerations")
* Never expose your Shared Secret key in client-side code
* Always perform decryption on your backend
* Store your Shared Secret key securely using environment variables
* Use HTTPS for all communications between your frontend and backend
* Regularly rotate your Shared Secret keys for enhanced security
* [Setting Up Shared Secret](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#setting-up-shared-secret)
* [Generating a Shared Secret Key](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#generating-a-shared-secret-key)
* [Frontend Implementation Methods](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#frontend-implementation-methods)
* [1\. Custom JavaScript Implementation](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#1-custom-javascript-implementation)
* [2\. Custom Pages Implementation](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#2-custom-pages-implementation)
* [Backend Implementation](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#backend-implementation)
* [Decrypted Data Structure](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#decrypted-data-structure)
* [Agency Context](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#agency-context)
* [Location Context](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#location-context)
* [Field Descriptions](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#field-descriptions)
* [Reference Implementation](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#reference-implementation)
* [Security Considerations](https://marketplace.gohighlevel.com/docs/other/user-context-marketplace-apps/index.html#security-considerations)
---
# HighLevel PHP SDK | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#__docusaurus_skipToContent_fallback)
On this page
The `gohighlevel/api-client` composer package is the officially supported SDK for PHP 7.4+ projects. It wraps the full HighLevel API with PSR-18 friendly services, automatic OAuth token rotation, webhook helpers, and pluggable session storage.
Installation[β](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#installation "Direct link to Installation")
------------------------------------------------------------------------------------------------------------------------
composer require gohighlevel/api-client
Quick Start[β](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#quick-start "Direct link to Quick Start")
---------------------------------------------------------------------------------------------------------------------
### Initialize with a Private Integration Token[β](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#initialize-with-a-private-integration-token "Direct link to Initialize with a Private Integration Token")
$_ENV['GHL_PIT'],]);$ghl = new HighLevel($config);
### Initialize with OAuth credentials[β](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#initialize-with-oauth-credentials "Direct link to Initialize with OAuth credentials")
use HighLevel\HighLevel;use HighLevel\HighLevelConfig;$config = new HighLevelConfig([ 'clientId' => $_ENV['GHL_CLIENT_ID'], 'clientSecret' => $_ENV['GHL_CLIENT_SECRET'],]);$ghl = new HighLevel($config);
### Make your first API call[β](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#make-your-first-api-call "Direct link to Make your first API call")
use HighLevel\Services\Contacts\Models\SearchBodyV2DTO;$body = new SearchBodyV2DTO([ 'locationId' => 'zBG0T99IsBgOoXUrcROH', 'pageLimit' => 1,]);$contactsResponse = $ghl->contacts->searchContactsAdvanced($body);error_log(json_encode($contactsResponse, JSON_PRETTY_PRINT));
Session storage[β](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#session-storage "Direct link to Session storage")
---------------------------------------------------------------------------------------------------------------------------------
Use `HighLevel\Storage\MongoDBSessionStorage` provided by SDK to use mongo as storage or extend it to store tokens in MySQL, PostgreSQL, Redis, etc:
$config['client_id'], 'clientSecret' => $config['client_secret'], 'sessionStorage' => $sessionStorage, 'logLevel' => 'warn']);
Webhook support[β](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#webhook-support "Direct link to Webhook support")
---------------------------------------------------------------------------------------------------------------------------------
SDK provides webhook support which can be used as shown below. It will handle INSTALL and UNINSTALL events sent by HighLevel. It will generate token and store it in the db.
$payload = $request->getBody()->getContents();$signature = $request->getHeaderLine('x-wh-signature');$ghl->getWebhookManager()->processWebhook( $payload, // pass raw request body as string here $signature, $_ENV['WEBHOOK_PUBLIC_KEY'], $_ENV['GHL_CLIENT_ID']);
Call `verifySignature` directly when you just need validation:
$ghl->getWebhookManager()->verifySignature( $payload, $signature, $_ENV['WEBHOOK_PUBLIC_KEY']);
Additional resources[β](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#additional-resources "Direct link to Additional resources")
------------------------------------------------------------------------------------------------------------------------------------------------
You can find some SDK & additional examples here:
[SDK](https://github.com/GoHighLevel/highlevel-api-php)
[packagist](https://packagist.org/packages/gohighlevel/api-client)
[Examples](https://github.com/GoHighLevel/ghl-sdk-examples/tree/main/php)
* [Installation](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#installation)
* [Quick Start](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#quick-start)
* [Initialize with a Private Integration Token](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#initialize-with-a-private-integration-token)
* [Initialize with OAuth credentials](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#initialize-with-oauth-credentials)
* [Make your first API call](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#make-your-first-api-call)
* [Session storage](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#session-storage)
* [Webhook support](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#webhook-support)
* [Additional resources](https://marketplace.gohighlevel.com/docs/sdk/php/index.html#additional-resources)
---
# HighLevel Python SDK | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#__docusaurus_skipToContent_fallback)
On this page
The official `gohighlevel-api-client` package publishes a async client that speaks to every HighLevel endpoint with the same token automation, webhook helpers, and storage adapters you get on other platforms. Requires Python 3.8+.
Installation[β](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#installation "Direct link to Installation")
---------------------------------------------------------------------------------------------------------------------------
* pip
* Pipenv
* Poetry
pip install gohighlevel-api-client
pipenv install gohighlevel-api-client
poetry add gohighlevel-api-client
Quick Start[β](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#quick-start "Direct link to Quick Start")
------------------------------------------------------------------------------------------------------------------------
### Initialize the client[β](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#initialize-the-client "Direct link to Initialize the client")
from highlevel import HighLevelclient = HighLevel( client_id="your_client_id", client_secret="your_client_secret",)
### Make an API call[β](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#make-an-api-call "Direct link to Make an API call")
The SDK is async-first; wrap your logic in `asyncio.run()` when you are not already inside an async framework.
import asynciofrom highlevel import HighLevelasync def main(): client = HighLevel( client_id="your_client_id", client_secret="your_client_secret", ) response = await client.contacts.search_contacts_advanced({ "locationId": "zBG0T99IsBgOoXUrcROH", "pageLimit": 5, }) print(response)asyncio.run(main())
Session storage[β](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#session-storage "Direct link to Session storage")
------------------------------------------------------------------------------------------------------------------------------------
Use in-memory storage for local testing or swap in MongoDB/Redis/etc. for production resiliency.
from highlevel.storage import MongoDBSessionStoragestorage = MongoDBSessionStorage( connection_string="mongodb://localhost:27017", database_name="ghl_sessions", collection_name="jwt_tokens",)client = HighLevel( client_id="your_client_id", client_secret="your_client_secret", session_storage=storage,)
Webhook integration[β](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#webhook-integration "Direct link to Webhook integration")
------------------------------------------------------------------------------------------------------------------------------------------------
Hook up the middleware returned by `client.webhooks.subscribe()` to validate signatures, respond to INSTALL/UNINSTALL automatically, and keep session storage synchronized.
client = HighLevel( client_id="your_client_id", client_secret="your_client_secret")webhook_middleware = client.webhooks.subscribe()@app.post("/api/webhooks/ghl")async def handle_ghl_webhook(request): await webhook_middleware(request) # you custom logic for webhook goes here return {"status": "success"}
Additional resources[β](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#additional-resources "Direct link to Additional resources")
---------------------------------------------------------------------------------------------------------------------------------------------------
You can find some SDK & additional examples here:
[SDK](https://github.com/GoHighLevel/highlevel-api-python)
[pypi](https://pypi.org/project/gohighlevel-api-client/)
[Examples](https://github.com/GoHighLevel/ghl-sdk-examples/tree/main/python)
* [Installation](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#installation)
* [Quick Start](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#quick-start)
* [Initialize the client](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#initialize-the-client)
* [Make an API call](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#make-an-api-call)
* [Session storage](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#session-storage)
* [Webhook integration](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#webhook-integration)
* [Additional resources](https://marketplace.gohighlevel.com/docs/sdk/python/index.html#additional-resources)
---
# HighLevel Node.js SDK | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#__docusaurus_skipToContent_fallback)
On this page
The official `@gohighlevel/api-client` package wraps every HighLevel REST endpoint with a typed, promise-based interface. You get automatic OAuth handling, token rotation, retries, and consistent errors without re-implementing request plumbing.
Installation[β](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#installation "Direct link to Installation")
-------------------------------------------------------------------------------------------------------------------------
The SDK supports any modern Node.js runtime (v18+) and works with npm, yarn, or pnpm. Install it as a regular dependency so it is available anywhere you need to talk to HighLevel.
* npm
* yarn
* pnpm
npm install @gohighlevel/api-client
yarn add @gohighlevel/api-client
pnpm add @gohighlevel/api-client
Quick Start[β](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#quick-start "Direct link to Quick Start")
----------------------------------------------------------------------------------------------------------------------
### Initialize the client[β](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#initialize-the-client "Direct link to Initialize the client")
Set your OAuth credentials (or PIT) through environment variables so that local development and deployments share the same configuration.
* JavaScript
* TypeScript
const { HighLevel } = require('@gohighlevel/api-client');const highLevel = new HighLevel({ clientId: process.env.HIGHLEVEL_CLIENT_ID, clientSecret: process.env.HIGHLEVEL_CLIENT_SECRET,});
import { HighLevel } from '@gohighlevel/api-client';const highLevel = new HighLevel({ clientId: process.env.HIGHLEVEL_CLIENT_ID ?? '', clientSecret: process.env.HIGHLEVEL_CLIENT_SECRET ?? '',});
### Make your first API call[β](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#make-your-first-api-call "Direct link to Make your first API call")
Every service under `highLevel` mirrors the REST resources (contacts, opportunities, workflows, etc.). Provide the required `locationId` or `companyId` so the SDK can manage tokens for you.
async function listContacts() { try { const response = await highLevel.contacts.searchContactsAdvanced({ locationId: 'zBG0T99IsBgOoXUrcROH', pageLimit: 5, }); console.log(response); } catch (error) { console.error('HighLevel error:', error); }}listContacts();
Token storage and refresh[β](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#token-storage-and-refresh "Direct link to Token storage and refresh")
----------------------------------------------------------------------------------------------------------------------------------------------------------------
By default, tokens live in memory. In production, inject your own storage adapter (Redis, MongoDB, SQL, etc.) so tokens survive restarts:
import { HighLevel, MongoDBSessionStorage } from '@gohighlevel/api-client';const highLevel = new HighLevel({ clientId: process.env.HIGHLEVEL_CLIENT_ID, clientSecret: process.env.HIGHLEVEL_CLIENT_SECRET, sessionStorage: new MongoDBSessionStorage({ dbUrl: 'mongodb://localhost:27017', dbName: 'ghl_sessions' })});
The SDK will refresh expired access tokens on-demand and update your storage without extra work.
Webhook middleware[β](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#webhook-middleware "Direct link to Webhook middleware")
-------------------------------------------------------------------------------------------------------------------------------------------
Use `highLevel.webhooks.subscribe()` to get an Express-compatible middleware that validates signatures, handles INSTALL/UNINSTALL events, and keeps session storage synchronized before your custom logic runs.
app.use('/api/webhooks/ghl', highLevel.webhooks.subscribe());app.post('/api/webhooks/ghl', (req, res) => { // Your business logic can rely on the tokens being current. res.json({ ok: true });});
**Note**: If you use webhook middleware provided by SDK, in case of bulk installation it will generate and store the token for each location when it receives INSTALL event from highlevel.
Additional resources[β](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#additional-resources "Direct link to Additional resources")
-------------------------------------------------------------------------------------------------------------------------------------------------
You can find some SDK & additional examples here:
[SDK](https://github.com/GoHighLevel/highlevel-api-sdk)
[npm](https://www.npmjs.com/package/@gohighlevel/api-client)
[Examples](https://github.com/GoHighLevel/ghl-sdk-examples/tree/main/node)
* [Installation](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#installation)
* [Quick Start](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#quick-start)
* [Initialize the client](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#initialize-the-client)
* [Make your first API call](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#make-your-first-api-call)
* [Token storage and refresh](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#token-storage-and-refresh)
* [Webhook middleware](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#webhook-middleware)
* [Additional resources](https://marketplace.gohighlevel.com/docs/sdk/node/index.html#additional-resources)
---
# Webhook Logs Dashboard | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#__docusaurus_skipToContent_fallback)
On this page
The Webhook Logs Dashboard provides comprehensive monitoring and troubleshooting capabilities for webhook deliveries in your marketplace application. This guide covers how to access, navigate, and effectively use the dashboard to monitor your webhook integrations.
Table of Contents[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#table-of-contents "Direct link to Table of Contents")
------------------------------------------------------------------------------------------------------------------------------------------------------------
1. [Overview](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#overview)
2. [Accessing Webhook Logs](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#accessing-webhook-logs)
3. [Understanding the Dashboard](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#understanding-the-dashboard)
4. [Using Date & Time Filters](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#using-date--time-filters)
5. [Searching Logs](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#searching-logs)
6. [Filtering by Event Name](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#filtering-by-event-name)
7. [Filtering by Status Code](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#filtering-by-status-code)
8. [Navigating Through Pages](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#navigating-through-pages)
9. [Viewing Webhook Details](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#viewing-webhook-details)
10. [Clearing All Filters](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#clearing-all-filters)
11. [Common Use Cases](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#common-use-cases)
12. [FAQ](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#faq)
Overview[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#overview "Direct link to Overview")
---------------------------------------------------------------------------------------------------------------------------------
The Webhook Logs Dashboard enables you to:
* View all webhook events sent to your application
* Track success and failure rates
* Search for specific webhook IDs
* Filter by event type and status codes
* View detailed payload information
* Monitor retry attempts
* Work with different timezones
Accessing Webhook Logs[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#accessing-webhook-logs "Direct link to Accessing Webhook Logs")
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### Navigation Steps[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#navigation-steps "Direct link to Navigation Steps")
1. Navigate to your **Application Dashboard**
2. Click on **Select The App You Want Logs For**
3. Select **Insights** from the left menu
4. Click on **Logs**
5. The **Webhooks** tab will be active by default

### URL Pattern[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#url-pattern "Direct link to URL Pattern")
/app-settings/{your-app-id}/dashboard/logs
Understanding the Dashboard[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#understanding-the-dashboard "Direct link to Understanding the Dashboard")
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### Statistics Cards[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#statistics-cards "Direct link to Statistics Cards")
The dashboard displays three key metrics at the top of the page. **Important:** These statistics show data for the **last 24 hours** and are **independent of your date range filters**.
#### Total Events[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#total-events "Direct link to Total Events")
* Shows the number of unique events received during the selected period
* Includes both successful and failed webhooks
* Updates based on your selected date range and filters
* Deduplicates by webhook ID
#### Consumer Errors[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#consumer-errors "Direct link to Consumer Errors")
* Displays webhooks that failed (non-2xx status codes)
* High numbers indicate potential issues with your webhook endpoint
#### Total Attempts[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#total-attempts "Direct link to Total Attempts")
* Shows all delivery attempts including retries
* If this number is higher than Total Events, your app is experiencing retries
* Helps identify webhook delivery issues
**NOTE**: Webhooks are retried with a 10-minute interval (with jitter) for up to 6 attempts when your endpoint returns a 429 status code. For detailed retry policy information, see the [Error Handling and Retries](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide#error-handling-and-retries)
section.
### Logs Table[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#logs-table "Direct link to Logs Table")
The logs table displays the following columns:
| Column | Description | Example |
| --- | --- | --- |
| **Event Name** | Type of webhook event | `ContactCreate`, `INSTALL` |
| **Webhook ID** | Unique identifier for tracking | `abc123def456...` |
| **Attempted At** | When the webhook was sent | `2024-11-13 14:30:45` |
| **Status Code** | HTTP response status | `200` (success) or `404` (error) |
| **Attempt #** | Delivery attempt number | `1st`, `2nd`, `3rd` |
Status codes are color-coded: green for success (2xx) and red for errors (all others).
Using Date & Time Filters[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#using-date--time-filters "Direct link to Using Date & Time Filters")
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### Date & Time Pickers[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#date--time-pickers "Direct link to Date & Time Pickers")
* By default, the logs display the **last 1 hour** of webhook activity
* You can change the date range with up to 1 second accuracy for any period within the past 30 days
* The date pickers provide quick shortcuts:
* **Today**: Jump to today's date
* **Last 7 Days**: View the past week
* **Last 30 Days**: View the past month (maximum range)
**NOTE**: Logs are retained for the last 30 days

### Changing Timezone[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#changing-timezone "Direct link to Changing Timezone")
All webhook times are stored in UTC, but you can view them in your local timezone for easier reading.
#### How to Change Timezone[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#how-to-change-timezone "Direct link to How to Change Timezone")
1. Locate the **timezone dropdown** on the right
2. Click and start typing your timezone (e.g., "America/New\_York")
3. Select your timezone from the list
4. All times will instantly convert to your selected timezone
#### Timezone Features[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#timezone-features "Direct link to Timezone Features")
* Your selection is saved automatically
* All times in the table update immediately
* Modal details also display in your selected timezone
* Search for timezones by typing
**Example**:
* UTC: `2024-11-13 14:30:00`
* Eastern Time: `2024-11-13 09:30:00`
Searching Logs[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#searching-logs "Direct link to Searching Logs")
---------------------------------------------------------------------------------------------------------------------------------------------------
### Global Search Bar[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#global-search-bar "Direct link to Global Search Bar")
The search bar is located in the top-left of the table and allows you to search for specific webhooks.
#### What You Can Search[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#what-you-can-search "Direct link to What You Can Search")
* **Webhook ID**: Enter the full or partial webhook ID
* **Webhook Payloads**: Enter the value or full key-value pair to search in the payload
#### How to Search[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#how-to-search "Direct link to How to Search")
1. Click in the search box
2. To search by webhook ID: Type your webhook ID (e.g., `abc123....`)
3. To search by payload: Enter the value or full key-value pair from the payload
Example payload:
{ "type": "OpportunityCreate", "locationId": "3jJ0coeqWCZMAosyGQ6K", "versionId": "6878cec452e7c8d29d4dd3d9", "appId": "6878cec452e7c8d29d4dd3d9", "id": "UHXrFfZGSH5rj7z5rdDP", "name": "Test 2", "assignedTo": null, "contactId": "VQxH1EeoFPg9uhhnCeJx", "pipelineId": "WQ7tyljQSXAg7GuTgYdd", "pipelineStageId": "403af14e-9afb-40b1-b394-0aa6bbe0cc5e", "status": "open", "dateAdded": "2025-11-07T12:40:44.510Z", "timestamp": "2025-11-07T12:46:45.953Z", "webhookId": "881b9415-5d35-4ff1-a667-0545b80b96c0"}
* Any substring of value **will work**. ex - `FPg9uhhnCe` (substring from contactId)
* Any one key-value pair **will work**. ex - `"contactId": "VQxH1EeoFPg9uhhnCeJx"` or `name: Test 2` (quotes not important)
* random substring of json **will not work**. ex - `sionId": "6878cec452e7c8d29d4dd3d9", "appId": "6878cec452e7c`
* multiple key values **will not work**. ex - `"appId": "6878cec452e7c8d29d4dd3d9", "id": "UHXrFfZGSH5rj7z5rdDP"`
4. Results will update automatically

#### Search Features[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#search-features "Direct link to Search Features")
* Search is case-insensitive
* Partial matches work (search "abc" finds "abc123def")
* Click the **X** button to clear search
* Search works with other filters simultaneously
Filtering by Event Name[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#filtering-by-event-name "Direct link to Filtering by Event Name")
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### Opening the Filter[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#opening-the-filter "Direct link to Opening the Filter")
1. Find the **Event Name** column header
2. Click the **filter icon** (funnel symbol)
3. A dropdown menu will appear

### Sorting Options[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#sorting-options "Direct link to Sorting Options")
* **Sort A-Z (Ascending)**: Click to sort events alphabetically
* **Sort Z-A (Descending)**: Click to sort events in reverse order
* A blue checkmark indicates the active sort
**NOTE**: Click on it again to remove the sort
### Filter by Condition[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#filter-by-condition "Direct link to Filter by Condition")
Filter event names by text patterns.
#### Available Conditions[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#available-conditions "Direct link to Available Conditions")
1. **None**: No text filtering (default)
2. **Text contains**: Show events containing your text
3. **Text does not contain**: Exclude events with your text
4. **Text starts with**: Show events beginning with your text
5. **Text ends with**: Show events ending with your text
6. **Text is exactly**: Show only exact matches
#### How to Use[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#how-to-use "Direct link to How to Use")
1. Click **"Filter by Condition"** to expand
2. Select a condition from the dropdown
3. Type your search text in the input box
4. Click **"Apply"** at the bottom
**Example**:
* Condition: "Text starts with"
* Input: "Contact"
* Result: Shows `ContactCreate`, `ContactUpdate`, `ContactDelete`, `ContactDndUpdate` & `ContactTagUpdate`
### Filter by Values (Checkboxes)[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#filter-by-values-checkboxes "Direct link to Filter by Values (Checkboxes)")
Select specific event names to view.
#### How to Use[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#how-to-use-1 "Direct link to How to Use")
1. Click **"Filter by Values"** to expand
2. You'll see checkboxes for all available events
3. Use the **search box** to filter the checkbox list
4. **Select All**: Check all visible events
5. **Clear**: Uncheck all events
6. Select one or more event names
7. Click **"Apply"** at the bottom
### Clearing Event Name Filters[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#clearing-event-name-filters "Direct link to Clearing Event Name Filters")
* Click **"Clear"** button at the bottom of the filter dropdown
* Or use the main **"Clear Filters"** button at the top
Filtering by Status Code[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#filtering-by-status-code "Direct link to Filtering by Status Code")
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### Opening the Filter[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#opening-the-filter-1 "Direct link to Opening the Filter")
1. Find the **Status Code** column header
2. Click the **filter icon** (funnel symbol)
3. A dropdown menu will appear
### Quick Filter Options[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#quick-filter-options "Direct link to Quick Filter Options")
* **Filter By Success**: Click to show only successful webhooks (status codes 200-299)
* **Filter By Failure**: Click to show only failed webhooks (includes all non-2xx status codes: 3xx redirects, 4xx client errors, and 5xx server errors)
* A blue checkmark indicates when a filter is active
**Note**: You can only use one quick filter at a time (Success OR Failure)
### Filter by Specific Status Codes[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#filter-by-specific-status-codes "Direct link to Filter by Specific Status Codes")
Select exact status codes to view. You can select multiple status codes simultaneously (e.g., 200 and 404) to create custom filter combinations.
#### How to Use[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#how-to-use-2 "Direct link to How to Use")
1. Click **"Filter by Values"** to expand
2. See checkboxes for common HTTP status codes:
* **Success**: 200, 201, 204
* **Client Errors**: 400, 401, 403, 404, 422, 429
* **Server Errors**: 500, 502, 503, 504
3. Use the **search box** to find specific codes
4. **Select All**: Check all status codes
5. **Clear**: Uncheck all
6. Select the codes you want to see
7. Click **"Apply"**
#### Status Code Colors[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#status-code-colors "Direct link to Status Code Colors")
* **Green tag** = Success (200-299)
* **Red tag** = Error (all others)
Navigating Through Pages[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#navigating-through-pages "Direct link to Navigating Through Pages")
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### Pagination Controls[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#pagination-controls "Direct link to Pagination Controls")
Pagination controls are located at the bottom-right of the table.
### Changing Rows Per Page[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#changing-rows-per-page "Direct link to Changing Rows Per Page")
1. Locate the **"Rows per page"** dropdown
2. Choose from:
* **10 rows** (default)
* **20 rows**
* **50 rows**
3. Table updates immediately
### Moving Between Pages[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#moving-between-pages "Direct link to Moving Between Pages")
#### Using Page Numbers[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#using-page-numbers "Direct link to Using Page Numbers")
* Click any page number to jump to that page
* Current page is highlighted in blue
* Shows up to 7 page numbers at a time
#### Using Previous/Next Buttons[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#using-previousnext-buttons "Direct link to Using Previous/Next Buttons")
* **Previous**: Go back one page (disabled on first page)
* **Next**: Go forward one page (disabled on last page)
**Note**: Your filters remain active when you change pages.
Viewing Webhook Details[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#viewing-webhook-details "Direct link to Viewing Webhook Details")
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### Opening the Details Modal[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#opening-the-details-modal "Direct link to Opening the Details Modal")
1. Click on **any row** in the logs table
2. A modal window will appear with full details

### What You'll See[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#what-youll-see "Direct link to What You'll See")
#### Webhook URL[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#webhook-url "Direct link to Webhook URL")
* The endpoint where the webhook was sent
* **Copy button**: Click to copy the URL to your clipboard
* Useful for verifying the correct endpoint
#### Event Information[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#event-information "Direct link to Event Information")
* **Event Name**: Type of webhook (e.g., `ContactCreate`)
* **Webhook ID**: Unique identifier for this webhook
* **Attempt #**: Which delivery attempt (1st, 2nd, 3rd, etc.)
* **Attempted At**: When it was sent (in your selected timezone)
* **Triggering Event**: What caused this webhook
#### Payload[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#payload "Direct link to Payload")
* **JSON data** sent with the webhook
* Automatically formatted for easy reading
* **Copy button**: Click to copy entire payload
* Useful for:
* Debugging issues
* Understanding data structure
* Testing with sample data
### Using the Payload[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#using-the-payload "Direct link to Using the Payload")
#### Copy the Payload[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#copy-the-payload "Direct link to Copy the Payload")
1. Click the **"Copy"** button above the payload
2. Paste into your code editor or testing tool
3. Use it to reproduce issues locally
Clearing All Filters[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#clearing-all-filters "Direct link to Clearing All Filters")
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
### When to Clear Filters[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#when-to-clear-filters "Direct link to When to Clear Filters")
* You've applied multiple filters and want to start fresh
* You're not seeing expected results
* You want to view all webhooks in the date range
### How to Clear[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#how-to-clear "Direct link to How to Clear")
1. Locate the **"Clear Filters"** button (top-left, blue text with refresh icon)
2. Click the button
3. All filters are removed instantly
### What Gets Cleared[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#what-gets-cleared "Direct link to What Gets Cleared")
* Search text
* Event name filters (sort, conditions, selected values)
* Status code filters (sort, selected values)
* Pagination resets to page 1
### What Stays[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#what-stays "Direct link to What Stays")
* Date & time range (not cleared)
* Timezone selection (not cleared)
**Note**: The button is only enabled when you have active filters.
Common Use Cases[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#common-use-cases "Direct link to Common Use Cases")
---------------------------------------------------------------------------------------------------------------------------------------------------------
### Use Case 1: Finding a Specific Webhook[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-1-finding-a-specific-webhook "Direct link to Use Case 1: Finding a Specific Webhook")
**Scenario**: Support provided a webhook ID to investigate
**Steps**:
1. Copy the webhook ID
2. Paste it in the **search bar**
3. Press Enter or wait for auto-search
4. Click the row to see full details
### Use Case 2: Troubleshooting Failed Webhooks[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-2-troubleshooting-failed-webhooks "Direct link to Use Case 2: Troubleshooting Failed Webhooks")
**Scenario**: Your app isn't receiving webhooks properly
**Steps**:
1. Open **Status Code filter**
2. Click **"Filter By Failure"**
3. Click **"Apply"**
4. Review the failed webhooks
5. Click rows to see error codes and payloads
6. Look for patterns:
* All 404? Your endpoint URL might be wrong
* All 401? Check authentication
* All 500? Your server has errors
### Use Case 3: Checking Retry Behavior[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-3-checking-retry-behavior "Direct link to Use Case 3: Checking Retry Behavior")
**Scenario**: You want to see if webhooks are being retried
**Steps**:
1. Look at the **"Attempt #"** column
2. Search for a specific **Webhook ID** that appears multiple times
3. Look for entries like "2nd", "3rd", "4th"
4. High attempt numbers indicate persistent failures
5. Click to view details and see what changed between attempts
### Use Case 4: Monitoring Event Volume[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-4-monitoring-event-volume "Direct link to Use Case 4: Monitoring Event Volume")
**Scenario**: You want to know how many webhooks you're receiving
**Steps**:
1. Set date range to **"Last 7 Days"** or **"Last 30 Days"**
2. Look at **"Total Events"** statistic
3. Compare to **"Total Attempts"**
4. High difference indicates many retries happening
5. Check **"Consumer Errors"** to see failure rate
### Use Case 5: Focusing on Specific Events[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-5-focusing-on-specific-events "Direct link to Use Case 5: Focusing on Specific Events")
**Scenario**: You only care about contact-related webhooks
**Steps**:
1. Open **Event Name filter**
2. Click **"Filter by Values"**
3. Type **"CONTACT"** in the search box
4. Select all contact events:
* `ContactCreate`
* `ContactUpdate`
* `ContactDelete`
5. Click **"Apply"**
6. Now you only see contact webhooks
### Use Case 6: Investigating Issues at Specific Time[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-6-investigating-issues-at-specific-time "Direct link to Use Case 6: Investigating Issues at Specific Time")
**Scenario**: Your app had issues yesterday at 2 PM
**Steps**:
1. Select your **timezone** first
2. Set **start date/time** to yesterday 2:00 PM
3. Set **end date/time** to yesterday 3:00 PM
4. Open **Status Code filter**
5. Click **"Filter By Failure"**
6. Review what went wrong during that hour
### Use Case 7: Comparing Success vs Failure[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-7-comparing-success-vs-failure "Direct link to Use Case 7: Comparing Success vs Failure")
**Scenario**: You want to see the success rate
**Steps**:
1. Note **"Total Events"** number
2. Note **"Consumer Errors"** number
3. Calculate: (Total Events - Consumer Errors) / Total Events Γ 100
4. Example: (1000 - 50) / 1000 = 95% success rate
5. Filter by failures to investigate the remaining percentage
### Use Case 8: Post-Deployment Verification[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-8-post-deployment-verification "Direct link to Use Case 8: Post-Deployment Verification")
**Scenario**: You just deployed a webhook fix
**Steps**:
1. Note the **deployment time** in your timezone
2. Set **start time** to deployment time
3. Set **end time** to now
4. Filter by the **event name** you fixed
5. Check **"Consumer Errors"** should be low/zero
6. Click rows to verify correct payloads
FAQ[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#faq "Direct link to FAQ")
------------------------------------------------------------------------------------------------------------------
**Why is no data showing in the logs?**
**Check Your Date Range:**
* Make sure **start date is before end date**
* Invalid ranges show an error message
* Try using the **"Last 7 Days"** shortcut
**Check Your Filters:**
* Click **"Clear Filters"** button
* Remove any event name or status code filters
* Clear the search box
**Verify Webhooks Are Configured:**
* Go to your app's **Webhooks** settings
* Ensure webhook URLs are configured
* Check that events are subscribed
For detailed guide on setting up webhooks, please refer to the [Webhook Integration Guide](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide)
.
**Why don't the times look right?**
**Timezone Issue:**
* Check the **timezone selector**
* Select your correct timezone
* Times should update immediately
**Still Wrong?**
* Try refreshing the page
* Clear browser cache
* Check if your system timezone is correct
**I can't find a specific webhook. What should I do?**
**Try Broader Search:**
* Use partial Webhook ID (first few characters)
* Expand your date range
* Remove other filters first
**Check Spelling:**
* Webhook IDs are case-sensitive in some systems
* Try copying and pasting exactly
**Why isn't my filter working?**
**Did You Click Apply?**
* Filters require clicking **"Apply"** button
* Just selecting options doesn't activate them
**Conflicting Filters:**
* Text conditions clear selected values
* Selected values clear text conditions
* Success/Failure sorts clear specific status code selections
**Try Clear and Reapply:**
* Click **"Clear"** in the filter dropdown
* Reapply your filter
* Click **"Apply"**
**I can't open the details modal. How do I fix this?**
**Row Not Clickable?**
* Make sure you're clicking the row, not just hovering
* Check browser console for errors (F12)
* Try a different row
**Modal Shows Error:**
* The webhook detail might be unavailable
* Try refreshing the page
* Contact support if it persists
**Why isn't the copy button working?**
**Browser Permissions:**
* Modern browsers require HTTPS for clipboard
* Check if site is secure (padlock icon)
* Try allowing clipboard permissions in browser settings
**Manual Copy:**
* Select the text manually
* Right-click β Copy
* Or use Ctrl+C (Windows) / Cmd+C (Mac)
**Why don't the statistics match my expectations?**
**Statistics Respect Filters:**
* If you've filtered by event name, stats only show those events
* If you've filtered by failures, stats only show failed webhooks
* Click **"Clear Filters"** to see overall stats
**Date Range Matters:**
* Statistics only count webhooks in your selected date range
* Expand the date range to see more data
Need More Help?[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#need-more-help "Direct link to Need More Help?")
-----------------------------------------------------------------------------------------------------------------------------------------------------
* **Community**: [Join our developer community for questions and support](https://developers.gohighlevel.com/join-dev-community)
* **Support**: [Contact our developer support team for technical assistance](https://developers.gohighlevel.com/support)
* * *
_This guide is designed to help you effectively monitor and troubleshoot webhook deliveries. For integration setup and detailed webhook event documentation, please refer to the [Webhook Integration Guide](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide)
and the [Complete Webhook Documentation](https://marketplace.gohighlevel.com/docs/category/webhook)
._
* [Table of Contents](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#table-of-contents)
* [Overview](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#overview)
* [Accessing Webhook Logs](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#accessing-webhook-logs)
* [Navigation Steps](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#navigation-steps)
* [URL Pattern](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#url-pattern)
* [Understanding the Dashboard](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#understanding-the-dashboard)
* [Statistics Cards](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#statistics-cards)
* [Logs Table](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#logs-table)
* [Using Date & Time Filters](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#using-date--time-filters)
* [Date & Time Pickers](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#date--time-pickers)
* [Changing Timezone](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#changing-timezone)
* [Searching Logs](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#searching-logs)
* [Global Search Bar](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#global-search-bar)
* [Filtering by Event Name](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#filtering-by-event-name)
* [Opening the Filter](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#opening-the-filter)
* [Sorting Options](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#sorting-options)
* [Filter by Condition](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#filter-by-condition)
* [Filter by Values (Checkboxes)](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#filter-by-values-checkboxes)
* [Clearing Event Name Filters](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#clearing-event-name-filters)
* [Filtering by Status Code](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#filtering-by-status-code)
* [Opening the Filter](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#opening-the-filter-1)
* [Quick Filter Options](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#quick-filter-options)
* [Filter by Specific Status Codes](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#filter-by-specific-status-codes)
* [Navigating Through Pages](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#navigating-through-pages)
* [Pagination Controls](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#pagination-controls)
* [Changing Rows Per Page](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#changing-rows-per-page)
* [Moving Between Pages](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#moving-between-pages)
* [Viewing Webhook Details](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#viewing-webhook-details)
* [Opening the Details Modal](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#opening-the-details-modal)
* [What You'll See](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#what-youll-see)
* [Using the Payload](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#using-the-payload)
* [Clearing All Filters](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#clearing-all-filters)
* [When to Clear Filters](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#when-to-clear-filters)
* [How to Clear](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#how-to-clear)
* [What Gets Cleared](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#what-gets-cleared)
* [What Stays](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#what-stays)
* [Common Use Cases](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#common-use-cases)
* [Use Case 1: Finding a Specific Webhook](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-1-finding-a-specific-webhook)
* [Use Case 2: Troubleshooting Failed Webhooks](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-2-troubleshooting-failed-webhooks)
* [Use Case 3: Checking Retry Behavior](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-3-checking-retry-behavior)
* [Use Case 4: Monitoring Event Volume](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-4-monitoring-event-volume)
* [Use Case 5: Focusing on Specific Events](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-5-focusing-on-specific-events)
* [Use Case 6: Investigating Issues at Specific Time](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-6-investigating-issues-at-specific-time)
* [Use Case 7: Comparing Success vs Failure](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-7-comparing-success-vs-failure)
* [Use Case 8: Post-Deployment Verification](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#use-case-8-post-deployment-verification)
* [FAQ](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#faq)
* [Need More Help?](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard/index.html#need-more-help)
---
# Webhook Integration Guide | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#__docusaurus_skipToContent_fallback)
On this page
What are Webhooks?[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#what-are-webhooks "Direct link to What are Webhooks?")
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Webhooks are a way for applications to communicate in real-time. Think of them as **automatic notifications** that are sent to your application when something happens in our platform.
### Real-World Example[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#real-world-example "Direct link to Real-World Example")
Imagine you're building an e-commerce app:
* When a customer places an order β You get a webhook notification
* When the order status changes β You get another webhook notification
* When the payment is processed β You get yet another notification
This way, your app stays updated without constantly asking "has anything changed?"
Getting Started[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#getting-started "Direct link to Getting Started")
---------------------------------------------------------------------------------------------------------------------------------------------------------
### Step 1: Create Your Webhook Endpoint[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#step-1-create-your-webhook-endpoint "Direct link to Step 1: Create Your Webhook Endpoint")
First, you need a public URL that can receive webhook notifications. Here are some options:
#### Option A: Use a Cloud Service[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#option-a-use-a-cloud-service "Direct link to Option A: Use a Cloud Service")
* **Heroku**: Deploy a simple web app
* **AWS Lambda**: Serverless function
* **Google Cloud Functions**: Serverless function
* **Vercel**: Easy deployment platform
#### Option B: Use a Webhook Testing Service[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#option-b-use-a-webhook-testing-service "Direct link to Option B: Use a Webhook Testing Service")
* **webhook.site**: Get a temporary URL for testing
* **ngrok**: Expose your local server to the internet
#### Option C: Use Your Own Server[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#option-c-use-your-own-server "Direct link to Option C: Use Your Own Server")
* Deploy a web application on your server
* Ensure it's accessible via HTTPS
### Step 2: Create a Simple Webhook Handler[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#step-2-create-a-simple-webhook-handler "Direct link to Step 2: Create a Simple Webhook Handler")
Here's a basic example using Node.js and Express:
const express = require('express')const app = express()// Parse JSON requestsapp.use(express.json())// Your webhook endpointapp.post('/webhooks', (req, res) => { console.log('Received webhook:', req.body) // Process the webhook data here const eventType = req.body.type const eventData = req.body.data // Handle different event types switch (eventType) { case 'ContactCreate': console.log('New contact created:', eventData) // Add your logic here break case 'ContactUpdate': console.log('Contact updated:', eventData) // Add your logic here break default: console.log('Unknown event type:', eventType) } // Always respond with 200 OK res.status(200).json({ success: true })})// Start your serverconst PORT = process.env.PORT || 3000app.listen(PORT, () => { console.log(`Webhook server running on port ${PORT}`)})
### Step 3: Test Your Endpoint[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#step-3-test-your-endpoint "Direct link to Step 3: Test Your Endpoint")
Before connecting to our platform, test your endpoint:
curl -X POST https://your-app.com/webhooks \ -H "Content-Type: application/json" \ -d '{ "type": "ContactCreate", "timestamp": "2025-01-28T14:35:00.000Z", "webhookId": "test-123", "data": { "firstName": "John", "lastName": "Doe", "email": "[emailΒ protected]" } }'
Available Webhook Events[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#available-webhook-events "Direct link to Available Webhook Events")
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
We offer a comprehensive set of webhook events that cover all major activities in our platform. Here's a quick overview of the main event categories:
### Event Categories[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#event-categories "Direct link to Event Categories")
* **Contact Events**: Contact creation, updates, deletion, and tag changes
* **Opportunity Events**: Opportunity lifecycle management and status updates
* **Task Events**: Task creation, completion, and deletion
* **Appointment Events**: Calendar appointment scheduling and updates
* **Invoice Events**: Invoice lifecycle from creation to payment
* **Product Events**: Product catalog management
* **Association Events**: Relationship management between records
* **Location Events**: Location creation and updates
* **User Events**: User account management
* **And many more...**
### Detailed Event Documentation[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#detailed-event-documentation "Direct link to Detailed Event Documentation")
For complete details about each webhook event, including:
* Exact payload structure for each event
* Field descriptions and data types
* Sample JSON responses
* Event-specific examples
**π [View Complete Webhook Documentation β](https://marketplace.gohighlevel.com/docs/category/webhook)
**
This detailed documentation provides comprehensive information about every available webhook event, including exact payload structures, field descriptions, and real-world examples.
Security: Verifying Webhook Authenticity[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#security-verifying-webhook-authenticity "Direct link to Security: Verifying Webhook Authenticity")
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### Why Verification is Important[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#why-verification-is-important "Direct link to Why Verification is Important")
Webhooks can be spoofed by malicious actors. Always verify that webhooks are coming from our platform.
### How to Verify[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#how-to-verify "Direct link to How to Verify")
We use a private key to encrypt our webhooks which can be decrypted using our public key
### GHL Public Key:[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#ghl-public-key "Direct link to GHL Public Key:")
-----BEGIN PUBLIC KEY-----MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAokvo/r9tVgcfZ5DysOSCFrm602qYV0MaAiNnX9O8KxMbiyRKWeL9JpCpVpt4XHIcBOK4u3cLSqJGOLaPuXw6dO0t6Q/ZVdAV5Phz+ZtzPL16iCGeK9po6D6JHBpbi989mmzMryUnQJezlYJ3DVfBcsedpinheNnyYeFXolrJvcsjDtfAeRx5ByHQmTnSdFUzuAnC9/GepgLT9SM4nCpvuxmZMxrJt5Rw+VUaQ9B8JSvbMPpez4peKaJPZHBbU3OdeCVx5klVXXZQGNHOs8gF3kvoV5rTnXV0IknLBXlcKKAQLZcY/Q9rG6Ifi9c+5vqlvHPCUJFT5XUGG5RKgOKUJ062fRtN+rLYZUV+BjafxQauvC8wSWeYja63VSUruvmNj8xkx2zE/Juc+yjLjTXpIocmaiFeAO6fUtNjDeFVkhf5LNb59vECyrHD2SQIrhgXpO4Q3dVNA5rw576PwTzNh/AMfHKIjE4xQA1SZuYJmNnmVZLIZBlQAF9Ntd03rfadZ+yDiOXCCs9FkHibELhCHULgCsnuDJHcrGNd5/Ddm5hxGQ0ASitgHeMZ0kcIOwKDOzOU53lDza6/Y09T7sYJPQe7z0cvj7aE4B+Ax1ZoZGPzpJlZtGXCsu9aTEGEnKzmsFqwcSsnw3JB31IGKAykT1hhTiaCeIY/OwwwNUY2yvcCAwEAAQ==-----END PUBLIC KEY-----
We include a digital signature in the `x-wh-signature` header. Here's how to verify it:
const crypto = require('crypto');const publicKey = ``;function verifySignature(payload, signature) { const verifier = crypto.createVerify('SHA256'); verifier.update(payload); verifier.end(); return verifier.verify(publicKey, signature, 'base64');}// Example usageconst payload = JSON.stringify({ "timestamp": "2025-01-28T14:35:00Z", "webhookId": "abc123xyz", ...});const signature = "";const isValid = verifySignature(payload, signature);return isValid;
Setting Up Your Integration[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#setting-up-your-integration "Direct link to Setting Up Your Integration")
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### 1\. Create Your OAuth Application[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#1-create-your-oauth-application "Direct link to 1. Create Your OAuth Application")
You'll need to create an OAuth application in our marketplace via the dashboard. This will give you:
* A webhook URL to receive notifications
* Access to specific data based on scopes
* Ability to subscribe to specific events
### 2\. Configure Your Webhook URL[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#2-configure-your-webhook-url "Direct link to 2. Configure Your Webhook URL")
After filling in all the mandatory information, head down to the Auth section under the advanced setting.
Select the scope of you application from the drop down

### 3\. Choose Your Events[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#3-choose-your-events "Direct link to 3. Choose Your Events")
After defining the scopes, head to the webhook section under the advanced settings
Turn on and paste your webhook URL against the events you wish to receive a webhook response to

Handling Webhooks Reliably[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#handling-webhooks-reliably "Direct link to Handling Webhooks Reliably")
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### Best Practices[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#best-practices "Direct link to Best Practices")
1. **Always Respond Quickly**
* Process webhooks asynchronously if needed
* Return 200 OK immediately
* Do heavy processing in the background
2. **Handle Duplicates**
* Store webhook IDs to prevent duplicate processing
* Make your processing idempotent (safe to run multiple times)
3. **Log Everything**
* Log all incoming webhooks
* Log processing results
* Log errors for debugging
### Example Implementation[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#example-implementation "Direct link to Example Implementation")
const express = require('express')const crypto = require('crypto')const app = express()app.use(express.json())// Store processed webhook IDs (use a database in production)const processedWebhooks = new Set()app.post('/webhooks', async (req, res) => { try { // 1. Verify signature const signature = req.headers['x-wh-signature'] if (!verifyWebhookSignature(req.body, signature)) { console.error('Invalid signature') return res.status(401).json({ error: 'Invalid signature' }) } // 2. Check for duplicates if (processedWebhooks.has(req.body.webhookId)) { console.log('Duplicate webhook, skipping:', req.body.webhookId) return res.status(200).json({ message: 'Already processed' }) } // 3. Log the webhook console.log('Processing webhook:', req.body.type, req.body.webhookId) // 4. Process asynchronously (don't block the response) setImmediate(() => { processWebhookAsync(req.body) }) // 5. Mark as processed processedWebhooks.add(req.body.webhookId) // 6. Respond immediately res.status(200).json({ success: true }) } catch (error) { console.error('Webhook processing error:', error) res.status(200).json({ success: false, error: 'Processing failed' }) }})async function processWebhookAsync(webhook) { try { switch (webhook.type) { case 'ContactCreate': await handleNewContact(webhook.data) break case 'ContactUpdate': await handleContactUpdate(webhook.data) break // Add more cases as needed } console.log('Successfully processed webhook:', webhook.webhookId) } catch (error) { console.error('Failed to process webhook:', webhook.webhookId, error) }}function verifyWebhookSignature(payload, signature) { // Implementation from the security section above}
Error Handling and Retries[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#error-handling-and-retries "Direct link to Error Handling and Retries")
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### How Our Retry System Works[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#how-our-retry-system-works "Direct link to How Our Retry System Works")
We only retry webhook deliveries when your endpoint returns a 429 (rate limit) status code:
* **Retry Triggers**: 429 (rate limit) only
* **Retry Interval**: 10 minutes between attempts + jitter
* **Max Retries**: 6 attempts for 429 errors
* **Total Duration**: ~ 1 hour 10 minutes (6 Γ 10 minutes + initial attempt + jitter)
* **Retry Condition**: We only continue retrying if we keep receiving 429 status codes
* **Scheduling**: We use a distributed scheduling system that adds random jitter to prevent thundering herd issues
**Important**: We do not retry webhooks that return 5xx (server errors). These are considered permanent failures and will not be retried.
### Understanding Jitter[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#understanding-jitter "Direct link to Understanding Jitter")
**What is Jitter?** Jitter is a random delay added to retry attempts to prevent the "thundering herd" problem. When multiple webhooks fail with 429 status codes at the same time, without jitter they would all retry at exactly the same time, potentially overwhelming your server.
**How it works:**
* Our distributed scheduling system applies random jitter to each retry attempt
* The jitter can vary significantly - from seconds to minutes - ensuring natural distribution
* This spreads out the retry attempts, reducing server load and preventing coordinated retry storms
* The jitter ensures that even if many webhooks fail simultaneously, their retries will be distributed over time
### What You Should Do[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#what-you-should-do "Direct link to What You Should Do")
1. **Return 200 OK for Success**
res.status(200).json({ success: true })
2. **Return 200 OK Even for Processing Errors**
try { await processWebhook(req.body) res.status(200).json({ success: true })} catch (error) { console.error('Processing failed:', error) // Still return 200 to acknowledge receipt res.status(200).json({ success: false, error: 'Processing failed' })}
3. **Only Return Error Codes for Real Issues**
* `408`: Your server is too slow
* `429`: You're receiving too many requests
* `5xx`: Your server is down or broken
Testing Your Integration[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#testing-your-integration "Direct link to Testing Your Integration")
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
The best way to verify that your webhook integration is working correctly is to use the **Webhook Logs Dashboard**. This dashboard provides comprehensive monitoring and troubleshooting capabilities for all webhook deliveries to your application.
### Using the Webhook Logs Dashboard[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#using-the-webhook-logs-dashboard "Direct link to Using the Webhook Logs Dashboard")

The Webhook Logs Dashboard allows you to:
* View all webhook events sent to your application
* Track success and failure rates
* Search for specific webhook IDs
* Filter by event type and status codes
* View detailed payload information
* Monitor retry attempts
* Investigate delivery issues in real-time
After setting up your webhook endpoint and configuring it in your OAuth application, you can:
1. Navigate to your **Application Dashboard**
2. Select the app you want to check logs for
3. Go to **Insights** from the left menu
4. Click on **Logs**
5. The **Webhooks** tab will be active by default
From here, you can monitor all webhook deliveries, check their status codes, view payloads, and troubleshoot any issues.
For detailed information on how to use the Webhook Logs Dashboard, including filtering, searching, and viewing webhook details, please refer to the [Webhook Logs Dashboard guide](https://marketplace.gohighlevel.com/docs/webhook/WebhookLogsDashboard)
.
Common Issues and Solutions[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#common-issues-and-solutions "Direct link to Common Issues and Solutions")
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
### Issue: "Invalid signature" errors[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#issue-invalid-signature-errors "Direct link to Issue: "Invalid signature" errors")
**Solution**: Make sure you're using the correct public key and verifying the entire payload.
### Issue: Duplicate webhook processing[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#issue-duplicate-webhook-processing "Direct link to Issue: Duplicate webhook processing")
**Solution**: Store webhook IDs and check for duplicates before processing.
### Issue: Webhooks timing out[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#issue-webhooks-timing-out "Direct link to Issue: Webhooks timing out")
**Solution**: Process webhooks asynchronously and respond quickly.
### Issue: Missing webhook events[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#issue-missing-webhook-events "Direct link to Issue: Missing webhook events")
**Solution**: Check that you've subscribed to the correct events in your OAuth app.
### Issue: Can't access webhook data[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#issue-cant-access-webhook-data "Direct link to Issue: Can't access webhook data")
**Solution**: Ensure your OAuth app has the correct scopes for the data you need.
Next Steps[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#next-steps "Direct link to Next Steps")
------------------------------------------------------------------------------------------------------------------------------------------
1. **Set up your webhook endpoint** using one of the examples above
2. **Test with webhook.site** to make sure it's working
3. **Create your OAuth application** in our marketplace
4. **Subscribe to the events** you need
5. **Deploy your webhook handler** to a production server
6. **Monitor and log** your webhook processing
Need Help?[β](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#need-help "Direct link to Need Help?")
-----------------------------------------------------------------------------------------------------------------------------------------
* **Community**: [Join our developer community for questions and support](https://developers.gohighlevel.com/join-dev-community)
* **Support**: [Contact our developer support team for technical assistance](https://developers.gohighlevel.com/support)
* * *
_This guide is designed to help you get started with webhook integration. For advanced features and detailed API documentation, please refer to our complete API reference._
* [What are Webhooks?](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#what-are-webhooks)
* [Real-World Example](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#real-world-example)
* [Getting Started](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#getting-started)
* [Step 1: Create Your Webhook Endpoint](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#step-1-create-your-webhook-endpoint)
* [Step 2: Create a Simple Webhook Handler](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#step-2-create-a-simple-webhook-handler)
* [Step 3: Test Your Endpoint](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#step-3-test-your-endpoint)
* [Available Webhook Events](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#available-webhook-events)
* [Event Categories](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#event-categories)
* [Detailed Event Documentation](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#detailed-event-documentation)
* [Security: Verifying Webhook Authenticity](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#security-verifying-webhook-authenticity)
* [Why Verification is Important](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#why-verification-is-important)
* [How to Verify](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#how-to-verify)
* [GHL Public Key:](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#ghl-public-key)
* [Setting Up Your Integration](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#setting-up-your-integration)
* [1\. Create Your OAuth Application](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#1-create-your-oauth-application)
* [2\. Configure Your Webhook URL](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#2-configure-your-webhook-url)
* [3\. Choose Your Events](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#3-choose-your-events)
* [Handling Webhooks Reliably](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#handling-webhooks-reliably)
* [Best Practices](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#best-practices)
* [Example Implementation](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#example-implementation)
* [Error Handling and Retries](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#error-handling-and-retries)
* [How Our Retry System Works](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#how-our-retry-system-works)
* [Understanding Jitter](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#understanding-jitter)
* [What You Should Do](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#what-you-should-do)
* [Testing Your Integration](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#testing-your-integration)
* [Using the Webhook Logs Dashboard](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#using-the-webhook-logs-dashboard)
* [Common Issues and Solutions](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#common-issues-and-solutions)
* [Issue: "Invalid signature" errors](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#issue-invalid-signature-errors)
* [Issue: Duplicate webhook processing](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#issue-duplicate-webhook-processing)
* [Issue: Webhooks timing out](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#issue-webhooks-timing-out)
* [Issue: Missing webhook events](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#issue-missing-webhook-events)
* [Issue: Can't access webhook data](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#issue-cant-access-webhook-data)
* [Next Steps](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#next-steps)
* [Need Help?](https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide/index.html#need-help)
---
# Campaign | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/CampaignStatusUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a campaign status is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/CampaignStatusUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "contactId": { "type": "string" }, "status": { "type": "string" }, "templateId": { "type": "string" }, "replied": { "type": "string" }, "dateAdded": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/CampaignStatusUpdate/index.html#example "Direct link to Example")
{ "type": "CampaignStatusUpdate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "2hxvXh8Fjc69SvujEWMD", "contactId": "CWBf1PR9LvvBkcYqiXlc", "status": "paused", "templateId": "Y2I9XM7aO1hncuSOlc9L", "replied": "Loram ipsum", "dateAdded": "2021-11-26T12:41:02.193Z"}
---
# Note | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/NoteUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a note is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/NoteUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "body": { "type": "string" }, "contactId": { "type": "string" }, "dateAdded": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/NoteUpdate/index.html#example "Direct link to Example")
{ "type": "NoteUpdate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "otg8dTQqGLh3Q6iQI55w", "body": "Loram ipsum", "contactId": "CWBf1PR9LvvBkcYqiXlc", "dateAdded": "2021-11-26T12:41:02.193Z"}
---
# Location | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/LocationCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a location is created.
> Available only to Agency Level Apps.
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/LocationCreate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "email": { "type": "string" }, "stripeProductId": { "type": "string" }, "companyId": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/LocationCreate/index.html#example "Direct link to Example")
{ "type": "LocationCreate", "id": "ve9EPM428h8vShlRW1KT", "companyId": "otg8dTQqGLh3Q6iQI55w", "name": "Loram ipsum", "email": "[emailΒ protected]", "stripeProductId": "prod_xyz123abc"}
---
# Contact | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ContactUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever the specific fields in contact is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ContactUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "address1": { "type": "string" }, "city": { "type": "string" }, "companyName": { "type": "string" }, "country": { "type": "string" }, "source": { "type": "string" }, "dateAdded": { "type": "string" }, "dateOfBirth": { "type": "string" }, "dnd": { "type": "boolean" }, "email": { "type": "string" }, "name": { "type": "string" }, "firstName": { "type": "string" }, "lastName": { "type": "string" }, "phone": { "type": "string" }, "postalCode": { "type": "string" }, "state": { "type": "string" }, "tags": { "type": "array" }, "website": { "type": "string" }, "attachments": { "type": "array" }, "assignedTo": { "type": "string" }, "customFields": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "value": { "type": ["string", "number", "array", "object"] } } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/ContactUpdate/index.html#example "Direct link to Example")
{ "type": "ContactUpdate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "nmFmQEsNgz6AVpgLVUJ0", "address1": "3535 1st St N", "city": "ruDolomitebika", "state": "AL", "companyName": "Loram ipsum", "country": "DE", "source": "xyz form", "dateAdded": "2021-11-26T12:41:02.193Z", "dateOfBirth": "2000-01-05T00:00:00.000Z", "dnd": true, "email": "[emailΒ protected]", "name": "John Deo", "firstName": "John", "lastName": "Deo", "phone": "+919509597501", "postalCode": "452001", "tags": ["id magna sed Lorem", "Duis dolor commodo aliqua"], "website": "https://www.google.com/", "attachments": [], "assignedTo": "nmFmQEsNgz6AVpgLVUJ0", "customFields": [ { "id": "BcdmQEsNgz6AVpgLVUJ0", "value": "XYZ Corp" } ]}
---
# Contact | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ContactTagUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a contact's tag field is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ContactTagUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "address1": { "type": "string" }, "city": { "type": "string" }, "companyName": { "type": "string" }, "country": { "type": "string" }, "source": { "type": "string" }, "dateAdded": { "type": "string" }, "dateOfBirth": { "type": "string" }, "dnd": { "type": "boolean" }, "email": { "type": "string" }, "name": { "type": "string" }, "firstName": { "type": "string" }, "lastName": { "type": "string" }, "phone": { "type": "string" }, "postalCode": { "type": "string" }, "state": { "type": "string" }, "tags": { "type": "array" }, "website": { "type": "string" }, "attachments": { "type": "array" }, "assignedTo": { "type": "string" }, "customFields": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "value": { "type": ["string", "number", "array", "object"] } } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/ContactTagUpdate/index.html#example "Direct link to Example")
{ "type": "ContactTagUpdate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "nmFmQEsNgz6AVpgLVUJ0", "address1": "3535 1st St N", "city": "ruDolomitebika", "state": "AL", "companyName": "Loram ipsum", "country": "DE", "source": "xyz form", "dateAdded": "2021-11-26T12:41:02.193Z", "dateOfBirth": "2000-01-05T00:00:00.000Z", "dnd": true, "email": "[emailΒ protected]", "name": "John Deo", "firstName": "John", "lastName": "Deo", "phone": "+919509597501", "postalCode": "452001", "tags": ["id magna sed Lorem", "Duis dolor commodo aliqua"], "website": "https://www.google.com/", "attachments": [], "assignedTo": "nmFmQEsNgz6AVpgLVUJ0", "customFields": [ { "id": "BcdmQEsNgz6AVpgLVUJ0", "value": "XYZ Corp" } ]}
---
# Conversation | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ConversationUnreadWebhook/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a conversations unread status is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ConversationUnreadWebhook/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "contactId": { "type": "string" }, "unreadCount": { "type": "number" }, "inbox": { "type": "boolean" }, "starred": { "type": "boolean" }, "deleted": { "type": "boolean" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/ConversationUnreadWebhook/index.html#example "Direct link to Example")
{ "type": "ConversationUnreadUpdate", "locationId": "ADVlSQnPsdq3hinusd6C3", "id": "MzKIpg0rEIH2ZUGKf6BS", "contactId": "zsYhPBOUsEHtrK508Wm9", "deleted": false, "inbox": false, "starred": true, "unreadCount": 0}
---
# EXTERNAL_AUTH_CONNECTED | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ExternalAuthConnected/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever external authentication (OAuth2 or Basic) is connected successfully for an app/location/company.
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ExternalAuthConnected/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string", "enum": ["EXTERNAL_AUTH_CONNECTED"] }, "appId": { "type": "string" }, "locationId": { "type": "string" }, "companyId": { "type": "string" }, "authType": { "type": "string", "enum": ["oauth2", "basic"] }, "scopes": { "type": "string" }, "isAutoRefreshTokenEnabled": { "type": "boolean" }, "timestamp": { "type": "string", "format": "date-time" }, "webhookId": { "type": "string" } }, "required": ["type", "appId", "locationId", "companyId", "authType", "timestamp", "webhookId"]}
* Note: `scopes` and `isAutoRefreshTokenEnabled` are present only for OAuth2 connections.
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/ExternalAuthConnected/index.html#example "Direct link to Example")
* For OAuth2 External Auth Connection
{ "type": "EXTERNAL_AUTH_CONNECTED", "appId": "6800a826637cd0457e0d11e1", "locationId": "76sPakGvkoG3WyTyZkhk", "companyId": "zzyG7A4x6bRJl5SlhQhH", "authType": "oauth2", "scopes": "crm.objects.contacts.write crm.schemas.contacts.write oauth crm.schemas.contacts.read crm.objects.contacts.read", "isAutoRefreshTokenEnabled": true, "timestamp": "2025-05-19T12:48:50.972Z", "webhookId": "42f1d489-dc91-4749-a2a2-8c441989a3b5"}
* For Basic Auth External Auth Connection
{ "type": "EXTERNAL_AUTH_CONNECTED", "appId": "66e96b579245705d69e5ba6a", "locationId": "76sPakGvkoG3WyTyZkhk", "companyId": "zzyG7A4x6bRJl5SlhQhH", "authType": "basic", "timestamp": "2025-05-19T15:40:36.811Z", "webhookId": "3b12bbc1-0be0-4678-aa76-771e88d27423"}
* Note: The payload always includes `type`, `appId`, `locationId`, `companyId`, `authType`, `timestamp`, and `webhookId`. For OAuth2, `scopes` and `isAutoRefreshTokenEnabled` are also included.
---
# Contact | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ContactCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a contact is created
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ContactCreate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "address1": { "type": "string" }, "city": { "type": "string" }, "companyName": { "type": "string" }, "country": { "type": "string" }, "source": { "type": "string" }, "dateAdded": { "type": "string" }, "dateOfBirth": { "type": "string" }, "dnd": { "type": "boolean" }, "email": { "type": "string" }, "name": { "type": "string" }, "firstName": { "type": "string" }, "lastName": { "type": "string" }, "phone": { "type": "string" }, "postalCode": { "type": "string" }, "state": { "type": "string" }, "tags": { "type": "array" }, "website": { "type": "string" }, "attachments": { "type": "array" }, "assignedTo": { "type": "string" }, "customFields": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "value": { "type": ["string", "number", "array", "object"] } } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/ContactCreate/index.html#example "Direct link to Example")
{ "type": "ContactCreate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "nmFmQEsNgz6AVpgLVUJ0", "address1": "3535 1st St N", "city": "ruDolomitebika", "state": "AL", "companyName": "Loram ipsum", "country": "DE", "source": "xyz form", "dateAdded": "2021-11-26T12:41:02.193Z", "dateOfBirth": "2000-01-05T00:00:00.000Z", "dnd": true, "email": "[emailΒ protected]", "name": "John Deo", "firstName": "John", "lastName": "Deo", "phone": "+919509597501", "postalCode": "452001", "tags": ["id magna sed Lorem", "Duis dolor commodo aliqua"], "website": "https://www.google.com/", "attachments": [], "assignedTo": "nmFmQEsNgz6AVpgLVUJ0", "customFields": [ { "id": "BcdmQEsNgz6AVpgLVUJ0", "value": "XYZ Corp" } ]}
---
# Opportunity | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/OpportunityCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an opportunity is created
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityCreate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "assignedTo": { "type": "string" }, "contactId": { "type": "string" }, "monetaryValue": { "type": "number" }, "name": { "type": "string" }, "pipelineId": { "type": "string" }, "pipelineStageId": { "type": "string" }, "pipelineStageId": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "dateAdded": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityCreate/index.html#example "Direct link to Example")
{ "type": "OpportunityCreate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "wWhVuzqpRuOA1ZVWi4FC", "assignedTo": "bNl8QNGXhIQJLv8eeASQ", "contactId": "cJAWDskpkJHbRbhAT7bs", "monetaryValue": 40, "name": "Loram ipsu", "pipelineId": "VDm7RPYC2GLUvdpKmBfC", "pipelineStageId": "e93ba61a-53b3-45e7-985a-c7732dbcdb69", "source": "Loram ipsu", "status": "open", "dateAdded": "2021-11-26T12:41:02.193Z"}
---
# Contact | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ContactDelete/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a contact is deleted
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ContactDelete/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "address1": { "type": "string" }, "city": { "type": "string" }, "companyName": { "type": "string" }, "country": { "type": "string" }, "source": { "type": "string" }, "dateAdded": { "type": "string" }, "dateOfBirth": { "type": "string" }, "dnd": { "type": "boolean" }, "email": { "type": "string" }, "name": { "type": "string" }, "firstName": { "type": "string" }, "lastName": { "type": "string" }, "phone": { "type": "string" }, "postalCode": { "type": "string" }, "state": { "type": "string" }, "tags": { "type": "array" }, "website": { "type": "string" }, "attachments": { "type": "array" }, "assignedTo": { "type": "string" }, "customFields": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "value": { "type": ["string", "number", "array", "object"] } } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/ContactDelete/index.html#example "Direct link to Example")
{ "type": "ContactDelete", "locationId": "ve9EPM428h8vShlRW1KT", "id": "nmFmQEsNgz6AVpgLVUJ0", "address1": "3535 1st St N", "city": "ruDolomitebika", "state": "AL", "companyName": "Loram ipsum", "country": "DE", "source": "xyz form", "dateAdded": "2021-11-26T12:41:02.193Z", "dateOfBirth": "2000-01-05T00:00:00.000Z", "dnd": true, "email": "[emailΒ protected]", "name": "John Deo", "firstName": "John", "lastName": "Deo", "phone": "+919509597501", "postalCode": "452001", "tags": ["id magna sed Lorem", "Duis dolor commodo aliqua"], "website": "https://www.google.com/", "attachments": [], "assignedTo": "nmFmQEsNgz6AVpgLVUJ0", "customFields": [ { "id": "BcdmQEsNgz6AVpgLVUJ0", "value": "XYZ Corp" } ]}
---
# Opportunity | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/OpportunityUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an opportunity is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "assignedTo": { "type": "string" }, "contactId": { "type": "string" }, "monetaryValue": { "type": "number" }, "name": { "type": "string" }, "pipelineId": { "type": "string" }, "pipelineStageId": { "type": "string" }, "pipelineStageId": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "dateAdded": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityUpdate/index.html#example "Direct link to Example")
{ "type": "OpportunityUpdate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "wWhVuzqpRuOA1ZVWi4FC", "assignedTo": "bNl8QNGXhIQJLv8eeASQ", "contactId": "cJAWDskpkJHbRbhAT7bs", "monetaryValue": 40, "name": "Loram ipsu", "pipelineId": "VDm7RPYC2GLUvdpKmBfC", "pipelineStageId": "e93ba61a-53b3-45e7-985a-c7732dbcdb69", "source": "Loram ipsu", "status": "open", "dateAdded": "2021-11-26T12:41:02.193Z"}
---
# InboundMessage | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/InboundMessage/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a contact sends a message to the user.
| Channel |
| --- |
| Call |
| Voicemail |
| SMS |
| GMB |
| FB |
| IG |
| Email |
| Live Chat |
#### Message Schema[β](https://marketplace.gohighlevel.com/docs/webhook/InboundMessage/index.html#message-schema "Direct link to Message Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "attachments": { "type": "array" }, "body": { "type": "string" }, "contactId": { "type": "string" }, "contentType": { "type": "string" }, "conversationId": { "type": "string" }, "dateAdded": { "type": "string" }, "direction": { "type": "string" }, "messageType": { "type": "string" }, "status": { "type": "string" }, "messageId": { "type": "string" }, "userId": { "type": "string" }, "conversationProviderId": { "type": "string" }, "callDuration": { "type": "number" }, "callStatus": { "type": "string" }, "chatWidgetId": { "type": "string" } }}
#### Example(Message)[β](https://marketplace.gohighlevel.com/docs/webhook/InboundMessage/index.html#examplemessage "Direct link to Example(Message)")
{ "type": "InboundMessage", "locationId": "l1C08ntBrFjLS0elLIYU", "attachments": [], "body": "This is a test message", "contactId": "cI08i1Bls3iTB9bKgFJh", "contentType": "text/plain", "conversationId": "fcanlLgpbQgQhderivVs", "dateAdded": "2021-04-21T11:31:45.750Z", "direction": "inbound", "messageType": "SMS", "status": "delivered", "conversationProviderId": "cI08i1Bls3iTB9bKgF01", "chatWidgetId": "67b0cc8cf14b19d85ace7s35"}
#### Example(Call)[β](https://marketplace.gohighlevel.com/docs/webhook/InboundMessage/index.html#examplecall "Direct link to Example(Call)")
{ "type": "OutboundMessage", "locationId": "0d48aEf7q67DAu134bpy", "attachments": ["call recording url"], "contactId": "gblakL5aYQC4glDtP1r2t3", "conversationId": "SGDqZrzmwTr19d10aHkt9F", "dateAdded": "2024-05-08T11:57:42.250Z", "direction": "inbound", "messageType": "CALL", "userId": "xsmF1xxhmC92ZpL1lj7aLa", "messageId": "tyW42xCD0HQpb3hhfLcx", "status": "completed", "callDuration": 120, "callStatus": "completed"}
Example for unattended incoming call going to voicemail -
{ "type": "InboundMessage", "locationId": "0dalah57827q67DAuXUxbpy", "attachments": ["voicemail url"], "contactId": "gb7laj5aYQC4glDtP1r5", "conversationId": "SGDqZrzmwTA5P7LHkt9F", "dateAdded": "2024-05-08T12:00:56.193Z", "direction": "inbound", "messageType": "CALL", "messageId": "QkNS0DNje0FjoLQdD5O3", "status": "voicemail"}
### Call Status Details[β](https://marketplace.gohighlevel.com/docs/webhook/InboundMessage/index.html#call-status-details "Direct link to Call Status Details")
For inbound calls:
* When the call is answered by a person, `status` will be `completed` and `callStatus` will be `completed`
* When the call goes to voicemail, `status` will be `voicemail` and `callStatus` will be `voicemail`
* The `callDuration` field indicates the length of the call in seconds
#### Email Message Schema[β](https://marketplace.gohighlevel.com/docs/webhook/InboundMessage/index.html#email-message-schema "Direct link to Email Message Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "attachments": { "type": "array" }, "body": { "type": "string" }, "contactId": { "type": "string" }, "conversationId": { "type": "string" }, "dateAdded": { "type": "string" }, "direction": { "type": "string" }, "messageType": { "type": "string" }, "emailMessageId": { "type": "string" }, "threadId": { "type": "string" }, "provider": { "type": "string" }, "to": { "type": "string" }, "cc": { "type": "string" }, "bcc": { "type": "string" }, "userId": { "type": "string" }, "conversationProviderId": { "type": "string" } }}
#### Example(Email)[β](https://marketplace.gohighlevel.com/docs/webhook/InboundMessage/index.html#exampleemail "Direct link to Example(Email)")
{ "type": "InboundMessage", "locationId": "kF4NJ5gzRyQF2gKFD34G", "body": "Testing Email Notification
", "contactId": "3bN9f8LYJFG8F232XMUbfq", "conversationId": "yCdNo6pwyTLYKgg6V2gj", "dateAdded": "2024-01-12T12:59:04.045Z", "direction": "inbound", "messageType": "Email", "emailMessageId": "sddfDSF3G56GHG", "from": "Internal Notify <[emailΒ protected]>", "threadId": "sddfDSF3G56GHG", "subject": "Order Confirmed", "to": ["[emailΒ protected]"], "conversationProviderId": "cI08i1Bls3iTB9bKgF01"}
##### For listening to inbound messages[β](https://marketplace.gohighlevel.com/docs/webhook/InboundMessage/index.html#for-listening-to-inbound-messages "Direct link to For listening to inbound messages")
You need to change the Messaging webhook to -
``
You can find it inside your Twilio Account -
`Phone Numbers` > `Active Number` > `Click on the number` > `Messaging` > `A Message comes in`
If you want to revert, here's the old messaging webhook url -
``
* [Call Status Details](https://marketplace.gohighlevel.com/docs/webhook/InboundMessage/index.html#call-status-details)
---
# Opportunity | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/OpportunityStatusUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an opportunity's status field is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityStatusUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "assignedTo": { "type": "string" }, "contactId": { "type": "string" }, "monetaryValue": { "type": "number" }, "name": { "type": "string" }, "pipelineId": { "type": "string" }, "pipelineStageId": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "dateAdded": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityStatusUpdate/index.html#example "Direct link to Example")
{ "type": "OpportunityStatusUpdate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "wWhVuzqpRuOA1ZVWi4FC", "assignedTo": "bNl8QNGXhIQJLv8eeASQ", "contactId": "cJAWDskpkJHbRbhAT7bs", "monetaryValue": 40, "name": "Loram ipsu", "pipelineId": "VDm7RPYC2GLUvdpKmBfC", "pipelineStageId": "e93ba61a-53b3-45e7-985a-c7732dbcdb69", "source": "Loram ipsu", "status": "open", "dateAdded": "2021-11-26T12:41:02.193Z"}
---
# Note | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/NoteCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a note is created
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/NoteCreate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "body": { "type": "string" }, "contactId": { "type": "string" }, "dateAdded": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/NoteCreate/index.html#example "Direct link to Example")
{ "type": "NoteCreate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "otg8dTQqGLh3Q6iQI55w", "body": "Loram ipsum", "contactId": "CWBf1PR9LvvBkcYqiXlc", "dateAdded": "2021-11-26T12:41:02.193Z"}
---
# Note | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/NoteDelete/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a note is deleted
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/NoteDelete/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "body": { "type": "string" }, "contactId": { "type": "string" }, "dateAdded": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/NoteDelete/index.html#example "Direct link to Example")
{ "type": "NoteDelete", "locationId": "ve9EPM428h8vShlRW1KT", "id": "otg8dTQqGLh3Q6iQI55w", "body": "Loram ipsum", "contactId": "CWBf1PR9LvvBkcYqiXlc", "dateAdded": "2021-11-26T12:41:02.193Z"}
---
# Delete Record | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/RecordDelete/index.html#__docusaurus_skipToContent_fallback)
On this page
Overview[β](https://marketplace.gohighlevel.com/docs/webhook/RecordDelete/index.html#overview "Direct link to Overview")
-------------------------------------------------------------------------------------------------------------------------
The `Delete Record` is triggered whenever a record or business (company) is deleted from the system.
Schema[β](https://marketplace.gohighlevel.com/docs/webhook/RecordDelete/index.html#schema "Direct link to Schema")
-------------------------------------------------------------------------------------------------------------------
The webhook payload follows a structured JSON schema, which defines the format and expected data types of the event payload.
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "owners": { "type": "array", "items": { "type": "string" } }, "followers": { "type": "array", "items": { "type": "string" } }, "properties": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string" }, "valueString": { "type": "string" } } } }, "id": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } }}
Explanation of Fields[β](https://marketplace.gohighlevel.com/docs/webhook/RecordDelete/index.html#explanation-of-fields "Direct link to Explanation of Fields")
----------------------------------------------------------------------------------------------------------------------------------------------------------------
| Field | Type | Description |
| --- | --- | --- |
| `type` | `string` | The type of event. |
| `locationId` | `string` | Unique identifier for the location associated with the deleted record. |
| `owners` | `array of strings` | List of user IDs that were assigned as owners of the deleted record. |
| `followers` | `array of strings` | List of user IDs that were following the deleted record. |
| `properties` | `array of objects` | Key-value pairs containing additional metadata about the record. |
| `id` | `string` | Unique identifier of the deleted record. |
| `timestamp` | `string (ISO 8601 format)` | The timestamp when the deletion event occurred. |
Example Payload[β](https://marketplace.gohighlevel.com/docs/webhook/RecordDelete/index.html#example-payload "Direct link to Example Payload")
----------------------------------------------------------------------------------------------------------------------------------------------
{ "id": "679b8f9bde6a0c356a0311b3", "locationId": "eHy2cOSZxMQzQ6Yyvl8P", "timestamp": "2025-02-10T08:26:05.961Z", "owners": ["60d5ec49f72b2a001f5f9d91"], "followers": ["60d5ec49f72b2a001f5f9d93", "60d5ec49f72b2a001f5f9d94"], "properties": [ { "key": "pet_name", "valueString": "buddy" } ]}
* [Overview](https://marketplace.gohighlevel.com/docs/webhook/RecordDelete/index.html#overview)
* [Schema](https://marketplace.gohighlevel.com/docs/webhook/RecordDelete/index.html#schema)
* [Explanation of Fields](https://marketplace.gohighlevel.com/docs/webhook/RecordDelete/index.html#explanation-of-fields)
* [Example Payload](https://marketplace.gohighlevel.com/docs/webhook/RecordDelete/index.html#example-payload)
---
# Opportunity | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/OpportunityDelete/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an opportunity is deleted
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityDelete/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "assignedTo": { "type": "string" }, "contactId": { "type": "string" }, "monetaryValue": { "type": "number" }, "name": { "type": "string" }, "pipelineId": { "type": "string" }, "pipelineStageId": { "type": "string" }, "pipelineStageId": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "dateAdded": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityDelete/index.html#example "Direct link to Example")
{ "type": "OpportunityDelete", "locationId": "ve9EPM428h8vShlRW1KT", "id": "wWhVuzqpRuOA1ZVWi4FC", "assignedTo": "bNl8QNGXhIQJLv8eeASQ", "contactId": "cJAWDskpkJHbRbhAT7bs", "monetaryValue": 40, "name": "Loram ipsu", "pipelineId": "VDm7RPYC2GLUvdpKmBfC", "pipelineStageId": "e93ba61a-53b3-45e7-985a-c7732dbcdb69", "source": "Loram ipsu", "status": "open", "dateAdded": "2021-11-26T12:41:02.193Z"}
---
# Opportunity | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/OpportunityStageUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an opportunity's stage field is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityStageUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "assignedTo": { "type": "string" }, "contactId": { "type": "string" }, "monetaryValue": { "type": "number" }, "name": { "type": "string" }, "pipelineId": { "type": "string" }, "pipelineStageId": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "dateAdded": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityStageUpdate/index.html#example "Direct link to Example")
{ "type": "OpportunityStageUpdate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "wWhVuzqpRuOA1ZVWi4FC", "assignedTo": "bNl8QNGXhIQJLv8eeASQ", "contactId": "cJAWDskpkJHbRbhAT7bs", "monetaryValue": 40, "name": "Loram ipsu", "pipelineId": "VDm7RPYC2GLUvdpKmBfC", "pipelineStageId": "e93ba61a-53b3-45e7-985a-c7732dbcdb69", "source": "Loram ipsu", "status": "open", "dateAdded": "2021-11-26T12:41:02.193Z"}
---
# Task | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/TaskComplete/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a task is completed
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/TaskComplete/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "assignedTo": { "type": "string" }, "body": { "type": "string" }, "contactId": { "type": "string" }, "title": { "type": "string" }, "dateAdded": { "type": "string" }, "dueDate": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/TaskComplete/index.html#example "Direct link to Example")
{ "type": "TaskComplete", "locationId": "ve9EPM428h8vShlRW1KT", "id": "5HrB1IbmnKMBXloldFuP", "assignedTo": "bNl8QNGXhIQJLv8eeASQ", "body": "testing", "contactId": "WFwVrSSjZ2CNHbZThQX2", "dateAdded": "2021-11-29T13:37:28.304Z", "dueDate": "2021-12-22T06:55:00.000Z", "title": "test"}
---
# Price | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/PriceUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a price is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/PriceUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "membershipOffers": { "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string" }, "value": { "type": "string" }, "_id": { "type": "string" } } } }, "variantOptionIds": { "type": "array", "items": { "type": "string" } }, "locationId": { "type": "string" }, "product": { "type": "string" }, "userId": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" }, "currency": { "type": "string" }, "amount": { "type": "number" }, "recurring": { "type": "object", "properties": { "interval": { "type": "string" }, "intervalCount": { "type": "number" } } }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "compareAtPrice": { "type": "number" }, "trackInventory": { "type": "null" }, "availableQuantity": { "type": "number" }, "allowOutOfStockPurchases": { "type": "boolean" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/PriceUpdate/index.html#example "Direct link to Example")
"_id": "655b33aa2209e60b6adb87a7", "membershipOffers": [ { "label": "top_50", "value": "50", "_id": "655b33aa2209e60b6adb87a7" } ], "variantOptionIds": [ "h4z7u0im2q8", "h3nst2ltsnn" ], "locationId": "3SwdhCsvxI8Au3KsPJt6", "product": "655b33a82209e60b6adb87a5", "userId": "6YAtzfzpmHAdj0e8GkKp", "name": "Red / S", "type": "one_time", "currency": "INR", "amount": 199999, "recurring": { "interval": "day", "intervalCount": 1 }, "createdAt": "2023-11-20T10:23:38.645Z", "updatedAt": "2024-01-23T09:57:04.852Z", "compareAtPrice": 2000000, "trackInventory": null, "availableQuantity": 5, "allowOutOfStockPurchases": true}
---
# Price | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/PriceCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a price is created
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/PriceCreate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "membershipOffers": { "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string" }, "value": { "type": "string" }, "_id": { "type": "string" } } } }, "variantOptionIds": { "type": "array", "items": { "type": "string" } }, "locationId": { "type": "string" }, "product": { "type": "string" }, "userId": { "type": "string" }, "name": { "type": "string" }, "priceType": { "type": "string" }, "currency": { "type": "string" }, "amount": { "type": "number" }, "recurring": { "type": "object", "properties": { "interval": { "type": "string" }, "intervalCount": { "type": "number" } } }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "compareAtPrice": { "type": "number" }, "trackInventory": { "type": "null" }, "availableQuantity": { "type": "number" }, "allowOutOfStockPurchases": { "type": "boolean" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/PriceCreate/index.html#example "Direct link to Example")
"_id": "655b33aa2209e60b6adb87a7", "membershipOffers": [ { "label": "top_50", "value": "50", "_id": "655b33aa2209e60b6adb87a7" } ], "variantOptionIds": [ "h4z7u0im2q8", "h3nst2ltsnn" ], "locationId": "3SwdhCsvxI8Au3KsPJt6", "product": "655b33a82209e60b6adb87a5", "userId": "6YAtzfzpmHAdj0e8GkKp", "name": "Red / S", "priceType": "one_time", "currency": "INR", "amount": 199999, "recurring": { "interval": "day", "intervalCount": 1 }, "createdAt": "2023-11-20T10:23:38.645Z", "updatedAt": "2024-01-23T09:57:04.852Z", "compareAtPrice": 2000000, "trackInventory": null, "availableQuantity": 5, "allowOutOfStockPurchases": true}
---
# Task | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/TaskDelete/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a task is deleted
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/TaskDelete/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "assignedTo": { "type": "string" }, "body": { "type": "string" }, "contactId": { "type": "string" }, "title": { "type": "string" }, "dateAdded": { "type": "string" }, "dueDate": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/TaskDelete/index.html#example "Direct link to Example")
{ "type": "TaskDelete", "locationId": "ve9EPM428h8vShlRW1KT", "id": "UlRWGLSXh0ji5qbiGu4i", "assignedTo": "63e4qiWDsFJjOYAC8phG", "body": "Loram ipsum", "contactId": "CWBf1PR9LvvBkcYqiXlc", "title": "Loram ipsum", "dateAdded": "2021-11-26T12:41:02.193Z", "dueDate": "2021-11-26T12:41:02.193Z"}
---
# Relation Create | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Overview[β](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#overview "Direct link to Overview")
---------------------------------------------------------------------------------------------------------------------------
This webhook response is triggered when an relation between objects is created.
For example, in a business management system, a company may want to establish an association between a custom object record and a contact. In this case:
* The **second object** (contact) would represent a person associated with the custom object record.
* The **first object** (custom object) could represent an entity such as a project or a transaction.
* The system allows for dynamic relationships between entities, facilitating better data management.
Schema[β](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#schema "Direct link to Schema")
---------------------------------------------------------------------------------------------------------------------
The webhook response follows the JSON schema below:
{ "type": "object", "properties": { "id": { "type": "string" }, "firstObjectKey": { "type": "string" }, "firstRecordId": { "type": "string" }, "secondObjectKey": { "type": "string" }, "secondRecordId": { "type": "string" }, "associationId": { "type": "string" }, "locationId": { "type": "string" } }}
Field Descriptions[β](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#field-descriptions "Direct link to Field Descriptions")
---------------------------------------------------------------------------------------------------------------------------------------------------------
### `id`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#id "Direct link to id")
* Type: `string`
* Unique identifier for the created association.
### `firstObjectKey`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#firstobjectkey "Direct link to firstobjectkey")
* Type: `string`
* Key representing the first object in the association.
### `firstRecordId`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#firstrecordid "Direct link to firstrecordid")
* Type: `string`
* Identifier of the first objectβs specific record.
### `secondObjectKey`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#secondobjectkey "Direct link to secondobjectkey")
* Type: `string`
* Key representing the second object in the association.
### `secondRecordId`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#secondrecordid "Direct link to secondrecordid")
* Type: `string`
* Identifier of the second objectβs specific record.
### `associationId`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#associationid "Direct link to associationid")
* Type: `string`
* Unique identifier for the association that was created.
### `locationId`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#locationid "Direct link to locationid")
* Type: `string`
* Identifies the location associated with the created association.
Example Response[β](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#example-response "Direct link to Example Response")
---------------------------------------------------------------------------------------------------------------------------------------------------
{ "id": "67ae0d741119d218c9d0c477", "firstObjectKey": "custom_objects.mad", "firstRecordId": "67a349a79b28947ec1f65bb5", "secondObjectKey": "contact", "secondRecordId": "emqfhnG3g9D9chy9inTz", "associationId": "669e5795add2094075906c65", "locationId": "eHy2cOSZxMQzQ6Yyvl8P"}
Additional Notes[β](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#additional-notes "Direct link to Additional Notes")
---------------------------------------------------------------------------------------------------------------------------------------------------
* The `firstObjectKey` and `secondObjectKey` define the relationship between the created entities.
* [Overview](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#overview)
* [Schema](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#schema)
* [Field Descriptions](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#field-descriptions)
* [`id`](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#id)
* [`firstObjectKey`](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#firstobjectkey)
* [`firstRecordId`](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#firstrecordid)
* [`secondObjectKey`](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#secondobjectkey)
* [`secondRecordId`](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#secondrecordid)
* [`associationId`](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#associationid)
* [`locationId`](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#locationid)
* [Example Response](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#example-response)
* [Additional Notes](https://marketplace.gohighlevel.com/docs/webhook/RelationCreate/index.html#additional-notes)
---
# Record Create | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Overview[β](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#overview "Direct link to Overview")
-------------------------------------------------------------------------------------------------------------------------
This webhook response is triggered when a new record or business is created.
Schema[β](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#schema "Direct link to Schema")
-------------------------------------------------------------------------------------------------------------------
The webhook response follows the JSON schema below:
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "owners": { "type": "array", "items": { "type": "string" } }, "followers": { "type": "array", "items": { "type": "string" } }, "properties": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string" }, "valueString": { "type": "string" } } } }, "id": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } }}
Field Descriptions[β](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#field-descriptions "Direct link to Field Descriptions")
-------------------------------------------------------------------------------------------------------------------------------------------------------
### `type`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#type "Direct link to type")
* Type: `string`
* Indicates the type of record created.
### `locationId`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#locationid "Direct link to locationid")
* Type: `string`
* Identifies the location associated with the created record.
### `owners`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#owners "Direct link to owners")
* Type: `array of strings`
* Represents the unique identifiers of users who own the record.
### `followers`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#followers "Direct link to followers")
* Type: `array of strings`
* List of users who are following the record for updates.
### `properties`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#properties "Direct link to properties")
* Type: `array of objects`
* Contains key-value pairs representing additional details about the record.
* **`key`**: The property name.
* **`valueString`**: The corresponding value as a string.
### `id`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#id "Direct link to id")
* Type: `string`
* Unique identifier for the created record.
### `timestamp`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#timestamp "Direct link to timestamp")
* Type: `string`
* Format: `date-time`
* Represents the date and time when the record was created.
Example Response[β](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#example-response "Direct link to Example Response")
-------------------------------------------------------------------------------------------------------------------------------------------------
{ "id": "679b8f9bde6a0c356a0311b3", "locationId": "eHy2cOSZxMQzQ6Yyvl8P", "timestamp": "2025-02-10T08:26:05.961Z", "owners": ["60d5ec49f72b2a001f5f9d91"], "followers": ["60d5ec49f72b2a001f5f9d93", "60d5ec49f72b2a001f5f9d94"], "properties": [ { "key": "pet_name", "valueString": "buddy" } ]}
Additional Notes[β](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#additional-notes "Direct link to Additional Notes")
-------------------------------------------------------------------------------------------------------------------------------------------------
* Ensure that your webhook listener is capable of processing `POST` requests.
* The `owners` and `followers` fields help in managing record access and tracking.
* The `properties` array allows extensibility by enabling dynamic field storage.
* * *
* [Overview](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#overview)
* [Schema](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#schema)
* [Field Descriptions](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#field-descriptions)
* [`type`](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#type)
* [`locationId`](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#locationid)
* [`owners`](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#owners)
* [`followers`](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#followers)
* [`properties`](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#properties)
* [`id`](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#id)
* [`timestamp`](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#timestamp)
* [Example Response](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#example-response)
* [Additional Notes](https://marketplace.gohighlevel.com/docs/webhook/RecordCreate/index.html#additional-notes)
---
# Conversation Provider - Outbound Message | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ProviderOutboundMessage/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a user sends a message to a contact and has a custom provider as the default channel in the settings.
> Conversation Provider - Outbound Message differs from the structure of our other webhooks which may appear similar upon first glance however, the documentation below is accurate and only what is listed will be necessary for a successful execution.
| Channel | Supported Modules |
| --- | --- |
| SMS | Web App, Mobile App, Workflows, Bulk Actions |
| Email | Web App, Mobile App, Workflows, Bulk Actions |
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ProviderOutboundMessage/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "contactId": { "type": "string" }, "locationId": { "type": "string" }, "messageId": { "type": "string" }, "emailMessageId": { "type": "string" }, "type": { "type": "Email/SMS" }, "attachments": { "type": "array" }, "message": { "type": "string" }, "phone": { "type": "string" }, "emailTo": { "type": "string" }, "emailFrom": { "type": "string" }, "html": { "type": "string" }, "subject": { "type": "string" }, "userId": { "type": "string" } }}
#### Example for SMS[β](https://marketplace.gohighlevel.com/docs/webhook/ProviderOutboundMessage/index.html#example-for-sms "Direct link to Example for SMS")
{ "contactId": "GKBhT6BfwY9mjzXAU3sq", "locationId": "GKAWb4yu7A4LSc0skQ6g", "messageId": "GKJxs4P5L8dWc5CFUITM", "type": "SMS", "phone": "+15864603685", "message": "The text message to be sent to the contact", "attachments": ["https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"], "userId": "GK56r6wdJDrkUPd0xsmx"}
#### Example for Email[β](https://marketplace.gohighlevel.com/docs/webhook/ProviderOutboundMessage/index.html#example-for-email "Direct link to Example for Email")
{ "contactId": "GKKFF0QB9gV8fGA6zEbr", "locationId": "GKifVDyQeo7nwe27vMP0", "messageId": "GK56r6wdJDrkUPd0xsmx", "emailMessageId": "GK56r6wdJDrkUPd0xsmx", "type": "Email", "emailTo": ["[emailΒ protected]"], "emailFrom": "From Name <[emailΒ protected]>", "attachments": ["https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"], "html": "Testing an outobund email from custom provider.
", "subject": "Subject from Conversation Page", "userId": "GK56r6wdJDrkUPd0xsmx"}
---
# Plan Change | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/PlanChange/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever user changes the plan for a paid app.
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/PlanChange/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string", "example": "PLAN_CHANGE" }, "appId": { "type": "string", "example": "ve9EPM428h8vShlRW1KT" }, "locationId": { "type": "string", "example": "otg8dTQqGLh3Q6iQI55w" }, "companyId": { "type": "string", "example": "otg8dTQqGLh3Q6iQI55w" }, "userId": { "type": "string", "example": "otg8dTQqGLh3Q6iQI55w" }, "currentPlanId": { "type": "string", "example": "66a0419a0dffa47fb5f8b22f" }, "newPlanId": { "type": "string", "example": "66a0419a0dffa47fb5f8b22f" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/PlanChange/index.html#example "Direct link to Example")
{ "type": "PLAN_CHANGE", "appId": "ve9EPM428h8vShlRW1KT", "locationId": "otg8dTQqGLh3Q6iQI55w", "companyId": "otg8dTQqGLh3Q6iQI55w", "userId": "otg8dTQqGLh3Q6iQI55w", "currentPlanId": "66a0419a0dffa47fb5f8b22f", "newPlanId": "66a0419a0dffa47fb5f8b22f"}
---
# Location | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/LocationUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a location is updated.
> Available to Agency Level Apps for all sub-accounts or to specific sub-accounts.
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/LocationUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "email": { "type": "string" }, "stripeProductId": { "type": "string" }, "companyId": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/LocationUpdate/index.html#example "Direct link to Example")
{ "type": "LocationUpdate", "id": "ve9EPM428h8vShlRW1KT", "companyId": "otg8dTQqGLh3Q6iQI55w", "name": "Loram ipsum", "email": "[emailΒ protected]", "stripeProductId": "prod_xyz123abc"}
---
# Task | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/TaskCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a task is created
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/TaskCreate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "assignedTo": { "type": "string" }, "body": { "type": "string" }, "contactId": { "type": "string" }, "title": { "type": "string" }, "dateAdded": { "type": "string" }, "dueDate": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/TaskCreate/index.html#example "Direct link to Example")
{ "type": "TaskCreate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "UlRWGLSXh0ji5qbiGu4i", "assignedTo": "63e4qiWDsFJjOYAC8phG", "body": "Loram ipsum", "contactId": "CWBf1PR9LvvBkcYqiXlc", "title": "Loram ipsum", "dateAdded": "2021-11-26T12:41:02.193Z", "dueDate": "2021-11-26T12:41:02.193Z"}
---
# Opportunity | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/OpportunityMonetaryValueUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an opportunity's monetary value field is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityMonetaryValueUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "assignedTo": { "type": "string" }, "contactId": { "type": "string" }, "monetaryValue": { "type": "number" }, "name": { "type": "string" }, "pipelineId": { "type": "string" }, "pipelineStageId": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "dateAdded": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityMonetaryValueUpdate/index.html#example "Direct link to Example")
{ "type": "OpportunityMonetaryValueUpdate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "wWhVuzqpRuOA1ZVWi4FC", "assignedTo": "bNl8QNGXhIQJLv8eeASQ", "contactId": "cJAWDskpkJHbRbhAT7bs", "monetaryValue": 40, "name": "Loram ipsu", "pipelineId": "VDm7RPYC2GLUvdpKmBfC", "pipelineStageId": "e93ba61a-53b3-45e7-985a-c7732dbcdb69", "source": "Loram ipsu", "status": "open", "dateAdded": "2021-11-26T12:41:02.193Z"}
---
# Opportunity | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/OpportunityAssignedToUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an opportunity's AssignedTo field is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityAssignedToUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "assignedTo": { "type": "string" }, "contactId": { "type": "string" }, "monetaryValue": { "type": "number" }, "name": { "type": "string" }, "pipelineId": { "type": "string" }, "pipelineStageId": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "dateAdded": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/OpportunityAssignedToUpdate/index.html#example "Direct link to Example")
{ "type": "OpportunityAssignedToUpdate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "wWhVuzqpRuOA1ZVWi4FC", "assignedTo": "bNl8QNGXhIQJLv8eeASQ", "contactId": "cJAWDskpkJHbRbhAT7bs", "monetaryValue": 40, "name": "Loram ipsu", "pipelineId": "VDm7RPYC2GLUvdpKmBfC", "pipelineStageId": "e93ba61a-53b3-45e7-985a-c7732dbcdb69", "source": "Loram ipsu", "status": "open", "dateAdded": "2021-11-26T12:41:02.193Z"}
---
# Relation Delete | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#__docusaurus_skipToContent_fallback)
On this page
Overview[β](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#overview "Direct link to Overview")
---------------------------------------------------------------------------------------------------------------------------
This webhook response is triggered when an existing relation between objects is deleted.
For example, in a business management system, a company may want to remove an relation between a custom object record and a contact. In this case:
* The **first object** (custom object record) could represent an entity such as a project or a transaction.
* The **second object** (contact) would represent a person associated with the custom object.
Schema[β](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#schema "Direct link to Schema")
---------------------------------------------------------------------------------------------------------------------
The webhook response follows the JSON schema below:
{ "type": "object", "properties": { "id": { "type": "string" }, "firstObjectKey": { "type": "string" }, "firstRecordId": { "type": "string" }, "secondObjectKey": { "type": "string" }, "secondRecordId": { "type": "string" }, "associationId": { "type": "string" }, "locationId": { "type": "string" }, }}
Field Descriptions[β](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#field-descriptions "Direct link to Field Descriptions")
---------------------------------------------------------------------------------------------------------------------------------------------------------
### `id`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#id "Direct link to id")
* Type: `string`
* Unique identifier for the deleted association.
### `firstObjectKey`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#firstobjectkey "Direct link to firstobjectkey")
* Type: `string`
* Key representing the first object in the association.
### `firstRecordId`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#firstrecordid "Direct link to firstrecordid")
* Type: `string`
* Identifier of the first objectβs specific record.
### `secondObjectKey`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#secondobjectkey "Direct link to secondobjectkey")
* Type: `string`
* Key representing the second object in the association.
### `secondRecordId`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#secondrecordid "Direct link to secondrecordid")
* Type: `string`
* Identifier of the second objectβs specific record.
### `associationId`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#associationid "Direct link to associationid")
* Type: `string`
* Unique identifier for the association that was deleted.
### `locationId`[β](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#locationid "Direct link to locationid")
* Type: `string`
* Identifies the location associated with the deleted association.
Example Response[β](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#example-response "Direct link to Example Response")
---------------------------------------------------------------------------------------------------------------------------------------------------
{ "id": "67ae0d741119d218c9d0c477", "firstObjectKey": "custom_objects.mad", "firstRecordId": "67a349a79b28947ec1f65bb5", "secondObjectKey": "contact", "secondRecordId": "emqfhnG3g9D9chy9inTz", "associationId": "669e5795add2094075906c65", "locationId": "eHy2cOSZxMQzQ6Yyvl8P"}
Additional Notes[β](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#additional-notes "Direct link to Additional Notes")
---------------------------------------------------------------------------------------------------------------------------------------------------
* The `firstObjectKey` and `secondObjectKey` define the relationship between the deleted entities.
* [Overview](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#overview)
* [Schema](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#schema)
* [Field Descriptions](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#field-descriptions)
* [`id`](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#id)
* [`firstObjectKey`](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#firstobjectkey)
* [`firstRecordId`](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#firstrecordid)
* [`secondObjectKey`](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#secondobjectkey)
* [`secondRecordId`](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#secondrecordid)
* [`associationId`](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#associationid)
* [`locationId`](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#locationid)
* [Example Response](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#example-response)
* [Additional Notes](https://marketplace.gohighlevel.com/docs/webhook/RelationDelete/index.html#additional-notes)
---
# Record Update | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Overview[β](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#overview "Direct link to Overview")
-------------------------------------------------------------------------------------------------------------------------
This webhook response is triggered when a record or business is updated.
Schema[β](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#schema "Direct link to Schema")
-------------------------------------------------------------------------------------------------------------------
The webhook response follows the JSON schema below:
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "owners": { "type": "array", "items": { "type": "string" } }, "followers": { "type": "array", "items": { "type": "string" } }, "properties": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string" }, "valueString": { "type": "string" } } } }, "id": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } }}
Field Descriptions[β](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#field-descriptions "Direct link to Field Descriptions")
-------------------------------------------------------------------------------------------------------------------------------------------------------
### `type`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#type "Direct link to type")
* Type: `string`
* Indicates the type of record created.
### `locationId`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#locationid "Direct link to locationid")
* Type: `string`
* Identifies the location associated with the created record.
### `owners`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#owners "Direct link to owners")
* Type: `array of strings`
* Represents the unique identifiers of users who own the record.
### `followers`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#followers "Direct link to followers")
* Type: `array of strings`
* List of users who are following the record for updates.
### `properties`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#properties "Direct link to properties")
* Type: `array of objects`
* Contains key-value pairs representing additional details about the record.
* **`key`**: The property name.
* **`valueString`**: The corresponding value as a string.
### `id`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#id "Direct link to id")
* Type: `string`
* Unique identifier for the created record.
### `timestamp`[β](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#timestamp "Direct link to timestamp")
* Type: `string`
* Format: `date-time`
* Represents the date and time when the record was created.
Example Response[β](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#example-response "Direct link to Example Response")
-------------------------------------------------------------------------------------------------------------------------------------------------
{ "id": "679b8f9bde6a0c356a0311b3", "locationId": "eHy2cOSZxMQzQ6Yyvl8P", "timestamp": "2025-02-10T08:26:05.961Z", "owners": ["60d5ec49f72b2a001f5f9d91"], "followers": ["60d5ec49f72b2a001f5f9d93", "60d5ec49f72b2a001f5f9d94"], "properties": [ { "key": "pet_name", "valueString": "buddy" } ]}
Additional Notes[β](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#additional-notes "Direct link to Additional Notes")
-------------------------------------------------------------------------------------------------------------------------------------------------
* Ensure that your webhook listener is capable of processing `POST` requests.
* The `owners` and `followers` fields help in managing record access and tracking.
* The `properties` array allows extensibility by enabling dynamic field storage.
* * *
* [Overview](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#overview)
* [Schema](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#schema)
* [Field Descriptions](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#field-descriptions)
* [`type`](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#type)
* [`locationId`](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#locationid)
* [`owners`](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#owners)
* [`followers`](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#followers)
* [`properties`](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#properties)
* [`id`](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#id)
* [`timestamp`](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#timestamp)
* [Example Response](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#example-response)
* [Additional Notes](https://marketplace.gohighlevel.com/docs/webhook/RecordUpdate/index.html#additional-notes)
---
# Price | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/PriceDelete/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a price is deleted
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/PriceDelete/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "membershipOffers": { "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string" }, "value": { "type": "string" }, "_id": { "type": "string" } } } }, "variantOptionIds": { "type": "array", "items": { "type": "string" } }, "locationId": { "type": "string" }, "product": { "type": "string" }, "userId": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" }, "currency": { "type": "string" }, "amount": { "type": "number" }, "recurring": { "type": "object", "properties": { "interval": { "type": "string" }, "intervalCount": { "type": "number" } } }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "compareAtPrice": { "type": "number" }, "trackInventory": { "type": "null" }, "availableQuantity": { "type": "number" }, "allowOutOfStockPurchases": { "type": "boolean" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/PriceDelete/index.html#example "Direct link to Example")
"_id": "655b33aa2209e60b6adb87a7", "membershipOffers": [ { "label": "top_50", "value": "50", "_id": "655b33aa2209e60b6adb87a7" } ], "variantOptionIds": [ "h4z7u0im2q8", "h3nst2ltsnn" ], "locationId": "3SwdhCsvxI8Au3KsPJt6", "product": "655b33a82209e60b6adb87a5", "userId": "6YAtzfzpmHAdj0e8GkKp", "name": "Red / S", "type": "one_time", "currency": "INR", "amount": 199999, "recurring": { "interval": "day", "intervalCount": 1 }, "createdAt": "2023-11-20T10:23:38.645Z", "updatedAt": "2024-01-23T09:57:04.852Z", "compareAtPrice": 2000000, "trackInventory": null, "availableQuantity": 5, "allowOutOfStockPurchases": true}
---
# Product | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ProductUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a product is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ProductUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "description": { "type": "string" }, "variants": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "options": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } } } } } } }, "medias": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" }, "type": { "type": "string" }, "isFeatured": { "type": "boolean" } } } }, "locationId": { "type": "string" }, "name": { "type": "string" }, "productType": { "type": "string" }, "availableInStore": { "type": "boolean" }, "userId": { "type": "string" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "statementDescriptor": { "type": "string" }, "image": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/ProductUpdate/index.html#example "Direct link to Example")
{ "_id": "655b33a82209e60b6adb87a5", "description": "This is a really awesome product", "variants": [ { "id": "38s63qmxfr4", "name": "Size", "options": [ { "id": "h4z7u0im2q8", "name": "XL" } ] } ], "medias": [ { "id": "fzrgusiuu0m", "title": "1dd7dcd0-e71d-4cf7-a06b-6d47723d6a29.png", "url": "https://storage.googleapis.com/ghl-test/3SwdhCsvxI8Au3KsPJt6/media/sample.png", "type": "image", "isFeatured": true } ], "locationId": "3SwdhCsvxI8Au3KsPJt6", "name": "Awesome Product", "productType": "PHYSICAL", "availableInStore": true, "userId": "6YAtzfzpmHAdj0e8GkKp", "createdAt": "2023-11-20T10:23:36.515Z", "updatedAt": "2024-01-23T09:57:04.846Z", "statementDescriptor": "abcde", "image": "https://storage.googleapis.com/ghl-test/3SwdhCsvxI8Au3KsPJt6/media/65af8d5df88bdb4b1022ee90.png"}
---
# Contact | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ContactDndUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a contact's dnd field is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ContactDndUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "id": { "type": "string" }, "address1": { "type": "string" }, "city": { "type": "string" }, "companyName": { "type": "string" }, "country": { "type": "string" }, "source": { "type": "string" }, "dateAdded": { "type": "string" }, "dateOfBirth": { "type": "string" }, "dnd": { "type": "boolean" }, "dndSettings": { "type": "object", "properties": { "SMS": { "type": "object", "properties": { "status": { "type": "string" }, "message": { "type": "string" }, "code": { "type": "string" } } }, "Email": { "type": "object", "properties": { "status": { "type": "string" }, "message": { "type": "string" }, "code": { "type": "string" } } }, "GMB": { "type": "object", "properties": { "status": { "type": "string" }, "message": { "type": "string" }, "code": { "type": "string" } } }, "FB": { "type": "object", "properties": { "status": { "type": "string" }, "message": { "type": "string" }, "code": { "type": "string" } } }, "WhatsApp": { "type": "object", "properties": { "status": { "type": "string" }, "message": { "type": "string" }, "code": { "type": "string" } } }, "Call": { "type": "object", "properties": { "status": { "type": "string" }, "message": { "type": "string" }, "code": { "type": "string" } } } } }, "email": { "type": "string" }, "name": { "type": "string" }, "firstName": { "type": "string" }, "lastName": { "type": "string" }, "phone": { "type": "string" }, "postalCode": { "type": "string" }, "state": { "type": "string" }, "tags": { "type": "array" }, "website": { "type": "string" }, "attachments": { "type": "array" }, "assignedTo": { "type": "string" }, "customFields": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "value": { "type": ["string", "number", "array", "object"] } } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/ContactDndUpdate/index.html#example "Direct link to Example")
{ "type": "ContactDndUpdate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "nmFmQEsNgz6AVpgLVUJ0", "address1": "3535 1st St N", "city": "ruDolomitebika", "state": "AL", "companyName": "Loram ipsum", "country": "DE", "source": "xyz form", "dateAdded": "2021-11-26T12:41:02.193Z", "dateOfBirth": "2000-01-05T00:00:00.000Z", "dnd": true, "dndSettings": { "SMS": { "status": "inactive", "message": "Some message", "code": "101" }, "Call": { "status": "inactive", "message": "Some message", "code": "101" }, "Email": { "status": "active", "message": "Some message", "code": "101" }, "GMB": { "status": "active", "message": "Some message", "code": "101" }, "FB": { "status": "active", "message": "Some message", "code": "101" }, "WhatsApp": { "status": "active", "message": "Some message", "code": "101" } }, "email": "[emailΒ protected]", "name": "John Deo", "firstName": "John", "lastName": "Deo", "phone": "+919509597501", "postalCode": "452001", "tags": ["id magna sed Lorem", "Duis dolor commodo aliqua"], "website": "https://www.google.com/", "attachments": [], "assignedTo": "nmFmQEsNgz6AVpgLVUJ0", "customFields": [ { "id": "BcdmQEsNgz6AVpgLVUJ0", "value": "XYZ Corp" } ]}
---
# Invoice | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/InvoiceUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an invoice is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/InvoiceUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "status": { "type": "string" }, "liveMode": { "type": "boolean" }, "amountPaid": { "type": "number" }, "altId": { "type": "string" }, "altType": { "type": "string" }, "name": { "type": "string" }, "businessDetails": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" }, "phoneNo": { "type": "string" }, "website": { "type": "string" }, "logoUrl": { "type": "string" }, "customValues": { "type": "array", "items": { "type": "string" } } } }, "invoiceNumber": { "type": "string" }, "currency": { "type": "string" }, "contactDetails": { "type": "object", "properties": { "id": { "type": "string" }, "phoneNo": { "type": "string" }, "email": { "type": "string" }, "customFields": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "address": { "type": "object", "properties": { "countryCode": { "type": "string" }, "addressLine1": { "type": "string" }, "addressLine2": { "type": "string" }, "city": { "type": "string" }, "state": { "type": "string" }, "postalCode": { "type": "string" } } }, "additionalEmails": { "type": "array", "items": { "type": "object", "properties": { "email": { "type": "string" } } } }, "companyName": { "type": "string" } } }, "issueDate": { "type": "string" }, "dueDate": { "type": "string" }, "discount": { "type": "object", "properties": { "type": { "type": "string" }, "value": { "type": "number" } } }, "invoiceItems": { "type": "array", "items": { "type": "object", "properties": { "taxes": { "type": "array" }, "_id": { "type": "string" }, "productId": { "type": "string" }, "priceId": { "type": "string" }, "currency": { "type": "string" }, "name": { "type": "string" }, "qty": { "type": "number" }, "amount": { "type": "number" } } } }, "total": { "type": "number" }, "title": { "type": "string" }, "amountDue": { "type": "number" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "totalSummary": { "type": "object", "properties": { "subTotal": { "type": "number" }, "discount": { "type": "number" } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/InvoiceUpdate/index.html#example "Direct link to Example")
{ "_id": "6578278e879ad2646715ba9c", "status": "draft", "liveMode": false, "amountPaid": 0, "altId": "6578278e879ad2646715ba9c", "altType": "location", "name": "New Invoice", "businessDetails": { "name": "ABC Corp.", "address": "9931 Beechwood, TX", "phoneNo": "+1-214-559-6993", "website": "wwww.example.com", "logoUrl": "https://example.com/logo.png", "customValues": ["string"] }, "invoiceNumber": "19", "currency": "USD", "contactDetails": { "id": "6578278e879ad2646715ba9c", "phoneNo": "+1-214-559-6993", "email": "[emailΒ protected]", "customFields": ["string"], "name": "Alex", "address": { "countryCode": "US", "addressLine1": "9931 Beechwood", "addressLine2": "Beechwood", "city": "St. Houston", "state": "TX", "postalCode": "559-6993" }, "additionalEmails": [ { "email": "[emailΒ protected]" } ], "companyName": "ABC Corp." }, "issueDate": "2023-01-01", "dueDate": "2023-01-01", "discount": { "type": "percentage", "value": 10 }, "invoiceItems": [ { "taxes": [], "_id": "c6tZZU0rJBf30ZXx9Gli", "productId": "c6tZZU0rJBf30ZXx9Gli", "priceId": "c6tZZU0rJBf30ZXx9Gli", "currency": "USD", "name": "Macbook Pro", "qty": 1, "amount": 999 } ], "total": 999, "title": "INVOICE", "amountDue": 999, "createdAt": "2023-12-12T09:27:42.355Z", "updatedAt": "2023-12-12T09:27:42.355Z", "totalSummary": { "subTotal": 999, "discount": 0 }}
---
# User | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/UserDelete/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a user is deleted
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/UserDelete/index.html#schema "Direct link to Schema")
{ "type": "string", "locationId": "string", "companyId": "string", "id": "string", "firstName": "string", "lastName": "string", "email": "string", "phone": "string", "extension": "string", "role": "string", "permissions": { "adwordsReportingEnabled": "boolean", "affiliateManagerEnabled": "boolean", "agentReportingEnabled": "boolean", "appointmentsEnabled": "boolean", "assignedDataOnly": "boolean", "attributionsReportingEnabled": "boolean", "bloggingEnabled": "boolean", "botService": "boolean", "bulkRequestsEnabled": "boolean", "campaignsEnabled": "boolean", "campaignsReadOnly": "boolean", "cancelSubscriptionEnabled": "boolean", "communitiesEnabled": "boolean", "contactsEnabled": "boolean", "contentAiEnabled": "boolean", "conversationsEnabled": "boolean", "dashboardStatsEnabled": "boolean", "facebookAdsReportingEnabled": "boolean", "funnelsEnabled": "boolean", "invoiceEnabled": "boolean", "leadValueEnabled": "boolean", "marketingEnabled": "boolean", "membershipEnabled": "boolean", "onlineListingsEnabled": "boolean", "opportunitiesEnabled": "boolean", "paymentsEnabled": "boolean", "phoneCallEnabled": "boolean", "recordPaymentEnabled": "boolean", "refundsEnabled": "boolean", "reviewsEnabled": "boolean", "settingsEnabled": "boolean", "socialPlanner": "boolean", "tagsEnabled": "boolean", "triggersEnabled": "boolean", "websitesEnabled": "boolean", "workflowsEnabled": "boolean", "workflowsReadOnly": "boolean" }, "scopes": ["string"], "locations": ["string"]}
#### Example (For Sub Account User)[β](https://marketplace.gohighlevel.com/docs/webhook/UserDelete/index.html#example-for-sub-account-user "Direct link to Example (For Sub Account User)")
{ "type": "UserCreate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "ve9EPM428h8vShlRW1KT", "firstName": "John", "lastName": "Doe", "email": "[emailΒ protected]", "phone": "+13235559998", "extension": "111", "role": "user", "permissions": { "adwordsReportingEnabled": true, "affiliateManagerEnabled": false, "agentReportingEnabled": true, "appointmentsEnabled": true, "assignedDataOnly": false, "attributionsReportingEnabled": true, "bloggingEnabled": true, "botService": false, "bulkRequestsEnabled": true, "campaignsEnabled": true, "campaignsReadOnly": false, "cancelSubscriptionEnabled": true, "communitiesEnabled": true, "contactsEnabled": true, "contentAiEnabled": true, "conversationsEnabled": true, "dashboardStatsEnabled": true, "facebookAdsReportingEnabled": true, "funnelsEnabled": true, "invoiceEnabled": true, "leadValueEnabled": true, "marketingEnabled": true, "membershipEnabled": true, "onlineListingsEnabled": true, "opportunitiesEnabled": true, "paymentsEnabled": true, "phoneCallEnabled": true, "recordPaymentEnabled": true, "refundsEnabled": true, "reviewsEnabled": true, "settingsEnabled": true, "socialPlanner": true, "tagsEnabled": true, "triggersEnabled": true, "websitesEnabled": true, "workflowsEnabled": true, "workflowsReadOnly": false }, "scopes": ["string"]}
#### Example (For Agency User)[β](https://marketplace.gohighlevel.com/docs/webhook/UserDelete/index.html#example-for-agency-user "Direct link to Example (For Agency User)")
{ "type": "UserCreate", "companyId": "ve9EPM428h8vShlRW1KT", "id": "ve9EPM428h8vShlRW1KT", "firstName": "John", "lastName": "Doe", "email": "[emailΒ protected]", "phone": "+13235559997", "extension": "1112", "role": "admin", "permissions": { "adwordsReportingEnabled": true, "affiliateManagerEnabled": false, "agentReportingEnabled": true, "appointmentsEnabled": true, "assignedDataOnly": false, "attributionsReportingEnabled": true, "bloggingEnabled": true, "botService": false, "bulkRequestsEnabled": true, "campaignsEnabled": true, "campaignsReadOnly": false, "cancelSubscriptionEnabled": true, "communitiesEnabled": true, "contactsEnabled": true, "contentAiEnabled": true, "conversationsEnabled": true, "dashboardStatsEnabled": true, "facebookAdsReportingEnabled": true, "funnelsEnabled": true, "invoiceEnabled": true, "leadValueEnabled": true, "marketingEnabled": true, "membershipEnabled": true, "onlineListingsEnabled": true, "opportunitiesEnabled": true, "paymentsEnabled": true, "phoneCallEnabled": true, "recordPaymentEnabled": true, "refundsEnabled": true, "reviewsEnabled": true, "settingsEnabled": true, "socialPlanner": true, "tagsEnabled": true, "triggersEnabled": true, "websitesEnabled": true, "workflowsEnabled": true, "workflowsReadOnly": false }, "scopes": ["string"], "locations": ["ve9EPM428h8vShlRW1KT"]}
---
# Invoice | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/InvoiceCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an invoice is created
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/InvoiceCreate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "status": { "type": "string" }, "liveMode": { "type": "boolean" }, "amountPaid": { "type": "number" }, "altId": { "type": "string" }, "altType": { "type": "string" }, "name": { "type": "string" }, "businessDetails": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" }, "phoneNo": { "type": "string" }, "website": { "type": "string" }, "logoUrl": { "type": "string" }, "customValues": { "type": "array", "items": { "type": "string" } } } }, "invoiceNumber": { "type": "string" }, "currency": { "type": "string" }, "contactDetails": { "type": "object", "properties": { "id": { "type": "string" }, "phoneNo": { "type": "string" }, "email": { "type": "string" }, "customFields": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "address": { "type": "object", "properties": { "countryCode": { "type": "string" }, "addressLine1": { "type": "string" }, "addressLine2": { "type": "string" }, "city": { "type": "string" }, "state": { "type": "string" }, "postalCode": { "type": "string" } } }, "additionalEmails": { "type": "array", "items": { "type": "object", "properties": { "email": { "type": "string" } } } }, "companyName": { "type": "string" } } }, "issueDate": { "type": "string" }, "dueDate": { "type": "string" }, "discount": { "type": "object", "properties": { "type": { "type": "string" }, "value": { "type": "number" } } }, "invoiceItems": { "type": "array", "items": { "type": "object", "properties": { "taxes": { "type": "array" }, "_id": { "type": "string" }, "productId": { "type": "string" }, "priceId": { "type": "string" }, "currency": { "type": "string" }, "name": { "type": "string" }, "qty": { "type": "number" }, "amount": { "type": "number" } } } }, "total": { "type": "number" }, "title": { "type": "string" }, "amountDue": { "type": "number" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "totalSummary": { "type": "object", "properties": { "subTotal": { "type": "number" }, "discount": { "type": "number" } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/InvoiceCreate/index.html#example "Direct link to Example")
{ "_id": "6578278e879ad2646715ba9c", "status": "draft", "liveMode": false, "amountPaid": 0, "altId": "6578278e879ad2646715ba9c", "altType": "location", "name": "New Invoice", "businessDetails": { "name": "ABC Corp.", "address": "9931 Beechwood, TX", "phoneNo": "+1-214-559-6993", "website": "wwww.example.com", "logoUrl": "https://example.com/logo.png", "customValues": ["string"] }, "invoiceNumber": "19", "currency": "USD", "contactDetails": { "id": "6578278e879ad2646715ba9c", "phoneNo": "+1-214-559-6993", "email": "[emailΒ protected]", "customFields": ["string"], "name": "Alex", "address": { "countryCode": "US", "addressLine1": "9931 Beechwood", "addressLine2": "Beechwood", "city": "St. Houston", "state": "TX", "postalCode": "559-6993" }, "additionalEmails": [ { "email": "[emailΒ protected]" } ], "companyName": "ABC Corp." }, "issueDate": "2023-01-01", "dueDate": "2023-01-01", "discount": { "type": "percentage", "value": 10 }, "invoiceItems": [ { "taxes": [], "_id": "c6tZZU0rJBf30ZXx9Gli", "productId": "c6tZZU0rJBf30ZXx9Gli", "priceId": "c6tZZU0rJBf30ZXx9Gli", "currency": "USD", "name": "Macbook Pro", "qty": 1, "amount": 999 } ], "total": 999, "title": "INVOICE", "amountDue": 999, "createdAt": "2023-12-12T09:27:42.355Z", "updatedAt": "2023-12-12T09:27:42.355Z", "totalSummary": { "subTotal": 999, "discount": 0 }}
---
# Invoice | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/InvoiceSent/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an invoice is sent
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/InvoiceSent/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "status": { "type": "string" }, "liveMode": { "type": "boolean" }, "amountPaid": { "type": "number" }, "altId": { "type": "string" }, "altType": { "type": "string" }, "name": { "type": "string" }, "businessDetails": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" }, "phoneNo": { "type": "string" }, "website": { "type": "string" }, "logoUrl": { "type": "string" }, "customValues": { "type": "array", "items": { "type": "string" } } } }, "invoiceNumber": { "type": "string" }, "currency": { "type": "string" }, "contactDetails": { "type": "object", "properties": { "id": { "type": "string" }, "phoneNo": { "type": "string" }, "email": { "type": "string" }, "customFields": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "address": { "type": "object", "properties": { "countryCode": { "type": "string" }, "addressLine1": { "type": "string" }, "addressLine2": { "type": "string" }, "city": { "type": "string" }, "state": { "type": "string" }, "postalCode": { "type": "string" } } }, "additionalEmails": { "type": "array", "items": { "type": "object", "properties": { "email": { "type": "string" } } } }, "companyName": { "type": "string" } } }, "issueDate": { "type": "string" }, "dueDate": { "type": "string" }, "discount": { "type": "object", "properties": { "type": { "type": "string" }, "value": { "type": "number" } } }, "invoiceItems": { "type": "array", "items": { "type": "object", "properties": { "taxes": { "type": "array" }, "_id": { "type": "string" }, "productId": { "type": "string" }, "priceId": { "type": "string" }, "currency": { "type": "string" }, "name": { "type": "string" }, "qty": { "type": "number" }, "amount": { "type": "number" } } } }, "total": { "type": "number" }, "title": { "type": "string" }, "amountDue": { "type": "number" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "totalSummary": { "type": "object", "properties": { "subTotal": { "type": "number" }, "discount": { "type": "number" } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/InvoiceSent/index.html#example "Direct link to Example")
{ "_id": "6578278e879ad2646715ba9c", "status": "sent", "liveMode": false, "amountPaid": 0, "altId": "6578278e879ad2646715ba9c", "altType": "location", "name": "New Invoice", "businessDetails": { "name": "ABC Corp.", "address": "9931 Beechwood, TX", "phoneNo": "+1-214-559-6993", "website": "wwww.example.com", "logoUrl": "https://example.com/logo.png", "customValues": ["string"] }, "invoiceNumber": "19", "currency": "USD", "contactDetails": { "id": "6578278e879ad2646715ba9c", "phoneNo": "+1-214-559-6993", "email": "[emailΒ protected]", "customFields": ["string"], "name": "Alex", "address": { "countryCode": "US", "addressLine1": "9931 Beechwood", "addressLine2": "Beechwood", "city": "St. Houston", "state": "TX", "postalCode": "559-6993" }, "additionalEmails": [ { "email": "[emailΒ protected]" } ], "companyName": "ABC Corp." }, "issueDate": "2023-01-01", "dueDate": "2023-01-01", "discount": { "type": "percentage", "value": 10 }, "invoiceItems": [ { "taxes": [], "_id": "c6tZZU0rJBf30ZXx9Gli", "productId": "c6tZZU0rJBf30ZXx9Gli", "priceId": "c6tZZU0rJBf30ZXx9Gli", "currency": "USD", "name": "Macbook Pro", "qty": 1, "amount": 999 } ], "total": 999, "title": "INVOICE", "amountDue": 999, "createdAt": "2023-12-12T09:27:42.355Z", "updatedAt": "2023-12-12T09:27:42.355Z", "totalSummary": { "subTotal": 999, "discount": 0 }}
---
# Invoice | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/InvoiceDelete/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an invoice is deleted
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/InvoiceDelete/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "status": { "type": "string" }, "liveMode": { "type": "boolean" }, "amountPaid": { "type": "number" }, "altId": { "type": "string" }, "altType": { "type": "string" }, "name": { "type": "string" }, "businessDetails": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" }, "phoneNo": { "type": "string" }, "website": { "type": "string" }, "logoUrl": { "type": "string" }, "customValues": { "type": "array", "items": { "type": "string" } } } }, "invoiceNumber": { "type": "string" }, "currency": { "type": "string" }, "contactDetails": { "type": "object", "properties": { "id": { "type": "string" }, "phoneNo": { "type": "string" }, "email": { "type": "string" }, "customFields": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "address": { "type": "object", "properties": { "countryCode": { "type": "string" }, "addressLine1": { "type": "string" }, "addressLine2": { "type": "string" }, "city": { "type": "string" }, "state": { "type": "string" }, "postalCode": { "type": "string" } } }, "additionalEmails": { "type": "array", "items": { "type": "object", "properties": { "email": { "type": "string" } } } }, "companyName": { "type": "string" } } }, "issueDate": { "type": "string" }, "dueDate": { "type": "string" }, "discount": { "type": "object", "properties": { "type": { "type": "string" }, "value": { "type": "number" } } }, "invoiceItems": { "type": "array", "items": { "type": "object", "properties": { "taxes": { "type": "array" }, "_id": { "type": "string" }, "productId": { "type": "string" }, "priceId": { "type": "string" }, "currency": { "type": "string" }, "name": { "type": "string" }, "qty": { "type": "number" }, "amount": { "type": "number" } } } }, "total": { "type": "number" }, "title": { "type": "string" }, "amountDue": { "type": "number" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "totalSummary": { "type": "object", "properties": { "subTotal": { "type": "number" }, "discount": { "type": "number" } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/InvoiceDelete/index.html#example "Direct link to Example")
{ "_id": "6578278e879ad2646715ba9c", "status": "delete", "liveMode": false, "amountPaid": 0, "altId": "6578278e879ad2646715ba9c", "altType": "location", "name": "New Invoice", "businessDetails": { "name": "ABC Corp.", "address": "9931 Beechwood, TX", "phoneNo": "+1-214-559-6993", "website": "wwww.example.com", "logoUrl": "https://example.com/logo.png", "customValues": ["string"] }, "invoiceNumber": "19", "currency": "USD", "contactDetails": { "id": "6578278e879ad2646715ba9c", "phoneNo": "+1-214-559-6993", "email": "[emailΒ protected]", "customFields": ["string"], "name": "Alex", "address": { "countryCode": "US", "addressLine1": "9931 Beechwood", "addressLine2": "Beechwood", "city": "St. Houston", "state": "TX", "postalCode": "559-6993" }, "additionalEmails": [ { "email": "[emailΒ protected]" } ], "companyName": "ABC Corp." }, "issueDate": "2023-01-01", "dueDate": "2023-01-01", "discount": { "type": "percentage", "value": 10 }, "invoiceItems": [ { "taxes": [], "_id": "c6tZZU0rJBf30ZXx9Gli", "productId": "c6tZZU0rJBf30ZXx9Gli", "priceId": "c6tZZU0rJBf30ZXx9Gli", "currency": "USD", "name": "Macbook Pro", "qty": 1, "amount": 999 } ], "total": 999, "title": "INVOICE", "amountDue": 999, "createdAt": "2023-12-12T09:27:42.355Z", "updatedAt": "2023-12-12T09:27:42.355Z", "totalSummary": { "subTotal": 999, "discount": 0 }}
---
# Update Custom Object | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Overview[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#overview "Direct link to Overview")
-------------------------------------------------------------------------------------------------------------------------------
The **Update Custom Object** is triggered whenever a custom object is Updated. This webhook allows systems to listen for new custom objects and take appropriate actions based on the event.
Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#schema "Direct link to Schema")
-------------------------------------------------------------------------------------------------------------------------
The webhook payload follows the JSON schema below:
{ "type": "object", "properties": { "labels": { "type": "object", "required": true }, "description": { "type": "string" }, "searchableProperties": { "type": "array" }, "primaryDisplayProperty": { "type": "string", "required": true }, "key": { "type": "string", "required": true }, "locationId": { "type": "string", "required": true }, "createdBy": { "type": "object" }, "updatedBy": { "type": "object" }, "timestamp": { "type": "string", "format": "date-time" }, "objectType": { "type": "string", "enum": ["USER_DEFINED"], "default": "USER_DEFINED" } }}
Field Descriptions[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#field-descriptions "Direct link to Field Descriptions")
-------------------------------------------------------------------------------------------------------------------------------------------------------------
### `labels`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#labels "Direct link to labels")
An object that defines the human-readable names associated with the custom object.
* **`singular`**: The name of the object in singular form (e.g., `"pet"`).
* **`plural`**: The name of the object in plural form (e.g., `"pets"`).
### `description`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#description "Direct link to description")
* Type: `string`
* A brief explanation of the custom object.
### `searchableProperties`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#searchableproperties "Direct link to searchableproperties")
* Type: `array`
* List of properties that are indexed for search.
### `primaryDisplayProperty`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#primarydisplayproperty "Direct link to primarydisplayproperty")
* Type: `string`
* Required: β
* The key property used to display the custom object.
### `key`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#key "Direct link to key")
* Type: `string`
* Required: β
* Unique identifier for the custom object type.
### `locationId`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#locationid "Direct link to locationid")
* Type: `string`
* Required: β
* Identifies the location associated with the custom object.
### `createdBy`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#createdby "Direct link to createdby")
* Type: `object`
* Metadata about the user who created the object.
### `updatedBy`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#updatedby "Direct link to updatedby")
* Type: `object`
* Metadata about the user who last updated the object.
### `timestamp`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#timestamp "Direct link to timestamp")
* Type: `string`
* Format: `date-time`
* The date and time when the object was created.
### `objectType`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#objecttype "Direct link to objecttype")
* Type: `string`
* Default: `"USER_DEFINED"`
* Specifies the type of object, currently supports only `USER_DEFINED`.
Example Payload[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#example-payload "Direct link to Example Payload")
----------------------------------------------------------------------------------------------------------------------------------------------------
{ "id": "6798a1a18fc746e0eba2ccfe", "labels": { "singular": "pet", "plural": "pets" }, "description": "Pet's Description", "searchableProperties": [ "custom_objects.pets.pet_name" ], "primaryDisplayProperty": "custom_objects.pets.pet_name", "key": "custom_objects.pets", "locationId": "eHy2cOSZxMQzQ6Yyvl8P", "updatedAt": "2025-01-28T09:21:37.311Z", "createdAt": "2025-01-28T09:21:37.311Z", "objectType": "USER_DEFINED", "timestamp": "2025-02-10T08:26:05.961Z"}
Additional Notes[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#additional-notes "Direct link to Additional Notes")
-------------------------------------------------------------------------------------------------------------------------------------------------------
* Ensure your webhook listener is set up to handle `POST` requests.
* The payload format may change in future versions; check for updates regularly.
* The `key` field should be unique within a given `locationId`.
* * *
* [Overview](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#overview)
* [Schema](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#schema)
* [Field Descriptions](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#field-descriptions)
* [`labels`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#labels)
* [`description`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#description)
* [`searchableProperties`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#searchableproperties)
* [`primaryDisplayProperty`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#primarydisplayproperty)
* [`key`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#key)
* [`locationId`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#locationid)
* [`createdBy`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#createdby)
* [`updatedBy`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#updatedby)
* [`timestamp`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#timestamp)
* [`objectType`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#objecttype)
* [Example Payload](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#example-payload)
* [Additional Notes](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaUpdate/index.html#additional-notes)
---
# Product | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ProductDelete/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a product is deleted
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ProductDelete/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "description": { "type": "string" }, "variants": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "options": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } } } } } } }, "medias": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" }, "type": { "type": "string" }, "isFeatured": { "type": "boolean" } } } }, "locationId": { "type": "string" }, "name": { "type": "string" }, "productType": { "type": "string" }, "availableInStore": { "type": "boolean" }, "userId": { "type": "string" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "statementDescriptor": { "type": "string" }, "image": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/ProductDelete/index.html#example "Direct link to Example")
{ "_id": "655b33a82209e60b6adb87a5", "description": "This is a really awesome product", "variants": [ { "id": "38s63qmxfr4", "name": "Size", "options": [ { "id": "h4z7u0im2q8", "name": "XL" } ] } ], "medias": [ { "id": "fzrgusiuu0m", "title": "1dd7dcd0-e71d-4cf7-a06b-6d47723d6a29.png", "url": "https://storage.googleapis.com/ghl-test/3SwdhCsvxI8Au3KsPJt6/media/sample.png", "type": "image", "isFeatured": true } ], "locationId": "3SwdhCsvxI8Au3KsPJt6", "name": "Awesome Product", "productType": "PHYSICAL", "availableInStore": true, "userId": "6YAtzfzpmHAdj0e8GkKp", "createdAt": "2023-11-20T10:23:36.515Z", "updatedAt": "2024-01-23T09:57:04.846Z", "statementDescriptor": "abcde", "image": "https://storage.googleapis.com/ghl-test/3SwdhCsvxI8Au3KsPJt6/media/65af8d5df88bdb4b1022ee90.png"}
---
# OutboundMessage | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/OutboundMessage/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a user sends a message to a contact.
| Channel |
| --- |
| Call |
| Voicemail |
| SMS |
| GMB |
| FB |
| IG |
| Email |
| Live Chat |
#### Message Schema[β](https://marketplace.gohighlevel.com/docs/webhook/OutboundMessage/index.html#message-schema "Direct link to Message Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "attachments": { "type": "array" }, "body": { "type": "string" }, "contactId": { "type": "string" }, "contentType": { "type": "string" }, "conversationId": { "type": "string" }, "dateAdded": { "type": "string" }, "direction": { "type": "string" }, "messageType": { "type": "string" }, "status": { "type": "string" }, "messageId": { "type": "string" }, "userId": { "type": "string" }, "source": { "type": "string" }, "conversationProviderId": { "type": "string" }, "callDuration": { "type": "number" }, "callStatus": { "type": "string" }, "chatWidgetId": { "type": "string" } }}
#### Example(Message)[β](https://marketplace.gohighlevel.com/docs/webhook/OutboundMessage/index.html#examplemessage "Direct link to Example(Message)")
{ "type": "OutboundMessage", "locationId": "l1C08ntBrFjLS0elLIYU", "attachments": [], "body": "This is a test message", "contactId": "cI08i1Bls3iTB9bKgFJh", "contentType": "text/plain", "conversationId": "fcanlLgpbQgQhderivVs", "dateAdded": "2021-04-21T11:31:45.750Z", "direction": "inbound", "messageType": "SMS", "source": "app", "status": "delivered", "conversationProviderId": "cI08i1Bls3iTB9bKgF01", "chatWidgetId": "67b0cc8cf14b19d85ace7s35"}
#### Example(Call and Voicemail)[β](https://marketplace.gohighlevel.com/docs/webhook/OutboundMessage/index.html#examplecall-and-voicemail "Direct link to Example(Call and Voicemail)")
{ "type": "OutboundMessage", "locationId": "0d48aEf7q67DAu134bpy", "attachments": ["call recording url"], "contactId": "gblakL5aYQC4glDtP1r2t3", "conversationId": "SGDqZrzmwTr19d10aHkt9F", "dateAdded": "2024-05-08T11:57:42.250Z", "direction": "outbound", "messageType": "CALL", "userId": "xsmF1xxhmC92ZpL1lj7aLa", "messageId": "tyW42xCD0HQpb3hhfLcx", "status": "completed", "callDuration": 120, "callStatus": "completed"}
### Call Status Details[β](https://marketplace.gohighlevel.com/docs/webhook/OutboundMessage/index.html#call-status-details "Direct link to Call Status Details")
For outbound calls:
* When the call is answered by a person, `status` will be `completed` and `callStatus` will be `completed`
* When the call reaches voicemail, `status` will be `completed` and `callStatus` will be `voicemail`
* The `callDuration` field indicates the length of the call in seconds
#### Example(Voicemail send through workflow)[β](https://marketplace.gohighlevel.com/docs/webhook/OutboundMessage/index.html#examplevoicemail-send-through-workflow "Direct link to Example(Voicemail send through workflow)")
{ "type": "OutboundMessage", "locationId": "0d48aEf7q67DAuXUxbpy", "attachments": ["voicemail url"], "contactId": "gb7xwL5aYQC4glDtP1r5", "conversationId": "SGDqZrzmwTr5P7aHkt9F", "dateAdded": "2024-05-08T12:04:55.828Z", "direction": "outbound", "messageType": "VoiceMail", "messageId": "hhYtaQM2I9ym8qhU9CmM", "status": "completed"}
#### Email Message Schema[β](https://marketplace.gohighlevel.com/docs/webhook/OutboundMessage/index.html#email-message-schema "Direct link to Email Message Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "attachments": { "type": "array" }, "body": { "type": "string" }, "contactId": { "type": "string" }, "conversationId": { "type": "string" }, "dateAdded": { "type": "string" }, "direction": { "type": "string" }, "messageType": { "type": "string" }, "emailMessageId": { "type": "string" }, "threadId": { "type": "string" }, "provider": { "type": "string" }, "to": { "type": "string" }, "cc": { "type": "string" }, "bcc": { "type": "string" }, "userId": { "type": "string" }, "source": { "type": "string" }, "conversationProviderId": { "type": "string" } }}
#### Example(Email)[β](https://marketplace.gohighlevel.com/docs/webhook/OutboundMessage/index.html#exampleemail "Direct link to Example(Email)")
{ "type": "OutboundMessage", "locationId": "kF4NJ5gzRyQF2gKFD34G", "body": "Testing Email Notification
", "contactId": "3bN9f8LYJFG8F232XMUbfq", "conversationId": "yCdNo6pwyTLYKgg6V2gj", "dateAdded": "2024-01-12T12:59:04.045Z", "direction": "outbound", "messageType": "Email", "emailMessageId": "sddfDSF3G56GHG", "from": "Internal Notify <[emailΒ protected]>", "threadId": "sddfDSF3G56GHG", "subject": "Order Confirmed", "to": ["[emailΒ protected]"], "source": "app", "conversationProviderId": "cI08i1Bls3iTB9bKgF01"}
* [Call Status Details](https://marketplace.gohighlevel.com/docs/webhook/OutboundMessage/index.html#call-status-details)
---
# Invoice | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/InvoicePaid/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an invoice is paid
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/InvoicePaid/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "status": { "type": "string" }, "liveMode": { "type": "boolean" }, "amountPaid": { "type": "number" }, "altId": { "type": "string" }, "altType": { "type": "string" }, "name": { "type": "string" }, "businessDetails": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" }, "phoneNo": { "type": "string" }, "website": { "type": "string" }, "logoUrl": { "type": "string" }, "customValues": { "type": "array", "items": { "type": "string" } } } }, "invoiceNumber": { "type": "string" }, "currency": { "type": "string" }, "contactDetails": { "type": "object", "properties": { "id": { "type": "string" }, "phoneNo": { "type": "string" }, "email": { "type": "string" }, "customFields": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "address": { "type": "object", "properties": { "countryCode": { "type": "string" }, "addressLine1": { "type": "string" }, "addressLine2": { "type": "string" }, "city": { "type": "string" }, "state": { "type": "string" }, "postalCode": { "type": "string" } } }, "additionalEmails": { "type": "array", "items": { "type": "object", "properties": { "email": { "type": "string" } } } }, "companyName": { "type": "string" } } }, "issueDate": { "type": "string" }, "dueDate": { "type": "string" }, "discount": { "type": "object", "properties": { "type": { "type": "string" }, "value": { "type": "number" } } }, "invoiceItems": { "type": "array", "items": { "type": "object", "properties": { "taxes": { "type": "array" }, "_id": { "type": "string" }, "productId": { "type": "string" }, "priceId": { "type": "string" }, "currency": { "type": "string" }, "name": { "type": "string" }, "qty": { "type": "number" }, "amount": { "type": "number" } } } }, "total": { "type": "number" }, "title": { "type": "string" }, "amountDue": { "type": "number" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "totalSummary": { "type": "object", "properties": { "subTotal": { "type": "number" }, "discount": { "type": "number" } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/InvoicePaid/index.html#example "Direct link to Example")
{ "_id": "6578278e879ad2646715ba9c", "status": "paid", "liveMode": false, "amountPaid": 999, "altId": "6578278e879ad2646715ba9c", "altType": "location", "name": "New Invoice", "businessDetails": { "name": "ABC Corp.", "address": "9931 Beechwood, TX", "phoneNo": "+1-214-559-6993", "website": "wwww.example.com", "logoUrl": "https://example.com/logo.png", "customValues": ["string"] }, "invoiceNumber": "19", "currency": "USD", "contactDetails": { "id": "6578278e879ad2646715ba9c", "phoneNo": "+1-214-559-6993", "email": "[emailΒ protected]", "customFields": ["string"], "name": "Alex", "address": { "countryCode": "US", "addressLine1": "9931 Beechwood", "addressLine2": "Beechwood", "city": "St. Houston", "state": "TX", "postalCode": "559-6993" }, "additionalEmails": [ { "email": "[emailΒ protected]" } ], "companyName": "ABC Corp." }, "issueDate": "2023-01-01", "dueDate": "2023-01-01", "discount": { "type": "percentage", "value": 10 }, "invoiceItems": [ { "taxes": [], "_id": "c6tZZU0rJBf30ZXx9Gli", "productId": "c6tZZU0rJBf30ZXx9Gli", "priceId": "c6tZZU0rJBf30ZXx9Gli", "currency": "USD", "name": "Macbook Pro", "qty": 1, "amount": 999 } ], "total": 999, "title": "INVOICE", "amountDue": 0, "createdAt": "2023-12-12T09:27:42.355Z", "updatedAt": "2023-12-12T09:27:42.355Z", "totalSummary": { "subTotal": 999, "discount": 0 }}
---
# Invoice | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/InvoicePartiallyPaid/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an invoice is partially paid
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/InvoicePartiallyPaid/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "status": { "type": "string" }, "liveMode": { "type": "boolean" }, "amountPaid": { "type": "number" }, "altId": { "type": "string" }, "altType": { "type": "string" }, "name": { "type": "string" }, "businessDetails": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" }, "phoneNo": { "type": "string" }, "website": { "type": "string" }, "logoUrl": { "type": "string" }, "customValues": { "type": "array", "items": { "type": "string" } } } }, "invoiceNumber": { "type": "string" }, "currency": { "type": "string" }, "contactDetails": { "type": "object", "properties": { "id": { "type": "string" }, "phoneNo": { "type": "string" }, "email": { "type": "string" }, "customFields": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "address": { "type": "object", "properties": { "countryCode": { "type": "string" }, "addressLine1": { "type": "string" }, "addressLine2": { "type": "string" }, "city": { "type": "string" }, "state": { "type": "string" }, "postalCode": { "type": "string" } } }, "additionalEmails": { "type": "array", "items": { "type": "object", "properties": { "email": { "type": "string" } } } }, "companyName": { "type": "string" } } }, "issueDate": { "type": "string" }, "dueDate": { "type": "string" }, "discount": { "type": "object", "properties": { "type": { "type": "string" }, "value": { "type": "number" } } }, "invoiceItems": { "type": "array", "items": { "type": "object", "properties": { "taxes": { "type": "array" }, "_id": { "type": "string" }, "productId": { "type": "string" }, "priceId": { "type": "string" }, "currency": { "type": "string" }, "name": { "type": "string" }, "qty": { "type": "number" }, "amount": { "type": "number" } } } }, "total": { "type": "number" }, "title": { "type": "string" }, "amountDue": { "type": "number" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "totalSummary": { "type": "object", "properties": { "subTotal": { "type": "number" }, "discount": { "type": "number" } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/InvoicePartiallyPaid/index.html#example "Direct link to Example")
{ "_id": "6578278e879ad2646715ba9c", "status": "partially_paid", "liveMode": false, "amountPaid": 899, "altId": "6578278e879ad2646715ba9c", "altType": "location", "name": "New Invoice", "businessDetails": { "name": "ABC Corp.", "address": "9931 Beechwood, TX", "phoneNo": "+1-214-559-6993", "website": "wwww.example.com", "logoUrl": "https://example.com/logo.png", "customValues": ["string"] }, "invoiceNumber": "19", "currency": "USD", "contactDetails": { "id": "6578278e879ad2646715ba9c", "phoneNo": "+1-214-559-6993", "email": "[emailΒ protected]", "customFields": ["string"], "name": "Alex", "address": { "countryCode": "US", "addressLine1": "9931 Beechwood", "addressLine2": "Beechwood", "city": "St. Houston", "state": "TX", "postalCode": "559-6993" }, "additionalEmails": [ { "email": "[emailΒ protected]" } ], "companyName": "ABC Corp." }, "issueDate": "2023-01-01", "dueDate": "2023-01-01", "discount": { "type": "percentage", "value": 10 }, "invoiceItems": [ { "taxes": [], "_id": "c6tZZU0rJBf30ZXx9Gli", "productId": "c6tZZU0rJBf30ZXx9Gli", "priceId": "c6tZZU0rJBf30ZXx9Gli", "currency": "USD", "name": "Macbook Pro", "qty": 1, "amount": 999 } ], "total": 999, "title": "INVOICE", "amountDue": 100, "createdAt": "2023-12-12T09:27:42.355Z", "updatedAt": "2023-12-12T09:27:42.355Z", "totalSummary": { "subTotal": 999, "discount": 0 }}
---
# User | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/UserUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a user is updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/UserUpdate/index.html#schema "Direct link to Schema")
{ "type": "string", "locationId": "string", "companyId": "string", "id": "string", "firstName": "string", "lastName": "string", "email": "string", "phone": "string", "extension": "string", "role": "string", "permissions": { "adwordsReportingEnabled": "boolean", "affiliateManagerEnabled": "boolean", "agentReportingEnabled": "boolean", "appointmentsEnabled": "boolean", "assignedDataOnly": "boolean", "attributionsReportingEnabled": "boolean", "bloggingEnabled": "boolean", "botService": "boolean", "bulkRequestsEnabled": "boolean", "campaignsEnabled": "boolean", "campaignsReadOnly": "boolean", "cancelSubscriptionEnabled": "boolean", "communitiesEnabled": "boolean", "contactsEnabled": "boolean", "contentAiEnabled": "boolean", "conversationsEnabled": "boolean", "dashboardStatsEnabled": "boolean", "facebookAdsReportingEnabled": "boolean", "funnelsEnabled": "boolean", "invoiceEnabled": "boolean", "leadValueEnabled": "boolean", "marketingEnabled": "boolean", "membershipEnabled": "boolean", "onlineListingsEnabled": "boolean", "opportunitiesEnabled": "boolean", "paymentsEnabled": "boolean", "phoneCallEnabled": "boolean", "recordPaymentEnabled": "boolean", "refundsEnabled": "boolean", "reviewsEnabled": "boolean", "settingsEnabled": "boolean", "socialPlanner": "boolean", "tagsEnabled": "boolean", "triggersEnabled": "boolean", "websitesEnabled": "boolean", "workflowsEnabled": "boolean", "workflowsReadOnly": "boolean" }, "scopes": ["string"], "locations": ["string"]}
#### Example (For Sub Account User)[β](https://marketplace.gohighlevel.com/docs/webhook/UserUpdate/index.html#example-for-sub-account-user "Direct link to Example (For Sub Account User)")
{ "type": "UserCreate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "ve9EPM428h8vShlRW1KT", "firstName": "John", "lastName": "Doe", "email": "[emailΒ protected]", "phone": "+13235559998", "extension": "111", "role": "user", "permissions": { "adwordsReportingEnabled": true, "affiliateManagerEnabled": false, "agentReportingEnabled": true, "appointmentsEnabled": true, "assignedDataOnly": false, "attributionsReportingEnabled": true, "bloggingEnabled": true, "botService": false, "bulkRequestsEnabled": true, "campaignsEnabled": true, "campaignsReadOnly": false, "cancelSubscriptionEnabled": true, "communitiesEnabled": true, "contactsEnabled": true, "contentAiEnabled": true, "conversationsEnabled": true, "dashboardStatsEnabled": true, "facebookAdsReportingEnabled": true, "funnelsEnabled": true, "invoiceEnabled": true, "leadValueEnabled": true, "marketingEnabled": true, "membershipEnabled": true, "onlineListingsEnabled": true, "opportunitiesEnabled": true, "paymentsEnabled": true, "phoneCallEnabled": true, "recordPaymentEnabled": true, "refundsEnabled": true, "reviewsEnabled": true, "settingsEnabled": true, "socialPlanner": true, "tagsEnabled": true, "triggersEnabled": true, "websitesEnabled": true, "workflowsEnabled": true, "workflowsReadOnly": false }, "scopes": ["string"],}
#### Example (For Agency User)[β](https://marketplace.gohighlevel.com/docs/webhook/UserUpdate/index.html#example-for-agency-user "Direct link to Example (For Agency User)")
{ "type": "UserCreate", "companyId": "ve9EPM428h8vShlRW1KT", "id": "ve9EPM428h8vShlRW1KT", "firstName": "John", "lastName": "Doe", "email": "[emailΒ protected]", "phone": "+13235559997", "extension": "1112", "role": "admin", "permissions": { "adwordsReportingEnabled": true, "affiliateManagerEnabled": false, "agentReportingEnabled": true, "appointmentsEnabled": true, "assignedDataOnly": false, "attributionsReportingEnabled": true, "bloggingEnabled": true, "botService": false, "bulkRequestsEnabled": true, "campaignsEnabled": true, "campaignsReadOnly": false, "cancelSubscriptionEnabled": true, "communitiesEnabled": true, "contactsEnabled": true, "contentAiEnabled": true, "conversationsEnabled": true, "dashboardStatsEnabled": true, "facebookAdsReportingEnabled": true, "funnelsEnabled": true, "invoiceEnabled": true, "leadValueEnabled": true, "marketingEnabled": true, "membershipEnabled": true, "onlineListingsEnabled": true, "opportunitiesEnabled": true, "paymentsEnabled": true, "phoneCallEnabled": true, "recordPaymentEnabled": true, "refundsEnabled": true, "reviewsEnabled": true, "settingsEnabled": true, "socialPlanner": true, "tagsEnabled": true, "triggersEnabled": true, "websitesEnabled": true, "workflowsEnabled": true, "workflowsReadOnly": false }, "scopes": ["string"], "locations": ["ve9EPM428h8vShlRW1KT"]}
---
# Object Schema Create | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Overview[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#overview "Direct link to Overview")
-------------------------------------------------------------------------------------------------------------------------------
The **Object Schema Create** is triggered whenever a custom object is created. This webhook allows systems to listen for new custom objects and take appropriate actions based on the event.
Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#schema "Direct link to Schema")
-------------------------------------------------------------------------------------------------------------------------
The webhook payload follows the JSON schema below:
{ "type": "object", "properties": { "labels": { "type": "object", "required": true }, "description": { "type": "string" }, "searchableProperties": { "type": "array" }, "primaryDisplayProperty": { "type": "string", "required": true }, "key": { "type": "string", "required": true }, "locationId": { "type": "string", "required": true }, "createdBy": { "type": "object" }, "updatedBy": { "type": "object" }, "timestamp": { "type": "string", "format": "date-time" }, "objectType": { "type": "string", "enum": ["USER_DEFINED"], "default": "USER_DEFINED" } }}
Field Descriptions[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#field-descriptions "Direct link to Field Descriptions")
-------------------------------------------------------------------------------------------------------------------------------------------------------------
### `labels`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#labels "Direct link to labels")
An object that defines the human-readable names associated with the custom object.
* **`singular`**: The name of the object in singular form (e.g., `"pet"`).
* **`plural`**: The name of the object in plural form (e.g., `"pets"`).
### `description`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#description "Direct link to description")
* Type: `string`
* A brief explanation of the custom object.
### `searchableProperties`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#searchableproperties "Direct link to searchableproperties")
* Type: `array`
* List of properties that are indexed for search.
### `primaryDisplayProperty`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#primarydisplayproperty "Direct link to primarydisplayproperty")
* Type: `string`
* Required: β
* The key property used to display the custom object.
### `key`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#key "Direct link to key")
* Type: `string`
* Required: β
* Unique identifier for the custom object type.
### `locationId`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#locationid "Direct link to locationid")
* Type: `string`
* Required: β
* Identifies the location associated with the custom object.
### `createdBy`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#createdby "Direct link to createdby")
* Type: `object`
* Metadata about the user who created the object.
### `updatedBy`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#updatedby "Direct link to updatedby")
* Type: `object`
* Metadata about the user who last updated the object.
### `timestamp`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#timestamp "Direct link to timestamp")
* Type: `string`
* Format: `date-time`
* The date and time when the object was created.
### `objectType`[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#objecttype "Direct link to objecttype")
* Type: `string`
* Default: `"USER_DEFINED"`
* Specifies the type of object, currently supports only `USER_DEFINED`.
Example Payload[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#example-payload "Direct link to Example Payload")
----------------------------------------------------------------------------------------------------------------------------------------------------
{ "id": "6798a1a18fc746e0eba2ccfe", "labels": { "singular": "pet", "plural": "pets" }, "description": "Pet's Description", "searchableProperties": [ "custom_objects.pets.pet_name" ], "primaryDisplayProperty": "custom_objects.pets.pet_name", "key": "custom_objects.pets", "locationId": "eHy2cOSZxMQzQ6Yyvl8P", "updatedAt": "2025-01-28T09:21:37.311Z", "createdAt": "2025-01-28T09:21:37.311Z", "objectType": "USER_DEFINED", "timestamp": "2025-02-10T08:26:05.961Z"}
Additional Notes[β](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#additional-notes "Direct link to Additional Notes")
-------------------------------------------------------------------------------------------------------------------------------------------------------
* Ensure your webhook listener is set up to handle `POST` requests.
* The payload format may change in future versions; check for updates regularly.
* The `key` field should be unique within a given `locationId`.
* * *
* [Overview](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#overview)
* [Schema](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#schema)
* [Field Descriptions](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#field-descriptions)
* [`labels`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#labels)
* [`description`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#description)
* [`searchableProperties`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#searchableproperties)
* [`primaryDisplayProperty`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#primarydisplayproperty)
* [`key`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#key)
* [`locationId`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#locationid)
* [`createdBy`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#createdby)
* [`updatedBy`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#updatedby)
* [`timestamp`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#timestamp)
* [`objectType`](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#objecttype)
* [Example Payload](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#example-payload)
* [Additional Notes](https://marketplace.gohighlevel.com/docs/webhook/ObjectSchemaCreate/index.html#additional-notes)
---
# Product | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/ProductCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a product is created
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/ProductCreate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "description": { "type": "string" }, "variants": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "options": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } } } } } } }, "medias": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" }, "type": { "type": "string" }, "isFeatured": { "type": "boolean" } } } }, "locationId": { "type": "string" }, "name": { "type": "string" }, "productType": { "type": "string" }, "availableInStore": { "type": "boolean" }, "userId": { "type": "string" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "statementDescriptor": { "type": "string" }, "image": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/ProductCreate/index.html#example "Direct link to Example")
{ "_id": "655b33a82209e60b6adb87a5", "description": "This is a really awesome product", "variants": [ { "id": "38s63qmxfr4", "name": "Size", "options": [ { "id": "h4z7u0im2q8", "name": "XL" } ] } ], "medias": [ { "id": "fzrgusiuu0m", "title": "1dd7dcd0-e71d-4cf7-a06b-6d47723d6a29.png", "url": "https://storage.googleapis.com/ghl-test/3SwdhCsvxI8Au3KsPJt6/media/sample.png", "type": "image", "isFeatured": true } ], "locationId": "3SwdhCsvxI8Au3KsPJt6", "name": "Awesome Product", "productType": "PHYSICAL", "availableInStore": true, "userId": "6YAtzfzpmHAdj0e8GkKp", "createdAt": "2023-11-20T10:23:36.515Z", "updatedAt": "2024-01-23T09:57:04.846Z", "statementDescriptor": "abcde", "image": "https://storage.googleapis.com/ghl-test/3SwdhCsvxI8Au3KsPJt6/media/65af8d5df88bdb4b1022ee90.png"}
---
# SaaS Plan Created | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Overview[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#overview "Direct link to Overview")
---------------------------------------------------------------------------------------------------------------------------
This webhook response is triggered when a new SaaS subscription plan is created in the system. The webhook provides comprehensive information about the plan including its features, pricing tiers, and configuration details. This is particularly useful for systems that need to track plan creation events for billing, analytics, or integration purposes.
For example, when a company creates a new subscription plan for their SaaS product:
* The **plan** represents a subscription tier with specific features and pricing
* The **saasProducts** array contains all the features included in this plan
* The **prices** array defines different billing intervals (monthly, yearly) with their respective amounts
* The **addOns** array can include additional services or features that can be purchased separately
Schema[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#schema "Direct link to Schema")
---------------------------------------------------------------------------------------------------------------------
The webhook response follows the JSON schema below:
{ "type": "object", "properties": { "planId": { "type": "string", "description": "Unique identifier for the plan" }, "title": { "type": "string", "description": "Human-readable name of the plan" }, "description": { "type": "string", "description": "Detailed description of the plan" }, "saasProducts": { "type": "array", "items": { "type": "string" }, "description": "Array of product features included in this plan" }, "addOns": { "type": "array", "items": { "type": "string" }, "description": "Array of additional services or features available as add-ons" }, "planLevel": { "type": "number", "description": "Numeric level indicating the tier of the plan" }, "trialPeriod": { "type": "number", "description": "Duration of the trial period in days" }, "prices": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the price" }, "billingInterval": { "type": "string", "description": "Billing frequency (e.g., 'month', 'year')" }, "active": { "type": "boolean", "description": "Whether this price is currently active" }, "amount": { "type": "number", "description": "Price amount in cents" }, "currency": { "type": "string", "description": "Currency code (e.g., 'usd')" }, "symbol": { "type": "string", "description": "Currency symbol (e.g., '$')" } }, "required": ["id", "billingInterval", "active", "amount", "currency", "symbol"] }, "description": "Array of pricing options for different billing intervals" }, "categoryId": { "type": "string", "description": "Identifier for the plan category" }, "snapshotId": { "type": "string", "description": "Identifier for the plan snapshot" }, "productId": { "type": "string", "description": "Identifier for the associated product" }, "isSaaSV2": { "type": "boolean", "description": "Flag indicating if this is a SaaS V2 plan" }, "createdAt": { "type": "string", "format": "date-time", "description": "Timestamp when the plan was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "Timestamp when the plan was last updated" } }, "required": [ "planId", "title", "description", "saasProducts", "addOns", "planLevel", "trialPeriod", "prices", "categoryId", "snapshotId", "productId", "isSaaSV2", "createdAt", "updatedAt" ]}
Field Descriptions[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#field-descriptions "Direct link to Field Descriptions")
---------------------------------------------------------------------------------------------------------------------------------------------------------
### `planId`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#planid "Direct link to planid")
* Type: `string`
* Unique identifier for the created plan.
### `title`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#title "Direct link to title")
* Type: `string`
* Human-readable name of the subscription plan (e.g., "Professional", "Enterprise").
### `description`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#description "Direct link to description")
* Type: `string`
* Detailed description explaining what the plan includes and its benefits.
### `saasProducts`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#saasproducts "Direct link to saasproducts")
* Type: `array[string]`
* List of product features and services included in this plan (e.g., "2-way-text-messaging", "crm", "email-marketing").
### `addOns`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#addons "Direct link to addons")
* Type: `array[string]`
* List of additional services or features that can be purchased separately from the base plan.
### `planLevel`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#planlevel "Direct link to planlevel")
* Type: `number`
* Numeric value indicating the tier or level of the plan (e.g., 1 for basic, 2 for professional, 3 for enterprise).
### `trialPeriod`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#trialperiod "Direct link to trialperiod")
* Type: `number`
* Duration of the free trial period in days. Set to 0 if no trial is offered.
### `prices`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#prices "Direct link to prices")
* Type: `array[object]`
* Array of pricing options for different billing intervals.
#### Price Object Fields:[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#price-object-fields "Direct link to Price Object Fields:")
* **`id`**: Unique identifier for the price (usually Stripe price ID)
* **`billingInterval`**: Billing frequency ("month", "year", etc.)
* **`active`**: Boolean indicating if this price is currently available
* **`amount`**: Price amount in cents (e.g., 29700 = $297.00)
* **`currency`**: Currency code (e.g., "usd")
* **`symbol`**: Currency symbol (e.g., "$")
### `categoryId`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#categoryid "Direct link to categoryid")
* Type: `string`
* Identifier linking the plan to a specific category or grouping.
### `snapshotId`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#snapshotid "Direct link to snapshotid")
* Type: `string`
* Identifier for the plan snapshot, used for versioning or backup purposes.
### `productId`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#productid "Direct link to productid")
* Type: `string`
* Identifier for the associated product in the billing system (usually Stripe product ID).
### `isSaaSV2`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#issaasv2 "Direct link to issaasv2")
* Type: `boolean`
* Flag indicating whether this plan uses the newer SaaS V2 architecture.
### `createdAt`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#createdat "Direct link to createdat")
* Type: `string` (ISO 8601 date-time)
* Timestamp when the plan was initially created.
### `updatedAt`[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#updatedat "Direct link to updatedat")
* Type: `string` (ISO 8601 date-time)
* Timestamp when the plan was last modified.
Example Response[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#example-response "Direct link to Example Response")
---------------------------------------------------------------------------------------------------------------------------------------------------
{ "type": "SaasPlanCreate", "companyId": "zzyG7A4x6bRJl5SlhQhH", "appId": "688c7eb11123320e907fe6e1", "versionId": "688c7eb11123320e907fe6e1", "description": "saas", "planId": "688c8e28e4080ecf4e9ad59a", "title": "test saas", "saasProducts": [ "2-way-text-messaging", "gmb-messaging", "web-chat", "reputation-management", "facebook-messenger", "gmb-call-tracking", "missed-call-text-back", "text-to-pay", "calendar", "crm", "opportunities", "email-marketing", "funnels", "membership", "websites", "workflow", "form-builder", "survey-builder", "trigger-links", "sms-email-templates", "all-reports", "triggers", "campaigns", "social-planner", "invoice", "blogs", "affiliate-manager", "launchpad" ], "addOns": [], "planLevel": 3, "trialPeriod": 7, "userLimit": 0, "contactLimit": 0, "prices": [ { "id": "price_1RrFciCScnf89tZoANu4chyo", "billingInterval": "month", "active": true, "amount": 19700, "currency": "usd", "symbol": "$" }, { "id": "price_1RrFciCScnf89tZo8V8JTFdZ", "billingInterval": "year", "active": true, "amount": 197000, "currency": "usd", "symbol": "$" } ], "categoryId": "66f243418b7a302ee2a83856", "snapshotId": "", "productId": "prod_SmpH3W8OsYv51x", "isSaaSV2": false, "createdAt": "2025-08-01T09:51:36.329Z", "updatedAt": "2025-08-01T09:51:36.329Z"}
Additional Notes[β](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#additional-notes "Direct link to Additional Notes")
---------------------------------------------------------------------------------------------------------------------------------------------------
* The webhook response is an array, allowing for bulk plan creation events.
* Price amounts are provided in cents to avoid floating-point precision issues.
* The `saasProducts` array contains feature identifiers that correspond to specific functionality in the system.
* The `isSaaSV2` flag helps distinguish between legacy and newer plan architectures.
* Ensure your webhook listener can handle the array structure of the response.
* The `traceId` can be used for debugging and correlating events across your system.
* [Overview](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#overview)
* [Schema](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#schema)
* [Field Descriptions](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#field-descriptions)
* [`planId`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#planid)
* [`title`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#title)
* [`description`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#description)
* [`saasProducts`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#saasproducts)
* [`addOns`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#addons)
* [`planLevel`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#planlevel)
* [`trialPeriod`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#trialperiod)
* [`prices`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#prices)
* [`categoryId`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#categoryid)
* [`snapshotId`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#snapshotid)
* [`productId`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#productid)
* [`isSaaSV2`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#issaasv2)
* [`createdAt`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#createdat)
* [`updatedAt`](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#updatedat)
* [Example Response](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#example-response)
* [Additional Notes](https://marketplace.gohighlevel.com/docs/webhook/SaaSPlanCreate/index.html#additional-notes)
---
# Invoice | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/InvoiceVoid/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an invoice is marked as void
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/InvoiceVoid/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "_id": { "type": "string" }, "status": { "type": "string" }, "liveMode": { "type": "boolean" }, "amountPaid": { "type": "number" }, "altId": { "type": "string" }, "altType": { "type": "string" }, "name": { "type": "string" }, "businessDetails": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" }, "phoneNo": { "type": "string" }, "website": { "type": "string" }, "logoUrl": { "type": "string" }, "customValues": { "type": "array", "items": { "type": "string" } } } }, "invoiceNumber": { "type": "string" }, "currency": { "type": "string" }, "contactDetails": { "type": "object", "properties": { "id": { "type": "string" }, "phoneNo": { "type": "string" }, "email": { "type": "string" }, "customFields": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "address": { "type": "object", "properties": { "countryCode": { "type": "string" }, "addressLine1": { "type": "string" }, "addressLine2": { "type": "string" }, "city": { "type": "string" }, "state": { "type": "string" }, "postalCode": { "type": "string" } } }, "additionalEmails": { "type": "array", "items": { "type": "object", "properties": { "email": { "type": "string" } } } }, "companyName": { "type": "string" } } }, "issueDate": { "type": "string" }, "dueDate": { "type": "string" }, "discount": { "type": "object", "properties": { "type": { "type": "string" }, "value": { "type": "number" } } }, "invoiceItems": { "type": "array", "items": { "type": "object", "properties": { "taxes": { "type": "array" }, "_id": { "type": "string" }, "productId": { "type": "string" }, "priceId": { "type": "string" }, "currency": { "type": "string" }, "name": { "type": "string" }, "qty": { "type": "number" }, "amount": { "type": "number" } } } }, "total": { "type": "number" }, "title": { "type": "string" }, "amountDue": { "type": "number" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "totalSummary": { "type": "object", "properties": { "subTotal": { "type": "number" }, "discount": { "type": "number" } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/InvoiceVoid/index.html#example "Direct link to Example")
{ "_id": "6578278e879ad2646715ba9c", "status": "void", "liveMode": false, "amountPaid": 0, "altId": "6578278e879ad2646715ba9c", "altType": "location", "name": "New Invoice", "businessDetails": { "name": "ABC Corp.", "address": "9931 Beechwood, TX", "phoneNo": "+1-214-559-6993", "website": "wwww.example.com", "logoUrl": "https://example.com/logo.png", "customValues": ["string"] }, "invoiceNumber": "19", "currency": "USD", "contactDetails": { "id": "6578278e879ad2646715ba9c", "phoneNo": "+1-214-559-6993", "email": "[emailΒ protected]", "customFields": ["string"], "name": "Alex", "address": { "countryCode": "US", "addressLine1": "9931 Beechwood", "addressLine2": "Beechwood", "city": "St. Houston", "state": "TX", "postalCode": "559-6993" }, "additionalEmails": [ { "email": "[emailΒ protected]" } ], "companyName": "ABC Corp." }, "issueDate": "2023-01-01", "dueDate": "2023-01-01", "discount": { "type": "percentage", "value": 10 }, "invoiceItems": [ { "taxes": [], "_id": "c6tZZU0rJBf30ZXx9Gli", "productId": "c6tZZU0rJBf30ZXx9Gli", "priceId": "c6tZZU0rJBf30ZXx9Gli", "currency": "USD", "name": "Macbook Pro", "qty": 1, "amount": 999 } ], "total": 999, "title": "INVOICE", "amountDue": 999, "createdAt": "2023-12-12T09:27:42.355Z", "updatedAt": "2023-12-12T09:27:42.355Z", "totalSummary": { "subTotal": 999, "discount": 0 }}
---
# User | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/UserCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a user is created
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/UserCreate/index.html#schema "Direct link to Schema")
{ "type": "string", "locationId": "string", "companyId": "string", "id": "string", "firstName": "string", "lastName": "string", "email": "string", "phone": "string", "extension": "string", "role": "string", "permissions": { "adwordsReportingEnabled": "boolean", "affiliateManagerEnabled": "boolean", "agentReportingEnabled": "boolean", "appointmentsEnabled": "boolean", "assignedDataOnly": "boolean", "attributionsReportingEnabled": "boolean", "bloggingEnabled": "boolean", "botService": "boolean", "bulkRequestsEnabled": "boolean", "campaignsEnabled": "boolean", "campaignsReadOnly": "boolean", "cancelSubscriptionEnabled": "boolean", "communitiesEnabled": "boolean", "contactsEnabled": "boolean", "contentAiEnabled": "boolean", "conversationsEnabled": "boolean", "dashboardStatsEnabled": "boolean", "facebookAdsReportingEnabled": "boolean", "funnelsEnabled": "boolean", "invoiceEnabled": "boolean", "leadValueEnabled": "boolean", "marketingEnabled": "boolean", "membershipEnabled": "boolean", "onlineListingsEnabled": "boolean", "opportunitiesEnabled": "boolean", "paymentsEnabled": "boolean", "phoneCallEnabled": "boolean", "recordPaymentEnabled": "boolean", "refundsEnabled": "boolean", "reviewsEnabled": "boolean", "settingsEnabled": "boolean", "socialPlanner": "boolean", "tagsEnabled": "boolean", "triggersEnabled": "boolean", "websitesEnabled": "boolean", "workflowsEnabled": "boolean", "workflowsReadOnly": "boolean" }, "scopes": ["string"], "locations": ["string"]}
#### Example (For Sub Account User)[β](https://marketplace.gohighlevel.com/docs/webhook/UserCreate/index.html#example-for-sub-account-user "Direct link to Example (For Sub Account User)")
{ "type": "UserCreate", "locationId": "ve9EPM428h8vShlRW1KT", "id": "ve9EPM428h8vShlRW1KT", "firstName": "John", "lastName": "Doe", "email": "[emailΒ protected]", "phone": "+13235559998", "extension": "111", "role": "user", "permissions": { "adwordsReportingEnabled": true, "affiliateManagerEnabled": false, "agentReportingEnabled": true, "appointmentsEnabled": true, "assignedDataOnly": false, "attributionsReportingEnabled": true, "bloggingEnabled": true, "botService": false, "bulkRequestsEnabled": true, "campaignsEnabled": true, "campaignsReadOnly": false, "cancelSubscriptionEnabled": true, "communitiesEnabled": true, "contactsEnabled": true, "contentAiEnabled": true, "conversationsEnabled": true, "dashboardStatsEnabled": true, "facebookAdsReportingEnabled": true, "funnelsEnabled": true, "invoiceEnabled": true, "leadValueEnabled": true, "marketingEnabled": true, "membershipEnabled": true, "onlineListingsEnabled": true, "opportunitiesEnabled": true, "paymentsEnabled": true, "phoneCallEnabled": true, "recordPaymentEnabled": true, "refundsEnabled": true, "reviewsEnabled": true, "settingsEnabled": true, "socialPlanner": true, "tagsEnabled": true, "triggersEnabled": true, "websitesEnabled": true, "workflowsEnabled": true, "workflowsReadOnly": false }, "scopes": ["string"]}
#### Example (For Agency User)[β](https://marketplace.gohighlevel.com/docs/webhook/UserCreate/index.html#example-for-agency-user "Direct link to Example (For Agency User)")
{ "type": "UserCreate", "companyId": "ve9EPM428h8vShlRW1KT", "id": "ve9EPM428h8vShlRW1KT", "firstName": "John", "lastName": "Doe", "email": "[emailΒ protected]", "phone": "+13235559997", "extension": "1112", "role": "admin", "permissions": { "adwordsReportingEnabled": true, "affiliateManagerEnabled": false, "agentReportingEnabled": true, "appointmentsEnabled": true, "assignedDataOnly": false, "attributionsReportingEnabled": true, "bloggingEnabled": true, "botService": false, "bulkRequestsEnabled": true, "campaignsEnabled": true, "campaignsReadOnly": false, "cancelSubscriptionEnabled": true, "communitiesEnabled": true, "contactsEnabled": true, "contentAiEnabled": true, "conversationsEnabled": true, "dashboardStatsEnabled": true, "facebookAdsReportingEnabled": true, "funnelsEnabled": true, "invoiceEnabled": true, "leadValueEnabled": true, "marketingEnabled": true, "membershipEnabled": true, "onlineListingsEnabled": true, "opportunitiesEnabled": true, "paymentsEnabled": true, "phoneCallEnabled": true, "recordPaymentEnabled": true, "refundsEnabled": true, "reviewsEnabled": true, "settingsEnabled": true, "socialPlanner": true, "tagsEnabled": true, "triggersEnabled": true, "websitesEnabled": true, "workflowsEnabled": true, "workflowsReadOnly": false }, "scopes": ["string"], "locations": ["ve9EPM428h8vShlRW1KT"]}
---
# LC Email | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/LCEmailStats/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an email is sent, gives the statistics of the said email.
> Available only to Location Level Apps.
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/LCEmailStats/index.html#schema "Direct link to Schema")
{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "LCEmailStats", "type": "object", "properties": { "type": { "type": "string" }, "locationId": { "type": "string" }, "companyId": { "type": "string" }, "webhookPayload": { "type": "object", "properties": { "event": { "type": "string" }, "id": { "type": "string" }, "timestamp": { "type": "integer" }, "flags": { "type": "object", "properties": { "is-authenticated": { "type": "boolean" }, "is-routed": { "type": "boolean" }, "is-big": { "type": "boolean" }, "is-system-test": { "type": "boolean" }, "is-test-mode": { "type": "boolean" } } }, "message": { "type": "object", "properties": { "attachments": { "type": "array" }, "headers": { "type": "object", "properties": { "message-id": { "type": "string" }, "from": { "type": "string" }, "to": { "type": "string" } } }, "size": { "type": "integer" } } }, "log-level": { "type": "string" }, "recipient": { "type": "string" }, "recipient-domain": { "type": "string" }, "tags": { "type": "array" }, "recipient-provider": { "type": "string" }, "campaigns": { "type": "array" }, "delivery-status": { "type": "object", "properties": { "attempt-no": { "type": "integer" }, "code": { "type": "integer" }, "message": { "type": "string" }, "description": { "type": "string" }, "session-seconds": { "type": "number" }, "enhanced-code": { "type": "string" }, "mx-host": { "type": "string" }, "utf8": { "type": "boolean" }, "i-first-delivery-attempt-seconds": { "type": "number" } } }, "envelope": { "type": "object", "properties": { "sender": { "type": "string" }, "targets": { "type": "string" }, "transport": { "type": "string" }, "sending-ip": { "type": "string" }, "i-ip-pool-id": { "type": "string" }, "i-ip-pool-name": { "type": "string" } } } } } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/LCEmailStats/index.html#example "Direct link to Example")
{ "type": "LCEmailStats", "locationId": "ve9EPM428h8vShlRW1KT", "companyId": "ve9EPM428h8vShlRW1KT", "webhookPayload": { "event": "delivered", "id": "ve9EPM428h8vShlRW1KT", "timestamp": 1714032441, "flags": { "is-authenticated": true, "is-routed": false, "is-big": false, "is-system-test": false, "is-test-mode": false }, "message": { "attachments": [], "headers": { "message-id": "", "from": "Aaditya Chakravarty <[emailΒ protected]>", "to": "[emailΒ protected]" }, "size": 1725 }, "log-level": "info", "recipient": "[emailΒ protected]", "recipient-domain": "example.com", "tags": ["loc_ve9EPM428h8vShlRW1KT", "com_ve9EPM428h8vShlRW1KT", "et_other"], "recipient-provider": "Other", "campaigns": [], "delivery-status": { "attempt-no": 1, "code": 250, "message": "OK", "description": "", "session-seconds": 0.087, "enhanced-code": "", "mx-host": "mail.example.com", "utf8": true, "i-first-delivery-attempt-seconds": 0.047 }, "envelope": { "sender": "", "targets": "[emailΒ protected]", "transport": "smtp", "sending-ip": "127.0.0.1", "i-ip-pool-id": "65cc66e77a4d4f63649d394c", "i-ip-pool-name": "" } }}
---
# Order | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/OrderCreate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an order is created
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/OrderCreate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "altId": { "type": "string" }, "altType": { "type": "string" }, "_id": { "type": "string" }, "contactId": { "type": "string" }, "contactSnapshot": { "type": "object", "properties": { "locationId": { "type": "string" }, "id": { "type": "string" }, "address1": { "type": "string" }, "city": { "type": "string" }, "companyName": { "type": "string" }, "country": { "type": "string" }, "source": { "type": "string" }, "dateAdded": { "type": "string" }, "dateOfBirth": { "type": "string" }, "dnd": { "type": "boolean" }, "email": { "type": "string" }, "name": { "type": "string" }, "firstName": { "type": "string" }, "lastName": { "type": "string" }, "phone": { "type": "string" }, "postalCode": { "type": "string" }, "state": { "type": "string" }, "tags": { "type": "array" }, "website": { "type": "string" }, "attachments": { "type": "array" }, "assignedTo": { "type": "string" } } }, "status": { "type": "string" }, "fulfillmentStatus": { "type": "string" }, "currency": { "type": "string" }, "amount": { "type": "number" }, "liveMode": { "type": "boolean" }, "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "qty": { "type": "number" }, "product": { "type": "object" }, "price": { "type": "object" } } } }, "amountSummary": { "type": "object", "properties": { "discount": { "type": "number" }, "shipping": { "type": "number" }, "subtotal": { "type": "number" }, "tax": { "type": "number" } } }, "taxSummary": { "type": "array", "items": { "type": "object", "properties": { "_id": { "type": "string" }, "amount": { "type": "number" }, "calculation": { "type": "string" }, "name": { "type": "string" }, "rate": { "type": "number" } } } }, "source": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" }, "subType": { "type": "string" }, "meta": { "type": "object" } } }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/OrderCreate/index.html#example "Direct link to Example")
{ "type": "OrderCreate", "locationId": "Z4Bxl8J4SaPEPLq9IQ8g", "_id": "660ed43bfdf9fc05a0de7a40", "altId": "Z4Bxl8J4SaPEPLq9IQ8g", "altType": "location", "status": "pending", "taxSummary": [ { "_id": "63770f5cecf298787c752075", "name": "10%", "calculation": "exclusive", "rate": 10, "amount": 12.1 } ], "fulfillmentStatus": "unfulfilled", "contactId": "ff2JstbQJfRuofXzeT0M", "currency": "USD", "amount": 150.1, "liveMode": false, "amountSummary": { "subtotal": 138, "discount": 0, "tax": 12.1, "shipping": 0 }, "source": { "type": "website", "subType": "store", "id": "nohc1pPZJlpZTpxJfLCp", "name": "Ecom Store", "meta": { "stepId": "dca58f2c-943b-4a92-b591-5d79f37df0a1", "pageId": "IoJJMciJZIRBSzGZcjl4", "domain": "ghl.shareef.me", "pageUrl": "/checkout" } }, "createdAt": "2024-04-04T16:24:27.036Z", "updatedAt": "2024-04-04T16:24:31.297Z", "contactSnapshot": { "id": "ff2JstbQJfRuofXzeT0M", "locationId": "Z4Bxl8J4SaPEPLq9IQ8g", "firstName": "Maxwell", "lastName": "Schmidt", "email": "[emailΒ protected]", "phone": "+2389372075506", "dnd": false, "source": "Ecom Store", "address1": "Velit consequuntur ", "city": "Eius eveniet provid", "state": "Ea provident volupt", "postalCode": "61131", "tags": [], "country": "CV", "dateAdded": "2024-04-04T16:24:21.375Z" }, "items": [ { "name": "Men's classic tee - XL / Charcoal", "qty": 1, "product": { "_id": "660ed1ff95e1dc88d5b0d346", "name": "Men's classic tee", "availableInStore": true, "taxes": [], "variants": [ { "id": "6xcxyf3ufjm", "name": "Size", "options": [ { "id": "pq72pwv2dd", "name": "S" }, { "id": "oxyrtisnrch", "name": "M" }, { "id": "e90dmjc49m7", "name": "L" }, { "id": "100p40ngait", "name": "XL" }, { "id": "1g0zjf4s57l", "name": "2XL" }, { "id": "x3qgphbudz", "name": "3XL" }, { "id": "4spdojmrhlh", "name": "4XL" } ] }, { "id": "06to66ownvc5", "name": "Color", "options": [ { "id": "7uhq7ky7bge", "name": "Maroon" }, { "id": "qeac76hvr1c", "name": "Black" }, { "id": "yhgmvthkf49", "name": "Navy" }, { "id": "plg4elfx0sq", "name": "Red" }, { "id": "7etdl015ljk", "name": "Royal" }, { "id": "yj1jw5ga5bk", "name": "Charcoal" } ] } ] }, "price": { "_id": "660ed20095e1dcd37bb0d392", "name": "XL / Charcoal", "type": "one_time", "currency": "USD", "amount": 17, "variantOptionIds": ["100p40ngait", "yj1jw5ga5bk"] } }, { "name": "Tshirt - Green / S", "qty": 1, "product": { "_id": "64f84dea1e2c5ae21f0714dd", "name": "Tshirt", "description": "Here is the onDeleteMedia
", "availableInStore": true, "taxes": [ { "_id": "63770f5cecf298787c752075", "calculation": "exclusive", "deleted": false, "altId": "Z4Bxl8J4SaPEPLq9IQ8g", "altType": "location", "name": "10%", "rate": 10, "createdAt": "2022-11-18T04:51:40.067Z", "updatedAt": "2022-11-18T04:51:40.067Z", "__v": 0 } ], "variants": [ { "id": "mhpty6azkx", "name": "Color", "options": [ { "id": "j1kri8rtkz", "name": "Red" }, { "id": "qxd87i00pr", "name": "Green" } ] }, { "id": "14ykjkzqfe", "name": "Size", "options": [ { "id": "nk794wey5a", "name": "S" } ] } ] }, "price": { "_id": "64f84dec1e2c5ae21f0714e1", "name": "Green / S", "type": "one_time", "currency": "USD", "amount": 121, "variantOptionIds": ["qxd87i00pr", "nk794wey5a"] } } ]}
---
# Order | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/OrderStatusUpdate/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever an order's status field updated
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/OrderStatusUpdate/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "type": { "type": "string" }, "altId": { "type": "string" }, "altType": { "type": "string" }, "_id": { "type": "string" }, "contactId": { "type": "string" }, "contactSnapshot": { "type": "object", "properties": { "locationId": { "type": "string" }, "id": { "type": "string" }, "address1": { "type": "string" }, "city": { "type": "string" }, "companyName": { "type": "string" }, "country": { "type": "string" }, "source": { "type": "string" }, "dateAdded": { "type": "string" }, "dateOfBirth": { "type": "string" }, "dnd": { "type": "boolean" }, "email": { "type": "string" }, "name": { "type": "string" }, "firstName": { "type": "string" }, "lastName": { "type": "string" }, "phone": { "type": "string" }, "postalCode": { "type": "string" }, "state": { "type": "string" }, "tags": { "type": "array" }, "website": { "type": "string" }, "attachments": { "type": "array" }, "assignedTo": { "type": "string" } } }, "status": { "type": "string" }, "fulfillmentStatus": { "type": "string" }, "currency": { "type": "string" }, "amount": { "type": "number" }, "liveMode": { "type": "boolean" }, "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "qty": { "type": "number" }, "product": { "type": "object" }, "price": { "type": "object" } } } }, "amountSummary": { "type": "object", "properties": { "discount": { "type": "number" }, "shipping": { "type": "number" }, "subtotal": { "type": "number" }, "tax": { "type": "number" } } }, "taxSummary": { "type": "array", "items": { "type": "object", "properties": { "_id": { "type": "string" }, "amount": { "type": "number" }, "calculation": { "type": "string" }, "name": { "type": "string" }, "rate": { "type": "number" } } } }, "source": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" }, "subType": { "type": "string" }, "meta": { "type": "object" } } }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/OrderStatusUpdate/index.html#example "Direct link to Example")
{ "type": "OrderStatusUpdate", "locationId": "Z4Bxl8J4SaPEPLq9IQ8g", "_id": "660ed43bfdf9fc05a0de7a40", "altId": "Z4Bxl8J4SaPEPLq9IQ8g", "altType": "location", "status": "completed", "taxSummary": [ { "_id": "63770f5cecf298787c752075", "name": "10%", "calculation": "exclusive", "rate": 10, "amount": 12.1 } ], "fulfillmentStatus": "unfulfilled", "contactId": "ff2JstbQJfRuofXzeT0M", "currency": "USD", "amount": 150.1, "liveMode": false, "amountSummary": { "subtotal": 138, "discount": 0, "tax": 12.1, "shipping": 0 }, "source": { "type": "website", "subType": "store", "id": "nohc1pPZJlpZTpxJfLCp", "name": "Ecom Store", "meta": { "stepId": "dca58f2c-943b-4a92-b591-5d79f37df0a1", "pageId": "IoJJMciJZIRBSzGZcjl4", "domain": "ghl.shareef.me", "pageUrl": "/checkout" } }, "createdAt": "2024-04-04T16:24:27.036Z", "updatedAt": "2024-04-04T16:24:31.297Z", "contactSnapshot": { "id": "ff2JstbQJfRuofXzeT0M", "locationId": "Z4Bxl8J4SaPEPLq9IQ8g", "firstName": "Maxwell", "lastName": "Schmidt", "email": "[emailΒ protected]", "phone": "+2389372075506", "dnd": false, "source": "Ecom Store", "address1": "Velit consequuntur ", "city": "Eius eveniet provid", "state": "Ea provident volupt", "postalCode": "61131", "tags": [], "country": "CV", "dateAdded": "2024-04-04T16:24:21.375Z" }, "items": [ { "name": "Men's classic tee - XL / Charcoal", "qty": 1, "product": { "_id": "660ed1ff95e1dc88d5b0d346", "name": "Men's classic tee", "availableInStore": true, "taxes": [], "variants": [ { "id": "6xcxyf3ufjm", "name": "Size", "options": [ { "id": "pq72pwv2dd", "name": "S" }, { "id": "oxyrtisnrch", "name": "M" }, { "id": "e90dmjc49m7", "name": "L" }, { "id": "100p40ngait", "name": "XL" }, { "id": "1g0zjf4s57l", "name": "2XL" }, { "id": "x3qgphbudz", "name": "3XL" }, { "id": "4spdojmrhlh", "name": "4XL" } ] }, { "id": "06to66ownvc5", "name": "Color", "options": [ { "id": "7uhq7ky7bge", "name": "Maroon" }, { "id": "qeac76hvr1c", "name": "Black" }, { "id": "yhgmvthkf49", "name": "Navy" }, { "id": "plg4elfx0sq", "name": "Red" }, { "id": "7etdl015ljk", "name": "Royal" }, { "id": "yj1jw5ga5bk", "name": "Charcoal" } ] } ] }, "price": { "_id": "660ed20095e1dcd37bb0d392", "name": "XL / Charcoal", "type": "one_time", "currency": "USD", "amount": 17, "variantOptionIds": ["100p40ngait", "yj1jw5ga5bk"] } }, { "name": "Tshirt - Green / S", "qty": 1, "product": { "_id": "64f84dea1e2c5ae21f0714dd", "name": "Tshirt", "description": "Here is the onDeleteMedia
", "availableInStore": true, "taxes": [ { "_id": "63770f5cecf298787c752075", "calculation": "exclusive", "deleted": false, "altId": "Z4Bxl8J4SaPEPLq9IQ8g", "altType": "location", "name": "10%", "rate": 10, "createdAt": "2022-11-18T04:51:40.067Z", "updatedAt": "2022-11-18T04:51:40.067Z", "__v": 0 } ], "variants": [ { "id": "mhpty6azkx", "name": "Color", "options": [ { "id": "j1kri8rtkz", "name": "Red" }, { "id": "qxd87i00pr", "name": "Green" } ] }, { "id": "14ykjkzqfe", "name": "Size", "options": [ { "id": "nk794wey5a", "name": "S" } ] } ] }, "price": { "_id": "64f84dec1e2c5ae21f0714e1", "name": "Green / S", "type": "one_time", "currency": "USD", "amount": 121, "variantOptionIds": ["qxd87i00pr", "nk794wey5a"] } } ]}
---
# VoiceAiCallEnd | HighLevel API
[Skip to main content](https://marketplace.gohighlevel.com/docs/webhook/VoiceAiCallEnd/index.html#__docusaurus_skipToContent_fallback)
On this page
Called whenever a Voice AI call ends for a sub-account.
> Requires scope: `voice-ai-dashboard.readonly` (Sub-Account apps)
#### Schema[β](https://marketplace.gohighlevel.com/docs/webhook/VoiceAiCallEnd/index.html#schema "Direct link to Schema")
{ "type": "object", "properties": { "id": { "type": "string" }, "locationId": { "type": "string" }, "agentId": { "type": "string" }, "contactId": { "type": "string" }, "fromNumber": { "type": "string" }, "createdAt": { "type": "string" }, "duration": { "type": "number" }, "summary": { "type": "string" }, "transcript": { "type": "string" }, "translation": { "$ref": "#/definitions/Translation" }, "extractedData": { "type": "object" }, "messageId": { "type": "string" }, "trialCall": { "type": "boolean" }, "executedCallActions": { "type": "array", "items": { "type": "object", "properties": { "_id": { "type": "string" }, "actionType": { "type": "string", "enum": [ "CALL_TRANSFER", "DATA_EXTRACTION", "IN_CALL_DATA_EXTRACTION", "WORKFLOW_TRIGGER", "SMS", "APPOINTMENT_BOOKING", "CUSTOM_ACTION", "KNOWLEDGE_BASE" ] }, "actionName": { "type": "string" }, "description": { "type": "string" }, "actionParameters": { "description": "Parameters change based on actionType", "oneOf": [ { "$ref": "#/definitions/CallTransferActionParameters" }, { "$ref": "#/definitions/DataExtractionActionParameters" }, { "$ref": "#/definitions/InCallDataExtractionActionParameters" }, { "$ref": "#/definitions/WorkflowTriggerParameters" }, { "$ref": "#/definitions/SMSParameters" }, { "$ref": "#/definitions/AppointmentBookingActionParameters" }, { "$ref": "#/definitions/CustomActionParameters" }, { "$ref": "#/definitions/KnowledgeBaseParameters" } ] }, "executedAt": { "type": "string", "format": "date-time" }, "triggerReceivedAt": { "type": "string", "format": "date-time" } }, "required": ["actionType", "actionName"] } } }, "definitions": { "Translation": { "type": "object", "properties": { "transcript": { "type": "string" }, "language": { "type": "string" } } }, "CallTransferActionParameters": { "type": "object", "properties": { "triggerPrompt": { "type": "string" }, "transferToType": { "type": "string", "enum": ["number"] }, "transferToValue": { "type": "string" }, "triggerMessage": { "type": "string" }, "hearWhisperMessage": { "type": "boolean" } }, "required": ["triggerPrompt", "transferToType", "transferToValue"] }, "DataExtractionActionParameters": { "type": "object", "properties": { "contactFieldId": { "type": "string" }, "description": { "type": "string" }, "examples": { "type": "array", "items": { "type": "string" } }, "overwriteExistingValue": { "type": "boolean" } }, "required": ["contactFieldId", "description", "examples"] }, "InCallDataExtractionActionParameters": { "type": "object", "properties": { "contactFieldId": { "type": "string" }, "description": { "type": "string" }, "examples": { "type": "array", "items": { "type": "string" } }, "overwriteExistingValue": { "type": "boolean" } }, "required": ["contactFieldId", "description", "examples"] }, "WorkflowTriggerParameters": { "type": "object", "properties": { "triggerPrompt": { "type": "string" }, "triggerMessage": { "type": "string" }, "workflowId": { "type": "string" } }, "required": ["triggerPrompt", "triggerMessage", "workflowId"] }, "SMSParameters": { "type": "object", "properties": { "triggerPrompt": { "type": "string" }, "triggerMessage": { "type": "string" }, "messageBody": { "type": "string" } }, "required": ["triggerPrompt", "triggerMessage", "messageBody"] }, "AppointmentBookingActionParameters": { "type": "object", "properties": { "calendarId": { "type": "string" }, "daysOfOfferingDates": { "type": "number" }, "slotsPerDay": { "type": "number" }, "hoursBetweenSlots": { "type": "number" } }, "required": ["calendarId", "daysOfOfferingDates", "slotsPerDay", "hoursBetweenSlots"] }, "CustomActionHeader": { "type": "object", "properties": { "key": { "type": "string" }, "value": { "type": "string" } }, "required": ["key", "value"] }, "CustomActionParameter": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "type": { "type": "string" }, "example": { "type": "string" } }, "required": ["name"] }, "CustomActionApiDetails": { "type": "object", "properties": { "url": { "type": "string" }, "method": { "type": "string", "enum": ["POST", "GET"] }, "authenticationRequired": { "type": "boolean" }, "authenticationValue": { "type": "string" }, "headers": { "type": "array", "items": { "$ref": "#/definitions/CustomActionHeader" } }, "parameters": { "type": "array", "items": { "$ref": "#/definitions/CustomActionParameter" } } }, "required": ["url", "method"] }, "CustomActionParameters": { "type": "object", "properties": { "triggerPrompt": { "type": "string" }, "triggerMessage": { "type": "string" }, "apiDetails": { "$ref": "#/definitions/CustomActionApiDetails" }, "selectedPaths": { "type": "array", "items": { "type": "string" } } }, "required": ["triggerPrompt", "apiDetails"] }, "KnowledgeBaseParameters": { "type": "object", "properties": { "triggerPrompt": { "type": "string" }, "triggerMessage": { "type": "string" }, "knowledgeBaseId": { "type": "string" }, "parameters": { "type": "array", "items": { "$ref": "#/definitions/CustomActionParameter" } } }, "required": ["triggerMessage", "knowledgeBaseId"] } }}
#### Example[β](https://marketplace.gohighlevel.com/docs/webhook/VoiceAiCallEnd/index.html#example "Direct link to Example")
{ "id": "CALL_abcdef123456", "locationId": "LOC_1234567890", "agentId": "507f1f77bcf86cd799439011", "contactId": "contact_abc123", "fromNumber": "+12345678901", "createdAt": "2025-08-01T00:00:00.000Z", "duration": 187, "summary": "Caller requested appointment details and received follow-up instructions.", "transcript": "Helloβ¦", "translation": { "transcript": "Holaβ¦", "language": "es" }, "extractedData": { "phoneNumber": "+1234567890" }, "executedCallActions": [ { "_id": "64b7c5a1e1f2a3b4c5d6e7f8", "actionType": "CALL_TRANSFER", "actionName": "Transfer to Sales", "actionParameters": { "triggerPrompt": "When caller asks for pricing", "transferToType": "number", "transferToValue": "+12345678901", "triggerMessage": "Connecting you now" }, "executedAt": "2025-08-01T00:00:20.000Z", "triggerReceivedAt": "2025-08-01T00:00:18.000Z" }, { "_id": "64b7d0a2b3c4d5e6f7a8b9c0", "actionType": "CUSTOM_ACTION", "actionName": "Lookup Order", "actionParameters": { "triggerPrompt": "When caller provides order number", "triggerMessage": "Let me check that", "apiDetails": { "url": "https://api.example.com/orders", "method": "GET", "authenticationRequired": true, "authenticationValue": "Bearer sk_live_xxx", "headers": [{ "key": "x-tenant", "value": "acme" }], "parameters": [{ "name": "orderId", "description": "Order ID", "type": "string", "example": "ORD-123" }] }, "selectedPaths": ["data.orderId", "status"] }, "executedAt": "2025-08-01T00:00:30.000Z", "triggerReceivedAt": "2025-08-01T00:00:28.000Z" } ], "messageId": "msg_123456", "trialCall": false}
---