---
canonical_url: "https://docs.composio.dev/toolkits/highlevel_location"
markdown_url: "https://docs.composio.dev/toolkits/highlevel_location.md"
product: "platform"
version: null
last_updated: null
---

# HighLevel Location

HighLevel provides Location-scoped CRM, marketing, conversations, calendars, payments, and business automation APIs.

- **Category:** crm
- **Auth:** OAUTH2, BEARER_TOKEN
- **Composio-managed OAuth available?** No
- **Tools:** 555
- **Triggers:** 0
- **Slug:** `HIGHLEVEL_LOCATION`
- **Version:** 00000000_00

## Tools

### Add custom audience member

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_ADD_CUSTOM_AUDIENCE_MEMBER`

Add a member to a Facebook custom audience Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Contact identifier |
| `audience_id` | string | Yes | Custom audience identifier |
| `fb_ad_account_id` | string | No | Facebook ad account ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Batch update audience members

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_BATCH_UPDATE_AUDIENCE_MEMBERS`

Queue an asynchronous job to add, remove, or replace Facebook custom-audience members via CSV or smart lists. HighLevel does not validate the audience or smart-list IDs before returning `success:true`, so that response means only that the job was accepted, not that members changed. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `csv_path` | string | No | CSV file path |
| `audience_id` | string | Yes | Custom audience identifier |
| `smartlist_ids` | array | No | Smartlist IDs array |
| `operation_type` | string ("ADD" | "REMOVE" | "REPLACE") | Yes | Batch operation type |
| `dynamic_audience` | string ("true" | "false") | No | String boolean flag required by HighLevel: true or false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create conversation form

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_CREATE_CONVERSATION_FORM`

Create a new Facebook conversation lead form. HighLevel exposes no delete counterpart for conversation forms. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Conversation form name |
| `text` | string | Yes | Welcome message text |
| `questions` | array | Yes | Quick-reply questions shown in the welcome message of the conversation form |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create page lead form

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_CREATE_PAGE_LEAD_FORM`

Create a new lead form on a Facebook page. is_draft=true always creates a new local draft; draft_form_id does not update an existing draft, and drafts cannot be deleted through this toolkit. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Lead form name |
| `type` | string ("MORE_VOLUME" | "HIGHER_INTENT") | Yes | Lead form type |
| `locale` | string | No | Locale |
| `page_id` | string | Yes | Facebook page identifier |
| `is_draft` | boolean | No | If the form is a draft, set to true |
| `questions` | array | No | List of questions displayed on the lead form. Required (non-empty) when `isDraft` is false or omitted; optional for drafts. |
| `draft_form_id` | string | No | Existing draft ID to clean up after publishing a non-draft form. When is_draft=true, HighLevel creates a new draft with a new ID rather than updating this ID; drafts cannot be deleted through this toolkit. |
| `greeting_card` | object | No | Greeting card config |
| `thank_you_page` | object | No | Thank you page config. Required when `isDraft` is false or omitted; optional for drafts. |
| `custom_disclaimer` | object | No | Custom disclaimer config |
| `privacy_policy_link` | string | No | Privacy policy URL. Required when `isDraft` is false or omitted; optional for drafts. |
| `privacy_policy_text` | string | No | Privacy policy text |
| `question_page_headline` | string | No | Question page headline |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete ad

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_DELETE_AD`

Permanently delete a Facebook ad. Unlike campaign and ad-set deletion, this is a hard delete and a repeated delete returns not found. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_id` | string | Yes | Ad identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete ad set

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_DELETE_ADSET`

Archive a Facebook ad set and remove its ads. This is a soft delete: the ad set may remain readable with publishingStatus=ARCHIVED. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_set_id` | string | Yes | Ad set identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete campaign

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_DELETE_CAMPAIGN`

Archive a Facebook campaign and its ad sets. This is a soft delete: Get campaign continues to return the campaign with publishingStatus=ARCHIVED, and repeated deletes may still return success=true. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `campaign_id` | string | Yes | Campaign identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete custom audience

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_DELETE_CUSTOM_AUDIENCE`

Delete a Facebook custom audience by ID Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Is draft |
| `audience_id` | string | Yes | Custom audience identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Facebook integration

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_DELETE_INTEGRATION`

Remove the Facebook ad integration from a location Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete page connection

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_DELETE_PAGE`

Remove a Facebook page connection from a location. HighLevel does not validate page_id before returning success=true, so success confirms request acceptance, not that the page existed or was disconnected. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_id` | string | Yes | Facebook page ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Duplicate ad

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_DUPLICATE_AD`

Duplicate an existing Facebook ad Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_id` | string | Yes | Ad identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Duplicate ad set

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_DUPLICATE_ADSET`

Duplicate an existing Facebook ad set Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_set_id` | string | Yes | Ad set identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Duplicate campaign

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_DUPLICATE_CAMPAIGN`

Duplicate an existing Facebook campaign Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `campaign_id` | string | Yes | Campaign identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get campaign with linked entities

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_GET_CAMPAIGN`

Retrieve a Facebook campaign with its linked adsets and ads Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | Comma-separated expansions. Pass adsets,ads to include nested adsets and their ads; they are omitted otherwise. |
| `source` | string | No | Campaign data source |
| `campaign_id` | string | Yes | Campaign identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Facebook Campaign Publishing Progress

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_GET_CAMPAIGN_PUBLISHING_PROGRESS`

Return the current Meta publishing step counts and completion state for a Facebook campaign. Location PITs must be provisioned with the HighLevel permission `adPublishing.readonly`; a minimal PIT without it was denied while a broad PIT passed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Whether to read publishing progress for a draft campaign. |
| `campaign_id` | string | Yes | Facebook campaign identifier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get conversation forms

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_GET_CONVERSATION_FORMS`

Retrieve Facebook conversation lead forms for a location Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Is draft |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get custom audience by ID

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_GET_CUSTOM_AUDIENCE_BY_ID`

Retrieve a specific Facebook custom audience by its ID Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Is draft |
| `audience_id` | string | Yes | Custom audience identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get custom audiences

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_GET_CUSTOM_AUDIENCES`

Retrieve Facebook custom audiences for a location. HighLevel returns an empty details list for an unknown ad account ID, so an empty result does not validate that account. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("lookalike" | "custom" | "all") | Yes | Audience list type |
| `source` | string ("ad_manager" | "integration") | No | Audience data source |
| `ad_account_id` | string | Yes | Ad account identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get entities

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_GET_ENTITY`

List Facebook campaigns, ad sets, or ads that exist on Meta. Local HighLevel drafts are not returned. type=INTEGRATION requires selected_ad_account_id. An empty result is returned as data=[] rather than an error. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `next` | string | No | Pagination cursor |
| `type` | string ("AD_MANAGER" | "INTEGRATION") | Yes | Integration source type |
| `ad_set_id` | string | No | Meta ad set identifier used to filter ads. |
| `fetch_all` | string ("true" | "false") | No | Fetch all entities |
| `search_id` | string | No | Meta entity ID to search for. |
| `campaign_id` | string | No | Meta campaign identifier used to filter ad sets or ads. |
| `entity_type` | string ("CAMPAIGN" | "ADSET" | "AD") | Yes | Entity type to fetch |
| `selected_ad_account_id` | string | No | Selected Meta ad account ID. Required when type is INTEGRATION. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Instagram accounts for page

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_GET_INSTAGRAM_ACCOUNTS`

Retrieve Instagram accounts linked to a specific Facebook page Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("INTEGRATION" | "AD_MANAGER") | No | Integration type |
| `page_id` | string | Yes | Facebook page identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get lead form by ID

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_GET_LEAD_FORM`

Retrieve a specific published or draft Facebook lead form by ID. Draft IDs require is_draft=true. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Set true for a draft ID from Get page lead forms; either its draft_ prefix or bare ID is accepted. Omitting this for a draft produces HighLevel's generic get-form error. |
| `lead_form_id` | string | Yes | Lead form identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get page lead forms

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_GET_PAGE_LEAD_FORMS`

Retrieve lead forms for a Facebook page. Draft IDs are returned with a draft_ prefix; pass that ID and is_draft=true to Get lead form by ID. HighLevel may return drafts even when is_draft=false. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_id` | string | Yes | Facebook page identifier |
| `is_draft` | boolean | No | Is draft |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Facebook pages

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_GET_PAGES`

Retrieve Facebook pages associated with the connected account Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fetch_existing` | string ("true" | "false") | No | Whether to fetch existing pages |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get conversion pixels

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_GET_PIXELS`

Retrieve Facebook conversion pixels for a location. Facebook-channel results are returned under `items`; Instagram-channel results are returned under `details`. HighLevel may return the full pixel list when page_id does not match a known page, so an unfiltered result does not confirm that page exists. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channel` | string ("IG" | "FACEBOOK") | No | Channel type |
| `page_id` | string | No | Facebook page ID |
| `ig_user_id` | string | No | Instagram user ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Pause ad

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_PAUSE_AD`

Pause a published Facebook ad. Draft or otherwise unpublished ads cannot be paused. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_id` | string | Yes | Ad identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Pause ad set

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_PAUSE_ADSET`

Pause a published Facebook ad set. Draft or otherwise unpublished ad sets cannot be paused. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_set_id` | string | Yes | Ad set identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Pause campaign

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_PAUSE_CAMPAIGN`

Pause a published Facebook campaign. Draft or otherwise unpublished campaigns cannot be paused. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `campaign_id` | string | Yes | Campaign identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Publish campaign

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_PUBLISH_CAMPAIGN`

Publish a Facebook campaign and push it live to Facebook Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `campaign_id` | string | Yes | Campaign identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove custom audience member

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_REMOVE_CUSTOM_AUDIENCE_MEMBER`

Remove a member from a Facebook custom audience Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Contact identifier |
| `audience_id` | string | Yes | Custom audience identifier |
| `fb_ad_account_id` | string | No | Facebook ad account ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Resume ad

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_RESUME_AD`

Resume a paused Facebook ad. The ad must already be published and paused. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_id` | string | Yes | Ad identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Resume ad set

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_RESUME_ADSET`

Resume a paused Facebook ad set. The ad set must already be published and paused. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_set_id` | string | Yes | Ad set identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Resume campaign

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_RESUME_CAMPAIGN`

Resume a paused Facebook campaign. The campaign must already be published and paused. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `campaign_id` | string | Yes | Campaign identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set default page

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_SET_DEFAULT_PAGE`

Set the default Facebook page for a location. HighLevel does not validate page_id before returning success=true and an unknown ID can unset the real default, so verify the integration after this call. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_id` | string | Yes | Facebook page identifier |
| `is_draft` | boolean | No | Is draft |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update custom audience

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_UPDATE_CUSTOM_AUDIENCE`

Update name or description of a Facebook custom audience Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Audience name |
| `audience_id` | string | Yes | Custom audience identifier |
| `description` | string | No | Audience description |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert ad

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_UPSERT_AD`

Create or update a Facebook ad. Creating requires a non-empty name. Each media item type must be lowercase image or video. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Ad identifier |
| `cta` | string ("NO_BUTTON" | "ADD_TO_CART" | "APPLY_NOW" | "BET_NOW" | "BOOK_TRAVEL" | "BUY_NOW" | "BUY_TICKETS" | "CALL_NOW" | "CONTACT_US" | "DOWNLOAD" | "GET_DIRECTIONS" | "GET_OFFER" | "GET_QUOTE" | "GO_LIVE" | "INSTALL_MOBILE_APP" | "LEARN_MORE" | "LIKE_PAGE" | "LISTEN_MUSIC" | "OPEN_LINK" | "ORDER_NOW" | "PLAY_GAME" | "REGISTER_NOW" | "REQUEST_TIME" | "SAVE" | "MESSAGE_PAGE" | "WHATSAPP_MESSAGE" | "SHOP_NOW" | "SIGN_UP" | "SUBSCRIBE" | "USE_APP" | "WATCH_MORE" | "WATCH_VIDEO") | No | Meta call-to-action token shown on the ad. Use NO_BUTTON for no CTA; choose a listed value compatible with the campaign objective and supply the matching destination_link, destination_form_id, conversation_form_id, or messaging destination when that CTA requires one. |
| `name` | string | No | Ad name |
| `media` | array | No | Media items (images or videos) attached to the ad creative |
| `adset_id` | string | Yes | Parent HighLevel ad set ID |
| `headline` | string | No | Ad headline text |
| `image_url` | string | No | Ad image URL |
| `media_type` | string ("SINGLE" | "CAROUSEL") | No | Ad media type |
| `campaign_id` | string | Yes | Parent HighLevel campaign ID |
| `description` | string | No | Ad description text |
| `primary_text` | string | No | Ad primary text |
| `destination_link` | string | No | Destination link URL |
| `destination_form_id` | string | No | Destination form ID |
| `conversation_form_id` | string | No | Conversation form ID |
| `multi_advertiser_ads` | boolean | No | Enable multi-advertiser ads |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert adset

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_UPSERT_ADSET`

Create or update a Facebook ad set. Creating requires a non-empty name. Publishing every ad set requires name, pageId, audience, and budget with budgetType and amount. audience.placements must be an object keyed by platform, for example {facebook: [feed], instagram: [stream]}, not a string array. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Ad set identifier |
| `name` | string | No | Ad set name |
| `budget` | object | No | Ad set budget. Publishing requires budgetType and amount; the amount uses major units of the ad account currency. |
| `page_id` | string | No | Facebook page ID |
| `audience` | object | No | Targeting audience configuration including geo-locations, locales, placements, and custom audiences |
| `pixel_id` | string | No | Conversion pixel ID |
| `bid_amount` | number | No | Bid cap or cost-per-result goal in the ad account currency. Required when the parent campaign uses LOWEST_COST_WITH_BID_CAP or COST_CAP. |
| `campaign_id` | string | Yes | Parent HighLevel campaign ID |
| `whatsapp_number` | string | No | WhatsApp phone number |
| `custom_event_type` | string | No | Custom event type |
| `instagram_actor_id` | string | No | Instagram actor ID |
| `conversion_location` | string | No | Conversion location |
| `messaging_platforms` | array | No | Messaging platforms |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert campaign

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_UPSERT_CAMPAIGN`

Create or update a Facebook campaign. Creating requires a non-empty name and an objective; updates may identify the campaign by id. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Campaign identifier |
| `name` | string | No | Campaign name |
| `source` | string | No | Campaign data source |
| `objective` | string ("OUTCOME_LEADS" | "OUTCOME_TRAFFIC" | "OUTCOME_ENGAGEMENT" | "OUTCOME_SALES") | No | Campaign objective |
| `special_ad_categories` | array | No | Special ad categories |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert conversion pixel

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_FB_UPSERT_PIXEL`

Create or update a Facebook conversion pixel. Omitting conversion_pixel_id or supplying an unknown ID creates a real Meta pixel/dataset; this is not a local draft. INSTAGRAM_DM pixels cannot be updated, and an empty name is ignored by HighLevel. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Pixel name |
| `type` | string ("LEAD_EVENT" | "FUNNEL_EVENT" | "INSTAGRAM_DM") | Yes | Pixel event type |
| `ig_user_id` | string | No | Instagram user ID |
| `conversion_pixel_id` | string | No | Conversion pixel ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create offline user list job

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_CREATE_OFFLINE_USER_LIST_JOB`

Create a job to upload users to an existing Google Customer Match list. Verify user_list_id and smart_list_ids before calling: HighLevel can return success=true even when either identifier does not exist, and this action cannot verify downstream ingestion. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `csv_path` | string | No | CSV file path |
| `is_dynamic` | boolean | No | Dynamic list flag |
| `user_list_id` | string | Yes | Required numeric Google Ads user-list ID |
| `smart_list_ids` | array | No | HighLevel Smart List IDs |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete conversion

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_DELETE_CONVERSION`

Soft-delete a Google Ads conversion action by ID. Google retains the resource with status REMOVED, so GET_CONVERSION_BY_ID may still return it after deletion. HighLevel may report an unknown ID as an opaque 500 rather than not-found. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Is draft |
| `conversion_id` | integer | Yes | Numeric Google Ads conversion action ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete segment

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_DELETE_SEGMENT`

Delete a Google Ads audience segment by ID. HighLevel may report an unknown ID as an opaque 500 rather than not-found. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("CUSTOM_SEGMENTS" | "DATA_SEGMENTS") | Yes | Segment type |
| `segment_id` | string | Yes | Numeric Google Ads segment ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get assets

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_GET_ASSETS`

Retrieve Google Ads creative assets for a location Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Numeric Google Ads asset ID |
| `type` | string ("CALL" | "SITELINK") | Yes | Live-supported asset type to retrieve. |
| `advertiser_only` | string ("true" | "false") | No | Advertiser only flag |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get audience by ID

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_GET_AUDIENCE_BY_ID`

Retrieve a specific Google Ads combined audience by ID Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Is draft |
| `audience_id` | string | Yes | Numeric Google Ads audience ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get audiences

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_GET_AUDIENCES`

Retrieve Google Ads combined audiences for a location Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Is draft |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Google Campaign by ID

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_GET_CAMPAIGN_BY_ID`

Retrieve a specific Google Ads campaign by ID, including its ad groups and ad content. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_id` | string | Yes | Ad identifier |
| `is_draft` | boolean | No | Is draft |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get conversion by ID

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_GET_CONVERSION_BY_ID`

Retrieve a specific Google Ads conversion action by ID Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Is draft |
| `conversion_id` | integer | Yes | Numeric Google Ads conversion action ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get conversion goals

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_GET_CONVERSION_GOALS`

Retrieve Google Ads conversion goals for a location Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Is draft |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get conversions

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_GET_CONVERSIONS`

Retrieve Google Ads conversion actions for a location Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("AD_MANAGER" | "AD_WORDS") | No | Google Ads integration type. Defaults to AD_MANAGER; use AD_WORDS only for a legacy AdWords connection. |
| `limit` | integer | No | Page size for AD_MANAGER results (1-100). Supplying it enables the paginated response envelope. |
| `category` | string ("DEFAULT" | "PAGE_VIEW" | "PURCHASE" | "SIGNUP" | "LEAD" | "DOWNLOAD" | "ADD_TO_CART" | "BEGIN_CHECKOUT" | "SUBSCRIBE_PAID" | "PHONE_CALL_LEAD" | "IMPORTED_LEAD" | "SUBMIT_LEAD_FORM" | "BOOK_APPOINTMENT" | "REQUEST_QUOTE" | "GET_DIRECTIONS" | "OUTBOUND_CLICK" | "CONTACT" | "ENGAGEMENT" | "STORE_VISIT" | "STORE_SALE" | "QUALIFIED_LEAD" | "CONVERTED_LEAD") | No | Conversion category |
| `end_date` | string | No | Filter end date |
| `page_token` | string | No | Opaque `paging.next` token returned by the previous paginated AD_MANAGER call. |
| `start_date` | string | No | Filter start date |
| `conversion_type` | string ("UPLOAD_CLICKS" | "UPLOAD_CALLS" | "WEBPAGE" | "LEAD_FORM_SUBMIT" | "AD_CALL") | No | Optional conversion source filter for AD_MANAGER connections; ignored by legacy AD_WORDS connections. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get entities

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_GET_ENTITY`

Retrieve Google-side campaigns, ad groups, or ads through the current AD_MANAGER path. HighLevel draft campaigns are not returned; retain the ID returned by UPSERT_CAMPAIGN and use GET_CAMPAIGN_BY_ID to read a draft. ADGROUP requires campaign_id, while AD requires ad_group_id or campaign_id. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("AD_MANAGER" | "INTEGRATION") | Yes | Google connection path. Use AD_MANAGER for the current Google Ads integration; INTEGRATION is the legacy AdWords path. |
| `end_date` | string | No | Filter end date |
| `search_id` | string | No | Comma-separated numeric Google Ads IDs to retrieve. |
| `start_date` | string | No | Filter start date |
| `ad_group_id` | string | No | Numeric Google Ads ad group ID (for example 9876543210), not a HighLevel ID. Use this or campaign_id when entity_type is AD. |
| `campaign_id` | string | No | Numeric Google Ads campaign ID (for example 1234567890), not a HighLevel draft campaign ID. Required when entity_type is ADGROUP; may also scope AD results. |
| `entity_type` | string ("CAMPAIGN" | "ADGROUP" | "AD") | Yes | Entity type |
| `selected_ad_account_id` | string | No | Selected ad account ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get keyword ideas

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_GET_KEYWORD_IDEAS`

Retrieve keyword suggestions for Google Ads campaigns Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | Target URL |
| `is_draft` | boolean | No | Is draft |
| `keywords` | array | No | Seed keywords |
| `locations` | array | No | Numeric geo target IDs from the id field returned by SEARCH_AD_TARGETING, not geoTargetConstants resource names or country codes. |
| `language_code` | string | No | Google languageConstants resource name from the resourceName field returned by SEARCH_AD_TARGETING with type=language; a bare language code or numeric ID is rejected. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get segment by ID

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_GET_SEGMENT_BY_ID`

Retrieve a specific Google Ads audience segment by ID Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("CUSTOM_SEGMENTS" | "DATA_SEGMENTS") | Yes | Segment type |
| `segment_id` | string | Yes | Numeric Google Ads segment ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get segments

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_GET_SEGMENTS`

Retrieve Google Ads audience segments for a location Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("CUSTOM_SEGMENTS" | "DATA_SEGMENTS" | "ALL") | No | Segment type |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get target interests

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_GET_TARGET_INTERESTS`

Retrieve affinity and in-market audience options for Google Ads targeting. IN_MARKET with SEARCH or DISPLAY exceeds the platform response-size limit (413); use another supported channel when possible. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("AFFINITY" | "IN_MARKET") | Yes | Interest type |
| `advertising_channel_type` | string ("SEARCH" | "DISPLAY" | "SHOPPING" | "HOTEL" | "VIDEO" | "MULTI_CHANNEL" | "LOCAL" | "SMART" | "PERFORMANCE_MAX" | "LOCAL_SERVICES" | "DEMAND_GEN" | "TRAVEL") | Yes | Google Ads advertising channel type |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Publish ad

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_PUBLISH_AD`

Publish a Google ad and push it live Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_id` | string | Yes | Ad identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert assets

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_UPSERT_ASSETS`

Create or update Google Ads creative assets. Include resourceName to update an existing CALL or SITELINK asset. On SITELINK updates, resend description1 and description2 because HighLevel clears either omitted description. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("CALL" | "SITELINK") | Yes | Asset type to create or update |
| `payload` | string | Yes | Type-specific CALL or SITELINK payload. For SITELINK updates, include resourceName. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert audience

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_UPSERT_AUDIENCE`

Create or update a Google Ads combined audience. dimensions is required; a minimal live-proven value is {"genders":["FEMALE"]}. HighLevel exposes no delete endpoint for these audiences. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Audience name |
| `dimensions` | object | Yes | Required audience dimensions. A minimal live-proven value is a genders array. |
| `resource_name` | string | No | Audience resource name |
| `exclusion_dimension` | object | No | Exclusion dimensions |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert Google campaign

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_UPSERT_CAMPAIGN`

Create or update a full Google Ads campaign structure. HighLevel exposes no campaign delete endpoint; archive a draft by updating it with publishing_status=ARCHIVED. GET_ENTITY only lists Google-side entities and will not find HighLevel drafts, so retain the returned HighLevel id for GET_CAMPAIGN_BY_ID. HighLevel currently does not persist maximum_cpc or advanced_options. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Campaign identifier |
| `name` | string | Yes | Campaign name |
| `assets` | object | No | Campaign assets |
| `budget` | object | No | Campaign budget |
| `source` | string | No | Traffic source |
| `audience` | object | No | Campaign audience targeting |
| `ad_groups` | array | No | Campaign ad groups |
| `goal_type` | string ("WEBSITE_TRAFFIC" | "LEAD") | No | Goal type |
| `created_at` | string | No | Read-only campaign creation timestamp. |
| `updated_at` | string | No | Read-only campaign update timestamp. |
| `ad_schedule` | array | No | Ad schedule rules |
| `maximum_cpc` | number | No | Maximum CPC bid in micros |
| `campaign_goal` | object | No | Google campaign goal config, distinct from goal_type. |
| `advanced_options` | object | No | Advanced options |
| `bidding_strategy` | object | No | Bidding strategy config |
| `network_settings` | object | No | Network settings |
| `publishing_status` | string ("DRAFT" | "SCHEDULED" | "PUBLISHED" | "PUBLISHING" | "FAILED" | "IN_REVIEW" | "PAUSED" | "ARCHIVED" | "WITH_ISSUES" | "REJECTED") | No | Publishing status |
| `google_campaign_id` | string | No | Google Ads campaign resource ID |
| `is_eu_political_ads` | boolean | No | EU political ads flag |
| `unpublished_changes` | boolean | No | Whether the campaign has unpublished changes |
| `google_ad_account_id` | string | No | Google Ad account identifier |
| `advertising_channel_type` | string ("SEARCH" | "DISCOVERY" | "DISPLAY" | "HOTEL" | "LOCAL" | "MULTI_CHANNEL" | "PERFORMANCE_MAX" | "DEMAND_GEN") | Yes | Advertising channel |
| `advertising_channel_sub_type` | string | No | Channel sub type |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert conversion

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_UPSERT_CONVERSION`

Create or update a Google Ads conversion action. On create, Google may replace GOOGLE_ADS_LAST_CLICK with GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN; read the action back before relying on the attribution model. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Conversion name |
| `type` | string | Yes | Conversion action type; HighLevel supports upload-click conversions |
| `category` | string ("DEFAULT" | "PAGE_VIEW" | "PURCHASE" | "SIGNUP" | "ADD_TO_CART" | "BEGIN_CHECKOUT" | "SUBSCRIBE_PAID" | "PHONE_CALL_LEAD" | "SUBMIT_LEAD_FORM" | "BOOK_APPOINTMENT" | "REQUEST_QUOTE" | "GET_DIRECTIONS" | "OUTBOUND_CLICK" | "CONTACT" | "ENGAGEMENT" | "QUALIFIED_LEAD" | "CONVERTED_LEAD") | Yes | Google Ads conversion action category. For lead tracking, use SUBMIT_LEAD_FORM or QUALIFIED_LEAD. |
| `conversion_id` | string | No | Numeric Google Ads conversion action ID to update. It is serialized as the string required by this endpoint. Omit it when creating. |
| `counting_type` | string ("ONE_PER_CLICK" | "MANY_PER_CLICK") | Yes | How conversions are counted per interaction |
| `value_settings` | object | Yes | Value settings that control how monetary value is attributed to conversions |
| `attribution_model` | string ("GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN" | "GOOGLE_ADS_LAST_CLICK") | Yes | Attribution model used to credit conversions |
| `click_through_window` | integer | Yes | Click-through conversion window from 1 to 90 days |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert segment

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_GOOGLE_UPSERT_SEGMENT`

Create or update a Google Ads audience segment Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Segment identifier. Updates CUSTOM_SEGMENTS only. For CUSTOMER_MATCH and LOOKALIKE, HighLevel ignores this ID and every call creates a new list; LOOKALIKE lists cannot be deleted with DELETE_SEGMENT. |
| `name` | string | Yes | Segment name |
| `type` | string ("CUSTOM_SEGMENTS" | "WEBSITE_VISITOR" | "CUSTOMER_MATCH" | "LOOKALIKE") | Yes | Segment type |
| `status` | string ("ENABLED" | "REMOVED") | No | Segment status |
| `members` | array | No | Segment members — keywords, URLs, or apps that define the custom segment |
| `description` | string | No | Segment description |
| `country_codes` | array | No | Country codes |
| `expansion_level` | string ("BALANCED" | "BROAD" | "NARROW") | No | Expansion level |
| `membership_status` | string ("OPEN" | "CLOSED") | No | Membership status |
| `seed_user_list_ids` | array | No | Numeric seed user-list IDs |
| `custom_audience_type` | string ("AUTO" | "INTEREST" | "PURCHASE_INTENT" | "SEARCH") | No | Google custom-audience subtype for CUSTOM_SEGMENTS; defaults to AUTO when omitted. |
| `membership_life_span` | number | No | Membership life span |
| `rule_based_user_list` | object | No | Rule-based user list config |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create lead form

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_LI_CREATE_LEAD_FORM`

Create a new LinkedIn lead gen form for an ad account Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Form name |
| `owner` | object | Yes | Form owner |
| `state` | string | Yes | Form state |
| `content` | object | Yes | LinkedIn form content with questions, localized headline, legalInfo (consents and privacyPolicyUrl), and postSubmissionInfo.callToAction.callToActionLabel. |
| `is_draft` | boolean | No | Is draft |
| `account_id` | string | Yes | Identifier required by the endpoint path (accountId). |
| `hidden_fields` | array | No | Hidden fields |
| `creation_locale` | object | Yes | Creation locale |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get ad campaign group

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_LI_GET_CAMPAIGN_GROUP`

Retrieve a LinkedIn ad campaign group by ID Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_id` | string | Yes | Ad identifier |
| `is_draft` | boolean | No | Is draft |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get campaign group reporting

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_LI_GET_CAMPAIGN_GROUP_REPORTING`

Retrieve reporting metrics for a specific LinkedIn campaign group Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | array | No | Reporting metrics to return. Supply a list containing one or more supported field names; the tool serializes the list for HighLevel. |
| `end_date` | string | Yes | End date in yyyy-mm-dd format |
| `start_date` | string | Yes | Start date in yyyy-mm-dd format |
| `campaign_group_id` | string | Yes | HighLevel MongoDB campaign-group ID (`id`), not LinkedIn's numeric `adCampaignGroupId`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get lead forms

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_LI_GET_LEAD_FORMS`

Retrieve LinkedIn lead gen forms for an ad account Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Is draft |
| `account_id` | string | Yes | Account identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Publish ad campaign group

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_LI_PUBLISH_CAMPAIGN_GROUP`

Publish a LinkedIn ad campaign group and push it live Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_id` | string | Yes | Ad identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update ad status

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_LI_UPDATE_AD_STATUS`

Pause or resume a LinkedIn ad, campaign, or ad group Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("adGroup" | "adCampaign" | "ad") | Yes | Ad object type |
| `ad_id` | string | Yes | Ad identifier |
| `is_draft` | boolean | No | Is draft |
| `operation_type` | string ("PAUSED" | "ARCHIVED" | "RESUME") | Yes | Update operation |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert ad campaign group

**Slug:** `HIGHLEVEL_LOCATION_AD_PUBLISHING_LI_UPSERT_CAMPAIGN_GROUP`

Create or update a LinkedIn ad campaign group with campaigns and ads Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | HighLevel MongoDB campaign-group ID. Use this internal `id` when updating an existing group; it is distinct from LinkedIn's numeric `adCampaignGroupId`. |
| `meta` | object | No | Additional metadata |
| `name` | string | No | Campaign group name. Required when creating a group without an existing HighLevel `id`. |
| `budget` | object | No | Campaign group budget object with budgetType (DAILY or LIFETIME), amount, and optional scheduleStartDate and scheduleEndDate. |
| `ad_campaigns` | array | No | Child ad campaigns. Each campaign can include name, publishingStatus, unitCost, mediaType, ads, and audience. Audience geoLocations items use {name, urn, facetUrn, selectionType}; targetAudience.include is an array of arrays whose items use {urn, name, categoryName, facet}. |
| `objective_type` | string ("LEAD_GENERATION" | "WEBSITE_VISIT") | No | Campaign group objective |
| `linked_in_error` | string | No | LinkedIn API error message |
| `publishing_status` | string ("DRAFT" | "SCHEDULED" | "PUBLISHED" | "PUBLISHING" | "FAILED" | "IN_REVIEW" | "PAUSED" | "ARCHIVED" | "WITH_ISSUES" | "REJECTED") | No | Publishing status |
| `unpublished_changes` | boolean | No | Whether the campaign group has unpublished changes |
| `ad_campaign_group_id` | string | No | LinkedIn's numeric campaign group resource ID assigned after publication; this is not the HighLevel MongoDB `id`. |
| `custom_value_mappings` | object | No | User-provided overrides for custom_values merge tags used in ad copy. |
| `ad_budget_optimization` | string ("MAXIMUM_DELIVERY" | "COST_CAP") | No | Ad budget optimization mode |
| `linked_in_ad_account_id` | string | No | LinkedIn ad account identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Affiliate

**Slug:** `HIGHLEVEL_LOCATION_AFFILIATE_MANAGER_GET_AFFILIATE`

Retrieve a single affiliate by id for a location. Location PITs must be provisioned with the HighLevel permission: `affiliate-manager.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `affiliate_id` | string | Yes | Affiliate Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Affiliates

**Slug:** `HIGHLEVEL_LOCATION_AFFILIATE_MANAGER_LIST_AFFILIATES`

Retrieve the list of affiliates for a location. Location PITs must be provisioned with the HighLevel permission: `affiliate-manager.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of matching affiliates to skip. |
| `limit` | integer | No | Maximum number of records to return. Maximum allowed value is 100. |
| `query` | string | No | Case-insensitive affiliate name or email search text. |
| `active` | string ("true" | "false") | No | Filter by active (`true`) or inactive (`false`) affiliates. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `to_date` | string | No | Inclusive upper date bound in YYYY-MM-DD format. |
| `from_date` | string | No | Inclusive lower date bound in YYYY-MM-DD format. |
| `campaign_id` | string | No | Return affiliates assigned to this campaign ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Commissions

**Slug:** `HIGHLEVEL_LOCATION_AFFILIATE_MANAGER_LIST_COMMISSIONS`

Retrieve the list of commissions for a location. Location PITs must be provisioned with the HighLevel permission: `affiliate-manager.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of matching commissions to skip. |
| `limit` | integer | No | Maximum number of records to return. Maximum allowed value is 100. |
| `query` | string | No | Case-insensitive commission search text. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `status` | string ("pending" | "approved" | "paid") | No | Commission status: pending, approved, or paid. |
| `to_date` | string | No | Inclusive upper date bound in YYYY-MM-DD format. |
| `from_date` | string | No | Inclusive lower date bound in YYYY-MM-DD format. |
| `campaign_id` | string | No | Return commissions attributed to this campaign ID. |
| `affiliate_id` | string | No | Return commissions earned by this affiliate ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Payouts

**Slug:** `HIGHLEVEL_LOCATION_AFFILIATE_MANAGER_LIST_PAYOUTS`

Retrieve the list of payouts for a location. Location PITs must be provisioned with the HighLevel permission: `affiliate-manager.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end` | string | No | Inclusive upper bound as YYYY-MM-DD or a timezone-qualified ISO 8601 date-time. |
| `skip` | integer | No | Number of matching payouts to skip. |
| `limit` | integer | No | Maximum payouts to return. |
| `query` | string | No | Case-insensitive payout search text. |
| `start` | string | No | Inclusive lower bound as YYYY-MM-DD or a timezone-qualified ISO 8601 date-time. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `status` | string ("pending" | "paid") | No | Payout status: pending or paid. |
| `campaign_id` | string | No | Return payouts attributed to this campaign ID. |
| `affiliate_id` | string | No | Return payouts for this affiliate ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Agent

**Slug:** `HIGHLEVEL_LOCATION_AGENT_STUDIO_CREATE_AGENT`

Create an Agent Studio agent with an initial staging version. Location PITs must be provisioned with the HighLevel permission: `agent-studio.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Name of the agent. |
| `edges` | array | No | Deprecated top-level edge IDs; prefer version.edges. |
| `nodes` | array | No | Deprecated top-level node IDs; prefer version.nodes. |
| `source` | string | No | Optional provider source identifier. |
| `status` | string ("active" | "inactive" | "archived") | Yes | Initial status of the agent. |
| `version` | object | Yes | Initial staging version, including its nodes, edges, variables, and configuration. |
| `agency_id` | string | No | Agency ID associated with the agent. |
| `author_id` | string | No | ID of the agent author. |
| `author_name` | string | No | Name of the agent author. |
| `description` | string | No | Description of the agent. |
| `location_id` | string | No | Location ID injected from the connected account; callers should omit it. |
| `author_email` | string | No | Email address of the agent author. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Agent

**Slug:** `HIGHLEVEL_LOCATION_AGENT_STUDIO_DELETE_AGENT`

Permanently delete an Agent Studio agent and all of its versions. Location PITs must be provisioned with the HighLevel permission: `agent-studio.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string | No | Optional provider source identifier. |
| `agent_id` | string | Yes | Agent ID to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Execute Agent

**Slug:** `HIGHLEVEL_LOCATION_AGENT_STUDIO_EXECUTE_AGENT`

Execute an active Agent Studio agent and return its complete non-streaming response. Execution may invoke the agent's configured actions and cause external side effects. Location PITs must be provisioned with the HighLevel permission: `agent-studio.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string | No | Optional provider source identifier. |
| `message` | string | Yes | Message to send to the agent. |
| `agent_id` | string | Yes | Active agent ID to execute. |
| `contact_id` | string | No | Contact ID whose data should be hydrated for this execution. |
| `version_id` | string | No | Published version ID; omit to use the latest production version. |
| `attachments` | array | No | Message attachments, each with a type and imageUrl. |
| `location_id` | string | No | Location ID injected from the connected account; callers should omit it. |
| `execution_id` | string | No | Prior execution ID to continue a conversation; omit for the first message. |
| `input_variables` | object | No | Input variables matching the agent configuration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Agent

**Slug:** `HIGHLEVEL_LOCATION_AGENT_STUDIO_GET_AGENT_BY_ID`

Get one active Agent Studio agent and all of its non-deleted versions. Location PITs must be provisioned with the HighLevel permission: `agent-studio.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string | No | Optional provider source identifier. |
| `agent_id` | string | Yes | Agent ID to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Agents

**Slug:** `HIGHLEVEL_LOCATION_AGENT_STUDIO_GET_AGENTS`

List active Agent Studio agents for the connected Location, one page at a time. Location PITs must be provisioned with the HighLevel permission: `agent-studio.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of agents to return on this page. |
| `cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |
| `offset` | integer | No | Zero-based starting offset for the first page. |
| `source` | string | No | Optional provider source identifier. |
| `is_published` | boolean | No | Set to true to return only agents with a published production version. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Promote to Production

**Slug:** `HIGHLEVEL_LOCATION_AGENT_STUDIO_PROMOTE_AND_PUBLISH`

Irreversibly promote an Agent Studio draft version to production. Location PITs must be provisioned with the HighLevel permission: `agent-studio.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string | No | Optional provider source identifier. |
| `user_id` | string | No | ID of the user performing the promotion. |
| `user_name` | string | No | Name of the user performing the promotion. |
| `user_email` | string | No | Email of the user performing the promotion. |
| `version_id` | string | Yes | Draft version ID to promote to production. |
| `location_id` | string | No | Location ID injected from the connected account; callers should omit it. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Agent Metadata

**Slug:** `HIGHLEVEL_LOCATION_AGENT_STUDIO_UPDATE_AGENT_METADATA`

Update an Agent Studio agent's name, description, or status. Location PITs must be provisioned with the HighLevel permission: `agent-studio.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New agent name. |
| `source` | string | No | Optional provider source identifier. |
| `status` | string ("active" | "inactive" | "archived") | No | New agent status. |
| `agent_id` | string | Yes | Agent ID to update. |
| `description` | string | No | New agent description. |
| `location_id` | string | No | Location ID injected from the connected account; callers should omit it. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Agent

**Slug:** `HIGHLEVEL_LOCATION_AGENT_STUDIO_UPDATE_AGENT_VERSION`

Update a specific Agent Studio version. HighLevel's PATCH currently replaces nodes, edges, and variables with empty shells; set graphs at create time and update only version_name, description, or global_config here. Location PITs must be provisioned with the HighLevel permission: `agent-studio.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `edges` | array | No | Do not send: HighLevel currently wipes edge contents and stores empty shells when this field is patched. |
| `nodes` | array | No | Do not send: HighLevel currently wipes node contents and stores empty shells when this field is patched. |
| `source` | string | No | Optional provider source identifier. |
| `user_id` | string | No | ID of the user performing the update. |
| `user_name` | string | No | Name of the user performing the update. |
| `version_id` | string | Yes | Version ID to update. |
| `description` | string | No | New version description. |
| `location_id` | string | No | Location ID injected from the connected account; callers should omit it. |
| `version_name` | string | No | New version name. |
| `global_config` | object | No | Global prompts and workflow settings. |
| `input_variables` | array | No | Do not send: HighLevel currently wipes variable contents and stores empty shells when this field is patched. |
| `global_variables` | array | No | Do not send: HighLevel currently wipes variable contents and stores empty shells when this field is patched. |
| `runtime_variables` | array | No | Do not send: HighLevel currently wipes variable contents and stores empty shells when this field is patched. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create association

**Slug:** `HIGHLEVEL_LOCATION_ASSOCIATIONS_CREATE_ASSOCIATION`

Create a user-defined association between supported HighLevel object types. Location PITs must be provisioned with the HighLevel permission: `associations.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `key` | string | Yes | Unique association key. |
| `location_id` | string | No | Connected HighLevel Location ID. |
| `first_object_key` | string | Yes | Key configuration for the first object. |
| `second_object_key` | string | Yes | Key configuration for the second object. |
| `first_object_label` | string | Yes | Label configuration for the first object. |
| `second_object_label` | string | Yes | Label configuration for the second object. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create relation

**Slug:** `HIGHLEVEL_LOCATION_ASSOCIATIONS_CREATE_RELATION`

Create a relation between two records in the association definition's canonical first-object then second-object order; reversing the records is invalid. Location PITs must be provisioned with the HighLevel permission: `associations/relation.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `location_id` | string | No | Connected HighLevel Location ID. |
| `association_id` | string | Yes | ID of the association definition. |
| `first_record_id` | string | Yes | ID of the record for the association's first object. |
| `second_record_id` | string | Yes | ID of the record for the association's second object. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete association

**Slug:** `HIGHLEVEL_LOCATION_ASSOCIATIONS_DELETE_ASSOCIATION`

Permanently delete a user-defined association. HighLevel refuses deletion while relations remain; first list them with GET_RELATIONS_BY_RECORD_ID and remove each with DELETE_RELATION. Location PITs must be provisioned with the HighLevel permission: `associations.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `association_id` | string | Yes | User-defined association ID to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete relation

**Slug:** `HIGHLEVEL_LOCATION_ASSOCIATIONS_DELETE_RELATION`

Permanently delete one relation between associated records. Location PITs must be provisioned with the HighLevel permission: `associations/relation.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `relation_id` | string | Yes | Relation ID to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List associations

**Slug:** `HIGHLEVEL_LOCATION_ASSOCIATIONS_FIND_ASSOCIATIONS`

Return a page of association definitions for the connected Location. Location PITs must be provisioned with the HighLevel permission: `associations.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of associations to skip. |
| `limit` | integer | No | Maximum associations to return. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get association by ID

**Slug:** `HIGHLEVEL_LOCATION_ASSOCIATIONS_GET_ASSOCIATION_BY_ID`

Get a system- or user-defined association by its ID. Location PITs must be provisioned with the HighLevel permission: `associations.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `association_id` | string | Yes | System- or user-defined association ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get associations by object key

**Slug:** `HIGHLEVEL_LOCATION_ASSOCIATIONS_GET_ASSOCIATION_BY_OBJECT_KEYS`

Get association definitions for a contact, opportunity, or custom-object key. Location PITs must be provisioned with the HighLevel permission: `associations.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `object_key` | string | Yes | Object key whose association definitions to return. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get association by key name

**Slug:** `HIGHLEVEL_LOCATION_ASSOCIATIONS_GET_ASSOCIATION_KEY_BY_KEY_NAME`

Get a standard or user-defined association definition by its key name. Location PITs must be provisioned with the HighLevel permission: `associations.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `key_name` | string | Yes | Standard or user-defined association key name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get relations by record ID

**Slug:** `HIGHLEVEL_LOCATION_ASSOCIATIONS_GET_RELATIONS_BY_RECORD_ID`

Return a page of relations for a record, optionally filtered by association IDs. Results can include HighLevel system-defined opportunity/contact relations as well as user-defined relations. Location PITs must be provisioned with the HighLevel permission: `associations/relation.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of relations to skip. |
| `limit` | integer | No | Maximum relations to return. |
| `record_id` | string | Yes | Record ID whose relations to return. |
| `association_ids` | array | No | Optional association definition IDs to include. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update association

**Slug:** `HIGHLEVEL_LOCATION_ASSOCIATIONS_UPDATE_ASSOCIATION`

Update the first- and second-object labels of an association definition. Location PITs must be provisioned with the HighLevel permission: `associations.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `association_id` | string | Yes | Association definition ID to update. |
| `first_object_label` | string | Yes | Updated label configuration for the first object. |
| `second_object_label` | string | Yes | Updated label for the second object. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check blog URL slug

**Slug:** `HIGHLEVEL_LOCATION_BLOGS_CHECK_URL_SLUG_EXISTS`

Check whether a URL slug is already used by a blog post in the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `blogs/check-slug.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | No | Existing blog post ID to exclude when checking an edited post. |
| `url_slug` | string | Yes | URL slug to check before publishing a blog post. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create blog post

**Slug:** `HIGHLEVEL_LOCATION_BLOGS_CREATE_BLOG_POST`

Create a blog post in the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `blogs/post.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | No | Optional tags for the post. |
| `title` | string | Yes | Blog post title. |
| `author` | string | Yes | Author ID returned by the blog authors endpoint. |
| `status` | string ("DRAFT" | "PUBLISHED" | "SCHEDULED" | "ARCHIVED") | Yes | Publication status for the blog post. |
| `blog_id` | string | Yes | Blog ID from the blog site dashboard. |
| `raw_html` | string | Yes | HTML content of the blog post. |
| `url_slug` | string | Yes | URL slug for the blog post. |
| `image_url` | string | Yes | Direct URL of the blog post image; use a URL ending in an image file extension. |
| `categories` | array | Yes | Category IDs to associate with the post. |
| `description` | string | Yes | Short description of the blog post. |
| `published_at` | string | Yes | Publication timestamp in ISO 8601 format with a timezone offset. |
| `canonical_link` | string | No | Optional canonical URL for the blog post. |
| `image_alt_text` | string | Yes | Alternative text for the blog post image. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List blog authors

**Slug:** `HIGHLEVEL_LOCATION_BLOGS_GET_ALL_BLOG_AUTHORS_BY_LOCATION`

Return one offset-based page of blog authors for the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `blogs/author.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | Yes | Number of authors to return. |
| `offset` | integer | Yes | Number of authors to skip. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List blog categories

**Slug:** `HIGHLEVEL_LOCATION_BLOGS_GET_ALL_CATEGORIES_BY_LOCATION`

Return one offset-based page of blog categories for the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `blogs/category.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | Yes | Number of categories to return. |
| `offset` | integer | Yes | Number of categories to skip. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List blog posts

**Slug:** `HIGHLEVEL_LOCATION_BLOGS_GET_BLOG_POST`

Return one offset-based page of posts for a blog in the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `blogs/posts.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | Yes | Number of posts to return (1-50). |
| `offset` | integer | Yes | Number of posts to skip. |
| `status` | string ("ALL" | "PUBLISHED" | "SCHEDULED" | "SCHEDULE_FAILED" | "ARCHIVED" | "DELETED" | "DRAFT") | No | Optional publication status filter. |
| `blog_id` | string | Yes | Blog ID whose posts to return. |
| `search_term` | string | No | Optional post title search term. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List blogs

**Slug:** `HIGHLEVEL_LOCATION_BLOGS_GET_BLOGS`

Return one offset-based page of blogs for the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `blogs/list.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | Yes | Number of blogs to skip. |
| `limit` | integer | Yes | Number of blogs to return. |
| `search_term` | string | No | Optional blog name search term. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update blog post

**Slug:** `HIGHLEVEL_LOCATION_BLOGS_UPDATE_BLOG_POST`

Update an existing blog post in the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `blogs/post-update.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | No | Optional tags for the post. |
| `title` | string | Yes | Blog post title. |
| `author` | string | Yes | Author ID returned by the blog authors endpoint. |
| `status` | string ("DRAFT" | "PUBLISHED" | "SCHEDULED" | "ARCHIVED") | Yes | Publication status for the blog post. |
| `blog_id` | string | Yes | Blog ID from the blog site dashboard. |
| `post_id` | string | Yes | Blog post ID to update. |
| `raw_html` | string | Yes | HTML content of the blog post. |
| `url_slug` | string | Yes | URL slug for the blog post. |
| `image_url` | string | Yes | URL of the blog post image. |
| `categories` | array | Yes | Category IDs to associate with the post. |
| `word_count` | number | Yes | Word count for the blog post. |
| `description` | string | Yes | Short description of the blog post. |
| `published_at` | string | Yes | Publication timestamp in ISO 8601 format with a timezone offset. |
| `canonical_link` | string | No | Optional canonical URL for the blog post. |
| `image_alt_text` | string | Yes | Alternative text for the blog post image. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a new brand board

**Slug:** `HIGHLEVEL_LOCATION_BRAND_BOARDS_CREATE_BRAND_BOARD`

Create a brand board with logos, colors, and fonts in the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `brand-boards/design-kit.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | Website URL from which to extract design assets. |
| `name` | string | Yes | Brand board name. |
| `type` | string ("template" | "blank" | "snapshot" | "url") | No | How the brand board is sourced. |
| `fonts` | array | No | Brand fonts. |
| `logos` | array | No | Brand logos. |
| `colors` | array | No | Brand colors. |
| `default` | boolean | No | Whether to make this the default brand board. |
| `parent_id` | string | No | Parent media folder ID. |
| `brand_board_id` | string | No | Source brand board ID to copy. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Brand Voice

**Slug:** `HIGHLEVEL_LOCATION_BRAND_BOARDS_CREATE_BRAND_VOICE`

Create a brand voice in the connected location. Location PITs require `brand-boards/voices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | Website URL; required for type 'url'. |
| `name` | string | No | Brand voice name. |
| `type` | string ("manual" | "url" | "description") | Yes | Creation source. |
| `answers` | object | No | Answers; required for type 'manual'. |
| `description` | string | No | Company description; required for type 'description' and must contain at least 50 words. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a Brand Board

**Slug:** `HIGHLEVEL_LOCATION_BRAND_BOARDS_DELETE_BRAND_BOARD`

Delete a brand board from the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `brand-boards/design-kit.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Brand board ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Brand Voice

**Slug:** `HIGHLEVEL_LOCATION_BRAND_BOARDS_DELETE_BRAND_VOICE`

Delete a brand voice after explicit confirmation. Location PITs require `brand-boards/voices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `brand_voice_id` | string | Yes | Brand voice ID. |
| `confirm_change` | boolean | Yes | Must be true to confirm this destructive or business-affecting change. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Brand Board

**Slug:** `HIGHLEVEL_LOCATION_BRAND_BOARDS_GET_BRAND_BOARD_BY_ID`

Retrieve one brand board by ID from the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `brand-boards/design-kit.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Brand board ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Brand Boards

**Slug:** `HIGHLEVEL_LOCATION_BRAND_BOARDS_GET_BRAND_BOARDS_BY_LOCATION`

Return one page of brand boards for the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `brand-boards/design-kit.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum brand boards to return. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `offset` | integer | No | Number of brand boards to skip. |
| `search` | string | No | Search term for brand board names. |
| `deleted` | boolean | No | Whether to include deleted brand boards. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Brand Voice

**Slug:** `HIGHLEVEL_LOCATION_BRAND_BOARDS_GET_BRAND_VOICE`

Get a brand voice from the connected location. Location PITs require `brand-boards/voices.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `brand_voice_id` | string | Yes | Brand voice ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Brand Voices

**Slug:** `HIGHLEVEL_LOCATION_BRAND_BOARDS_LIST_BRAND_VOICES`

Return one page of brand voices for the connected location. Location PITs require `brand-boards/voices.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum voices to return. |
| `cursor` | integer | No | Offset returned by a previous call. |
| `offset` | integer | No | Number of voices to skip. |
| `search` | string | No | Brand voice name search text. |
| `deleted` | boolean | No | Whether to include deleted voices. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set Default Brand Voice

**Slug:** `HIGHLEVEL_LOCATION_BRAND_BOARDS_SET_DEFAULT_BRAND_VOICE`

Set the location's default brand voice, replacing the previous default, after explicit confirmation. Location PITs require `brand-boards/voices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `brand_voice_id` | string | Yes | Brand voice ID. |
| `confirm_change` | boolean | Yes | Must be true to confirm this destructive or business-affecting change. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update a Brand Board

**Slug:** `HIGHLEVEL_LOCATION_BRAND_BOARDS_UPDATE_BRAND_BOARD`

Update an existing brand board in the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `brand-boards/design-kit.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Brand board ID. |
| `name` | string | No | Updated brand board name. |
| `fonts` | array | No | Replacement brand fonts. |
| `logos` | array | No | Replacement brand logos. |
| `colors` | array | No | Replacement brand colors. |
| `default` | boolean | No | Whether to make this the default brand board. |
| `parent_id` | string | No | Parent media folder ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Brand Voice

**Slug:** `HIGHLEVEL_LOCATION_BRAND_BOARDS_UPDATE_BRAND_VOICE`

Update a brand voice after explicit confirmation. Location PITs require `brand-boards/voices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Updated brand voice name. |
| `answers` | object | No | Complete replacement set of brand voice answers; omitted answer fields are removed. |
| `brand_voice_id` | string | Yes | Brand voice ID. |
| `confirm_update` | boolean | Yes | Must be true to confirm changing this brand voice. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Business

**Slug:** `HIGHLEVEL_LOCATION_BUSINESSES_CREATE_BUSINESS`

Create a business in the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `businesses.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `city` | string | No | Business city. |
| `name` | string | Yes | Business name. |
| `email` | string | No | Business email address. |
| `phone` | string | No | Business phone number. |
| `state` | string | No | Business state or region. |
| `address` | string | No | Business street address. |
| `country` | string | No | Business country. |
| `website` | string | No | Business website. |
| `description` | string | No | Description of the business. |
| `postal_code` | string | No | Business postal code. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Business

**Slug:** `HIGHLEVEL_LOCATION_BUSINESSES_DELETE_BUSINESS`

Permanently delete a business by ID. Location PITs must be provisioned with the HighLevel permission: `businesses.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `business_id` | string | Yes | ID of the business to permanently delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Business

**Slug:** `HIGHLEVEL_LOCATION_BUSINESSES_GET_BUSINESS`

Retrieve one business by ID. Location PITs must be provisioned with the HighLevel permission: `businesses.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `business_id` | string | Yes | ID of the business to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Businesses by Location

**Slug:** `HIGHLEVEL_LOCATION_BUSINESSES_GET_BUSINESSES_BY_LOCATION`

Return one offset-paginated page of businesses for the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `businesses.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Zero-based result offset for the first page. |
| `limit` | integer | No | Number of businesses to return per page. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Business

**Slug:** `HIGHLEVEL_LOCATION_BUSINESSES_UPDATE_BUSINESS`

Update editable details of an existing business by ID. Location PITs must be provisioned with the HighLevel permission: `businesses.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `city` | string | No | Business city. |
| `name` | string | No | Business name. |
| `email` | string | No | Business email address. |
| `phone` | string | No | Business phone number. |
| `state` | string | No | Business state or region. |
| `address` | string | No | Business street address. |
| `country` | string | No | Business country. |
| `website` | string | No | Business website. |
| `business_id` | string | Yes | ID of the business to update. |
| `description` | string | No | Description of the business. |
| `postal_code` | string | No | Business postal code. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Apply user availability schedule to a calendar

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_ADD_CALENDAR_TO_SCHEDULE`

Associate a calendar with a schedule. HighLevel may create an unnamed cloned schedule while changing the association. Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the schedule |
| `calendar_id` | string | Yes | Unique identifier of the team calendar to add to the schedule |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create appointment

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_CREATE_APPOINTMENT`

Create an appointment. Recurring appointments and calls with ignore_free_slot_validation require assigned_user_id. Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rrule` | string | No | RRULE as per the iCalendar (RFC 5545) specification for recurring events. DTSTART is not required, instance ids are calculated on the basis of startTime of the event. The rrule only be applied if ignoreFreeSlotValidation is true. |
| `title` | string | No | Title |
| `address` | string | No | Appointment Address |
| `end_time` | string | No | End Time |
| `to_notify` | boolean | No | If set to false, the automations will not run. Defaults to true |
| `contact_id` | string | Yes | Contact Id |
| `start_time` | string | Yes | Start Time |
| `calendar_id` | string | Yes | Calendar Id |
| `description` | string | No | Appointment Description |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `assigned_user_id` | string | No | Assigned User Id |
| `ignore_date_range` | boolean | No | If set to true, the minimum scheduling notice and date range would be ignored |
| `appointment_status` | string ("new" | "confirmed" | "cancelled" | "showed" | "noshow" | "invalid" | "completed" | "active") | No | Initial appointment status, such as confirmed, cancelled, or completed. |
| `meeting_location_id` | string | No | The unique identifier for the meeting location. - This value can be found in `calendar.locationConfigurations`or `calendar.teamMembers[].locationConfigurations` |
| `meeting_location_type` | string ("custom" | "zoom" | "gmeet" | "phone" | "address" | "ms_teams" | "google") | No | Meeting location type.  - If `address` is provided in the request body, the `meetingLocationType` defaults to **custom**. |
| `override_location_config` | boolean | No | Flag to override location config - **false** - If only `meetingLocationId` is provided - **true** - If only `meetingLocationType` is provided |
| `ignore_free_slot_validation` | boolean | No | If true the time slot validation would be avoided for any appointment creation (even the ignoreDateRange) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Note

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_CREATE_APPOINTMENT_NOTE`

Create an appointment note. HighLevel can store the note and then return an error for an invalid user_id, so use a verified user ID or omit it rather than retrying blindly. Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | Yes | Note body |
| `user_id` | string | No | HighLevel user ID to attribute as the note's author. |
| `appointment_id` | string | Yes | Appointment ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Block Slot

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_CREATE_BLOCK_SLOT`

Create a block slot for exactly one owner: assigned_user_id or calendar_id. Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Title |
| `end_time` | string | Yes | End time as ISO 8601 with a timezone offset. |
| `start_time` | string | Yes | Start time as ISO 8601 with a timezone offset. |
| `calendar_id` | string | No | Either calendarId or assignedUserId can be set, not both. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `assigned_user_id` | string | No | Either calendarId or assignedUserId can be set, not both. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Calendar

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_CREATE_CALENDAR`

Create calendar in a location. Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Display name of the calendar. |
| `slug` | string | No | URL-friendly identifier for the calendar. |
| `notes` | string | No | Internal notes associated with the calendar. |
| `form_id` | string | No | ID of the form used to collect booking details. |
| `group_id` | string | No | Group Id |
| `pixel_id` | string | No | Tracking pixel ID used on the booking page. |
| `is_active` | boolean | No | Should the created calendar be active or draft |
| `recurring` | object | No | Recurring booking frequency and conflict settings. |
| `event_type` | string ("RoundRobin_OptimizeForAvailability" | "RoundRobin_OptimizeForEqualDistribution") | No | Round-robin scheduling optimization strategy. |
| `guest_type` | string ("count_only" | "collect_detail") | No | Whether to count guests only or collect their details. |
| `open_hours` | array | No | Legacy availability hours. Each item must contain exactly one weekday (0=Sunday through 6=Saturday); repeat items for several days. Prefer the Availability APIs for new integrations. |
| `pre_buffer` | number | No | Pre-Buffer is additional time that can be added before an appointment, allowing for extra time to get ready |
| `alert_email` | string | No | Email address that receives booking alerts. |
| `description` | string | No | Description of the calendar shown to bookers. |
| `event_color` | string | No | Color used to display calendar events. |
| `event_title` | string | No | Title used for events created from bookings. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `slot_buffer` | number | No | Slot-Buffer is additional time that can be added after an appointment, allowing for extra time to wrap up |
| `widget_slug` | string | No | URL slug for the calendar's booking widget. |
| `widget_type` | string ("default" | "classic") | No | Calendar widget type. Choose "default" for "neo" and "classic" for "classic" layout. |
| `auto_confirm` | boolean | No | Automatically confirm new bookings. |
| `team_members` | array | No | Team members are required for calendars of type: Round Robin, Collective, Class, Service. Personal calendar must have exactly one team member. |
| `calendar_type` | string ("round_robin" | "event" | "class_booking" | "collective" | "service_booking" | "personal") | No | Booking and assignment model for the calendar. |
| `consent_label` | string | No | Consent text displayed on the booking form. |
| `notifications` | array | No | Deprecated! Please use 'Calendar Notifications APIs' instead. |
| `slot_duration` | number | No | This controls the duration of the meeting |
| `slot_interval` | number | No | Slot interval reflects the amount of time the between booking slots that will be shown in the calendar. |
| `availabilities` | array | No | While we will support this property for backward compatibility, it is recommended to use 'Availability' APIs instead. |
| `sticky_contact` | boolean | No | Keep a contact assigned to the same team member across bookings. |
| `pre_buffer_unit` | string ("mins" | "hours") | No | Unit for pre-buffer. |
| `allow_reschedule` | boolean | No | Allow bookers to reschedule appointments. |
| `enable_recurring` | boolean | No | Enable recurring appointments for the calendars. Please note that only one member should be added in the calendar to enable this |
| `form_submit_type` | string ("RedirectURL" | "ThankYouMessage") | No | Action shown after a booking form is submitted. |
| `look_busy_config` | object | No | Look Busy Configuration |
| `meeting_location` | string | No | Deprecated! Use `locationConfigurations.location` or `teamMembers[].locationConfigurations.location` instead. |
| `slot_buffer_unit` | string ("mins" | "hours") | No | Unit for slot buffer. |
| `allow_booking_for` | number | No | Minimum number of days/weeks/months for which to allow booking events |
| `availability_type` | integer ("0" | "1") | No | While we will support this property for backward compatibility, it is not required anymore. |
| `allow_cancellation` | boolean | No | Allow bookers to cancel appointments. |
| `appoinment_per_day` | number | No | Number of appointments that can be booked for a given day |
| `slot_duration_unit` | string ("mins" | "hours") | No | Unit for slot duration. |
| `slot_interval_unit` | string ("mins" | "hours") | No | Unit for slot interval. |
| `allow_booking_after` | number | No | Minimum scheduling notice for events |
| `appoinment_per_slot` | number | No | Maximum bookings per slot (per user). Maximum seats per slot in case of Class Booking Calendar. |
| `calendar_cover_image` | string | No | URL of the calendar cover image. |
| `is_live_payment_mode` | boolean | No | Use live payment processing instead of test mode. |
| `allow_booking_for_unit` | string ("days" | "weeks" | "months") | No | Unit for controlling the duration for which booking would be allowed for |
| `location_configurations` | array | No | Meeting location configuration for event calendar |
| `allow_booking_after_unit` | string ("hours" | "days" | "weeks" | "months" | "mins") | No | Unit for minimum scheduling notice |
| `form_submit_redirect_url` | string | No | URL to open after form submission when redirecting. |
| `google_invitation_emails` | boolean | No | Send Google Calendar invitation emails for bookings. |
| `form_submit_thanks_message` | string | No | Thank-you message shown after form submission. |
| `should_assign_contact_to_team_member` | boolean | No | Assign the booked contact to the selected team member. |
| `should_skip_assigning_contact_for_existing` | boolean | No | Preserve the current assignment for existing contacts. |
| `should_send_alert_emails_to_assigned_member` | boolean | No | Send booking alert emails to the assigned team member. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Calendar Group

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_CREATE_CALENDAR_GROUP`

Create Calendar Group Location PITs must be provisioned with the HighLevel permission: `calendars/groups.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Display name of the calendar group. |
| `slug` | string | Yes | URL-friendly identifier for the calendar group. Use VALIDATE_GROUPS_SLUG before creation to check availability. |
| `is_active` | boolean | No | Whether the calendar group is active. |
| `description` | string | Yes | Description of the calendar group. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Calendar Resource

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_CREATE_CALENDAR_RESOURCE`

Create calendar resource by resource type (Services V1) Location PITs must be provisioned with the HighLevel permission: `calendars/resources.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Display name of the room or equipment resource. |
| `capacity` | number | Yes | Capacity of the room. |
| `quantity` | number | Yes | Quantity of the equipment. |
| `description` | string | Yes | Description of the room or equipment resource. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `calendar_ids` | array | Yes | Service calendar IDs to be mapped with the resource.      One equipment can only be mapped with one service calendar.      One room can be mapped with multiple service calendars. |
| `resource_type` | string ("equipments" | "rooms") | Yes | Calendar Resource Type |
| `out_of_service` | number | Yes | Quantity of the out of service equipment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create event calendar availability schedule

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_CREATE_CALENDAR_SCHEDULE`

Create or replace the availability schedule for an event calendar. This endpoint is an upsert: an existing schedule's rules and timezone are replaced. Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rules` | array | Yes | Schedule rules defining when the schedule is active |
| `timezone` | string | Yes | Timezone for the schedule (IANA timezone identifier) |
| `calendar_id` | string | Yes | Unique identifier of the event calendar |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create notification

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_CREATE_EVENT_NOTIFICATION`

Create Calendar notifications, either one or multiple. All notification settings must be for single calendar only Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | array | Yes | One or more notification settings to create for the calendar. |
| `calendar_id` | string | Yes | Calendar that will receive these notification settings. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create user availability schedule

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_CREATE_SCHEDULE`

Create new schedule with specified rules, timezone, location, user and calendar associations. Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Human-readable name for the schedule |
| `rules` | array | Yes | Schedule rules defining when the schedule is active; HighLevel requires an array and accepts an empty list. |
| `user_id` | string | Yes | User ID associated with the schedule |
| `timezone` | string | Yes | Timezone for the schedule (IANA timezone identifier) |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `calendar_ids` | array | No | Calendar IDs associated with the schedule |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Service Booking

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_CREATE_SERVICE_BOOKING`

Create a new service booking Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Service Booking Title |
| `status` | string ("confirmed" | "new") | No | Status. (If not provided, the status configured in Service Global Settings will be used.) |
| `end_time` | string | Yes | End time as ISO 8601 with a timezone offset. |
| `services` | array | Yes | At least one service to book. |
| `timezone` | string | Yes | Timezone |
| `contact_id` | string | Yes | Contact ID |
| `start_time` | string | Yes | Start time as ISO 8601 with a timezone offset. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `meeting_location` | string | No | Meeting Location (If service location is an ask the booker, then the meeting location is required) |
| `service_location_id` | string | No | Service Location ID (If not provided, then the default service location will be used) |
| `override_availability` | boolean | No | If true the time slot validation would be avoided for any booking creation/update (even the skipSchedulingNotice) |
| `skip_scheduling_notice` | boolean | No | If set to true, the minimum scheduling notice and date range would be ignored |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Service

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_CREATE_SERVICE_CATALOG`

Create new service in a location. Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Service name |
| `slug` | string | Yes | Unique URL-friendly identifier |
| `staff` | array | Yes | Assigned staff members (at least one required) |
| `form_id` | string | No | Custom form ID (will be used to display the custom form on the booking page, if only one service is selected) |
| `payment` | object | No | Payment details (default amount is 0, currency configured in Service Global Settings is used.) |
| `is_private` | boolean | No | Whether service is private (not shown publicly) |
| `pre_buffer` | number | No | Pre-Buffer is additional time that can be added before an appointment, allowing for extra time to get ready |
| `variations` | array | No | Service variations (pass empty array for no variations) |
| `cover_image` | string | No | Service cover image URL |
| `description` | string | No | Service description |
| `event_color` | string | No | Service event color (hex) |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `post_buffer` | number | No | Post-buffer: Additional time that can be added after an appointment, allowing for extra time to wrap up |
| `pre_buffer_unit` | string ("mins" | "hours") | No | Pre-buffer unit |
| `post_buffer_unit` | string ("mins" | "hours") | No | Post-buffer unit |
| `service_duration` | number | No | This controls the duration of the appointment |
| `service_category_id` | string | No | Service category ID (uses default category if not provided) |
| `service_duration_unit` | string ("mins" | "hours") | No | Duration unit |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Service Location

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_CREATE_SERVICE_LOCATION`

Create a new service location Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Location name |
| `slug` | string | Yes | URL-friendly slug identifier |
| `phone` | string | No | Phone number |
| `address` | string | No | Use a full street address when locationType is offline. Use a user-facing label when locationType is ask_booker. |
| `cover_image` | string | No | URL of the cover image for this service location |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `location_type` | string ("offline" | "ask_booker") | No | Location type |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Note

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_DELETE_APPOINTMENT_NOTE`

Delete Note Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `note_id` | string | Yes | Appointment note to delete. |
| `appointment_id` | string | Yes | Appointment ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Calendar

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_DELETE_CALENDAR`

Delete calendar by ID Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendar_id` | string | Yes | Calendar Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Calendar Resource

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_DELETE_CALENDAR_RESOURCE`

Delete calendar resource by ID (Services V1) Location PITs must be provisioned with the HighLevel permission: `calendars/resources.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Calendar Resource ID |
| `resource_type` | string ("equipments" | "rooms") | Yes | Calendar Resource Type |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Event

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_DELETE_EVENT`

Delete event by ID Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `event_id` | string | Yes | Event Id or Instance id. For recurring appointments send masterEventId to modify original series. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Notification

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_DELETE_EVENT_NOTIFICATION`

Delete notification Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendar_id` | string | Yes | Calendar that owns the notification setting. |
| `notification_id` | string | Yes | Notification setting to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Group

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_DELETE_GROUP`

Delete Group Location PITs must be provisioned with the HighLevel permission: `calendars/groups.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | Group Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete user availability schedule

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_DELETE_SCHEDULE`

Permanently remove a schedule and all its associated rules. This action cannot be undone. Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the schedule to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Service Booking

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_DELETE_SERVICE_BOOKING`

Delete a service booking by ID Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `booking_id` | string | Yes | Unique Service Booking ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Service

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_DELETE_SERVICE_CATALOG`

Delete a service catalog item by ID. HighLevel soft-deletes the item: list operations exclude it, but a direct lookup by ID may still return it. Repeated deletion may also report success. Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `service_id` | string | Yes | Service ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Service Location

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_DELETE_SERVICE_LOCATION`

Delete a service location by ID Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `service_location_id` | string | Yes | Unique Service Location ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Disable Group

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_DISABLE_GROUP`

Disable Group Location PITs must be provisioned with the HighLevel permission: `calendars/groups.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | Yes | Group Id |
| `is_active` | boolean | Yes | Is Active? |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Appointment

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_EDIT_APPOINTMENT`

Update appointment Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rrule` | string | No | RRULE as per the iCalendar (RFC 5545) specification for recurring events. DTSTART is not required, instance ids are calculated on the basis of startTime of the event. The rrule only be applied if ignoreFreeSlotValidation is true. |
| `title` | string | No | Title |
| `address` | string | No | Appointment Address |
| `end_time` | string | No | End Time |
| `event_id` | string | Yes | Event Id or Instance id. For recurring appointments send masterEventId to modify original series. |
| `to_notify` | boolean | No | If set to false, the automations will not run. Defaults to true |
| `start_time` | string | No | Start Time |
| `calendar_id` | string | No | Calendar Id |
| `description` | string | No | Appointment Description |
| `assigned_user_id` | string | No | Assigned User Id |
| `ignore_date_range` | boolean | No | If set to true, the minimum scheduling notice and date range would be ignored |
| `appointment_status` | string ("new" | "confirmed" | "cancelled" | "showed" | "noshow" | "invalid" | "completed" | "active") | No | New appointment status, such as confirmed, cancelled, or completed. |
| `meeting_location_id` | string | No | The unique identifier for the meeting location. - This value can be found in `calendar.locationConfigurations`or `calendar.teamMembers[].locationConfigurations` |
| `meeting_location_type` | string ("custom" | "zoom" | "gmeet" | "phone" | "address" | "ms_teams" | "google") | No | Meeting location type.  - If `address` is provided in the request body, the `meetingLocationType` defaults to **custom**. |
| `override_location_config` | boolean | No | Flag to override location config - **false** - If only `meetingLocationId` is provided - **true** - If only `meetingLocationType` is provided |
| `ignore_free_slot_validation` | boolean | No | If true the time slot validation would be avoided for any appointment creation (even the ignoreDateRange) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Block Slot

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_EDIT_BLOCK_SLOT`

Update block slot by ID Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Title |
| `end_time` | string | No | End Time |
| `event_id` | string | Yes | Event Id or Instance id. For recurring appointments send masterEventId to modify original series. |
| `start_time` | string | No | Start Time |
| `calendar_id` | string | No | Either calendarId or assignedUserId can be set, not both. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `assigned_user_id` | string | No | Either calendarId or assignedUserId can be set, not both. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Group

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_EDIT_GROUP`

Update Group by group ID Location PITs must be provisioned with the HighLevel permission: `calendars/groups.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Display name of the calendar group. |
| `slug` | string | Yes | URL-friendly identifier for the calendar group. Use VALIDATE_GROUPS_SLUG before changing it because HighLevel accepts duplicate slugs. |
| `group_id` | string | Yes | Group Id |
| `description` | string | Yes | Description of the calendar group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Calendar Resources

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_FETCH_CALENDAR_RESOURCES`

List calendar resources by resource type and location ID (Services V1) Location PITs must be provisioned with the HighLevel permission: `calendars/resources.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of calendar resources to skip. |
| `limit` | integer | No | Maximum calendar resources to return. |
| `cursor` | string | No | Continuation cursor returned by the previous call. |
| `resource_type` | string ("equipments" | "rooms") | Yes | Calendar Resource Type |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get notification

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_FIND_EVENT_NOTIFICATION`

Find Event notification by notificationId Location PITs must be provisioned with the HighLevel permission: `calendars/events.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendar_id` | string | Yes | Calendar that owns the notification setting. |
| `notification_id` | string | Yes | Notification setting to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List user availability schedule

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_ALL_SCHEDULES`

Retrieve user availability schedules based on various filters including location, calendar, and user. Supports pagination. Location PITs must be provisioned with the HighLevel permission: `calendars.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of items to skip for pagination |
| `limit` | integer | No | Maximum number of items to return (max 499) |
| `cursor` | string | No | Continuation cursor returned by the previous call. |
| `user_id` | string | Yes | User ID to filter schedules by specific user |
| `calendar_id` | string | No | Calendar ID for filtering schedules by specific calendar |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Appointment

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_APPOINTMENT`

Get appointment by ID Location PITs must be provisioned with the HighLevel permission: `calendars/events.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `event_id` | string | Yes | Event Id or Instance id. For recurring appointments send masterEventId to modify original series. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Notes

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_APPOINTMENT_NOTES`

Get Appointment Notes Location PITs must be provisioned with the HighLevel permission: `calendars/events.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Limit of notes to fetch |
| `cursor` | string | No | Continuation cursor returned by the previous call. |
| `offset` | integer | No | Offset of notes to fetch |
| `appointment_id` | string | Yes | Appointment ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Blocked Slots

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_BLOCKED_SLOTS`

Get blocked slots for exactly one owner: user_id, calendar_id, or group_id. Location PITs must be provisioned with the HighLevel permission: `calendars/events.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | User Id - Owner of an appointment. Either of userId, groupId or calendarId is required |
| `end_time` | string | Yes | End Time (in millis) |
| `group_id` | string | No | Either of groupId, calendarId or userId is required |
| `start_time` | string | Yes | Start Time (in millis) |
| `calendar_id` | string | No | Either of calendarId, userId or groupId is required |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Calendar

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_CALENDAR`

Get calendar by ID Location PITs must be provisioned with the HighLevel permission: `calendars.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendar_id` | string | Yes | Calendar Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Calendar Events

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_CALENDAR_EVENTS`

Get calendar events for exactly one owner: user_id, calendar_id, or group_id. Location PITs must be provisioned with the HighLevel permission: `calendars/events.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | User Id - Owner of an appointment. Either of userId, groupId or calendarId is required |
| `end_time` | string | Yes | End Time (in millis) |
| `group_id` | string | No | Either of groupId, calendarId or userId is required |
| `start_time` | string | Yes | Start Time (in millis) |
| `calendar_id` | string | No | Either of calendarId, userId or groupId is required |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Calendar Resource

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_CALENDAR_RESOURCE`

Get calendar resource by ID (Services V1) Location PITs must be provisioned with the HighLevel permission: `calendars/resources.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Calendar Resource ID |
| `resource_type` | string ("equipments" | "rooms") | Yes | Calendar Resource Type |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Calendars

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_CALENDARS`

Get all calendars in a location. Location PITs must be provisioned with the HighLevel permission: `calendars.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `group_id` | string | No | Group Id |
| `show_drafted` | boolean | No | Show drafted |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get event calendar availability schedule

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_CALENDAR_SCHEDULE`

Retrieve the availability schedule for a specific event calendar. Returns the schedule associated with the calendar ID provided in the path. Location PITs must be provisioned with the HighLevel permission: `calendars.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `calendar_id` | string | Yes | Unique identifier of the event calendar |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get notifications

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_EVENT_NOTIFICATION`

Get calendar notifications. When deleted is omitted, HighLevel can include soft-deleted notification settings; set deleted explicitly when filtering by deletion state. Location PITs must be provisioned with the HighLevel permission: `calendars/events.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of records to skip |
| `limit` | integer | No | Number of records to return |
| `cursor` | string | No | Continuation cursor returned by the previous call. |
| `deleted` | boolean | No | Filter notification settings by soft-deleted status. |
| `is_active` | boolean | No | Filter notification settings by active status. |
| `calendar_id` | string | Yes | Calendar whose notification settings to list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Groups

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_GROUPS`

Get all calendar groups in a location. Location PITs must be provisioned with the HighLevel permission: `calendars/groups.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get user availability schedule

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_SCHEDULE_BY_ID`

Retrieve a specific schedule by its unique identifier. Returns detailed information including rules, timezone, and associated calendars/users. Location PITs must be provisioned with the HighLevel permission: `calendars.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the schedule |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Service Booking by ID

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_SERVICE_BOOKING_BY_ID`

Get a specific service booking by ID Location PITs must be provisioned with the HighLevel permission: `calendars/events.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `booking_id` | string | Yes | Unique Service Booking ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Service Bookings

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_SERVICE_BOOKINGS`

Retrieve service bookings for a location within a given date range, with an optional service location filter. Location PITs must be provisioned with the HighLevel permission: `calendars/events.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end_time` | string | Yes | End Time (timestamp in milliseconds as string) |
| `timezone` | string | No | Timezone |
| `start_time` | string | Yes | Start Time (timestamp in milliseconds as string) |
| `service_location_id` | string | No | Service Location ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Service by ID

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_SERVICE_CATALOG_BY_ID`

Get service by ID. Location PITs must be provisioned with the HighLevel permission: `calendars.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `service_id` | string | Yes | Service ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Service Location by ID

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_SERVICE_LOCATION_BY_ID`

Get service location by ID Location PITs must be provisioned with the HighLevel permission: `calendars.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `service_location_id` | string | Yes | Unique Service Location ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Service Locations

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_SERVICE_LOCATIONS`

Get all service locations Location PITs must be provisioned with the HighLevel permission: `calendars.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Services

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_SERVICES_CATALOG`

Get all services in a location. Location PITs must be provisioned with the HighLevel permission: `calendars.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_private` | boolean | No | Filter services: true = private only, false = public only, unset = all services |
| `service_category_id` | string | No | Filter by service category ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Free Slots

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_GET_SLOTS`

Get free slots for a calendar between a date range. Optionally a consumer can also request free slots in a particular timezone and also for a particular user. Location PITs must be provisioned with the HighLevel permission: `calendars.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | The user for whom the free slots are returned |
| `end_date` | number | Yes | End Date (** Important:** Date range cannot be more than 31 days) |
| `timezone` | string | No | The timezone in which the free slots are returned |
| `user_ids` | array | No | The users for whom the free slots are returned |
| `start_date` | number | Yes | Start Date (** Important:** Date range cannot be more than 31 days) |
| `calendar_id` | string | Yes | Calendar Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove user availability schedule from a calendar

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_REMOVE_CALENDAR_FROM_SCHEDULE`

Remove a calendar from a schedule. HighLevel may leave an unnamed cloned schedule after changing the association. Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the schedule |
| `calendar_id` | string | Yes | Unique identifier of the calendar to remove from the schedule |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Note

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_UPDATE_APPOINTMENT_NOTE`

Update Note Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | Yes | Note body |
| `note_id` | string | Yes | Appointment note to update. |
| `user_id` | string | No | HighLevel user ID to attribute as the note's author. |
| `appointment_id` | string | Yes | Appointment ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Calendar

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_UPDATE_CALENDAR`

Update calendar by ID. HighLevel resets omitted slot duration, slot interval, form submit type, availability, notifications, and open hours to provider defaults, so resend those settings when they must be preserved. Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Display name of the calendar. |
| `slug` | string | No | URL-friendly identifier for the calendar. |
| `notes` | string | No | Internal notes associated with the calendar. |
| `form_id` | string | No | ID of the form used to collect booking details. |
| `group_id` | string | No | Group Id |
| `pixel_id` | string | No | Tracking pixel ID used on the booking page. |
| `is_active` | boolean | No | Whether the calendar is active and available for booking. |
| `recurring` | object | No | Recurring booking frequency and conflict settings. |
| `event_type` | string ("RoundRobin_OptimizeForAvailability" | "RoundRobin_OptimizeForEqualDistribution") | No | Round-robin scheduling optimization strategy. |
| `guest_type` | string ("count_only" | "collect_detail") | No | Whether to count guests only or collect their details. |
| `open_hours` | array | No | Legacy availability hours. Each item must contain exactly one weekday (0=Sunday through 6=Saturday); repeat items for several days. Prefer the Availability APIs for new integrations. |
| `pre_buffer` | number | No | Pre-Buffer is additional time that can be added before an appointment, allowing for extra time to get ready |
| `alert_email` | string | No | Email address that receives booking alerts. |
| `calendar_id` | string | Yes | Calendar Id |
| `description` | string | No | Description of the calendar shown to bookers. |
| `event_color` | string | No | Color used to display calendar events. |
| `event_title` | string | No | Title used for events created from bookings. |
| `slot_buffer` | number | No | Slot-Buffer is additional time that can be added after an appointment, allowing for extra time to wrap up |
| `widget_slug` | string | No | URL slug for the calendar's booking widget. |
| `widget_type` | string ("default" | "classic") | No | Calendar widget type. Choose "default" for "neo" and "classic" for "classic" layout. |
| `auto_confirm` | boolean | No | Automatically confirm new bookings. |
| `team_members` | array | No | Team members are required for calendars of type: Round Robin, Collective, Class, Service. Personal calendar must have exactly one team member. |
| `consent_label` | string | No | Consent text displayed on the booking form. |
| `notifications` | array | No | Deprecated! Please use 'Calendar Notifications APIs' instead. |
| `slot_duration` | number | No | This controls the duration of the meeting |
| `slot_interval` | number | No | Slot interval reflects the amount of time the between booking slots that will be shown in the calendar. |
| `availabilities` | array | No | While we will support this property for backward compatibility, it is recommended to use 'Availability' APIs instead. |
| `sticky_contact` | boolean | No | Keep a contact assigned to the same team member across bookings. |
| `pre_buffer_unit` | string ("mins" | "hours") | No | Unit for pre-buffer. |
| `allow_reschedule` | boolean | No | Allow bookers to reschedule appointments. |
| `enable_recurring` | boolean | No | Enable recurring appointments for the calendars. Please note that only one member should be added in the calendar to enable this |
| `form_submit_type` | string ("RedirectURL" | "ThankYouMessage") | No | Action shown after a booking form is submitted. |
| `look_busy_config` | object | No | Look Busy Configuration |
| `meeting_location` | string | No | Deprecated! Use `locationConfigurations.location` or `teamMembers[].locationConfigurations.location` instead. |
| `allow_booking_for` | number | No | Minimum number of days/weeks/months for which to allow booking events |
| `availability_type` | integer ("0" | "1") | No | While we will support this property for backward compatibility, it is not required anymore. |
| `allow_cancellation` | boolean | No | Allow bookers to cancel appointments. |
| `appoinment_per_day` | number | No | Number of appointments that can be booked for a given day |
| `slot_duration_unit` | string ("mins" | "hours") | No | Unit for slot duration. |
| `slot_interval_unit` | string ("mins" | "hours") | No | Unit for slot interval. |
| `allow_booking_after` | number | No | Minimum scheduling notice for events |
| `appoinment_per_slot` | number | No | Maximum number of appointments allowed per time slot. |
| `calendar_cover_image` | string | No | URL of the calendar cover image. |
| `is_live_payment_mode` | boolean | No | Use live payment processing instead of test mode. |
| `allow_booking_for_unit` | string ("days" | "weeks" | "months") | No | Unit for controlling the duration for which booking would be allowed for |
| `location_configurations` | array | No | Meeting location configuration for event calendar |
| `allow_booking_after_unit` | string ("hours" | "days" | "weeks" | "months" | "mins") | No | Unit for minimum scheduling notice |
| `form_submit_redirect_url` | string | No | URL to open after form submission when redirecting. |
| `google_invitation_emails` | boolean | No | Send Google Calendar invitation emails for bookings. |
| `form_submit_thanks_message` | string | No | Thank-you message shown after form submission. |
| `should_assign_contact_to_team_member` | boolean | No | Assign the booked contact to the selected team member. |
| `should_skip_assigning_contact_for_existing` | boolean | No | Preserve the current assignment for existing contacts. |
| `should_send_alert_emails_to_assigned_member` | boolean | No | Send booking alert emails to the assigned team member. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Calendar Resource

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_UPDATE_CALENDAR_RESOURCE`

Update calendar resource by ID (Services V1) Location PITs must be provisioned with the HighLevel permission: `calendars/resources.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Calendar Resource ID |
| `name` | string | No | New display name of the room or equipment resource. |
| `capacity` | number | No | Capacity of the room. |
| `quantity` | number | No | Quantity of the equipment. |
| `is_active` | boolean | No | Whether the room or equipment is available for booking. |
| `description` | string | No | New description of the room or equipment resource. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `calendar_ids` | array | No | Service calendar IDs to be mapped with the resource.      One equipment can only be mapped with one service calendar.      One room can be mapped with multiple service calendars. |
| `resource_type` | string ("equipments" | "rooms") | Yes | Calendar Resource Type |
| `out_of_service` | number | No | Quantity of the out of service equipment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update event calendar availability schedule

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_UPDATE_CALENDAR_SCHEDULE`

Update the availability schedule for a specific event calendar. Only provided fields will be updated. The calendar ID is provided in the path. Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rules` | array | No | Updated schedule rules defining when the schedule is active |
| `timezone` | string | No | Updated timezone for the schedule (IANA timezone identifier) |
| `calendar_id` | string | Yes | Unique identifier of the event calendar |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update notification

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_UPDATE_EVENT_NOTIFICATION`

Update Event notification by id Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | Body  for email notification. Not necessary for in-App notification |
| `channel` | string ("email" | "inApp" | "sms" | "whatsapp") | No | Notification channel |
| `deleted` | boolean | No | Marks the notification as deleted (soft delete) |
| `subject` | string | No | Subject  for email notification. Not necessary for in-App notification |
| `from_name` | string | No | From name for email/sms notification |
| `is_active` | boolean | No | Is the notification active |
| `after_time` | array | No | Specifies the time after which the follow-up notification should be sent. This is not required for other notification types. |
| `before_time` | array | No | Specifies the time before which the reminder notification should be sent. This is not required for other notification types. |
| `calendar_id` | string | Yes | Calendar that owns the notification setting. |
| `from_number` | string | No | from number for sms notification |
| `template_id` | string | No | Template ID for email notification |
| `from_address` | string | No | From address for email notification |
| `receiver_type` | string ("contact" | "guest" | "assignedUser" | "emails" | "phoneNumbers" | "business") | No | Notification recipient type |
| `selected_users` | array | No | Selected users for in-App and business email notifications. Supports user IDs and special keyword "sub_account_admin" |
| `notification_id` | string | Yes | Notification setting to update. |
| `notification_type` | string ("booked" | "confirmation" | "cancellation" | "reminder" | "followup" | "reschedule") | No | Notification type |
| `additional_email_ids` | array | No | Additional email addresses to receive notifications. |
| `additional_phone_numbers` | array | No | Additional phone numbers to receive notifications. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update user availability schedule

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_UPDATE_SCHEDULE`

Modify an existing schedule by updating its rules, timezone, and name All fields are optional - only provided fields will be updated. Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the schedule to update |
| `name` | string | No | Human-readable name for the schedule |
| `rules` | array | No | Updated schedule rules defining when the schedule is active |
| `timezone` | string | No | Updated timezone for the schedule (IANA timezone identifier) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Service Booking

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_UPDATE_SERVICE_BOOKING`

Update an existing service booking. For an ask_booker service location, every update must resend meeting_location. Location PITs must be provisioned with the HighLevel permission: `calendars/events.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Title |
| `status` | string ("confirmed" | "cancelled" | "invalid" | "new" | "showed" | "noshow") | No | Status |
| `end_time` | string | No | End time as ISO 8601 with a timezone offset. |
| `services` | array | No | If provided, services sent in the request will replace the existing services in the booking. |
| `timezone` | string | No | Timezone |
| `booking_id` | string | Yes | Unique Service Booking ID |
| `start_time` | string | No | Start time as ISO 8601 with a timezone offset. |
| `meeting_location` | string | No | Meeting Location (If service location is an ask the booker, then the meeting location is required) |
| `service_location_id` | string | No | Service Location ID |
| `override_availability` | boolean | No | If true the time slot validation would be avoided for any booking creation/update (even the skipSchedulingNotice) |
| `skip_scheduling_notice` | boolean | No | If set to true, the minimum scheduling notice and date range would be ignored |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Service

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_UPDATE_SERVICE_CATALOG`

Update service by ID. Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Service name |
| `slug` | string | No | Unique URL-friendly identifier |
| `staff` | array | No | Assigned staff members |
| `form_id` | string | No | Custom form ID (will be used to display the custom form on the booking page, if only one service is selected) |
| `payment` | object | No | Payment details (currency configured in Service Global Settings is used.) |
| `is_private` | boolean | No | Whether service is private (not shown publicly) |
| `pre_buffer` | number | No | Pre-Buffer is additional time that can be added before an appointment, allowing for extra time to get ready |
| `service_id` | string | Yes | Service ID |
| `variations` | array | No | Service variations (an empty array removes all variations). Include an id to update an existing variation; omit the id to create a new one. |
| `cover_image` | string | No | Service cover image URL |
| `description` | string | No | Service description |
| `event_color` | string | No | Service event color (hex) |
| `post_buffer` | number | No | Post-buffer: Additional time that can be added after an appointment, allowing for extra time to wrap up |
| `pre_buffer_unit` | string ("mins" | "hours") | No | Pre-buffer unit |
| `post_buffer_unit` | string ("mins" | "hours") | No | Post-buffer unit |
| `service_duration` | number | No | This controls the duration of the appointment |
| `service_category_id` | string | No | Service category ID |
| `service_duration_unit` | string ("mins" | "hours") | No | Duration unit |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Service Location

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_UPDATE_SERVICE_LOCATION`

Update an existing service location Location PITs must be provisioned with the HighLevel permission: `calendars.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Location name |
| `slug` | string | No | Updated URL-friendly slug identifier |
| `phone` | string | No | Updated contact phone number |
| `address` | string | No | Use a full street address when locationType is offline. Use a user-facing label when locationType is ask_booker. |
| `cover_image` | string | No | Updated URL of the cover image |
| `location_type` | string ("offline" | "ask_booker") | No | Location type |
| `service_location_id` | string | Yes | Unique Service Location ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Validate group slug

**Slug:** `HIGHLEVEL_LOCATION_CALENDARS_VALIDATE_GROUPS_SLUG`

Validate if group slug is available or not. Location PITs must be provisioned with the HighLevel permission: `calendars/groups.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `slug` | string | Yes | Slug |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Campaigns

**Slug:** `HIGHLEVEL_LOCATION_CAMPAIGNS_GET_CAMPAIGNS`

Return campaigns for the connected HighLevel location, optionally filtered by status. Location PITs must be provisioned with the HighLevel permission: `campaigns.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string ("draft" | "published") | No | Filter campaigns by provider status, such as draft or published. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Clone Chat Widget

**Slug:** `HIGHLEVEL_LOCATION_CHAT_WIDGET_CLONE_CHAT_WIDGET`

Creates a copy of a chat widget in the connected sub-account. Location PITs must be provisioned with the HighLevel permission: `chat-widget.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Name for the cloned chat widget. |
| `chat_widget_id` | string | Yes | ID of the chat widget to clone. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Chat Widget

**Slug:** `HIGHLEVEL_LOCATION_CHAT_WIDGET_CREATE_CHAT_WIDGET`

Creates a new chat widget for the connected sub-account. Location PITs must be provisioned with the HighLevel permission: `chat-widget.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Chat widget name. |
| `default` | boolean | No | Whether this is the default chat widget. |
| `deleted` | boolean | No | Whether the chat widget starts soft-deleted. |
| `version` | number | Yes | Chat widget schema version. |
| `settings` | object | No | Documented widget appearance and messaging settings. The public API refuses `useEmailField` and `advanceSettings.aTwoPCompliance`; manage those in the HighLevel app. `acknowledgementDetails.icon` accepts `Check`, `CheckCircle`, `MessageDotsCircle`, `MessageSmileSquare`, or an absolute URL. Use `dimensions.position: bottom-right`; documented `left`/`right` values are rejected. The documented `STANDARD_FIELD` value for `advanceSettings.contactFormOptions[].dataType` is also rejected. |
| `chat_type` | string ("liveChat" | "emailChat") | Yes | Chat type. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Chat Widget

**Slug:** `HIGHLEVEL_LOCATION_CHAT_WIDGET_DELETE`

Soft-deletes a chat widget from the connected sub-account. Location PITs must be provisioned with the HighLevel permission: `chat-widget.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Chat widget ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Chat Widget

**Slug:** `HIGHLEVEL_LOCATION_CHAT_WIDGET_GET_CHAT_WIDGET`

Returns a single chat widget by ID from the connected sub-account. Location PITs must be provisioned with the HighLevel permission: `chat-widget.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Chat widget ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Public Chat Widget Config

**Slug:** `HIGHLEVEL_LOCATION_CHAT_WIDGET_GET_PUBLIC_CONFIG`

Return a chat widget's public configuration by widget ID. No endpoint-specific provider permission was evidenced beyond a valid Location token.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Chat widget identifier. |
| `version` | string | No | Public widget configuration version. HighLevel defaults this to `2`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Chat Widgets

**Slug:** `HIGHLEVEL_LOCATION_CHAT_WIDGET_LIST_CHAT_WIDGET`

Returns chat widgets for the connected sub-account with pagination and optional filters. Location PITs must be provisioned with the HighLevel permission: `chat-widget.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | Yes | Maximum number of chat widgets to return. |
| `offset` | integer | Yes | Offset from which to return chat widgets. |
| `chat_type` | string ("liveChat" | "waChat" | "emailChat" | "allInOneChat" | "voiceAiChat" | "facebookChat" | "instagramChat" | "webChat") | No | Chat widget type, including the virtual "webChat" umbrella. |
| `exclude_chat_type` | string ("liveChat" | "waChat" | "emailChat" | "allInOneChat" | "voiceAiChat" | "facebookChat" | "instagramChat") | No | Chat widget type to exclude. |
| `voice_ai_agent_id` | string | No | Voice AI agent ID by which to filter widgets. |
| `all_in_one_chat_types` | string ("liveChat" | "waChat" | "emailChat" | "allInOneChat" | "voiceAiChat" | "facebookChat" | "instagramChat" | "webChat") | No | All-in-one chat subtype. Applies when chat_type is "allInOneChat". |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Patch Chat Widget

**Slug:** `HIGHLEVEL_LOCATION_CHAT_WIDGET_PATCH_CHAT_WIDGET`

Partially updates a chat widget in the connected sub-account. Location PITs must be provisioned with the HighLevel permission: `chat-widget.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Chat widget ID. |
| `name` | string | No | Chat widget name. |
| `default` | boolean | No | Whether this is the default chat widget. |
| `version` | number | No | Chat widget schema version. |
| `settings` | object | No | Documented widget settings to update. The public API refuses `useEmailField` and `advanceSettings.aTwoPCompliance`; manage those in the HighLevel app. `acknowledgementDetails.icon` accepts `Check`, `CheckCircle`, `MessageDotsCircle`, `MessageSmileSquare`, or an absolute URL. Use `dimensions.position: bottom-right`; documented `left`/`right` values are rejected. The documented `STANDARD_FIELD` value for `advanceSettings.contactFormOptions[].dataType` is also rejected. |
| `chat_type` | string ("liveChat" | "emailChat") | No | Chat type. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Chat Widget

**Slug:** `HIGHLEVEL_LOCATION_CHAT_WIDGET_UPDATE_CHAT_WIDGET`

Fully updates a chat widget in the connected sub-account. Preserve existing values, including settings, that should remain after this replacement. Location PITs must be provisioned with the HighLevel permission: `chat-widget.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Chat widget ID. |
| `name` | string | No | Chat widget name. |
| `default` | boolean | No | Whether this is the default chat widget. |
| `version` | number | No | Chat widget schema version. |
| `settings` | object | No | Complete documented widget settings object. Because this PUT replaces the widget, preserve any existing settings that should remain. The public API refuses `useEmailField` and `advanceSettings.aTwoPCompliance`; manage those in the HighLevel app. `acknowledgementDetails.icon` accepts `Check`, `CheckCircle`, `MessageDotsCircle`, `MessageSmileSquare`, or an absolute URL. Use `dimensions.position: bottom-right`; documented `left`/`right` values are rejected. The documented `STANDARD_FIELD` value for `advanceSettings.contactFormOptions[].dataType` is also rejected. |
| `chat_type` | string ("liveChat" | "emailChat") | No | Chat type. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add Contact to Campaign

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_ADD_CONTACT_TO_CAMPAIGN`

Add contact to Campaign Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | object | No | Request payload documented by HighLevel for this operation. |
| `contact_id` | string | Yes | Contact Id |
| `campaign_id` | string | Yes | Campaign Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add Contact to Workflow

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_ADD_CONTACT_TO_WORKFLOW`

Add Contact to Workflow Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Contact Id |
| `workflow_id` | string | Yes | Workflow Id |
| `event_start_time` | string | No | Start time of the workflow event (ISO 8601 format) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add Followers

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_ADD_FOLLOWERS_CONTACT`

Add Followers Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `followers` | array | Yes | List of user Ids to follow or unfollow the contact |
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add Tags

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_ADD_TAGS`

Add Tags Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | Yes | List of tags to add or remove |
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk Update Contact Business

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_BULK_UPDATE_BUSINESS`

Submit a job to assign one business to up to 50 contacts, or remove their business association with `remove_business=true`. HighLevel does not validate each contact ID before returning `success:true`, so that response means only that the job was accepted; verify important effects by reading the contacts. Confirm the contact IDs and intended association change before calling. No Contacts-specific PIT permission was enforced by the completed minimal-PIT probe.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `business_id` | string | No | Business ID to assign. Omit when `remove_business` is true. |
| `contact_ids` | array | Yes | Contact IDs whose business association will be changed. |
| `remove_business` | boolean | No | Set true to remove the current business association. This flag is not sent to HighLevel. |
| `confirm_business_change` | boolean | Yes | Must be true to confirm changing or removing the business association for every listed contact. This value is not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk Update Contact Tags

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_BULK_UPDATE_TAGS`

Add or remove tags for multiple contacts, including optionally removing all tags. The action fails when HighLevel reports any contact-level error, even if the HTTP response says success. Confirm the operation type, contacts, and tags before calling. No Contacts-specific PIT permission was enforced by the completed minimal-PIT probe.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | Yes | Tags to add or remove. |
| `type` | string ("add" | "remove") | Yes | Whether to add or remove the supplied tags. |
| `contact_ids` | array | Yes | Contact IDs whose tags will be updated. |
| `remove_all_tags` | boolean | No | Remove every tag from the contacts. Supported only when `type` is `remove`. |
| `confirm_tag_change` | boolean | Yes | Must be true to confirm the bulk tag mutation. This value is not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Contact

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_CREATE_CONTACT`

Create a new contact Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `dnd` | boolean | No | Whether Do Not Disturb is enabled for the contact |
| `city` | string | No | City of the contact |
| `name` | string | No | Full name of the contact |
| `tags` | array | No | List of tags to assign to the contact |
| `email` | string | No | Email address of the contact |
| `phone` | string | No | Phone number of the contact |
| `state` | string | No | State of the contact |
| `gender` | string | No | Gender of the contact |
| `source` | string | No | Source from which the contact was created |
| `country` | string | No | Country code of the contact (ISO 3166-1 alpha-2) |
| `website` | string | No | Website URL of the contact |
| `address1` | string | No | Street address of the contact |
| `timezone` | string | No | Timezone of the contact |
| `last_name` | string | No | Last name of the contact |
| `first_name` | string | No | First name of the contact |
| `assigned_to` | string | No | User's Id |
| `postal_code` | string | No | Postal code of the contact |
| `company_name` | string | No | Company name of the contact |
| `dnd_settings` | object | No | Per-channel DND settings. Use lowercase channel keys such as `call` and `email`; HighLevel rejects capitalized input keys even though read responses may capitalize them. |
| `custom_fields` | array | No | List of custom field values to assign to the contact |
| `date_of_birth` | string | No | The birth date of the contact. Supported formats: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, YYYY_MM_DD, MM_DD_YYYY |
| `inbound_dnd_settings` | object | No | Inbound DND settings per channel for the contact |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Note

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_CREATE_NOTE`

Create Note Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | Yes | Body content of the note |
| `color` | string | No | Hex color code for the note |
| `title` | string | No | Title of the note |
| `pinned` | boolean | No | Whether the note is pinned |
| `user_id` | string | No | User Id of the note author |
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Task

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_CREATE_TASK`

Create Task Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | Body or description of the task |
| `title` | string | Yes | Title of the task |
| `due_date` | string | Yes | Due date of the task (ISO 8601 format) |
| `completed` | boolean | Yes | Whether the task is completed |
| `contact_id` | string | Yes | Contact Id |
| `assigned_to` | string | No | User Id to whom the task is assigned |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Contact

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_DELETE_CONTACT`

Delete Contact Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Contact from Workflow

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_DELETE_CONTACT_FROM_WORKFLOW`

Delete Contact from Workflow Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Contact Id |
| `workflow_id` | string | Yes | Workflow Id |
| `event_start_time` | string | No | Start time of the workflow event (ISO 8601 format) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Note

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_DELETE_NOTE`

Delete Note Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Note Id |
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Task

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_DELETE_TASK`

Delete Task Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | Task Id |
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get All Notes

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_GET_ALL_NOTES`

Get All Notes Location PITs must be provisioned with the HighLevel permission: `contacts.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get all Tasks

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_GET_ALL_TASKS`

Get all Tasks Location PITs must be provisioned with the HighLevel permission: `contacts.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Appointments for Contact

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_GET_APPOINTMENTS_FOR_CONTACT`

Get Appointments for Contact Location PITs must be provisioned with the HighLevel permission: `contacts.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Contact

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_GET_CONTACT`

Retrieves a contact by its unique identifier. Location PITs must be provisioned with the HighLevel permission: `contacts.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Unique identifier of the contact |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Contacts By BusinessId

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_GET_CONTACTS_BY_BUSINESS_ID`

Get Contacts By BusinessId Location PITs must be provisioned with the HighLevel permission: `contacts.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of records to skip on the first page |
| `limit` | integer | No | Maximum number of records per page (up to 100, default 25) |
| `query` | string | No | Search query (name, email, phone) |
| `cursor` | string | No | Opaque continuation cursor returned by the previous page. |
| `business_id` | string | No | Business ID. Required on the first page; restored from the cursor later. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Duplicate Contact

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_GET_DUPLICATE_CONTACT`

Get Duplicate Contact. If `Allow Duplicate Contact` is disabled under Settings, the global unique identifier will be used for searching the contact. If the setting is enabled, first priority for search is `email` and the second priority will be `phone`. Location PITs must be provisioned with the HighLevel permission: `contacts.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | No | Raw email address; do not URL-encode it. |
| `number` | string | No | Raw E.164 phone number; do not URL-encode it. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Note

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_GET_NOTE`

Get Note Location PITs must be provisioned with the HighLevel permission: `contacts.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Note Id |
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Task

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_GET_TASK`

Get Task Location PITs must be provisioned with the HighLevel permission: `contacts.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | Task Id |
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove Contact From Campaign

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_REMOVE_CONTACT_FROM_CAMPAIGN`

Remove Contact From Campaign Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Contact Id |
| `campaign_id` | string | Yes | Campaign Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove Contact From Every Campaign

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_REMOVE_CONTACT_FROM_EVERY_CAMPAIGN`

Removes the contact from every campaign it is enrolled in. Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove Followers

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_REMOVE_FOLLOWERS_CONTACT`

Remove Followers Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `followers` | array | Yes | List of user Ids to follow or unfollow the contact |
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove Tags

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_REMOVE_TAGS`

Remove Tags Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | Yes | List of tags to add or remove |
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Contacts

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_SEARCH_CONTACTS_ADVANCED`

Search contacts using advanced filters and return one cursor-controlled page. Location PITs must be provisioned with the HighLevel permission: `contacts.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | object | No | Request payload documented by HighLevel for this operation. Required on the first page and restored from the cursor later. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous page. |
| `page_limit` | integer | No | Maximum contacts to return on this page (1-100). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Contact

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_UPDATE_CONTACT`

Update a contact using contactId Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `dnd` | boolean | No | Whether Do Not Disturb is enabled for the contact |
| `city` | string | No | City of the contact |
| `name` | string | No | Full name of the contact |
| `tags` | array | No | This field will overwrite all current tags associated with the contact. To update a tags, it is recommended to use the Add Tag or Remove Tag API instead. |
| `email` | string | No | Email address of the contact |
| `phone` | string | No | Phone number of the contact |
| `state` | string | No | State of the contact |
| `source` | string | No | Source from which the contact was updated |
| `country` | string | No | Country code of the contact (ISO 3166-1 alpha-2), Refer country list from documentaion, documentation has list of all countries |
| `website` | string | No | Website URL of the contact |
| `address1` | string | No | Street address of the contact |
| `timezone` | string | No | Timezone of the contact |
| `last_name` | string | No | Last name of the contact |
| `contact_id` | string | Yes | Unique identifier of the contact |
| `first_name` | string | No | First name of the contact |
| `assigned_to` | string | No | User's Id |
| `postal_code` | string | No | Postal code of the contact |
| `dnd_settings` | object | No | Per-channel DND settings for the contact |
| `custom_fields` | array | No | List of custom field values to assign to the contact |
| `date_of_birth` | string | No | The birth date of the contact. Supported formats: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, YYYY_MM_DD, MM_DD_YYYY |
| `inbound_dnd_settings` | object | No | Inbound DND settings per channel for the contact |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Note

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_UPDATE_NOTE`

Update Note Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Note Id |
| `body` | string | No | Body content of the note |
| `color` | string | No | Hex color code for the note |
| `title` | string | No | Title of the note |
| `pinned` | boolean | No | Whether the note is pinned |
| `user_id` | string | No | User Id of the note author |
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Task

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_UPDATE_TASK`

Update Task Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | Body or description of the task |
| `title` | string | No | Title of the task |
| `task_id` | string | Yes | Task Id |
| `due_date` | string | No | Due date of the task (ISO 8601 format) |
| `completed` | boolean | No | Whether the task is completed |
| `contact_id` | string | Yes | Contact Id |
| `assigned_to` | string | No | User Id to whom the task is assigned |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Task Completed

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_UPDATE_TASK_COMPLETED`

Update Task Completed Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | string | Yes | Task Id |
| `completed` | boolean | Yes | Whether the task is completed |
| `contact_id` | string | Yes | Contact Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert Contact

**Slug:** `HIGHLEVEL_LOCATION_CONTACTS_UPSERT_CONTACT`

The Upsert API will adhere to the configuration defined under the "Allow Duplicate Contact" setting at the Location level. If the setting is configured to check both Email and Phone, the API will attempt to identify an existing contact based on the priority sequence specified in the setting, and will create or update the contact accordingly. If two separate contacts already exist—one with the same email and another with the same phone—and an upsert request includes both the email and phone, the API will update the contact that matches the first field in the configured sequence, and ignore the second field to prevent duplication. Location PITs must be provisioned with the HighLevel permission: `contacts.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `dnd` | boolean | No | Whether Do Not Disturb is enabled for the contact |
| `city` | string | No | City of the contact |
| `name` | string | No | Full name of the contact |
| `tags` | array | No | This field will overwrite all current tags associated with the contact. To update a tags, it is recommended to use the Add Tag or Remove Tag API instead. |
| `email` | string | No | Email address of the contact |
| `phone` | string | No | Phone number of the contact |
| `state` | string | No | State of the contact |
| `gender` | string | No | Gender of the contact |
| `source` | string | No | Source from which the contact was created |
| `country` | string | No | Country code of the contact (ISO 3166-1 alpha-2) |
| `website` | string | No | Website URL of the contact |
| `address1` | string | No | Street address of the contact |
| `timezone` | string | No | Timezone of the contact |
| `last_name` | string | No | Last name of the contact |
| `first_name` | string | No | First name of the contact |
| `assigned_to` | string | No | User's Id |
| `postal_code` | string | No | Postal code of the contact |
| `company_name` | string | No | Company name of the contact |
| `dnd_settings` | object | No | Per-channel DND settings for the contact |
| `custom_fields` | array | No | List of custom field values to assign to the contact |
| `date_of_birth` | string | No | The birth date of the contact. Supported formats: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, YYYY_MM_DD, MM_DD_YYYY |
| `inbound_dnd_settings` | object | No | Inbound DND settings per channel for the contact |
| `create_new_if_duplicate_allowed` | boolean | No | Controls whether to create a new contact or update an existing duplicate. **Scenario 1:** If this value is `true` and the location allows duplicate contacts, a new contact will be created immediately without checking for duplicates. **Scenario 2:** If this value is `true` but the location does not allow duplicate contacts, this field is ignored and the normal upsert behavior applies: the API will search for an existing duplicate contact, update it if found, or create a new contact if not found. **Scenario 3:** If this value is `false` or not provided, the normal upsert behavior applies regardless of the location's duplicate contact setting. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Attach Action to Agent

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATION_AI_CREATE_ACTION`

Creates and attach a new action for an AI agent. Actions define specific tasks or behaviors that the agent can perform, such as booking appointments, sending follow-ups, or collecting information. Location PITs must be provisioned with the HighLevel permission: `conversation-ai.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Action name, from 3 to 50 characters. |
| `type` | string ("triggerWorkflow" | "updateContactField" | "appointmentBooking" | "stopBot" | "humanHandOver" | "advancedFollowup" | "transferBot") | Yes | Provider field `type`. |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `details` | string | Yes | Strict action-specific configuration selected by type. |
| `agent_id` | string | Yes | Provider field `agentId`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create an Agent

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATION_AI_CREATE_AGENT`

Creates a new AI agent for the location. The agent will be created with the specified configuration including name, role, actions, and behavior settings. Location PITs must be provisioned with the HighLevel permission: `conversation-ai.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `goal` | string | Yes | The goal of the agent. |
| `mode` | string ("off" | "suggestive" | "auto-pilot") | No | Mode of operation - OFF, SUGGESTIVE, or AUTO_PILOT |
| `name` | string | Yes | Name of the agent. |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `channels` | array | No | Communication channels the agent can operate on |
| `wait_time` | number | No | Wait time before agent responds (max 5 for minutes, 300 for seconds) |
| `is_primary` | boolean | No | Indicates if this agent is a primary agent. |
| `sleep_time` | number | No | Duration of sleep period (required if sleepEnabled is true). Set to null for indefinite sleep. (max 2880 for minutes, 172800 for seconds, 48 for hours) |
| `personality` | string | Yes | Personality traits of the agent. |
| `instructions` | string | Yes | Instructions for the agent. |
| `business_name` | string | No | Name of the business the agent represents. |
| `sleep_enabled` | boolean | No | Indicates if sleep functionality is enabled. |
| `wait_time_unit` | string ("minutes" | "seconds") | No | Unit for wait time - SECONDS or MINUTES |
| `sleep_time_unit` | string ("hours" | "minutes" | "seconds") | No | Unit of sleep time - HOURS, MINUTES, or SECONDS (required if sleepEnabled is true). Set to null for indefinite sleep. |
| `respond_to_audio` | boolean | No | Allow agent to respond to audio |
| `respond_to_images` | boolean | No | Allow agent to respond to images |
| `knowledge_base_ids` | array | No | Array of knowledge base IDs associated with this agent. |
| `auto_pilot_max_messages` | number | No | Maximum number of messages in auto-pilot mode before requiring human intervention. (max: 100, min: 1) |
| `sleep_on_manual_message` | boolean | No | Enable sleep when a manual outbound message is sent. |
| `sleep_on_workflow_message` | boolean | No | Enable sleep when a workflow outbound message is sent. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove Action from Agent

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATION_AI_DELETE_ACTION`

Permanently deletes an action. This will remove the action from all associated agents and cannot be undone. Location PITs must be provisioned with the HighLevel permission: `conversation-ai.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `agent_id` | string | Yes | Provider field `agentId`. |
| `action_id` | string | Yes | The unique identifier of the action ID Attached to the agent |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Agent

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATION_AI_DELETE_AGENT`

Deletes an AI agent permanently. This action cannot be undone. All associated configurations and conversation history will be removed. Location PITs must be provisioned with the HighLevel permission: `conversation-ai.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `agent_id` | string | Yes | Conversations AI agent id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Action by ID

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATION_AI_GET_ACTION_BY_ID`

Retrieves detailed information about a specific action using its unique identifier. Returns the action configuration, associated agents, and performance metrics. Location PITs must be provisioned with the HighLevel permission: `conversation-ai.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `agent_id` | string | Yes | Provider field `agentId`. |
| `action_id` | string | Yes | The unique identifier of the action ID Attached to the agent |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Agent

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATION_AI_GET_AGENT`

Retrieves a specific AI agent by its ID. Returns the complete agent configuration including name, status, actions, and settings. Location PITs must be provisioned with the HighLevel permission: `conversation-ai.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `agent_id` | string | Yes | Conversations AI agent id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get the generation details

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATION_AI_GET_GENERATION_DETAILS`

Retrieves detailed information about AI responses including the System Prompt, Conversation history, Knowledge base, website, FAQ chunks, and Rich Text chunks. Location PITs must be provisioned with the HighLevel permission: `conversation-ai.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string ("conversation" | "workflow") | Yes | Provider field `source`. |
| `message_id` | string | Yes | Message Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Actions for an Agent

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATION_AI_LIST_ACTIONS`

List for actions for an agent Location PITs must be provisioned with the HighLevel permission: `conversation-ai.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `agent_id` | string | Yes | Provider field `agentId`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Agents

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATION_AI_SEARCH_AGENT`

Search AI agents by lowercase name query. The response has no has_more flag: omit start_after on the first page, then pass the last agent ID from the previous page and stop when count is 0. Location PITs must be provisioned with the HighLevel permission: `conversation-ai.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Records per page |
| `query` | string | No | query to search on agent name, must be provided in lowercase |
| `start_after` | string | No | Agent ID after which to continue. Omit this field on the first page; an empty string is treated as omitted, while whitespace-only values are rejected. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Action

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATION_AI_UPDATE_ACTION`

Updates an existing action's configuration. This includes modifying the action name, description, trigger conditions, and behavior settings. Location PITs must be provisioned with the HighLevel permission: `conversation-ai.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Action name, from 3 to 50 characters. |
| `type` | string ("triggerWorkflow" | "updateContactField" | "appointmentBooking" | "stopBot" | "humanHandOver" | "advancedFollowup" | "transferBot") | Yes | Provider field `type`. It must match the action's existing type; HighLevel cannot change an action type and may clear its details when a different type is sent. |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `details` | string | Yes | Complete strict action-specific configuration selected by type. |
| `agent_id` | string | Yes | Provider field `agentId`. |
| `action_id` | string | Yes | The unique identifier of the action ID Attached to the agent |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Agent

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATION_AI_UPDATE_AGENT`

Fully replace the required personality, goal, and instructions of an existing AI agent; omitted optional fields keep their current values. Location PITs must be provisioned with the HighLevel permission: `conversation-ai.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `goal` | string | Yes | The goal of the agent. |
| `mode` | string ("off" | "suggestive" | "auto-pilot") | No | Mode of operation for the agent, required if primary is enabled. |
| `name` | string | No | Name of the agent. |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `agent_id` | string | Yes | Conversations AI agent id |
| `channels` | array | No | Channels the agent can use. |
| `wait_time` | number | No | Wait time before agent responds (max 5 for minutes, 300 for seconds). |
| `is_primary` | boolean | No | Indicates if this agent is a primary agent. |
| `sleep_time` | number | No | Duration of sleep period (required if sleepEnabled is true). Set to null for indefinite sleep. (max 2880 for minutes, 172800 for seconds, 48 for hours) |
| `personality` | string | Yes | Personality traits of the agent. |
| `instructions` | string | Yes | Instructions for the agent. |
| `business_name` | string | No | Name of the business the agent represents. |
| `sleep_enabled` | boolean | No | Indicates if sleep functionality is enabled. |
| `wait_time_unit` | string ("minutes" | "seconds") | No | Unit for wait time - SECONDS or MINUTES |
| `sleep_time_unit` | string ("hours" | "minutes" | "seconds") | No | Unit of sleep time - HOURS, MINUTES, or SECONDS (required if sleepEnabled is true). Set to null for indefinite sleep. |
| `respond_to_audio` | boolean | No | Allow agent to respond to audio |
| `respond_to_images` | boolean | No | Allow agent to respond to images |
| `knowledge_base_ids` | array | No | Array of knowledge base IDs associated with this agent. |
| `auto_pilot_max_messages` | number | No | Maximum number of messages in auto-pilot mode before requiring human intervention. (max: 100, min: 1) |
| `sleep_on_manual_message` | boolean | No | Enable sleep when a manual outbound message is sent. |
| `sleep_on_workflow_message` | boolean | No | Enable sleep when a workflow outbound message is sent. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Followup Settings

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATION_AI_UPDATE_FOLLOWUP_SETTINGS`

Update followupSettings for one or more advancedFollowup actions. HighLevel may retain omitted settings, so send every desired setting when deterministic replacement is required. HighLevel rejects IDs belonging to other action types. Location PITs must be provisioned with the HighLevel permission: `conversation-ai.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `agent_id` | string | Yes | Provider field `agentId`. |
| `action_ids` | array | Yes | IDs of advancedFollowup actions. Other action types are rejected by HighLevel. |
| `followup_settings` | object | Yes | Follow-up settings to update. HighLevel may retain omitted settings, so send every desired setting when deterministic replacement is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add an inbound message

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_ADD_AN_INBOUND_MESSAGE`

Post the necessary fields for the API to add a new inbound message. Location PITs must be provisioned with the HighLevel permission: `conversations/message.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `call` | object | No | Phone call dialer and receiver information |
| `date` | string | No | ISO-8601 date-time of the inbound message. |
| `html` | string | No | HTML Body of Email |
| `type` | string | Yes | Message Type |
| `alt_id` | string | No | external mail provider's message id |
| `message` | string | No | Message Body |
| `subject` | string | No | Subject of the Email |
| `email_cc` | array | No | List of email address to CC |
| `email_to` | string | No | Recipient email address. Required when type is Email. |
| `direction` | string | No | Message direction. This inbound endpoint always uses `inbound`. |
| `email_bcc` | array | No | List of email address to BCC |
| `contact_id` | string | No | Contact ID. Either contact_id or conversation_id is required. |
| `email_from` | string | No | Email address to send from. This field is associated with the contact record and cannot be dynamically changed. |
| `attachments` | array | No | Array of attachments |
| `conversation_id` | string | No | Conversation ID. Either conversation_id or contact_id is required. |
| `email_message_id` | string | No | Send the email message id for which this email should be threaded. This is for replying to a specific email |
| `conversation_provider_id` | string | No | Conversation provider ID. Required only when using a custom or additional conversation provider; omit it for the default SMS or email provider. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add an external outbound call

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_ADD_AN_OUTBOUND_MESSAGE`

Post the necessary fields for the API to add a new outbound call. Location PITs must be provisioned with the HighLevel permission: `conversations/message.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `call` | object | Yes | Call details including `to`, `from`, and `status`. |
| `date` | string | No | Date of the outbound message |
| `type` | string | Yes | Message Type |
| `alt_id` | string | No | external mail provider's message id |
| `contact_id` | string | No | Contact ID used to resolve or create a conversation when conversation_id is omitted. |
| `attachments` | array | No | Array of attachments |
| `conversation_id` | string | No | Conversation ID. Either conversation_id or contact_id is required. |
| `conversation_provider_id` | string | Yes | Conversation Provider Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add message attachments

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_ADD_MESSAGE_ATTACHMENTS`

Set attachments on an existing message (replaces existing). Maximum 5 URLs. Supported for TYPE_CUSTOM_CALL (34) and TYPE_CALL (1) with subType EXTERNAL_CALL. Location PITs must be provisioned with the HighLevel permission: `conversations/message.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message_id` | string | Yes | Message Id |
| `attachments` | array | Yes | Array of attachment URLs to set on the message (replaces existing). Maximum 5 URLs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Cancel a scheduled email message.

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_CANCEL_SCHEDULED_EMAIL_MESSAGE`

Post the messageId for the API to delete a scheduled email message. Location PITs must be provisioned with the HighLevel permission: `conversations/message.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email_message_id` | string | Yes | Email Message Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Cancel a scheduled message.

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_CANCEL_SCHEDULED_MESSAGE`

Post the messageId for the API to delete a scheduled message. Location PITs must be provisioned with the HighLevel permission: `conversations/message.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message_id` | string | Yes | Message Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Conversation

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_CREATE_CONVERSATION`

Creates a new conversation with the data provided Location PITs must be provisioned with the HighLevel permission: `conversations.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Contact ID as string |
| `location_id` | string | No | Connected HighLevel Location ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Conversation

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_DELETE_CONVERSATION`

Delete the conversation details based on the conversation ID Location PITs must be provisioned with the HighLevel permission: `conversations.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `conversation_id` | string | Yes | Conversation ID as string |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Download transcription by Message ID

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_DOWNLOAD_MESSAGE_TRANSCRIPTION`

Download the recording transcription for a message by passing the message id Location PITs must be provisioned with the HighLevel permission: `conversations/message.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message_id` | string | Yes | Message ID as string |
| `location_id` | string | No | Connected HighLevel Location ID; always taken from the connection. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Export messages by location ID

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_EXPORT_MESSAGES_BY_LOCATION`

Return one page of messages for the connected HighLevel location, with a cursor for continuation. Location PITs must be provisioned with the HighLevel permission: `conversations/message.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of messages to return per page (minimum 10, maximum 1000). |
| `cursor` | string | No | Cursor returned by the previous export page. |
| `channel` | string | No | Filter by message channel. Optional - when not provided, all non-email message types will be returned including activity messages (opportunity updates, appointments, etc.). To fetch email messages, you must explicitly set channel=Email. |
| `sort_by` | string | No | Field to sort by |
| `end_date` | string | No | End date to filter messages by |
| `contact_id` | string | No | Filter messages by contact ID |
| `sort_order` | string | No | Sort order |
| `start_date` | string | No | Start date to filter messages by |
| `conversation_id` | string | No | Filter messages by conversation ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Conversation

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_GET_CONVERSATION`

Get the conversation details based on the conversation ID Location PITs must be provisioned with the HighLevel permission: `conversations.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `conversation_id` | string | Yes | Conversation ID as string |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get email by Id

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_GET_EMAIL_BY_ID`

Get email by Id Location PITs must be provisioned with the HighLevel permission: `conversations/message.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | id from the documented endpoint path. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get message by message id

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_GET_MESSAGE`

Get message by message id. Location PITs must be provisioned with the HighLevel permission: `conversations/message.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message_id` | string | Yes | HighLevel message ID to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Recording by Message ID

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_GET_MESSAGE_RECORDING`

Get the recording for a message by passing the message id Location PITs must be provisioned with the HighLevel permission: `conversations/message.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message_id` | string | Yes | Message ID as string |
| `location_id` | string | No | Connected HighLevel Location ID; always taken from the connection. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get messages by conversation id

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_GET_MESSAGES`

Get messages by conversation id. Location PITs must be provisioned with the HighLevel permission: `conversations/message.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | No | Comma-separated message types. Use TYPE_INTERNAL_COMMENTS for internal comments. |
| `limit` | integer | No | Number of messages to be fetched from the conversation. Default limit is 20 |
| `conversation_id` | string | Yes | Conversation ID as string |
| `last_message_id` | string | No | Message ID of the last message in the list as a string |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get transcription by Message ID

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_GET_MESSAGE_TRANSCRIPTION`

Get the recording transcription for a message by passing the message id Location PITs must be provisioned with the HighLevel permission: `conversations/message.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message_id` | string | Yes | Message ID as string |
| `location_id` | string | No | Connected HighLevel Location ID; always taken from the connection. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Agent/Ai-Bot is typing a message indicator for live chat

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_LIVE_CHAT_AGENT_TYPING`

Set the typing indicator for a conversation started by a live-chat widget visitor. This does not work for ordinary SMS, email, or other non-widget conversations; visitor_id must be that live-chat visitor's ID. Location PITs must be provisioned with the HighLevel permission: `conversations/livechat.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_typing` | boolean | Yes | Whether the agent or AI bot is currently typing. |
| `visitor_id` | string | Yes | Unique ID assigned to each live chat visitor. |
| `location_id` | string | No | Connected HighLevel Location ID. |
| `conversation_id` | string | Yes | Conversation Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Conversations

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_SEARCH_CONVERSATION`

Return one page of conversations for the connected HighLevel location and an opaque cursor for the next page. Location PITs must be provisioned with the HighLevel permission: `conversations.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Id of the conversation |
| `sort` | string | No | Sort paramater - asc or desc |
| `limit` | integer | No | Number of conversations to return (1-100); defaults to 20. |
| `query` | string | No | Search paramater as a string |
| `cursor` | string | No | Opaque cursor returned by the previous page. |
| `status` | string | No | The status of the conversation to be filtered - all, read, unread, starred  |
| `sort_by` | string | No | The sorting of the conversation to be filtered as - manual messages or all messages |
| `end_date` | string | No | End date filter for dateAdded field (Unix timestamp in milliseconds) |
| `mentions` | string | No | User Id of the mention. Multiple values are comma separated. |
| `followers` | string | No | User IDs of followers to filter conversations by. Multiple IDs can be provided as comma-separated values. |
| `contact_id` | string | No | Contact Id |
| `start_date` | string | No | Start date filter for dateAdded field (Unix timestamp in milliseconds) |
| `assigned_to` | string | No | User IDs that conversations are assigned to. Multiple IDs can be provided as comma-separated values. Use "unassigned" to fetch conversations not assigned to any user. |
| `score_profile` | string | No | Id of score profile on which conversations should get filtered out, works with scoreProfileMin & scoreProfileMax |
| `last_message_type` | string | No | Type of the last message in the conversation as a string |
| `score_profile_max` | string | No | Maximum value for score |
| `score_profile_min` | string | No | Minimum value for score |
| `sort_score_profile` | string | No | Id of score profile on which sortBy.ScoreProfile should sort on |
| `last_message_action` | string | No | Action of the last outbound message in the conversation as string. |
| `last_message_direction` | string | No | Direction of the last message in the conversation as string. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Send a new message

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_SEND_A_NEW_MESSAGE`

Send an external message to a contact through the selected channel. This has an irreversible external side effect and may notify or charge the recipient; verify the contact, channel, content, sender, and scheduled time before calling. Location PITs must be provisioned with the HighLevel permission: `conversations/message.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `html` | string | No | HTML content of the message |
| `type` | string ("SMS" | "RCS" | "Email" | "WhatsApp" | "IG" | "FB" | "Custom" | "Live_Chat" | "TIKTOK" | "InternalComment") | Yes | Type of message being sent |
| `status` | string | No | Message status for messages recorded by a custom conversation provider. |
| `forward` | object | No | Forwarding configuration for emails |
| `message` | string | No | Text content of the message |
| `subject` | string | No | Subject line for email messages |
| `user_id` | string | No | User to attribute an InternalComment message to. |
| `email_cc` | array | No | Array of CC email addresses |
| `email_to` | string | No | Email address to send to, if different from contact's primary email. This should be a valid email address associated with the contact. |
| `mentions` | array | No | User IDs mentioned by an InternalComment message using `@username userId` text. |
| `sub_type` | string ("SMS" | "RCS" | "Email" | "WhatsApp" | "IG" | "FB" | "Custom" | "Live_Chat" | "TIKTOK") | No | Optional provider message subtype. |
| `whatsapp` | object | No | WhatsApp-specific image, video, audio, or document payload. |
| `email_bcc` | array | No | Array of BCC email addresses |
| `thread_id` | string | No | ID of message thread. For email messages, this is the message ID that contains multiple email messages in the thread |
| `to_number` | string | No | Recipient phone number for outbound messages |
| `contact_id` | string | Yes | ID of the contact receiving the message |
| `email_from` | string | No | Email address to send from |
| `attachments` | array | No | Array of attachment URLs |
| `from_number` | string | No | Phone number used as the sender number for outbound messages |
| `template_id` | string | No | ID of message template |
| `appointment_id` | string | No | ID of the associated appointment |
| `email_reply_mode` | string | No | Mode for email replies |
| `reply_message_id` | string | No | Email message ID being replied to, not the conversation message ID. |
| `custom_subtype_id` | string | No | Custom subtype ID for email unsubscription preferences. Only applies to email messages. |
| `optimization_period` | string | No | Optimization period in hours (24h, 48h, or 72h) |
| `scheduled_timestamp` | string | No | UTC Timestamp (in seconds) at which the message should be scheduled |
| `conversation_provider_id` | string | No | ID of conversation provider |
| `uses_native_scheduling_ai` | boolean | No | Whether the scheduled email uses native AI for the email scheduling  |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Conversation

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_UPDATE_CONVERSATION`

Update the conversation details based on the conversation ID Location PITs must be provisioned with the HighLevel permission: `conversations.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `starred` | boolean | No | Starred status of the conversation. |
| `feedback` | string ("positive" | "negative") | No | Live chat feedback: positive or negative. |
| `location_id` | string | No | Connected HighLevel Location ID. |
| `unread_count` | string | No | Count of unread messages in the conversation |
| `conversation_id` | string | Yes | Conversation ID as string |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update email message status

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_UPDATE_EMAIL_MESSAGE_STATUS`

Update delivery events, per-recipient statuses, and the overall message status for an email sent via a custom conversation provider. ### Authorization - Requires the `conversations/message.write` OAuth scope. - The calling OAuth app must own the conversation provider that originally sent the email. - Attempts to update emails sent via LC Email or Mailgun will return `403 Forbidden`. ### Updatable Fields **`status`** is required on every request. You may also include **`events`** and/or **`recipients`**. **`events`** — Aggregate delivery event counters (integers). Counters are merged into the existing values (not replaced). Setting a counter to `0` is treated as no-op and will **not** reset the stored value. **`recipients`** — Per-recipient delivery statuses. Each entry maps a recipient email address to a `MessageStatus` value. Use `failReason` to capture bounce or rejection... Location PITs must be provisioned with the HighLevel permission: `conversations/message.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Email message id |
| `events` | object | No | Aggregate delivery event counters. Counters are merged into existing values. The API automatically infers related events (e.g., reporting `clicked` will also set `opened` and `delivered` if not already present). See the endpoint description for the full inference rules. |
| `status` | string | Yes | The overall status of the email message. Required on every request. For emails with multiple recipients, consider using the `recipients` array for granular tracking and this field for the aggregate status. |
| `recipients` | array | No | Per-recipient delivery statuses. Each entry maps a recipient email address to a delivery status. Entries are upserted — if a recipient already has a status, it will be overwritten with the new value. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update message status

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_UPDATE_MESSAGE_STATUS`

Post the necessary fields for the API to update message status. Location PITs must be provisioned with the HighLevel permission: `conversations/message.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `error` | object | No | Error object from the conversation provider |
| `status` | string | Yes | Message status |
| `message_id` | string | Yes | Message Id |
| `recipients` | array | No | Email delivery status for additional email recipients. |
| `email_message_id` | string | No | Email message Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload file attachments

**Slug:** `HIGHLEVEL_LOCATION_CONVERSATIONS_UPLOAD_FILE_ATTACHMENTS`

Post the necessary fields for the API to upload files. The files need to be a buffer with the key "fileAttachment". The allowed file types are: <ul><li>JPG</li><li>JPEG</li><li>PNG</li><li>MP4</li><li>MPEG</li><li>ZIP</li><li>RAR</li><li>PDF</li><li>DOC</li><li>DOCX</li><li>TXT</li><li>MP3</li><li>WAV</li></ul> The API will return an object with the URLs Location PITs must be provisioned with the HighLevel permission: `conversations/message.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_id` | string | Yes | Contact Id |
| `location_id` | string | No | Connected HighLevel Location ID; always taken from the connection. |
| `is_group_sms` | boolean | No | Flag to indicate group SMS upload flow. When true, only 1 file upload is allowed per request. |
| `attachment_urls` | array | Yes | Non-empty array of attachment URLs to upload for the conversation |
| `conversation_id` | string | Yes | Conversation Id |
| `chat_service_sid` | string | No | Twilio chat service SID for group SMS uploads |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Import Courses

**Slug:** `HIGHLEVEL_LOCATION_COURSES_IMPORT_COURSES`

Import course products into the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `courses.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | HighLevel user ID associated with the import. |
| `products` | array | Yes | Non-empty list of course products to import. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Ad Platform Integration

**Slug:** `HIGHLEVEL_LOCATION_CREATE_AD_PLATFORM_INTEGRATION`

Connect one supported ad platform to the Location using the provider-specific account identifiers. This changes the Location's active advertising integration and can replace or disrupt an existing connection; confirm the Location, platform, ad account, and MCC before calling. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `mcc_id` | string | No | Required Google manager account (MCC) ID, sent as `mccId`. Not accepted for Facebook or LinkedIn. |
| `page_id` | string | No | Required Facebook Page ID, sent as `pageId`. Not accepted for Google or LinkedIn. |
| `platform` | string ("facebook" | "google" | "linkedin") | Yes | Ad platform whose equivalent operation to call. |
| `ad_account_id` | string | No | Ad account ID sent as `adAccountId`. Required for Google and LinkedIn; optional for Facebook. |
| `currency_code` | string | No | Required LinkedIn account currency code, sent as `currencyCode`. Not accepted for Facebook or Google. |
| `ad_account_name` | string | No | Required LinkedIn ad account name, sent as `adAccountName`. Not accepted for Facebook or Google. |
| `organization_id` | string | No | Required LinkedIn organization ID, sent as `organizationId`. Not accepted for Facebook or Google. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Custom Field

**Slug:** `HIGHLEVEL_LOCATION_CUSTOM_FIELDS_CREATE_CUSTOM_FIELD`

Create a custom field for a custom object or Company (Business) object in the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Field name. |
| `options` | array | No | Choices for SINGLE_OPTIONS, MULTIPLE_OPTIONS, RADIO, CHECKBOX, or TEXTBOX_LIST fields. |
| `data_type` | string ("TEXT" | "LARGE_TEXT" | "NUMERICAL" | "PHONE" | "MONETORY" | "CHECKBOX" | "SINGLE_OPTIONS" | "MULTIPLE_OPTIONS" | "DATE" | "TEXTBOX_LIST" | "FILE_UPLOAD" | "RADIO" | "EMAIL") | Yes | Provider data type of the field to create. |
| `field_key` | string | Yes | Unique field key, such as `custom_objects.pet.name`. A bare field name is also accepted and HighLevel prefixes it for the selected object. |
| `parent_id` | string | Yes | ID of the parent custom field folder. |
| `object_key` | string | Yes | Object key that will own the field. Use `business` for Company fields and `custom_objects.<key>` for custom objects. |
| `description` | string | No | Description of the field. |
| `placeholder` | string | No | Placeholder text for the field. |
| `show_in_forms` | boolean | Yes | Whether the field should be shown in forms. |
| `max_file_limit` | number | No | Maximum number of files for a FILE_UPLOAD field. |
| `accepted_formats` | array | No | Allowed upload extensions for a FILE_UPLOAD field, for example [".pdf", ".png"]. |
| `allow_custom_option` | boolean | No | Whether RADIO records may use values outside the configured options. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Custom Field Folder

**Slug:** `HIGHLEVEL_LOCATION_CUSTOM_FIELDS_CREATE_CUSTOM_FIELD_FOLDER`

Create a custom field folder for a custom object in the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the custom field folder. |
| `object_key` | string | Yes | Object key that will own the folder. Use `business` for Company fields and `custom_objects.<key>` for custom objects. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Custom Field By ID

**Slug:** `HIGHLEVEL_LOCATION_CUSTOM_FIELDS_DELETE_CUSTOM_FIELD`

Permanently delete a custom field by ID. HighLevel currently supports custom objects and Company (Business) objects for this operation. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID of the custom field to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Custom Field Folder

**Slug:** `HIGHLEVEL_LOCATION_CUSTOM_FIELDS_DELETE_CUSTOM_FIELD_FOLDER`

Permanently delete a custom field folder from the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID of the custom field folder to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Custom Field / Folder By ID

**Slug:** `HIGHLEVEL_LOCATION_CUSTOM_FIELDS_GET_CUSTOM_FIELD_BY_ID`

Get a custom field or folder by ID. HighLevel currently supports custom objects and Company (Business) objects for this operation. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID of the custom field or folder to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Custom Fields By Object Key

**Slug:** `HIGHLEVEL_LOCATION_CUSTOM_FIELDS_GET_CUSTOM_FIELDS_BY_OBJECT_KEY`

List custom fields and folders for an object key in the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `object_key` | string | Yes | Object key whose custom fields and folders to return. Use `business` for Company fields and `custom_objects.<key>` for custom objects. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Custom Field By ID

**Slug:** `HIGHLEVEL_LOCATION_CUSTOM_FIELDS_UPDATE_CUSTOM_FIELD`

Update a custom field by ID in the connected HighLevel location. HighLevel currently supports custom objects and Company (Business) objects. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID of the custom field to update. |
| `name` | string | No | New field name. |
| `options` | array | No | Complete replacement option list. Include every existing option plus any new options; this operation does not support removing options. |
| `description` | string | No | New field description. |
| `placeholder` | string | No | New placeholder text. |
| `show_in_forms` | boolean | No | Whether the field should be shown in forms. |
| `max_file_limit` | number | No | Maximum number of files for a FILE_UPLOAD field. |
| `accepted_formats` | array | No | Allowed upload extensions for a FILE_UPLOAD field, for example [".pdf", ".png"]. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Custom Field Folder Name

**Slug:** `HIGHLEVEL_LOCATION_CUSTOM_FIELDS_UPDATE_CUSTOM_FIELD_FOLDER`

Rename a custom field folder in the connected HighLevel location. HighLevel currently supports custom objects and Company (Business) objects. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID of the custom field folder to rename. |
| `name` | string | Yes | New name for the custom field folder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Ad Account Connection

**Slug:** `HIGHLEVEL_LOCATION_DELETE_AD_ACCOUNT_CONNECTION`

Disconnect an ad account from one supported ad platform. This does not delete the upstream ad account, but it disables Location workflows that depend on the connection; confirm the Location, platform, and account ID before calling. Location PITs must be provisioned with the HighLevel permission: `adPublishing.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `platform` | string ("facebook" | "google" | "linkedin") | Yes | Ad platform whose equivalent operation to call. |
| `ad_account_id` | string | Yes | Required ad account ID for every platform. Sent as a Facebook/Google `adAccountId` path parameter or a LinkedIn `adAccountId` query parameter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Email Verification

**Slug:** `HIGHLEVEL_LOCATION_EMAIL_ISV_VERIFY_EMAIL`

Verify an email address or a HighLevel contact's email. This may irreversibly deduct verification charges from the connected location or company wallet, and verification must be configured for that location. Location PITs must be provisioned with the HighLevel permission: `lc-email.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("email" | "contact") | Yes | Whether `verify` is an email address or a HighLevel contact ID. |
| `verify` | string | Yes | Email address or HighLevel contact ID to verify. This request may charge the connected location or company wallet. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Email Campaign

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_CREATE_EMAIL_CAMPAIGN`

Create an email campaign draft without scheduling or sending it. Location PITs must be provisioned with the HighLevel permission: `emails/campaigns.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Campaign name. |
| `user_id` | string | Yes | ID of the user creating the draft. |
| `time_zone` | string | Yes | IANA timezone for the campaign. |
| `user_name` | string | No | Name of the user creating the draft. |
| `editor_type` | string ("html" | "text") | Yes | Editor type for campaign content. |
| `template_id` | string | No | Existing template ID to create the draft from. |
| `editor_content` | string | Yes | Initial HTML or plain-text campaign content. |
| `parent_folder_id` | string | No | Parent folder ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create an email template

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_CREATE_EMAIL_TEMPLATE`

Create a new email template in the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `emails/templates.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Template name. |
| `user_id` | string | No | ID of the user performing the action. |
| `from_name` | string | No | Sender name. |
| `from_email` | string | No | Sender email address. |
| `editor_type` | string ("html" | "text") | Yes | Editor type for the template. |
| `preview_text` | string | No | Inbox preview text. |
| `subject_line` | string | No | Email subject line. |
| `editor_content` | string | Yes | Initial HTML or plain-text content. |
| `parent_folder_id` | string | No | Parent folder ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a template folder

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_CREATE_TEMPLATE_FOLDER`

Create an email-template folder in the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `emails/templates.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Folder name. |
| `user_id` | string | No | ID of the user performing the action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Campaign

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_DELETE_CAMPAIGN`

Delete an email campaign. For a scheduled campaign, the first call cancels its schedule; call again only if the campaign should then be permanently deleted. Verify the campaign ID before calling. Location PITs must be provisioned with `emails/campaigns.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `campaign_id` | string | Yes | Campaign ID to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete a template

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_DELETE_EMAIL_TEMPLATE`

Permanently delete one email template from the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `emails/templates.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `template_id` | string | Yes | Template ID to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Bulk Action Campaign by ID

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_GET_BULK_ACTION_CAMPAIGN`

Get one bulk-action campaign from the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `emails/campaigns.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `campaign_id` | string | Yes | Bulk-action campaign ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Campaign Statistics

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_GET_CAMPAIGN_STATS`

Get statistics for an email, workflow, or bulk-action campaign. Location PITs must be provisioned with the HighLevel permission: `emails/stats.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string ("email-campaigns" | "workflow-campaigns" | "bulk-actions") | Yes | Campaign source type. |
| `source_id` | string | Yes | Schedule source ID returned by the selected email-campaign, workflow-campaign, or bulk-action schedule. This is not the campaign ID. |
| `sub_source_id` | string | No | Workflow action ID; valid only for workflow-campaigns. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Email Campaign by ID

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_GET_EMAIL_CAMPAIGN`

Get one email campaign from the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `emails/campaigns.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `campaign_id` | string | Yes | Campaign ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Email Template by ID

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_GET_EMAIL_TEMPLATE`

Get one email template from the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `emails/templates.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `template_id` | string | Yes | Template ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Workflow Campaign by ID

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_GET_WORKFLOW_CAMPAIGN`

Get one workflow campaign from the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `emails/campaigns.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `campaign_id` | string | Yes | Workflow campaign ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Import an email template

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_IMPORT_EMAIL_TEMPLATE`

Import an email template from a supported provider URL into the connected location. Location PITs must be provisioned with the HighLevel permission: `emails/templates.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Name for the imported template. |
| `user_id` | string | No | ID of the user performing the action. |
| `import_url` | string | Yes | Public template import URL. |
| `import_provider` | string ("mailchimp" | "active_campaign") | Yes | Provider from which to import the template. |
| `parent_folder_id` | string | No | Parent folder ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Bulk Action Campaigns

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_LIST_BULK_ACTION_CAMPAIGNS`

Return one page of bulk-action campaigns for the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `emails/campaigns.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of campaigns to return (1-20). |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `offset` | integer | No | Number of campaigns to skip. |
| `search` | string | No | Search text for bulk-action campaigns. |
| `status` | string ("processing" | "scheduled" | "paused" | "complete" | "cancelled") | No | Campaign status filter. |
| `date_to` | string | No | Inclusive ISO 8601 end date. |
| `date_from` | string | No | Inclusive ISO 8601 start date. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Email Campaigns

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_LIST_EMAIL_CAMPAIGNS`

Return one page of email campaigns for the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `emails/campaigns.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of campaigns to return (1-20). |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `offset` | integer | No | Number of campaigns to skip. |
| `search` | string | No | Search text for campaign name. |
| `status` | string ("all" | "sent" | "failed" | "archived" | "draft" | "processing" | "scheduled" | "cancelled" | "paused") | No | Campaign status filter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List templates

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_LIST_EMAIL_TEMPLATES`

Return one page of email templates and folders for the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `emails/templates.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of items to return (1-20). |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `offset` | integer | No | Number of items to skip. |
| `search` | string | No | Search by template name. |
| `include` | string ("all" | "templates" | "folders") | No | Kinds of items to include. |
| `sort_by` | string | No | Field to sort by; HighLevel supports only updatedAt. |
| `archived` | boolean | No | Whether to return archived templates. |
| `folder_id` | string | No | Folder ID, or `root` for top-level items. |
| `sort_order` | string ("asc" | "desc") | No | Sort direction. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Workflow Campaigns

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_LIST_WORKFLOW_CAMPAIGNS`

Return one page of workflow campaigns for the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `emails/campaigns.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of campaigns to return (1-20). |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `offset` | integer | No | Number of campaigns to skip. |
| `search` | string | No | Search text for workflow campaigns. |
| `status` | string ("draft" | "published") | No | Workflow campaign status filter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Schedule Campaign

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_SCHEDULE_CAMPAIGN`

Start or schedule a draft or paused email campaign after validating recipients and schedule configuration. A cancelled campaign cannot be rescheduled; create a new draft. This can irreversibly send email to external recipients. Location PITs must be provisioned with the HighLevel permission: `emails/campaigns.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | ID of the user scheduling the campaign. |
| `send_days` | array | No | Allowed send days for batch and RSS schedules: Mon, Tue, Wed, Thu, Fri, Sat, or Sun. |
| `time_zone` | string | Yes | IANA timezone. |
| `user_name` | string | No | Name of the user scheduling the campaign. |
| `email_meta` | object | Yes | Subject, sender, and email metadata. |
| `recipients` | object | Yes | Validated recipient selection. |
| `rss_config` | object | No | RSS schedule configuration. |
| `campaign_id` | string | Yes | Draft or paused campaign ID. A cancelled campaign cannot be rescheduled; create a new draft. |
| `schedule_type` | string ("immediate" | "scheduled" | "batch" | "rss" | "smart_send") | Yes | How to start or schedule the campaign. |
| `ab_test_config` | object | No | Optional A/B test configuration; unavailable for RSS. |
| `schedule_config` | object | No | Non-RSS schedule configuration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Email Campaign

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_UPDATE_EMAIL_CAMPAIGN`

Update selected fields of an email campaign draft; this action never schedules or sends it. Location PITs must be provisioned with the HighLevel permission: `emails/campaigns.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Campaign name. |
| `user_id` | string | No | ID of the user performing the update. |
| `campaign_id` | string | Yes | Draft campaign ID. |
| `editor_type` | string ("html" | "text") | No | Content editor type; provide with editor_content. |
| `editor_content` | string | No | Updated HTML or plain-text content; provide with editor_type. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update an email template

**Slug:** `HIGHLEVEL_LOCATION_EMAILS_UPDATE_EMAIL_TEMPLATE`

Update selected fields of an email template in the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `emails/templates.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Template name. |
| `user_id` | string | No | ID of the user performing the action. |
| `archived` | boolean | No | Whether the template is archived. |
| `from_name` | string | No | Sender name. |
| `from_email` | string | No | Sender email address. |
| `editor_type` | string ("html" | "text") | No | Content editor type; provide with editor_content. |
| `template_id` | string | Yes | Template ID. |
| `preview_text` | string | No | Inbox preview text. |
| `subject_line` | string | No | Email subject line. |
| `editor_content` | string | No | Updated HTML or plain-text content; provide with editor_type. |
| `parent_folder_id` | string | No | Parent folder ID, or the sentinel `root` to move the template to the root folder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get File by Slug

**Slug:** `HIGHLEVEL_LOCATION_FILES_GET_FILE_BY_SLUG`

Get metadata and a short-lived signed download URL for a HighLevel file share slug. The documented response is JSON; this action does not follow the uncredentialed asset URL or forward provider credentials to its dynamic origin. Location PITs must have `files.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `slug` | string | Yes | Share-link slug identifying the file. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Forms

**Slug:** `HIGHLEVEL_LOCATION_FORMS_GET_FORMS`

Return one offset-based page of forms for the connected HighLevel location. Pass `next_cursor` back as `skip` to retrieve the next page. Location PITs must be provisioned with the HighLevel permission: `forms.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of matching forms to skip. |
| `limit` | integer | No | Maximum forms to return (1-50). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Forms Submissions

**Slug:** `HIGHLEVEL_LOCATION_FORMS_GET_FORMS_SUBMISSIONS`

Return one page of form submissions for the connected HighLevel location. Pass `next_cursor` back as `page` to retrieve the next page. Location PITs must be provisioned with the HighLevel permission: `forms.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `q` | string | No | Match a contact ID, name, email address, or phone number. |
| `page` | integer | No | One-based submission page number. |
| `limit` | integer | No | Maximum submissions to return (1-100). |
| `end_at` | string | No | Inclusive end date in YYYY-MM-DD format. |
| `form_id` | string | No | Return submissions for this form only. |
| `start_at` | string | No | Inclusive start date in YYYY-MM-DD format. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload Files to Custom Fields

**Slug:** `HIGHLEVEL_LOCATION_FORMS_UPLOAD_TO_CUSTOM_FIELDS`

Upload one or more files to file-upload custom fields on a contact in the connected HighLevel location. Each file may be up to 50 MB. Location PITs must be provisioned with the HighLevel permission: `forms.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uploads` | array | Yes | Files to upload. Each multipart key is `<custom_field_id>_<file_id>`. |
| `contact_id` | string | Yes | Identifier of the contact whose custom fields to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Redirect

**Slug:** `HIGHLEVEL_LOCATION_FUNNELS_CREATE_REDIRECT`

Create a URL redirect for the connected HighLevel Location. The source domain must already be connected to the location. Location PITs must be provisioned with the HighLevel permission: `funnels/redirect.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `path` | string | Yes | Path to redirect. |
| `action` | string ("funnel" | "website" | "url" | "all") | Yes | Type of redirect target. |
| `domain` | string | Yes | Domain where the redirect starts. The domain must already be connected to this HighLevel location before the redirect can be created. |
| `target` | string | Yes | Destination URL or resource identifier. |
| `location_id` | string | No | Connected HighLevel Location ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Redirect By ID

**Slug:** `HIGHLEVEL_LOCATION_FUNNELS_DELETE_REDIRECT_BY_ID`

Permanently delete a URL redirect from the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `funnels/redirect.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Redirect ID to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Redirects List

**Slug:** `HIGHLEVEL_LOCATION_FUNNELS_FETCH_REDIRECTS_LIST`

Return one offset-based page of URL redirects for the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `funnels/redirect.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | Yes | Maximum redirects to return. |
| `offset` | integer | Yes | Number of redirects to skip. |
| `search` | string | No | Optional redirect search text. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch List of Funnels

**Slug:** `HIGHLEVEL_LOCATION_FUNNELS_GET_FUNNELS`

Return one offset-based page of funnels for the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `funnels/funnel.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Optional funnel name filter. |
| `type` | string | No | Optional funnel type filter. |
| `limit` | integer | No | Maximum funnels to return. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `offset` | integer | No | Provider offset for this page. |
| `category` | string | No | Optional funnel category filter. |
| `parent_id` | string | No | Optional parent funnel ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch List of Funnel Pages

**Slug:** `HIGHLEVEL_LOCATION_FUNNELS_GET_PAGES_BY_FUNNEL_ID`

Return one offset-based page of pages belonging to a HighLevel funnel. Location PITs must be provisioned with the HighLevel permission: `funnels/page.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Optional page name filter. |
| `limit` | integer | Yes | Maximum pages to return. |
| `offset` | integer | Yes | Number of pages to skip. |
| `funnel_id` | string | Yes | Funnel ID whose pages should be returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Count of Funnel Pages

**Slug:** `HIGHLEVEL_LOCATION_FUNNELS_GET_PAGES_COUNT_BY_FUNNEL_ID`

Count pages belonging to a HighLevel funnel, optionally filtered by name. Location PITs must be provisioned with the HighLevel permission: `funnels/pagecount.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Optional page name filter. |
| `funnel_id` | string | Yes | Funnel ID whose pages should be counted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Redirect By ID

**Slug:** `HIGHLEVEL_LOCATION_FUNNELS_UPDATE_REDIRECT_BY_ID`

Update the destination and action of an existing HighLevel URL redirect. Location PITs must be provisioned with the HighLevel permission: `funnels/redirect.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Redirect ID to update. |
| `action` | string ("funnel" | "website" | "url" | "all") | Yes | Type of redirect target. |
| `target` | string | Yes | New destination URL or resource identifier. |
| `location_id` | string | No | Connected HighLevel Location ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Ad Account

**Slug:** `HIGHLEVEL_LOCATION_GET_AD_ACCOUNT`

Return one ad account or the selected account details for one ad platform. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Optional draft-selection flag for Facebook and Google, sent as `isDraft`. Not accepted for LinkedIn. |
| `platform` | string ("facebook" | "google" | "linkedin") | Yes | Ad platform whose equivalent operation to call. |
| `ad_account_id` | string | Yes | Required ad account ID for Facebook, Google, and LinkedIn. Sent as the Facebook/Google `adAccountId` path parameter or the LinkedIn `adAccountId` query parameter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Ad Campaign Reporting

**Slug:** `HIGHLEVEL_LOCATION_GET_AD_CAMPAIGN_REPORTING`

Return reporting metrics for one Facebook or Google ad campaign. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end_date` | string | Yes | Required Facebook or Google report end date, sent as `endDate`. |
| `platform` | string ("facebook" | "google") | Yes | Ad platform whose equivalent operation to call. |
| `start_date` | string | Yes | Required Facebook or Google report start date, sent as `startDate`. |
| `campaign_id` | string | Yes | Required 24-character HighLevel campaign ID for Facebook or Google. The campaign must already be published; do not pass the Meta or Google Ads campaign ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Ad Platform Integration

**Slug:** `HIGHLEVEL_LOCATION_GET_AD_PLATFORM_INTEGRATION`

Return the Location's integration state for one ad platform. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Optional draft-selection flag for Facebook, Google, and LinkedIn, sent as `isDraft`. |
| `platform` | string ("facebook" | "google" | "linkedin") | Yes | Ad platform whose equivalent operation to call. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Ad Platform User

**Slug:** `HIGHLEVEL_LOCATION_GET_AD_PLATFORM_USER`

Return the current user from one connected ad platform. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_draft` | boolean | No | Optional draft-selection flag for Facebook, Google, and LinkedIn, sent as `isDraft`. |
| `platform` | string ("facebook" | "google" | "linkedin") | Yes | Ad platform whose equivalent operation to call. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Ad Reporting

**Slug:** `HIGHLEVEL_LOCATION_GET_AD_REPORTING`

Return aggregate reporting metrics for one connected ad platform. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("AD_MANAGER" | "INTEGRATION") | No | Required Facebook or Google integration source: `AD_MANAGER` or `INTEGRATION`, sent as `type`. Not accepted for LinkedIn. |
| `pivot` | string ("ACCOUNT" | "CAMPAIGN" | "CAMPAIGN_GROUP" | "CREATIVE") | No | Optional LinkedIn analytics pivot: ACCOUNT, CAMPAIGN, CAMPAIGN_GROUP, or CREATIVE. Sent as `pivot`; not accepted for Facebook or Google. |
| `fields` | array | No | Metrics to return. Required for Facebook and Google; optional for LinkedIn. Facebook accepts impressions, clicks, spend, cpc, cost_per_conversion, conversions, results, cost_per_result, cpm, reach, frequency, and ctr. Google accepts impressions, clicks, cost_micros, average_cpc, conversions, average_cpm, cost_per_conversion, and ctr. LinkedIn accepts clicks, oneClickLeads, costInLocalCurrency, impressions, costInUsd, ctr, cpc, cpm, cpl, externalWebsitePostClickConversions, and conversionRate. |
| `end_date` | string | Yes | Required report end date for Facebook, Google, and LinkedIn, sent as `endDate`. |
| `group_by` | string ("day" | "date" | "week" | "month" | "year") | No | Optional reporting interval sent as `groupBy`: Facebook accepts `day`, `week`, or `month`; Google accepts `date`, `week`, or `month`; LinkedIn accepts `day`, `month`, or `year`. |
| `platform` | string ("facebook" | "google" | "linkedin") | Yes | Ad platform whose equivalent operation to call. |
| `start_date` | string | Yes | Required report start date for Facebook, Google, and LinkedIn, sent as `startDate`. |
| `entity_urns` | string | No | Optional comma-separated LinkedIn entity URNs, sent as `entityUrns`. Not accepted for Facebook or Google. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Manage Auto payment for an schedule invoice

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_AUTO_PAYMENT_INVOICE_SCHEDULE`

API to manage auto payment for a schedule. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. This may charge the contact's configured payment method. This may create, change, or cancel future billing activity. Location PITs must be provisioned with the HighLevel permission: `invoices/schedule.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `schedule_id` | string | Yes | Schedule Id |
| `auto_payment` | object | Yes | Complete automatic-payment configuration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Cancel an scheduled invoice

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_CANCEL_INVOICE_SCHEDULE`

API to cancel a scheduled invoice by schedule id. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. This may create, change, or cancel future billing activity. This destructive change may be irreversible; confirm the target ID and intended outcome first. Location PITs must be provisioned with the HighLevel permission: `invoices/schedule.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `schedule_id` | string | Yes | Schedule Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Estimate Template

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_CREATE_ESTIMATE_TEMPLATE`

Create a new estimate template. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `meta` | object | No | Meta data for the estimate |
| `name` | string | Yes | Estimate Name |
| `items` | array | Yes | An array of items for the estimate. |
| `title` | string | Yes | Title for the estimate |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `currency` | string | Yes | Currency code |
| `discount` | object | Yes | Discount configuration applied by the template. |
| `live_mode` | boolean | No | livemode for estimate |
| `attachments` | array | No | attachments for the invoice |
| `terms_notes` | string | No | Terms notes, Also supports HTML markups |
| `business_details` | object | Yes | Business identity and address shown on estimates from the template. |
| `miscellaneous_charges` | object | No | Optional charge selection. Each `charges` entry must reference an existing charge `_id` and include `enabled`. |
| `send_estimate_details` | object | No | When sending estimate directly while saving |
| `estimate_number_prefix` | string | No | Prefix for the estimate number |
| `automatic_taxes_enabled` | boolean | No | Automatic taxes enabled for the Estimate |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Invoice

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_CREATE_INVOICE`

API to create an invoice. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. Location PITs must be provisioned with the HighLevel permission: `invoices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Invoice Name |
| `items` | array | Yes | An array of items for the invoice. |
| `title` | string | No | Title for the invoice |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `sent_to` | object | Yes | Invoice recipient email, CC, BCC, and phone details. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `currency` | string | Yes | Currency code |
| `discount` | object | Yes | Invoice discount configuration, including type and value. |
| `due_date` | string | No | Due date in YYYY-MM-DD format |
| `live_mode` | boolean | Yes | Whether payment collection uses live rather than test mode. |
| `issue_date` | string | Yes | Issue date in YYYY-MM-DD format |
| `attachments` | array | No | attachments for the invoice |
| `terms_notes` | string | No | Terms notes, Also supports HTML markups |
| `invoice_number` | string | No | Invoice Number |
| `contact_details` | object | Yes | Contact information to send the invoice to |
| `payment_methods` | object | No | Payment Methods for Invoices |
| `business_details` | object | Yes | Business identity and address shown on the invoice. |
| `payment_schedule` | object | No | split invoice into payment schedule summing up to full invoice amount |
| `tips_configuration` | object | No | tips configuration for the invoice |
| `invoice_number_prefix` | string | No | prefix for invoice number |
| `miscellaneous_charges` | object | No | Optional charge selection. Each `charges` entry must reference an existing charge `_id` and include `enabled`. |
| `automatic_taxes_enabled` | boolean | No | Automatic taxes enabled for the Invoice |
| `late_fees_configuration` | object | No | late fees configuration |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Invoice from Estimate

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_CREATE_INVOICE_FROM_ESTIMATE`

Create a new invoice from an existing estimate. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `version` | string ("v1" | "v2") | No | Version of the update request |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `estimate_id` | string | Yes | Estimate Id |
| `mark_as_invoiced` | boolean | Yes | Mark Estimate as Invoiced |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Invoice Schedule

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_CREATE_INVOICE_SCHEDULE`

API to create an invoice Schedule. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. This may create, change, or cancel future billing activity. Location PITs must be provisioned with the HighLevel permission: `invoices/schedule.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name used to identify the invoice schedule. |
| `items` | array | Yes | Complete line items used for each scheduled invoice. |
| `title` | string | No | Customer-visible scheduled-invoice title. |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `currency` | string | Yes | ISO 4217 currency code for scheduled invoices. |
| `discount` | object | Yes | Discount configuration applied to scheduled invoices. |
| `schedule` | object | Yes | Schedule containing exactly one recurring `rrule` or one-off `executeAt` timestamp. |
| `live_mode` | boolean | Yes | Whether scheduled invoices use live rather than test payment mode. |
| `attachments` | array | No | attachments for the invoice |
| `terms_notes` | string | No | Terms and notes shown on scheduled invoices. |
| `contact_details` | object | Yes | Recipient contact details for scheduled invoices. |
| `payment_methods` | object | No | Payment Methods for Invoices |
| `business_details` | object | Yes | Business identity and address shown on scheduled invoices. |
| `tips_configuration` | object | No | Configuration for tips on invoices |
| `invoice_number_prefix` | string | No | prefix for invoice number |
| `miscellaneous_charges` | object | No | Optional charge selection. Each `charges` entry must reference an existing charge `_id` and include `enabled`. |
| `automatic_taxes_enabled` | boolean | No | Automatic taxes enabled for the Invoice |
| `late_fees_configuration` | object | No | Late fees configuration for the invoices |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create template

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_CREATE_INVOICE_TEMPLATE`

Create an invoice template. HighLevel stores internal=true as false and drops items[].type. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. Location PITs must be provisioned with the HighLevel permission: `invoices/template.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the template |
| `items` | array | Yes | Line items included in invoices created from the template. |
| `title` | string | No | Template title |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `currency` | string | Yes | ISO 4217 currency code for invoices from the template. |
| `discount` | object | Yes | Discount configuration applied by the template. |
| `internal` | boolean | No | Whether the template is internal; HighLevel currently stores true as false. |
| `attachments` | array | No | attachments for the invoice |
| `terms_notes` | string | No | Terms and notes shown on invoices created from the template. |
| `payment_methods` | object | No | Payment Methods for Invoices |
| `business_details` | object | Yes | Business identity and address shown on invoices from the template. |
| `tips_configuration` | object | No | Configuration for tips on invoices |
| `invoice_number_prefix` | string | No | prefix for invoice number |
| `miscellaneous_charges` | object | No | Optional charge selection. Each `charges` entry must reference an existing charge `_id` and include `enabled`. |
| `automatic_taxes_enabled` | boolean | No | Automatic taxes enabled for the Invoice |
| `late_fees_configuration` | object | No | Late fees configuration for the invoices |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create New Estimate

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_CREATE_NEW_ESTIMATE`

Create a new estimate. send_estimate_details.estimateName overwrites name; sent_to and user_id are not stored until the estimate is sent. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `meta` | object | No | Meta data for the estimate |
| `name` | string | Yes | Estimate Name |
| `items` | array | Yes | An array of items for the estimate. |
| `title` | string | Yes | Title for the estimate |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `sent_to` | object | No | Email and sent to details for the estimate |
| `user_id` | string | No | User Id |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `currency` | string | Yes | Currency code |
| `discount` | object | Yes | Estimate discount configuration, including type and value. |
| `live_mode` | boolean | No | livemode for estimate |
| `issue_date` | string | Yes | Estimate issue date in YYYY-MM-DD format. |
| `attachments` | array | No | attachments for the invoice |
| `expiry_date` | string | Yes | Estimate expiry date in YYYY-MM-DD format. |
| `terms_notes` | string | No | Terms notes, Also supports HTML markups |
| `auto_invoice` | object | No | Auto invoice for the estimate |
| `contact_details` | object | Yes | Contact information to send the estimate to |
| `estimate_number` | number | No | Estimate Number, if not specified will take in the next valid estimate number |
| `business_details` | object | Yes | Business identity and address shown on the estimate. |
| `frequency_settings` | object | Yes | frequency settings for the estimate |
| `miscellaneous_charges` | object | No | Optional charge selection. Each `charges` entry must reference an existing charge `_id` and include `enabled`. |
| `send_estimate_details` | object | No | When sending estimate directly while saving |
| `estimate_number_prefix` | string | No | Prefix for the estimate number |
| `automatic_taxes_enabled` | boolean | No | Automatic taxes enabled for the Estimate |
| `payment_schedule_config` | object | No | Payment Schedule Config for the estimate |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Estimate

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_DELETE_ESTIMATE`

Delete an existing estimate. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. This destructive change may be irreversible; confirm the target ID and intended outcome first. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `estimate_id` | string | Yes | Estimate Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Estimate Template

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_DELETE_ESTIMATE_TEMPLATE`

Delete an existing estimate template. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. This destructive change may be irreversible; confirm the target ID and intended outcome first. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `template_id` | string | Yes | Template Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete invoice

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_DELETE_INVOICE`

Permanently delete a draft invoice by ID. HighLevel rejects deletion after the invoice leaves `draft`. Confirm the target ID and intended outcome first. Location PITs must be provisioned with the HighLevel permission: `invoices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `invoice_id` | string | Yes | Invoice Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete schedule

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_DELETE_INVOICE_SCHEDULE`

API to delete an schedule by schedule id. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. This may create, change, or cancel future billing activity. This destructive change may be irreversible; confirm the target ID and intended outcome first. Location PITs must be provisioned with the HighLevel permission: `invoices/schedule.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `schedule_id` | string | Yes | Schedule Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete template

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_DELETE_INVOICE_TEMPLATE`

Permanently delete an invoice template by ID. Confirm the target template before calling because this destructive change may be irreversible. Location PITs must be provisioned with `invoices/template.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `template_id` | string | Yes | Template Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate Estimate Number

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_GENERATE_ESTIMATE_NUMBER`

Get the next estimate number for the given location. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate Invoice Number

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_GENERATE_INVOICE_NUMBER`

Get the next invoice number for the given location. Location PITs must be provisioned with the HighLevel permission: `invoices.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get invoice

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_GET_INVOICE`

Get an invoice by ID. HighLevel returns not found for voided invoices even though LIST_INVOICES can still return them with `status=void`. Location PITs must be provisioned with the HighLevel permission: `invoices.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `invoice_id` | string | Yes | Invoice Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get an schedule

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_GET_INVOICE_SCHEDULE`

API to get an schedule by schedule id. Location PITs must be provisioned with the HighLevel permission: `invoices/schedule.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `schedule_id` | string | Yes | Schedule Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Invoice Settings

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_GET_INVOICE_SETTINGS`

Get the invoice settings for the given location. Location PITs must be provisioned with the HighLevel permission: `invoices.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get an template

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_GET_INVOICE_TEMPLATE`

API to get an template by template id. Location PITs must be provisioned with the HighLevel permission: `invoices/template.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `template_id` | string | Yes | Template Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Estimates

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_LIST_ESTIMATES`

Get a paginated list of estimates. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Limit the number of items to return |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `end_at` | string | No | endAt in YYYY-MM-DD format |
| `offset` | integer | No | Number of items to skip |
| `search` | string | No | search text for estimates name |
| `status` | string ("all" | "draft" | "sent" | "accepted" | "declined" | "invoiced" | "viewed") | No | estimate status |
| `start_at` | string | No | startAt in YYYY-MM-DD format |
| `contact_id` | string | No | Contact ID for the estimate |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Estimate Templates

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_LIST_ESTIMATE_TEMPLATES`

Get a list of estimate templates or a specific template by ID. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Limit the number of items to return |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `offset` | integer | No | Number of items to skip |
| `search` | string | No | To search for an estimate template by id / name |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List invoices

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_LIST_INVOICES`

API to get list of invoices. Location PITs must be provisioned with the HighLevel permission: `invoices.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Limit the number of items to return |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `end_at` | string | No | Inclusive end date in YYYY-MM-DD format. |
| `offset` | integer | No | Number of items to skip |
| `search` | string | No | To search for an invoice by id / name / email / phoneNo |
| `status` | string | No | status to be filtered |
| `start_at` | string | No | Inclusive start date in YYYY-MM-DD format. |
| `contact_id` | string | No | Contact ID for the invoice |
| `sort_field` | string | No | The field on which sorting should be applied |
| `sort_order` | string ("ascend" | "descend") | No | The order of sort which should be applied for the sortField |
| `payment_mode` | string ("default" | "live" | "test") | No | payment mode |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List schedules

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_LIST_INVOICE_SCHEDULES`

API to get list of schedules. Location PITs must be provisioned with the HighLevel permission: `invoices/schedule.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Limit the number of items to return |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `end_at` | string | No | Inclusive end date in YYYY-MM-DD format. |
| `offset` | integer | No | Number of items to skip |
| `search` | string | No | To search for an invoice by id / name / email / phoneNo |
| `status` | string | No | status to be filtered |
| `start_at` | string | No | Inclusive start date in YYYY-MM-DD format. |
| `payment_mode` | string ("default" | "live" | "test") | No | payment mode |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List templates

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_LIST_INVOICE_TEMPLATES`

API to get list of templates. Location PITs must be provisioned with the HighLevel permission: `invoices/template.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Limit the number of items to return |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `end_at` | string | No | Inclusive end date in YYYY-MM-DD format. |
| `offset` | integer | No | Number of items to skip |
| `search` | string | No | To search for an invoice by id / name / email / phoneNo |
| `status` | string | No | status to be filtered |
| `start_at` | string | No | Inclusive start date in YYYY-MM-DD format. |
| `payment_mode` | string ("default" | "live" | "test") | No | payment mode |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Preview Estimate Template

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_PREVIEW_ESTIMATE_TEMPLATE`

Get a preview of an estimate template. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `template_id` | string | Yes | Template Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Record a manual payment for an invoice

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_RECORD_INVOICE`

Record a manual payment against an invoice. Omit amount to record the full remaining balance; payment-plan invoices accept only scheduled step amounts. This irreversibly changes the invoice's financial balance; verify the invoice, amount, method, and payment schedule before calling. Location PITs must be provisioned with the HighLevel permission: `invoices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `card` | object | No | Optional receipt details: brand, type, and last4. |
| `meta` | object | No | Optional metadata recorded with the manual payment. |
| `mode` | string ("cash" | "card" | "cheque" | "bank_transfer" | "other") | Yes | manual payment method |
| `notes` | string | Yes | Any note to be recorded with the transaction |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `amount` | number | No | Positive amount to record. Omit to record the full remaining balance; payment-plan invoices accept only scheduled step amounts. |
| `cheque` | object | No | Optional receipt details containing the cheque number. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `invoice_id` | string | Yes | Invoice Id |
| `fulfilled_at` | string | No | Updated At to be recorded against the invoice. |
| `payment_schedule_ids` | array | No | Payment Schedule Ids to be recorded against the invoice. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Schedule an schedule invoice

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_SCHEDULE_INVOICE_SCHEDULE`

API to schedule an schedule invoice to start sending to the customer. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. This may create, change, or cancel future billing activity. Location PITs must be provisioned with the HighLevel permission: `invoices/schedule.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `live_mode` | boolean | Yes | Whether scheduled invoices use live rather than test payment mode. |
| `schedule_id` | string | Yes | Schedule Id |
| `auto_payment` | object | Yes | Complete automatic-payment configuration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Send Estimate

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_SEND_ESTIMATE`

API to send estimate by estimate id. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. This sends a customer-facing payment or billing communication. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `action` | string ("sms_and_email" | "send_manually" | "email" | "sms") | Yes | Delivery channel or manual-send operation for the estimate. |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `user_id` | string | Yes | Please ensure that the UserId corresponds to an authorized personnel, either by an employee ID or agency ID, to access this location. This account will serve as the primary channel for all future communications and updates. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `live_mode` | boolean | Yes | livemode for estimate |
| `sent_from` | object | No | sender details for invoice, valid only if invoice is not sent manually |
| `estimate_id` | string | Yes | Estimate Id |
| `estimate_name` | string | No | estimate name |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Send invoice

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_SEND_INVOICE`

API to send invoice by invoice id. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. This sends a customer-facing payment or billing communication. Location PITs must be provisioned with the HighLevel permission: `invoices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `action` | string ("sms_and_email" | "send_manually" | "email" | "sms") | Yes | Delivery channel: email, SMS, both, or mark as sent manually. |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `user_id` | string | Yes | Please ensure that the UserId corresponds to an authorized personnel, either by an employee ID or agency ID, to access this location. This account will serve as the primary channel for all future communications and updates. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `live_mode` | boolean | Yes | Whether payment collection uses live rather than test mode. |
| `sent_from` | object | No | sender details for invoice, valid only if invoice is not sent manually |
| `invoice_id` | string | Yes | Invoice Id |
| `auto_payment` | object | No | auto-payment configuration |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create & Send

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_TEXT2PAY_INVOICE`

Create or update a text-to-pay invoice. HighLevel ignores `title` and `terms_notes`, as well as attachments, tips_configuration, late_fees_configuration, payment_schedule, invoice_number_prefix, and sent_to for this operation. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record and sends a customer-facing billing communication. Location PITs must be provisioned with the HighLevel permission: `invoices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | id of invoice to update. If skipped, a new invoice will be created |
| `name` | string | Yes | Invoice Name |
| `items` | array | Yes | An array of items for the invoice. |
| `title` | string | No | Invoice title accepted in the request but currently ignored by HighLevel text-to-pay. |
| `action` | string ("draft" | "send") | Yes | create invoice in draft mode or send mode |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `sent_to` | object | Yes | Invoice recipient email, CC, BCC, and phone details; HighLevel ignores this field for text-to-pay. |
| `user_id` | string | Yes | id of user generating invoice |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `currency` | string | Yes | Currency code |
| `discount` | object | No | Invoice discount configuration, including type and value. |
| `due_date` | string | No | Due date in YYYY-MM-DD format |
| `live_mode` | boolean | Yes | Whether payment collection uses live rather than test mode. |
| `issue_date` | string | Yes | Issue date in YYYY-MM-DD format |
| `attachments` | array | No | attachments for the invoice |
| `terms_notes` | string | No | Terms notes accepted in the request but currently ignored by HighLevel text-to-pay. |
| `invoice_number` | string | No | Invoice Number |
| `contact_details` | object | Yes | Contact information to send the invoice to |
| `payment_methods` | object | No | Payment Methods for Invoices |
| `business_details` | object | No | Business identity and address shown on the invoice. |
| `payment_schedule` | object | No | split invoice into payment schedule summing up to full invoice amount |
| `include_terms_note` | boolean | No | include terms & notes with receipts |
| `tips_configuration` | object | No | tips configuration for the invoice |
| `invoice_number_prefix` | string | No | prefix for invoice number |
| `miscellaneous_charges` | object | No | Optional charge selection. Each `charges` entry must reference an existing charge `_id` and include `enabled`. |
| `automatic_taxes_enabled` | boolean | No | Automatic taxes enabled for the Invoice |
| `late_fees_configuration` | object | No | late fees configuration |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update scheduled recurring invoice

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_UPDATE_AND_SCHEDULE_INVOICE_SCHEDULE`

Replace the contents of an invoice schedule that is already in `scheduled` state; call SCHEDULE_INVOICE_SCHEDULE first for a draft. The request is a full replacement, so include every existing invoice, schedule, and auto-payment setting that must be preserved; omitting tipsConfiguration, paymentMethods, or automaticTaxesEnabled clears it. Review currency, amounts, taxes, discounts, fees, and payment settings because this changes future billing activity and may charge the contact. Location PITs must be provisioned with the HighLevel permission: `invoices/schedule.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Replacement name used to identify the invoice schedule. |
| `items` | array | Yes | Complete replacement line items for scheduled invoices. |
| `title` | string | No | Replacement customer-visible scheduled-invoice title. |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `currency` | string | Yes | ISO 4217 currency code for scheduled invoices. |
| `discount` | object | Yes | Complete replacement discount configuration. |
| `schedule` | object | Yes | Complete schedule containing exactly one `rrule` or `executeAt`. The schedule must already be in `scheduled` state; include every setting that must be preserved. |
| `live_mode` | boolean | Yes | Whether scheduled invoices use live rather than test payment mode. |
| `attachments` | array | No | Attachments for the invoice. |
| `schedule_id` | string | Yes | Schedule Id |
| `terms_notes` | string | No | Replacement terms and notes shown on scheduled invoices. |
| `auto_payment` | object | Yes | Required automatic-payment setting for the activated schedule. Enabling it may charge the contact's configured payment method. |
| `contact_details` | object | Yes | Complete recipient contact details to retain on the schedule. |
| `payment_methods` | object | No | Complete replacement payment-method settings. |
| `business_details` | object | Yes | Complete business identity and address to retain on invoices. |
| `tips_configuration` | object | No | Complete replacement tips configuration. |
| `miscellaneous_charges` | object | No | Optional charge selection. Each `charges` entry must reference an existing charge `_id` and include `enabled`. |
| `automatic_taxes_enabled` | boolean | No | Whether automatic taxes are enabled. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Estimate

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_UPDATE_ESTIMATE`

Update an existing estimate. Omitted terms_notes, payment_schedule_config, automatic_taxes_enabled, and live_mode are cleared. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `meta` | object | No | Meta data for the estimate |
| `name` | string | Yes | Estimate Name |
| `items` | array | Yes | An array of items for the estimate. |
| `title` | string | Yes | Title for the estimate |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `sent_to` | object | No | Email and sent to details for the estimate |
| `user_id` | string | No | User Id |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `currency` | string | Yes | Currency code |
| `discount` | object | Yes | Complete estimate discount configuration, including type and value. |
| `live_mode` | boolean | No | livemode for estimate |
| `issue_date` | string | Yes | Estimate issue date in YYYY-MM-DD format. |
| `attachments` | array | No | attachments for the invoice |
| `estimate_id` | string | Yes | Estimate Id |
| `expiry_date` | string | Yes | Estimate expiry date in YYYY-MM-DD format. |
| `terms_notes` | string | No | Terms notes, Also supports HTML markups |
| `auto_invoice` | object | No | Auto invoice for the estimate |
| `contact_details` | object | Yes | Contact information to send the estimate to |
| `estimate_number` | number | No | Estimate Number, if not specified will take in the next valid estimate number |
| `estimate_status` | string ("draft" | "sent" | "invoiced" | "viewed") | No | Estimate status to set. Accepted and declined are customer-only transitions and cannot be set through this action. |
| `business_details` | object | Yes | Business identity and address shown on the estimate. |
| `frequency_settings` | object | Yes | frequency settings for the estimate |
| `miscellaneous_charges` | object | No | Optional charge selection. Each `charges` entry must reference an existing charge `_id` and include `enabled`. |
| `send_estimate_details` | object | No | When sending estimate directly while saving |
| `estimate_number_prefix` | string | No | Prefix for the estimate number |
| `automatic_taxes_enabled` | boolean | No | Automatic taxes enabled for the Estimate |
| `payment_schedule_config` | object | No | Payment Schedule Config for the estimate |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update estimate last visited at

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_UPDATE_ESTIMATE_LAST_VISITED_AT`

Update an estimate's last-visited timestamp by estimate ID. The estimate must already be in the sent state. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `estimate_id` | string | Yes | Estimate Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Estimate Template

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_UPDATE_ESTIMATE_TEMPLATE`

Update an existing estimate template. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. Location PITs must be provisioned with the HighLevel permission: `invoices/estimate.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `meta` | object | No | Meta data for the estimate |
| `name` | string | Yes | Estimate Name |
| `items` | array | Yes | An array of items for the estimate. |
| `title` | string | No | Title for the estimate |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `currency` | string | Yes | Currency code |
| `discount` | object | Yes | Complete replacement discount configuration. |
| `live_mode` | boolean | No | livemode for estimate |
| `attachments` | array | No | attachments for the invoice |
| `template_id` | string | Yes | Template Id |
| `terms_notes` | string | No | Terms notes, Also supports HTML markups |
| `business_details` | object | Yes | Complete business identity and address retained by the template. |
| `miscellaneous_charges` | object | No | Optional charge selection. Each `charges` entry must reference an existing charge `_id` and include `enabled`. |
| `send_estimate_details` | object | No | When sending estimate directly while saving |
| `estimate_number_prefix` | string | No | Prefix for the estimate number |
| `automatic_taxes_enabled` | boolean | No | Automatic taxes enabled for the Estimate |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update invoice

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_UPDATE_INVOICE`

Update an invoice by invoice ID. Omitting payment_schedule clears the stored payment schedule. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. Location PITs must be provisioned with the HighLevel permission: `invoices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name to be updated |
| `title` | string | No | Title for the invoice |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `currency` | string | Yes | Currency |
| `discount` | object | Yes | Full discount configuration retained by this replacement update. |
| `due_date` | string | Yes | Due date in YYYY-MM-DD format |
| `live_mode` | boolean | No | Payment mode |
| `contact_id` | string | No | Id of the contact which you need to send the invoice |
| `invoice_id` | string | Yes | Invoice Id |
| `issue_date` | string | Yes | Issue date in YYYY-MM-DD format |
| `attachments` | array | No | attachments for the invoice |
| `description` | string | No | Description |
| `terms_notes` | string | No | Terms notes, Also supports HTML markups |
| `xero_details` | object | No | Optional Xero accounting integration details retained by the invoice. |
| `invoice_items` | array | Yes | Complete replacement line items for the invoice. |
| `invoice_number` | string | No | Invoice Number |
| `contact_details` | object | Yes | Full contact details retained by this replacement update. |
| `payment_methods` | object | No | Payment Methods for Invoices |
| `business_details` | object | Yes | Business details which need to be updated |
| `payment_schedule` | object | No | split invoice into payment schedule summing up to full invoice amount |
| `tips_configuration` | object | No | tips configuration for the invoice |
| `invoice_number_prefix` | string | No | prefix for invoice number |
| `miscellaneous_charges` | object | No | Optional charge selection. Each `charges` entry must reference an existing charge `_id` and include `enabled`. |
| `automatic_taxes_enabled` | boolean | No | Automatic taxes enabled for the Invoice |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Invoice Last Visited At

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_UPDATE_INVOICE_LAST_VISITED_AT`

Mark an invoice as last visited in the connected Location. Location PITs must be provisioned with the HighLevel permission: `invoices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `invoice_id` | string | Yes | Invoice ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Invoice Late Fees Configuration

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_UPDATE_INVOICE_LATE_FEES_CONFIGURATION`

Replace late-fee settings on an invoice in the connected Location. Confirm the amount, type, frequency, grace period, and cap before changing this financial record. Location PITs must be provisioned with the HighLevel permission: `invoices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `invoice_id` | string | Yes | Invoice ID. |
| `late_fees_configuration` | object | Yes | Complete late-fee configuration to apply. |
| `confirm_configuration_change` | boolean | Yes | Must be true to confirm this changes fees on a financial record. Not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update schedule

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_UPDATE_INVOICE_SCHEDULE`

Replace an invoice schedule by schedule ID. The request is a full replacement, so include every existing invoice and schedule setting that must be preserved; omitting tipsConfiguration, paymentMethods, or automaticTaxesEnabled clears it. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record and future billing activity. Location PITs must be provisioned with the HighLevel permission: `invoices/schedule.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Replacement name used to identify the invoice schedule. |
| `items` | array | Yes | Complete replacement line items for scheduled invoices. |
| `title` | string | No | Replacement customer-visible scheduled-invoice title. |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `currency` | string | Yes | ISO 4217 currency code for scheduled invoices. |
| `discount` | object | Yes | Complete replacement discount configuration. |
| `schedule` | object | Yes | Complete schedule containing exactly one `rrule` or `executeAt`. This update replaces the schedule object, so include every existing schedule setting that must be preserved. |
| `live_mode` | boolean | Yes | Whether scheduled invoices use live rather than test payment mode. |
| `attachments` | array | No | attachments for the invoice |
| `schedule_id` | string | Yes | Schedule Id |
| `terms_notes` | string | No | Replacement terms and notes shown on scheduled invoices. |
| `contact_details` | object | Yes | Complete recipient contact details to retain on the schedule. |
| `payment_methods` | object | No | Complete replacement payment-method settings. |
| `business_details` | object | Yes | Complete business identity and address to retain on invoices. |
| `tips_configuration` | object | No | Complete replacement tips configuration. |
| `miscellaneous_charges` | object | No | Optional charge selection. Each `charges` entry must reference an existing charge `_id` and include `enabled`. |
| `automatic_taxes_enabled` | boolean | No | Whether automatic taxes are enabled. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update template

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_UPDATE_INVOICE_TEMPLATE`

Update an invoice template by ID. HighLevel nulls attachments, tipsConfiguration, paymentMethods, and automaticTaxesEnabled on every update, even when they are sent. Review currency, amounts, taxes, discounts, fees, and payment settings before calling because this changes a financial record. Location PITs must be provisioned with the HighLevel permission: `invoices/template.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the template |
| `items` | array | Yes | Complete replacement line items for the template. |
| `title` | string | No | Template title |
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `currency` | string | Yes | ISO 4217 currency code retained by the template. |
| `discount` | object | Yes | Complete replacement discount configuration. |
| `internal` | boolean | No | Whether the template is internal. |
| `template_id` | string | Yes | Template Id |
| `terms_notes` | string | No | Terms and notes shown on invoices created from the template. |
| `business_details` | object | Yes | Complete business identity and address retained by the template. |
| `miscellaneous_charges` | object | No | Optional charge selection. Each `charges` entry must reference an existing charge `_id` and include `enabled`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Template Late Fees Configuration

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_UPDATE_INVOICE_TEMPLATE_LATE_FEES_CONFIGURATION`

Replace an invoice template's late-fee configuration in the connected Location. Confirm the fee amount, type, frequency, grace period, and cap before calling. Location PITs must be provisioned with the HighLevel permission: `invoices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `template_id` | string | Yes | Template ID. |
| `late_fees_configuration` | object | Yes | Complete late-fee configuration to apply. |
| `confirm_configuration_change` | boolean | Yes | Must be true to confirm this changes future invoice-template fee behavior. Not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Template Payment Methods Configuration

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_UPDATE_INVOICE_TEMPLATE_PAYMENT_METHODS_CONFIGURATION`

Replace payment-method settings on an invoice template in the connected Location. Confirm the intended bank-debit behavior before calling. Location PITs must be provisioned with the HighLevel permission: `invoices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `template_id` | string | Yes | Template ID. |
| `payment_methods` | object | Yes | Payment methods to configure for invoices created from the template. |
| `confirm_configuration_change` | boolean | Yes | Must be true to confirm this changes payment options on the invoice template. Not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Void invoice

**Slug:** `HIGHLEVEL_LOCATION_INVOICES_VOID_INVOICE`

Void a non-draft invoice by ID without deleting its record. Draft invoices cannot be voided, and any paid amount must be refunded before voiding. Confirm the intended accounting outcome because this financial change is irreversible. Location PITs must be provisioned with `invoices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `alt_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `alt_type` | string | No | Fixed provider tenant discriminator. |
| `invoice_id` | string | Yes | Invoice Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Knowledge Base FAQ

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_CREATE_FAQ`

Create an FAQ after explicit confirmation. Location PITs require `knowledge-bases.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `answer` | string | Yes | FAQ answer. |
| `question` | string | Yes | FAQ question. |
| `confirm_change` | boolean | Yes | Must be true to confirm this knowledge-base change. |
| `knowledge_base_id` | string | Yes | Knowledge base ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Knowledge Base

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_CREATE_KNOWLEDGE_BASE`

Create a knowledge base after explicit confirmation. Location PITs require `knowledge-bases.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Knowledge base name. |
| `description` | string | No | Knowledge base description. |
| `confirm_change` | boolean | Yes | Must be true to confirm this knowledge-base change. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Knowledge Base FAQ

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_DELETE_FAQ`

Idempotently delete an FAQ after explicit confirmation; deleting an already-deleted FAQ is treated as successful. Location PITs require `knowledge-bases.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Resource ID. |
| `confirm_change` | boolean | Yes | Must be true to confirm deleting this resource. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Knowledge Base

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_DELETE_KNOWLEDGE_BASE`

Delete a knowledge base after explicit confirmation. Location PITs require `knowledge-bases.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm_change` | boolean | Yes | Must be true to confirm deleting this knowledge base. |
| `knowledge_base_id` | string | Yes | Knowledge base ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Trained Knowledge Base URLs

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_DELETE_TRAINED_URLS_FOR_KNOWLEDGE_BASE`

Idempotently delete trained pages after explicit confirmation; repeated deletion may still report a positive deletedCount. Location PITs require `knowledge-bases.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url_ids` | array | Yes | Trained URL IDs to delete. |
| `confirm_change` | boolean | Yes | Must be true to confirm this knowledge-base change. |
| `knowledge_base_id` | string | Yes | Knowledge base ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Discover Website for Knowledge Base

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_DISCOVER_WEBSITE`

Start website discovery after explicit confirmation. Location PITs require `knowledge-bases.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | Website URL to discover. |
| `option` | string ("Exact" | "Path" | "Domain") | Yes | Discovery scope. |
| `confirm_change` | boolean | Yes | Must be true to confirm this knowledge-base change. |
| `knowledge_base_id` | string | Yes | Knowledge base ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Knowledge Base Crawler URLs

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_GET_ALL_WEBSITE_URLS_DATA_BY_KNOWLEDGE_BASE`

Return one page of crawled website URLs. Location PITs require `knowledge-bases.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number. |
| `query` | string | No | URL search text. |
| `cursor` | integer | No | Page number returned by a previous call. |
| `page_length` | integer | No | Records per page; HighLevel requires 10 or more. |
| `knowledge_base_id` | string | Yes | Knowledge base ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Knowledge Base Crawler Status

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_GET_CRAWLING_STATUS_FOR_LATEST_OPERATION`

Get crawler operation status. Location PITs require `knowledge-bases.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `operation_id` | string | Yes | Crawler operation ID. |
| `knowledge_base_id` | string | Yes | Knowledge base ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Knowledge Base

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_GET_KNOWLEDGE_BASE_BY_ID`

Get a knowledge base by ID. Location PITs require `knowledge-bases.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `knowledge_base_id` | string | Yes | Knowledge base ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Knowledge Bases

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_LIST_ALL_KNOWLEDGE_BASES_PAGINATED`

Return one page of knowledge bases for the connected location. Location PITs require `knowledge-bases.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum knowledge bases to return. |
| `query` | string | No | Knowledge-base name search query. |
| `cursor` | string | No | Opaque next_cursor returned by the immediately previous call. HighLevel treats unknown IDs as the first page. |
| `last_knowledge_base_id` | string | No | Last knowledge-base ID from the previous page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Knowledge Base FAQs

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_LIST_FAQ`

Return one page of FAQs. Location PITs require `knowledge-bases.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum FAQs to return. |
| `cursor` | string | No | Opaque next_cursor returned by the immediately previous call. HighLevel treats unknown IDs as the first page. |
| `last_faq_id` | string | No | Last FAQ ID from the previous page. |
| `knowledge_base_id` | string | Yes | Knowledge base ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Train Discovered Knowledge Base URLs

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_TRAIN_DISCOVERED_URLS`

Queue discovered pages for training after explicit confirmation. A successful response confirms queue acceptance, not that the URL IDs existed or training completed; poll crawler status to verify progress. Location PITs require `knowledge-bases.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url_ids` | array | Yes | Discovered URL IDs to train. |
| `operation_id` | string | Yes | Crawler operation ID. |
| `confirm_change` | boolean | Yes | Must be true to confirm this knowledge-base change. |
| `knowledge_base_id` | string | Yes | Knowledge base ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Knowledge Base FAQ

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_UPDATE_FAQ`

Update an FAQ after explicit confirmation. Location PITs require `knowledge-bases.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | FAQ ID. |
| `answer` | string | Yes | FAQ answer. |
| `question` | string | Yes | FAQ question. |
| `confirm_change` | boolean | Yes | Must be true to confirm this knowledge-base change. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Knowledge Base

**Slug:** `HIGHLEVEL_LOCATION_KNOWLEDGE_BASE_UPDATE_KNOWLEDGE_BASE`

Update a knowledge base after explicit confirmation. Location PITs require `knowledge-bases.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Knowledge base ID. |
| `name` | string | No | Updated knowledge base name. |
| `description` | string | No | Updated knowledge base description. |
| `confirm_change` | boolean | Yes | Must be true to confirm this knowledge-base change. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Link

**Slug:** `HIGHLEVEL_LOCATION_LINKS_CREATE_LINK`

Create a trigger link in the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `links.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Display name of the trigger link. |
| `redirect_to` | string | Yes | URL or variable to redirect to when the trigger link is clicked. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Link

**Slug:** `HIGHLEVEL_LOCATION_LINKS_DELETE_LINK`

Permanently delete a trigger link by ID. Location PITs must be provisioned with the HighLevel permission: `links.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `link_id` | string | Yes | Link ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Link by ID

**Slug:** `HIGHLEVEL_LOCATION_LINKS_GET_LINK_BY_ID`

Get a single trigger link by ID from the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `links.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `link_id` | string | Yes | Link ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Links

**Slug:** `HIGHLEVEL_LOCATION_LINKS_GET_LINKS`

Get all trigger links in the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `links.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Trigger Links

**Slug:** `HIGHLEVEL_LOCATION_LINKS_SEARCH_TRIGGER_LINKS`

Return one offset-based page of trigger links matching a search query. Location PITs must be provisioned with the HighLevel permission: `links.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of matching links to skip. |
| `limit` | integer | No | Maximum number of matching links to return. |
| `query` | string | No | Search query. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Link

**Slug:** `HIGHLEVEL_LOCATION_LINKS_UPDATE_LINK`

Update a trigger link's name and redirect destination. Location PITs must be provisioned with the HighLevel permission: `links.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Display name of the trigger link. |
| `link_id` | string | Yes | Link ID. |
| `redirect_to` | string | Yes | URL or variable to redirect to when the trigger link is clicked. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Ad Accounts

**Slug:** `HIGHLEVEL_LOCATION_LIST_AD_ACCOUNTS`

List ad accounts available through one connected ad platform. Facebook supports type, fetch_all, and cursor-based next; type=AD_MANAGER filters to the account used by HighLevel Ad Manager. limit is not exposed because HighLevel ignores it. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `next` | string | No | Optional Facebook pagination cursor from a previous response, sent unchanged as `next`. Not accepted for Google or LinkedIn. |
| `type` | string ("INTEGRATION" | "AD_MANAGER") | No | Facebook or Google account source: `INTEGRATION` or `AD_MANAGER`. Not accepted for LinkedIn. |
| `is_draft` | boolean | No | Optional LinkedIn draft-selection flag, sent as `isDraft`. Not accepted for Facebook or Google. |
| `platform` | string ("facebook" | "google" | "linkedin") | Yes | Ad platform whose equivalent operation to call. |
| `fetch_all` | string ("true" | "false") | No | Optional Facebook fetch-all value, sent as `fetchAll`. Not accepted for Google or LinkedIn. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Ad Reports

**Slug:** `HIGHLEVEL_LOCATION_LIST_AD_REPORTS`

List published reporting entities for one connected ad platform. Facebook drafts are not returned; use Get campaign with linked entities for a HighLevel draft. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("AD_MANAGER" | "INTEGRATION") | No | Required Facebook or Google integration source, sent as `type` (for example, `AD_MANAGER` or `INTEGRATION`). Not accepted for LinkedIn. |
| `fields` | array | No | Optional LinkedIn reporting fields, sent as a comma-separated `fields` value. Not accepted for Facebook or Google. |
| `end_date` | string | Yes | Required report end date for every platform, sent as `endDate`. |
| `platform` | string ("facebook" | "google" | "linkedin") | Yes | Ad platform whose equivalent operation to call. |
| `list_type` | string ("ads" | "adsets" | "campaigns" | "adGroups" | "keywords" | "campaignGroups") | Yes | Reporting entity type. Facebook accepts `ads`, `adsets`, or `campaigns`; Google accepts `campaigns`, `adGroups`, `keywords`, or `ads`; LinkedIn accepts `campaignGroups`, `campaigns`, or `ads`. |
| `start_date` | string | Yes | Required report start date for every platform, sent as `startDate`. |
| `campaign_id` | string | No | For Facebook ads/adsets, the required Meta fbCampaignId from the campaigns listing, not the 24-character HighLevel campaign ID. Google ads/adGroups/keywords require a numeric Google Ads campaign ID. For LinkedIn this is an optional campaign filter. |
| `campaign_group_id` | string | No | LinkedIn campaign group ID, required when list_type is `campaigns` or `ads` and sent as `campaignGroupId`. Not accepted for Facebook or Google. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Custom Field

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_CREATE_CUSTOM_FIELD`

Create a custom field in the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Custom field name. |
| `model` | string ("contact" | "opportunity") | No | Object model that owns the field. |
| `options` | array | No | Non-empty choices required for CHECKBOX, SINGLE_OPTIONS, MULTIPLE_OPTIONS, and RADIO fields. |
| `position` | number | No | Field position. |
| `data_type` | string ("TEXT" | "LARGE_TEXT" | "NUMERICAL" | "PHONE" | "MONETORY" | "CHECKBOX" | "SINGLE_OPTIONS" | "MULTIPLE_OPTIONS" | "FLOAT" | "DATE" | "TEXTBOX_LIST" | "FILE_UPLOAD" | "RADIO" | "SIGNATURE") | Yes | HighLevel custom field data type. |
| `placeholder` | string | No | Optional placeholder text. |
| `accepted_format` | array | No | Accepted file extensions. |
| `is_multiple_file` | boolean | No | Whether multiple files are allowed. |
| `max_number_of_files` | number | No | Maximum number of files. |
| `text_box_list_options` | array | No | Options for a text-box-list field. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Custom Value

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_CREATE_CUSTOM_VALUE`

Create a custom value in the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/customValues.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Custom value name. |
| `value` | string | Yes | Custom value contents. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Recurring Task

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_CREATE_RECURRING_TASK`

Create Recurring Task Location PITs must be provisioned with the HighLevel permission: `recurring-tasks.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | Name of the task |
| `owners` | array | No | Assigned To |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `contact_ids` | array | No | At most one contact ID. |
| `description` | string | No | Description of the task |
| `rrule_options` | object | Yes | Complete recurrence rule. Monthly rules need dayOfMonth or dayOfWeek; weekly rules need dayOfWeek. |
| `ignore_task_creation` | boolean | No | Create initial task or not |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Tag

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_CREATE_TAG`

Create a tag in the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/tags.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Tag name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Custom Field

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_DELETE_CUSTOM_FIELD`

Delete a custom field from the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Custom field ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Custom Value

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_DELETE_CUSTOM_VALUE`

Delete a custom value from the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/customValues.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Custom value ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Recurring Task

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_DELETE_RECURRING_TASK`

Delete Recurring Task Location PITs must be provisioned with the HighLevel permission: `recurring-tasks.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Recurring Task Id |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Tag

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_DELETE_TAG`

Delete a tag from the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/tags.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tag_id` | string | Yes | Tag ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Email, SMS, or WhatsApp Templates

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_GET_ALL_OR_EMAIL_SMS_TEMPLATES`

Return one offset-based page of templates from the connected HighLevel Location. Pass next_cursor back as cursor to retrieve the next page. Location PITs must be provisioned with the HighLevel permission: `locations/templates.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of matching templates to skip. |
| `type` | string ("sms" | "email" | "whatsapp") | No | Template channel filter. |
| `limit` | integer | No | Maximum templates to return. |
| `cursor` | integer | No | Value returned as next_cursor by the previous call. |
| `deleted` | boolean | No | Whether to include deleted templates. |
| `origin_id` | string | Yes | HighLevel template-origin ID, not the Location ID. Obtain it from a template's `originId` field or the template-management UI/API. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Conversation Channel

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_GET_CONVERSATION_CHANNEL`

Get SMS or email channel providers configured for the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("SMS" | "Email") | Yes | Conversation channel type. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Custom Field

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_GET_CUSTOM_FIELD`

Get one custom field from the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Custom field ID or field key. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Custom Fields

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_GET_CUSTOM_FIELDS`

List custom fields owned by the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `model` | string ("contact" | "opportunity" | "all") | No | Object model whose custom fields to return. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Custom Value

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_GET_CUSTOM_VALUE`

Get one custom value from the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/customValues.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Custom value ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Custom Values

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_GET_CUSTOM_VALUES`

List custom values owned by the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/customValues.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Sub-Account (Formerly Location)

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_GET_LOCATION`

Get the Location bound to the connected HighLevel account. Location PITs must be provisioned with the HighLevel permission: `locations.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Tags

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_GET_LOCATION_TAGS`

List tags owned by the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/tags.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Recurring Task By Id

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_GET_RECURRING_TASK_BY_ID`

Get Recurring Task By Id Location PITs must be provisioned with the HighLevel permission: `recurring-tasks.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Recurring Task Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Tag by ID

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_GET_TAG_BY_ID`

Get one tag from the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/tags.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tag_id` | string | Yes | Tag ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Timezones

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_GET_TIMEZONES`

Fetch the available timezones for the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Task Search Filter

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_TASK_SEARCH`

Return one offset-based page of tasks from the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/tasks.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of matching tasks to skip. |
| `limit` | integer | No | Maximum tasks to return. |
| `query` | string | No | Text to search for in tasks. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `completed` | boolean | No | Filter by completion state. |
| `contact_id` | array | No | Contact IDs to match. |
| `assigned_to` | array | No | Assigned user IDs to match. |
| `business_id` | string | No | Optional business ID filter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Custom Field

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_UPDATE_CUSTOM_FIELD`

Update a custom field in the connected HighLevel Location. HighLevel fully replaces placeholder, accepted_format, and text_box_list_options, so resend those values when they must be preserved. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Custom field ID. |
| `name` | string | Yes | Custom field name. |
| `model` | string ("contact" | "opportunity") | No | Object model that owns the field. |
| `position` | number | No | Field position. |
| `placeholder` | string | No | Optional placeholder text. |
| `accepted_format` | array | No | Accepted nonblank file extensions. |
| `is_multiple_file` | boolean | No | Whether multiple files are allowed. |
| `max_number_of_files` | number | No | Maximum number of files. |
| `text_box_list_options` | array | No | Options for a text-box-list field. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Custom Value

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_UPDATE_CUSTOM_VALUE`

Update a custom value in the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/customValues.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Custom value ID. |
| `name` | string | Yes | Custom value name. |
| `value` | string | Yes | Custom value contents. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Recurring Task

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_UPDATE_RECURRING_TASK`

Update Recurring Task Location PITs must be provisioned with the HighLevel permission: `recurring-tasks.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Recurring Task Id |
| `title` | string | No | Name of the task |
| `owners` | array | No | Assigned To |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `contact_ids` | array | No | At most one contact ID. |
| `description` | string | No | Description of the task |
| `rrule_options` | object | No | Complete replacement recurrence rule. Monthly rules need dayOfMonth or dayOfWeek; weekly rules need dayOfWeek. |
| `ignore_task_creation` | boolean | No | Create initial task or not |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Tag

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_UPDATE_TAG`

Rename a tag in the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/tags.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | New tag name. |
| `tag_id` | string | Yes | Tag ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload File to Custom Fields

**Slug:** `HIGHLEVEL_LOCATION_LOCATIONS_UPLOAD_FILE_CUSTOM_FIELDS`

Upload a file to a custom field for the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `locations/customFields.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID of the FILE_UPLOAD custom field. |
| `file` | object | Yes | File to upload to the target HighLevel custom field. |
| `max_files` | string | Yes | Maximum number of files as a numeric string, for example `1`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check Wallet Funds

**Slug:** `HIGHLEVEL_LOCATION_MARKETPLACE_CHECK_WALLET_FUNDS`

Check whether the connected HighLevel sub-account has sufficient wallet funds to be charged.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Wallet Charge

**Slug:** `HIGHLEVEL_LOCATION_MARKETPLACE_CREATE_WALLET_CHARGE`

Create a real wallet charge for the connected HighLevel Location. The Location and its parent Company are resolved from the OAuth connection, and explicit confirmation is required.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `price` | number | No | Price per unit to charge. |
| `units` | number | Yes | Number of units to charge. |
| `app_id` | string | Yes | App ID of the Marketplace app. |
| `user_id` | string | No | User ID associated with the charge. |
| `event_id` | string | Yes | Unique event or transaction ID from the caller's system. |
| `meter_id` | string | Yes | Billing meter ID from the app's pricing page. |
| `event_time` | string | No | ISO 8601 time when the billed event occurred; omit to use billing time. |
| `description` | string | Yes | Description of the wallet charge. |
| `confirm_charge` | boolean | Yes | Must be true to confirm this creates a real charge against the connected Location's wallet. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Wallet Charge

**Slug:** `HIGHLEVEL_LOCATION_MARKETPLACE_DELETE_WALLET_CHARGE`

Delete a wallet charge. This is a destructive billing operation with real wallet consequences and requires explicit confirmation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `charge_id` | string | Yes | ID of the wallet charge to delete. |
| `confirm_delete` | boolean | Yes | Must be true to confirm deletion and its real wallet billing consequences. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Marketplace Installer Details

**Slug:** `HIGHLEVEL_LOCATION_MARKETPLACE_GET_INSTALLER_DETAILS`

Get company, Location, user, and installation details associated with the current HighLevel OAuth token for an app.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `app_id` | string | Yes | Marketplace application ID. It is exposed as `marketplaceAppId` on a shipping carrier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Marketplace Rebilling Config

**Slug:** `HIGHLEVEL_LOCATION_MARKETPLACE_GET_REBILLING_CONFIG`

Get the subscription and usage rebilling plans for an app in the connected HighLevel Location. HighLevel marks this endpoint deprecated.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `app_id` | string | Yes | Marketplace application ID. It is exposed as `marketplaceAppId` on a shipping carrier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Wallet Charge

**Slug:** `HIGHLEVEL_LOCATION_MARKETPLACE_GET_WALLET_CHARGE`

Get the details of one HighLevel wallet charge by charge ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `charge_id` | string | Yes | ID of the wallet charge to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Wallet Charges

**Slug:** `HIGHLEVEL_LOCATION_MARKETPLACE_LIST_WALLET_CHARGES`

Return one page of wallet charges visible to the connected HighLevel Location, with optional billing and date filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of matching charges to skip. |
| `limit` | integer | No | Maximum number of charges to return. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `user_id` | string | No | Caller-supplied user ID to filter by. |
| `end_date` | string | No | Return charges before this date. |
| `event_id` | string | No | Event or transaction ID to filter by. |
| `meter_id` | string | No | Billing meter ID to filter by. |
| `start_date` | string | No | Return charges after this date. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Uninstall Marketplace Application

**Slug:** `HIGHLEVEL_LOCATION_MARKETPLACE_UNINSTALL_APPLICATION`

Uninstall an application from the connected HighLevel Location. This removes the application's access and stops its functionality, so explicit confirmation is required.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `app_id` | string | Yes | ID of the Marketplace application to uninstall. |
| `reason` | string | No | Reason for uninstalling the application. |
| `confirm_uninstall` | boolean | Yes | Must be true to confirm removal of the app's access and functionality from the connected Location. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk Delete / Trash Files or Folders

**Slug:** `HIGHLEVEL_LOCATION_MEDIAS_BULK_DELETE_MEDIA_OBJECTS`

Delete or trash multiple files and folders in the connected Location. Explicit confirmation is required; verify every target ID and the requested state first. Location PITs must be provisioned with the HighLevel permission: `medias.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string ("deleted" | "trashed") | Yes | Deletion state to apply. |
| `confirm_bulk_delete` | boolean | Yes | Must be true to confirm the listed media objects may become unavailable. Not sent to HighLevel. |
| `files_to_be_deleted` | array | Yes | Files and folders to delete or trash; each object must contain a non-blank `_id`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk Update Files / Folders

**Slug:** `HIGHLEVEL_LOCATION_MEDIAS_BULK_UPDATE_MEDIA_OBJECTS`

Rename multiple files or folders in the connected Location's media storage. Review every target ID and name before calling. Location PITs must be provisioned with the HighLevel permission: `medias.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `files_to_be_updated` | array | Yes | Files and folders to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Media Folder

**Slug:** `HIGHLEVEL_LOCATION_MEDIAS_CREATE_MEDIA_FOLDER`

Create a folder in the connected Location's media storage. Location PITs must be provisioned with the HighLevel permission: `medias.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the folder to create. |
| `parent_id` | string | No | Optional parent folder ID; omit to create a root folder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete File or Folder

**Slug:** `HIGHLEVEL_LOCATION_MEDIAS_DELETE_MEDIA_CONTENT`

Delete a file or folder from the connected HighLevel location's media storage. Location PITs must be provisioned with the HighLevel permission: `medias.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID of the file or folder to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get List of Files / Folders

**Slug:** `HIGHLEVEL_LOCATION_MEDIAS_FETCH_MEDIA_CONTENT`

Fetch files and folders from the connected HighLevel location's media storage. Location PITs must be provisioned with the HighLevel permission: `medias.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("file" | "folder") | Yes | Type of media objects to return. |
| `limit` | integer | No | Maximum number of media objects to return. |
| `query` | string | No | Text used to search media objects. |
| `cursor` | string | No | Continuation cursor returned by a previous call. |
| `offset` | integer | No | Number of media objects to skip. |
| `sort_by` | string ("createdAt" | "updatedAt" | "name") | Yes | Field used to sort the media listing. |
| `fetch_all` | boolean | No | Whether to include all matching files or folders. |
| `parent_id` | string | No | Parent folder ID used to restrict the listing. |
| `sort_order` | string ("asc" | "desc") | Yes | Direction used to sort the media listing. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update File / Folder

**Slug:** `HIGHLEVEL_LOCATION_MEDIAS_UPDATE_MEDIA_OBJECT`

Rename one file or folder in the connected Location's media storage. Location PITs must be provisioned with the HighLevel permission: `medias.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | ID of the file or folder to update. |
| `name` | string | Yes | New file or folder name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload File into Media Storage

**Slug:** `HIGHLEVEL_LOCATION_MEDIAS_UPLOAD_MEDIA_CONTENT`

Upload a file or import a hosted file into HighLevel media storage. Location PITs must be provisioned with the HighLevel permission: `medias.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | No | File to upload. Non-video files may be up to 25 MB and videos up to 500 MB. |
| `name` | string | No | Name to assign to the uploaded media object. |
| `hosted` | boolean | No | Set true to import an already-hosted file from file_url instead of uploading file bytes. |
| `file_url` | string | No | Public file URL to import when hosted is true. |
| `parent_id` | string | No | ID of the parent media folder. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Object Record

**Slug:** `HIGHLEVEL_LOCATION_OBJECTS_CREATE_OBJECT_RECORD`

Create a business or custom object record with schema-defined fields. Location PITs must be provisioned with the HighLevel permission: `objects/record.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | object | Yes | Record payload requires `properties`, for example `{"properties":{"name":"Buddy"}}`, and optionally accepts `followers` as a top-level array of user IDs. Top-level `owner` and flat property keys are rejected. |
| `schema_key` | string | Yes | Custom or standard object schema key. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Object Record

**Slug:** `HIGHLEVEL_LOCATION_OBJECTS_DELETE_OBJECT_RECORD`

Permanently delete a business or custom object record by ID. Location PITs must be provisioned with the HighLevel permission: `objects/record.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Record ID to delete. |
| `schema_key` | string | Yes | Custom or standard object schema key. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Location Objects

**Slug:** `HIGHLEVEL_LOCATION_OBJECTS_GET_OBJECT_BY_LOCATION_ID`

List standard and custom object schemas for the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `objects/schema.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Object Schema by Key

**Slug:** `HIGHLEVEL_LOCATION_OBJECTS_GET_OBJECT_SCHEMA_BY_KEY`

Retrieve an object schema by key or ID, optionally including its fields. Location PITs must be provisioned with the HighLevel permission: `objects/schema.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `key` | string | Yes | Custom or standard object key. Custom object keys include the `custom_objects.` prefix. |
| `fetch_properties` | boolean | No | Set to `true` to include the object's standard and custom fields. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Object Record

**Slug:** `HIGHLEVEL_LOCATION_OBJECTS_GET_RECORD_BY_ID`

Retrieve a business or custom object record by ID. Location PITs must be provisioned with the HighLevel permission: `objects/record.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Record ID. |
| `schema_key` | string | Yes | Custom or standard object schema key. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Object Records

**Slug:** `HIGHLEVEL_LOCATION_OBJECTS_SEARCH_OBJECT_RECORDS`

Return one page of business or custom object records matching a search expression. Location PITs must be provisioned with the HighLevel permission: `objects/record.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | One-based result page number. |
| `query` | string | No | Plain search term matched against the object's configured searchable properties. |
| `page_limit` | integer | No | Maximum records to return on the page. |
| `schema_key` | string | No | Custom or standard object schema key. Required on the first page and restored from the cursor later. |
| `next_cursor` | string | No | Opaque cursor returned by a previous call. It restores the search context. |
| `search_after` | array | No | Provider continuation values for the first page; pass an empty list when starting a search. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Object Schema

**Slug:** `HIGHLEVEL_LOCATION_OBJECTS_UPDATE_CUSTOM_OBJECT`

Update a custom object's labels, description, and searchable fields, or update searchable fields for a standard object. Custom object keys must include the `custom_objects.` prefix. `searchable_properties` replaces the complete searchable-field list. Location PITs must be provisioned with the HighLevel permission: `objects/schema.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `key` | string | Yes | Standard or custom object key. Custom object keys must include the `custom_objects.` prefix; standard keys may be used to update searchable fields. |
| `labels` | object | No | Updated singular and plural display labels for a custom object. |
| `description` | string | No | Updated custom-object description. |
| `searchable_properties` | array | Yes | Complete list of fully qualified field keys that should be searchable for the standard or custom object. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Object Record

**Slug:** `HIGHLEVEL_LOCATION_OBJECTS_UPDATE_OBJECT_RECORD`

Update a standard or custom object record with schema-defined fields. Custom object schema keys include the `custom_objects.` prefix. Location PITs must be provisioned with the HighLevel permission: `objects/record.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Record ID to update. |
| `body` | object | Yes | Record fields to update, using the fully qualified property keys and value types defined by the selected standard or custom object schema. |
| `schema_key` | string | Yes | Standard or custom object schema key. Custom object keys must include the `custom_objects.` prefix. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add Followers

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_ADD_FOLLOWERS_OPPORTUNITY`

Add up to 10 user IDs as followers of an opportunity and return the resulting follower list. HighLevel may report an unknown user as `followersAdded:[[]]`; verify the resulting `followers` list when user IDs are not known-valid. Location PITs must be provisioned with the HighLevel permission: `opportunities.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Opportunity Id |
| `followers` | array | Yes | Array of user IDs to add or remove as followers (max 10) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Opportunity

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_CREATE_OPPORTUNITY`

Create an opportunity. HighLevel rejects a duplicate opportunity for the same contact in the same pipeline. Location PITs must be provisioned with the HighLevel permission: `opportunities.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the opportunity |
| `status` | string ("open" | "won" | "lost" | "abandoned") | Yes | Initial opportunity status. |
| `contact_id` | string | Yes | Identifier of the contact linked to the opportunity |
| `assigned_to` | string | No | Identifier of the user the opportunity is assigned to |
| `location_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `pipeline_id` | string | Yes | pipeline Id |
| `custom_fields` | array | No | Add custom fields to opportunities. |
| `monetary_value` | number | No | Monetary value of the opportunity |
| `pipeline_stage_id` | string | No | Identifier of the pipeline stage |
| `forecast_probability` | number | No | Forecast probability |
| `forecast_expected_close_date` | string | No | Expected close date. Supported formats: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, or ISO 8601 |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Pipeline

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_CREATE_PIPELINE`

Create a pipeline with at least one stage in the connected HighLevel location. Pipeline and stage names must be unique. Explicit confirmation is required. Location PITs must have `pipelines.create`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Unique pipeline name within the connected location. |
| `stages` | array | Yes | One or more uniquely named pipeline stages. Every stage requires `name` and `position`; set each stage's `showInFunnel` and `showInPieChart` explicitly because pipeline-level visibility flags do not propagate to stages. |
| `confirm_change` | boolean | Yes | Must be true to confirm creation of this pipeline. Not sent to HighLevel. |
| `show_in_funnel` | boolean | No | Whether to show the pipeline in the funnel view. |
| `color_render_mode` | string ("dot" | "bg-tint" | "none") | No | Pipeline and stage color rendering mode. |
| `show_in_pie_chart` | boolean | No | Whether to show the pipeline in the pie chart view. |
| `use_opportunity_probability` | boolean | No | Enable manual stage-level win probabilities. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Opportunity

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_DELETE_OPPORTUNITY`

Delete Opportunity. This destructive change may be irreversible; confirm the target ID and intended outcome first. Location PITs must be provisioned with the HighLevel permission: `opportunities.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Opportunity Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Pipeline

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_DELETE_PIPELINE`

Permanently delete a pipeline and every opportunity in all its stages. This is irreversible and requires explicit confirmation. Location PITs must have `pipelines.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `pipeline_id` | string | Yes | Unique pipeline ID. |
| `confirm_change` | boolean | Yes | Must be true to confirm permanent deletion of the pipeline and all its opportunities. Not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get lost reason

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_GET_LOST_REASON`

Get lost reason. Location PITs must be provisioned with the HighLevel permission: `opportunities.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | lost reason name |
| `skip` | integer | No | Number of lost reasons to skip. |
| `limit` | integer | No | Maximum lost reasons to return. |
| `query` | string | No | search query |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `deleted` | boolean | No | deleted |
| `get_count` | boolean | No | get count |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Opportunity

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_GET_OPPORTUNITY`

Get Opportunity. Location PITs must be provisioned with the HighLevel permission: `opportunities.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Opportunity Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Pipeline

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_GET_PIPELINE`

Retrieve one pipeline, including its stages and configuration. Location PITs must have `pipelines.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `pipeline_id` | string | Yes | Unique pipeline ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Pipelines

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_GET_PIPELINES`

Get Pipelines. Location PITs must be provisioned with the HighLevel permission: `opportunities.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove Followers

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_REMOVE_FOLLOWERS_OPPORTUNITY`

Allows removal of one or all followers from an opportunity. Location PITs must be provisioned with the HighLevel permission: `opportunities.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Opportunity Id |
| `followers` | array | Yes | Array of user IDs to add or remove as followers (max 10) |
| `is_remove_all_followers` | boolean | No | Set to true to remove all followers from the opportunity |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Opportunities

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_SEARCH_OPPORTUNITIES_ADVANCED`

Search opportunities based on combinations of advanced filters. Location PITs must be provisioned with the HighLevel permission: `opportunities.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | 1-based page number (0 behaves like 1). Omit when using `cursor`. |
| `limit` | integer | No | Maximum number of results to return per page |
| `query` | string | No | Full-text search query string (max 75 characters) |
| `cursor` | string | No | Continuation cursor from a previous response's next_cursor. Omit for the first page; pass the returned value back verbatim to fetch the next page. |
| `location_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `search_after` | array | No | Search-after cursor values for deep pagination |
| `additional_details` | object | No | Flags to include additional related entities in the response |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Opportunity

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_SEARCH_OPPORTUNITY`

Search Opportunity. Location PITs must be provisioned with the HighLevel permission: `opportunities.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `q` | string | No | Search query (max 75 characters) |
| `id` | string | No | Opportunity Id |
| `date` | string | No | Start date in MM-DD-YYYY format or epoch milliseconds. |
| `page` | integer | No | 1-based page number. Omit when using `cursor`. |
| `limit` | integer | No | Limit Per Page records count. will allow maximum up to 100 and default will be 20 |
| `order` | string ("added_asc" | "added_desc" | "name_asc" | "name_desc") | No | Sort order for results (e.g. added_asc, added_desc, name_asc, name_desc) |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `status` | string ("open" | "won" | "lost" | "abandoned" | "all") | No | Filter by opportunity status |
| `country` | string | No | Filter by country code (ISO 3166-1 alpha-2) |
| `end_date` | string | No | End date in MM-DD-YYYY format or epoch milliseconds. |
| `get_notes` | boolean | No | get Notes in contact |
| `get_tasks` | boolean | No | get Tasks in contact |
| `contact_id` | string | No | Contact Id |
| `assigned_to` | string | No | Filter by assigned user identifier |
| `campaign_id` | string | No | Campaign Id |
| `pipeline_id` | string | No | Pipeline Id |
| `start_after` | string | No | Start After |
| `start_after_id` | string | No | Start After Id |
| `pipeline_stage_id` | string | No | Stage Id |
| `get_calendar_events` | boolean | No | get Calender event in contact |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Opportunity

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_UPDATE_OPPORTUNITY`

Update Opportunity. Location PITs must be provisioned with the HighLevel permission: `opportunities.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Opportunity Id |
| `name` | string | No | Name of the opportunity |
| `status` | string ("open" | "won" | "lost" | "abandoned") | No | New opportunity status. Omit to leave status unchanged. |
| `assigned_to` | string | No | Identifier of the user the opportunity is assigned to |
| `pipeline_id` | string | No | pipeline Id |
| `custom_fields` | array | No | Update custom fields to opportunities. |
| `monetary_value` | number | No | Monetary value of the opportunity |
| `pipeline_stage_id` | string | No | Identifier of the pipeline stage |
| `forecast_probability` | number | No | Forecast probability |
| `forecast_expected_close_date` | string | No | Expected close date. Supported formats: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, or ISO 8601 |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Opportunity Status

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_UPDATE_OPPORTUNITY_STATUS`

Update Opportunity Status. Location PITs must be provisioned with the HighLevel permission: `opportunities.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Opportunity Id |
| `status` | string ("open" | "won" | "lost" | "abandoned") | Yes | New opportunity status. |
| `lost_reason_id` | string | No | Existing HighLevel lost-reason ID; required only when assigning that reason. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Pipeline

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_UPDATE_PIPELINE`

Update a pipeline. The stage list is a full replacement and removing stages migrates their opportunities, so explicit confirmation is required. Location PITs must have `pipelines.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Unique pipeline name. Every update must also include the full stages list. |
| `stages` | array | Yes | Full replacement stage list. Every stage requires `name` and `position`; existing stages also require their IDs. Set each stage's `showInFunnel` and `showInPieChart` explicitly because pipeline-level visibility flags do not propagate. Removed-stage opportunities migrate to the lowest-position remaining stage. |
| `pipeline_id` | string | Yes | Unique pipeline ID. |
| `confirm_change` | boolean | Yes | Must be true because replacing stages can migrate opportunities. Not sent to HighLevel. |
| `show_in_funnel` | boolean | No | Whether to show the pipeline in the funnel view. |
| `color_render_mode` | string ("dot" | "bg-tint" | "none") | No | Pipeline and stage color rendering mode. |
| `show_in_pie_chart` | boolean | No | Whether to show the pipeline in the pie chart view. |
| `use_opportunity_probability` | boolean | No | Enable manual stage-level win probabilities. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert Opportunity

**Slug:** `HIGHLEVEL_LOCATION_OPPORTUNITIES_UPSERT_OPPORTUNITY`

Upsert Opportunity. Location PITs must be provisioned with the HighLevel permission: `opportunities.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | opportunityId |
| `name` | string | No | name |
| `status` | string ("open" | "won" | "lost" | "abandoned") | No | Opportunity status to write. Omit to preserve status when updating. |
| `followers` | array | No | User IDs to add to or remove from the contact's followers; HighLevel does not apply these followers to the opportunity itself. |
| `contact_id` | string | Yes | Contact ID that owns the opportunity. |
| `assigned_to` | string | No | Identifier of the user the opportunity is assigned to |
| `location_id` | string | No | Tenant identifier supplied by the connected account; caller values are overwritten. |
| `pipeline_id` | string | Yes | pipeline Id |
| `lost_reason_id` | string | No | lost reason Id |
| `monetary_value` | number | No | Monetary value of the opportunity |
| `pipeline_stage_id` | string | No | Identifier of the pipeline stage |
| `forecast_probability` | number | No | Forecast probability |
| `followers_action_type` | string ("add" | "remove") | No | Followers action type. |
| `is_remove_all_followers` | boolean | No | Whether to remove every follower. |
| `forecast_expected_close_date` | string | No | Expected close date. Supported formats: YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, or ISO 8601 |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Coupon

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_CREATE_COUPON`

Create a promotional coupon. applyToFuturePaymentsConfig is ignored unless applyToFuturePayments is true. Review discount type and value, eligible products, dates, usage limits, and future subscription effects before calling. Location PITs must be provisioned with the HighLevel permission: `payments/coupons.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Coupon redemption code. |
| `name` | string | Yes | Coupon name. |
| `alt_id` | string | No | Connected Location ID; caller values are overwritten. |
| `alt_type` | string | No | Fixed Location tenant type. |
| `end_date` | string | No | Optional end date in ISO 8601 format. |
| `price_ids` | array | No | Eligible price IDs. |
| `start_date` | string | Yes | Start date in ISO 8601 format. |
| `product_ids` | array | No | Eligible product IDs. |
| `usage_limit` | integer | No | Maximum total redemptions. |
| `variant_ids` | array | No | Eligible variant IDs. |
| `discount_type` | string ("percentage" | "amount") | Yes | Discount type. |
| `discount_value` | number | Yes | Discount percentage or fixed amount. |
| `limit_per_customer` | boolean | No | Limit redemption to once per customer. |
| `apply_to_future_payments` | boolean | No | Apply to future subscription payments. |
| `apply_to_future_payments_config` | object | No | Future-payment duration configuration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Custom Payment Integration

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_CREATE_INTEGRATION`

Create a custom payment-provider association for the connected Location. Review all external URLs and subscription support before creating financial infrastructure. Location PITs must be provisioned with the HighLevel permission: `payments/custom-provider.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Custom payment provider name. |
| `image_url` | string | Yes | Public provider logo URL. |
| `query_url` | string | Yes | Public URL for verify, refund, and subscription events. |
| `description` | string | Yes | Provider description shown in payment integrations. |
| `payments_url` | string | Yes | Public payment-session iframe URL. |
| `supports_subscription_schedule` | boolean | Yes | Whether subscription schedules are supported. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create White-label Integration Provider

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_CREATE_INTEGRATION_PROVIDER`

Create a Location payment-provider integration backed by Authorize.net or NMI. Review the provider, public URLs, and Location before creating financial infrastructure. Location PITs must be provisioned with the HighLevel permission: `payments/integration.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | Provider display title. |
| `alt_id` | string | No | Connected Location ID; caller values are overwritten. |
| `alt_type` | string | No | Fixed Location tenant type. |
| `provider` | string ("authorize-net" | "nmi") | Yes | Underlying payment provider. |
| `image_url` | string | Yes | Public HTTPS provider image URL. |
| `description` | string | Yes | Provider description. |
| `unique_name` | string | Yes | Unique lowercase provider name using letters and hyphens. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Order Fulfillment

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_CREATE_ORDER_FULFILLMENT`

Create fulfillment history for an order. Confirm order, item quantities, tracking data, and whether a customer notification should be sent before calling. Location PITs must be provisioned with the HighLevel permission: `payments/orders.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `items` | array | Yes | Items and quantities being fulfilled. |
| `alt_id` | string | No | Connected Location ID; caller values are overwritten. |
| `alt_type` | string | No | Fixed Location tenant type. |
| `order_id` | string | Yes | Order ID to fulfill. |
| `trackings` | array | Yes | Fulfillment tracking records. |
| `notify_customer` | boolean | Yes | Whether HighLevel should notify the customer. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Custom Provider Capabilities

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_CUSTOM_PROVIDER_MARKETPLACE_APP_UPDATE_CAPABILITIES`

Set whether the connected Location's custom payment provider supports subscription schedules. Confirm downstream recurring-billing behavior before disabling support. Location PITs must be provisioned with the HighLevel permission: `payments/custom-provider.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `company_id` | string | No | Optional company ID; the connected Location ID is always supplied. |
| `location_id` | string | No | Connected Location ID; caller values are overwritten. |
| `supports_subscription_schedules` | boolean | Yes | Whether the marketplace app supports subscription schedules. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Coupon

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_DELETE_COUPON`

Permanently delete a coupon. This cannot be undone; confirm the exact coupon ID and that no active promotion should continue before calling. Location PITs must be provisioned with the HighLevel permission: `payments/coupons.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Coupon ID to permanently delete. |
| `alt_id` | string | No | Connected Location ID; caller values are overwritten. |
| `alt_type` | string | No | Fixed Location tenant type. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Custom Payment Integration

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_DELETE_INTEGRATION`

Permanently delete the connected Location's custom payment-provider association. If no provider is configured, HighLevel may return no error detail and the action reports that explicit empty state. This can stop payment processing; confirm the Location and migration or shutdown plan before calling. Location PITs must be provisioned with the HighLevel permission: `payments/custom-provider.write`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Disconnect Custom Payment Provider Config

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_DISCONNECT_CONFIG`

Disconnect a custom provider's live or test payment configuration. Disconnecting live mode can stop charges and subscriptions; confirm the Location, mode, and operational impact before calling. Location PITs must be provisioned with the HighLevel permission: `payments/custom-provider.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `live_mode` | boolean | Yes | True to disconnect live payment processing; false to disconnect test mode. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Custom Payment Provider Config

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_FETCH_CONFIG`

Fetch the custom payment-provider configuration for the connected Location. A traceId-only response means no custom provider is configured. Location PITs must be provisioned with the HighLevel permission: `payments/custom-provider.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Coupon

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_GET_COUPON`

Retrieve coupon details by ID for the connected Location. The endpoint requires `code`, but HighLevel currently ignores it when selecting the coupon. Location PITs must be provisioned with the HighLevel permission: `payments/coupons.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Coupon ID. |
| `code` | string | Yes | Coupon redemption code required by the endpoint; HighLevel currently selects by `id` and ignores this value. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Order by ID

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_GET_ORDER_BY_ID`

Retrieve one order by ID from the connected Location. Location PITs must be provisioned with the HighLevel permission: `payments/orders.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | Order ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Subscription by ID

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_GET_SUBSCRIPTION_BY_ID`

Retrieve one payment subscription by ID from the connected Location. Location PITs must be provisioned with the HighLevel permission: `payments/subscriptions.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `subscription_id` | string | Yes | Subscription ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Transaction by ID

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_GET_TRANSACTION_BY_ID`

Retrieve one payment transaction by ID from the connected Location. Location PITs must be provisioned with the HighLevel permission: `payments/transactions.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `transaction_id` | string | Yes | Transaction ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Coupons

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_LIST_COUPONS`

Return one offset page of coupons for the connected Location. Location PITs must be provisioned with the HighLevel permission: `payments/coupons.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum coupons on this page. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `offset` | integer | No | Zero-based coupon offset. |
| `search` | string | No | Coupon code search text; coupon names are not matched. |
| `status` | string ("scheduled" | "active" | "expired") | No | Coupon status filter. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List White-label Integration Providers

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_LIST_INTEGRATION_PROVIDERS`

Return one offset page of white-label payment integration providers for the connected Location. Location PITs must be provisioned with the HighLevel permission: `payments/integration.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum providers on this page. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `offset` | integer | No | Zero-based provider offset. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Order Fulfillment

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_LIST_ORDER_FULFILLMENT`

List fulfillment history for one order in the connected Location. Location PITs must be provisioned with the HighLevel permission: `payments/orders.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | Order ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Order Notes

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_LIST_ORDER_NOTES`

List notes for one payment order in the connected Location. Location PITs must be provisioned with the HighLevel permission: `payments/orders.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | Order ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Orders

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_LIST_ORDERS`

Return one offset page of orders for the connected Location. altType is fixed to the live-required value `location`. Location PITs must be provisioned with the HighLevel permission: `payments/orders.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum orders on this page. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `end_at` | string | No | End date in YYYY-MM-DD format. |
| `offset` | integer | No | Zero-based order offset. |
| `search` | string | No | Order name search text. |
| `status` | string | No | Order status filter. |
| `start_at` | string | No | Start date in YYYY-MM-DD format. |
| `source_id` | string | No | Order source ID. |
| `contact_id` | string | No | Contact ID filter. |
| `payment_mode` | string | No | Payment mode filter. |
| `payment_status` | string ("paid" | "unpaid" | "refunded" | "partially_paid") | No | Payment status filter. |
| `funnel_product_ids` | string | No | Comma-separated funnel product IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Subscriptions

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_LIST_SUBSCRIPTIONS`

Return one offset page of subscriptions for the connected Location. Location PITs must be provisioned with the HighLevel permission: `payments/subscriptions.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Subscription ID filter. |
| `limit` | integer | No | Maximum subscriptions on this page. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `end_at` | string | No | End date in YYYY-MM-DD format. |
| `offset` | integer | No | Zero-based subscription offset. |
| `search` | string | No | Subscription name search text. |
| `start_at` | string | No | Start date in YYYY-MM-DD format. |
| `entity_id` | string | No | Entity ID filter. |
| `contact_id` | string | No | Contact ID filter. |
| `payment_mode` | string | No | Payment mode filter. |
| `entity_source_type` | string | No | Subscription source type. |
| `get_payments_collected_count` | boolean | No | Include collected-payment count. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Transactions

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_LIST_TRANSACTIONS`

Return one offset page of payment transactions for the connected Location. Location PITs must be provisioned with the HighLevel permission: `payments/transactions.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum transactions on this page. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `end_at` | string | No | End date in YYYY-MM-DD format. |
| `offset` | integer | No | Zero-based transaction offset. |
| `search` | string | No | Transaction name search text. |
| `start_at` | string | No | Start date in YYYY-MM-DD format. |
| `entity_id` | string | No | Entity ID filter. |
| `contact_id` | string | No | Contact ID filter. |
| `payment_mode` | string | No | Payment mode filter. |
| `subscription_id` | string | No | Subscription ID filter. |
| `entity_source_type` | string | No | Transaction source type. |
| `entity_source_sub_type` | string | No | Transaction source subtype. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Record Order Payment

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_RECORD_ORDER_PAYMENT`

Record a real manual payment against an order. This changes financial balances and may mark the order paid; confirm the order ID, amount, currency, payment method, and partial-payment intent before calling. Do not use this action to test connectivity. Location PITs must be provisioned with the HighLevel permission: `payments/orders.collectPayment`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `card` | object | No | Optional receipt details: brand, type, and last4. |
| `meta` | object | No | Payment metadata. |
| `mode` | string ("cash" | "card" | "cheque" | "bank_transfer" | "other") | Yes | Manual payment method. |
| `notes` | string | No | Payment note. |
| `alt_id` | string | No | Connected Location ID; caller values are overwritten. |
| `amount` | number | No | Amount to record; verify currency and units before calling. |
| `cheque` | object | No | Optional receipt details containing the cheque number. |
| `alt_type` | string | No | Fixed Location tenant type. |
| `order_id` | string | Yes | Order ID to mark paid or partially paid. |
| `is_partial_payment` | boolean | No | Whether this is a partial payment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Coupon

**Slug:** `HIGHLEVEL_LOCATION_PAYMENTS_UPDATE_COUPON`

Replace an existing coupon's promotional terms. applyToFuturePaymentsConfig is ignored unless applyToFuturePayments is true. Confirm the coupon ID, discount, dates, limits, eligible products, and future subscription effects before calling. Location PITs must be provisioned with the HighLevel permission: `payments/coupons.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Coupon ID to update. |
| `code` | string | Yes | Coupon redemption code. |
| `name` | string | Yes | Coupon name. |
| `alt_id` | string | No | Connected Location ID; caller values are overwritten. |
| `alt_type` | string | No | Fixed Location tenant type. |
| `end_date` | string | No | Optional end date in ISO 8601 format. |
| `price_ids` | array | No | Eligible price IDs. |
| `start_date` | string | Yes | Start date in ISO 8601 format. |
| `product_ids` | array | No | Eligible product IDs. |
| `usage_limit` | integer | No | Maximum total redemptions. |
| `variant_ids` | array | No | Eligible variant IDs. |
| `discount_type` | string ("percentage" | "amount") | Yes | Discount type. |
| `discount_value` | number | Yes | Discount percentage or fixed amount. |
| `limit_per_customer` | boolean | No | Limit redemption to once per customer. |
| `apply_to_future_payments` | boolean | No | Apply to future subscription payments. |
| `apply_to_future_payments_config` | object | No | Future-payment duration configuration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Active Numbers

**Slug:** `HIGHLEVEL_LOCATION_PHONE_SYSTEM_ACTIVE_NUMBERS`

List one page of active numbers and phone-account state for the connected HighLevel location. Pass `next_cursor` back as `page` for the next page. This action depends on external phone-system state. Location PITs must be provisioned with the HighLevel permission: `phonenumbers.read`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Zero-based page index. |
| `page_size` | integer | No | Maximum active numbers to return (1-1000). |
| `search_filter` | string | No | Filter active numbers by number text. |
| `skip_number_pool` | boolean | No | Exclude numbers assigned to number pools. |
| `include_rcs_sender_ids` | boolean | No | Include RCS sender IDs in the response. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Number Pools

**Slug:** `HIGHLEVEL_LOCATION_PHONE_SYSTEM_GET_NUMBER_POOL_LIST`

List number pools for the connected HighLevel location. This action requires the location's external phone-system state to be configured. Location PITs must be provisioned with the HighLevel permission: `numberpools.read`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Available Phone Numbers

**Slug:** `HIGHLEVEL_LOCATION_PHONE_SYSTEM_LIST_AVAILABLE_NUMBERS_FOR_ACOUNTRY`

Search external phone-provider inventory for numbers purchasable by the connected HighLevel location. This does not purchase or reserve a number. Location PITs must be provisioned with the HighLevel permission: `phonenumbers.read`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `anywhere` | string | No | Optional digits that may occur anywhere in the phone number. |
| `last_part` | string | No | Optional digits at the end of the phone number. |
| `first_part` | string | No | Optional digits at the beginning of the phone number. |
| `mms_enabled` | boolean | Yes | Require MMS capability. |
| `sms_enabled` | boolean | Yes | Require SMS capability. |
| `country_code` | string | Yes | Two-letter uppercase country code in which to search for numbers. |
| `number_types` | array | Yes | Phone-number types to search for. |
| `voice_enabled` | boolean | Yes | Require voice capability. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Purchase Number for Location

**Slug:** `HIGHLEVEL_LOCATION_PHONE_SYSTEM_PURCHASE_NUMBER_FOR_LOCATION`

Purchase a phone number for the connected HighLevel location from external provider inventory. This can incur an immediate charge. Explicit confirmation is required, and this toolkit surface has no action for releasing the number. HighLevel rejects purchases when the location is not KYC verified, including when skip_location_kyc is true. Location PITs must be provisioned with the HighLevel permission: `phonenumbers.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `bundle_sid` | string | No | Twilio regulatory bundle ID, when the country or number requires one. |
| `address_sid` | string | No | Twilio regulatory address ID, when the country or number requires one. |
| `number_type` | string ("local" | "mobile" | "tollFree") | No | Optional type of phone number to purchase. |
| `country_code` | string | No | Optional country code for the requested phone number. |
| `phone_number` | string | Yes | Phone number to purchase. |
| `fingerprint_id` | string | Yes | `fingerprintId` returned by PHONE_SYSTEM_LIST_AVAILABLE_NUMBERS_FOR_ACOUNTRY for the search that found this number. |
| `confirm_purchase` | boolean | Yes | Must be true to confirm the purchase may immediately charge the configured payment method. This toolkit surface has no action for releasing the number. |
| `skip_location_kyc` | boolean | No | Whether to skip location-level KYC. Leave false unless agency-level regulatory compliance is already verified; an incorrect true value can cause HighLevel to reject the purchase. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk Edit Products and Prices

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_BULK_EDIT`

Edit fields on up to 30 products and nested prices in one request. Confirm every product ID and changed field before calling. Location PITs must be provisioned with the HighLevel permission `products.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `products` | array | Yes | Products and nested prices to edit. HighLevel permits at most 30 total product and price entities. |
| `confirm_bulk_edit` | boolean | Yes | Must be true to confirm the bulk product and price changes. This value is not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk Update Products

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_BULK_UPDATE`

Bulk-update product prices, availability, collections, or currency, or permanently delete products when type is `bulk-delete-products`. Collection updates add products to collections and never remove existing collection assignments. Confirm the operation type and product IDs before calling. Location PITs must be provisioned with the HighLevel permission: `products.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("bulk-update-price" | "bulk-update-availability" | "bulk-update-product-collection" | "bulk-delete-products" | "bulk-update-currency") | Yes | Type of bulk update operation |
| `price` | object | No | Price update configuration |
| `filters` | object | No | Filters used with selectAll: collectionIds, productType, availableInStore, and search. |
| `currency` | string | No | Currency code |
| `product_ids` | array | Yes | Non-empty array of product IDs |
| `availability` | boolean | No | New availability status |
| `collection_ids` | array | No | Non-empty array of collection IDs to add. This operation never removes existing collections. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk Update Product Reviews

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_BULK_UPDATE_PRODUCT_REVIEW`

Update one or multiple product reviews: status, reply, etc. Location PITs must be provisioned with the HighLevel permission: `products.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string ("approved" | "pending") | Yes | Status of the review |
| `reviews` | array | Yes | Non-empty array of product reviews. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Price for a Product

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_CREATE_PRICE_FOR_PRODUCT`

The "Create Price for a Product" API allows adding a new price associated with a specific product to the system. Use this endpoint to create a price with the specified details for a particular product. Ensure that the required information is provided in the request payload. Location PITs must be provisioned with the HighLevel permission: `products/prices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sku` | string | No | The unique identifier of the SKU associated with the price |
| `meta` | object | No | Additional metadata associated with the price. |
| `name` | string | Yes | The name of the price. |
| `type` | string ("one_time" | "recurring") | Yes | The type of the price. |
| `amount` | number | Yes | The amount of the price. ( min: 0 ) |
| `user_id` | string | No | The unique identifier of the user who created the price. |
| `currency` | string | Yes | The currency of the price. |
| `recurring` | object | No | The recurring details of the price (if type is recurring). |
| `setup_fee` | number | No | The setup fee for the price. |
| `product_id` | string | Yes | ID of the product that needs to be used |
| `description` | string | No | A brief description of the price. |
| `total_cycles` | number | No | The total number of billing cycles for the price. ( min: 1 ) |
| `trial_period` | number | No | The trial period duration in days (if applicable). |
| `track_inventory` | boolean | No | Need to track inventory stock quantity |
| `compare_at_price` | number | No | The compare at price for the price. |
| `digital_delivery` | array | No | Digital delivery objects with id, name, type, url, and size when required. |
| `shipping_options` | object | No | Shipping options of the Price |
| `membership_offers` | array | No | An array of membership offers associated with the price. |
| `available_quantity` | number | No | Available inventory stock quantity |
| `is_digital_product` | boolean | No | Is the product a digital product |
| `variant_option_ids` | array | No | An array of variant option IDs associated with the price. |
| `allow_out_of_stock_purchases` | boolean | No | Continue selling when out of stock |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Product

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_CREATE_PRODUCT`

The "Create Product" API allows adding a new product to the system. Use this endpoint to create a product with the specified details. Ensure that the required information is provided in the request payload. Location PITs must be provisioned with the HighLevel permission: `products.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `seo` | object | No | SEO preview fields: title and description. |
| `name` | string | Yes | The name of the product. |
| `slug` | string | No | The slug using which the product navigation will be handled |
| `image` | string | No | The URL for the product image. |
| `label` | object | No | Product label with required title and optional startDate and endDate. |
| `taxes` | array | No | List of ids of Taxes attached to the Product. If taxes are passed, isTaxesEnabled should be true. |
| `medias` | array | No | An array of medias for the product. |
| `variants` | array | No | An array of variants for the product. |
| `description` | string | No | A brief description of the product. |
| `product_type` | string ("DIGITAL" | "PHYSICAL" | "SERVICE" | "PHYSICAL/DIGITAL") | Yes | Product type used to determine physical, digital, or service behavior. |
| `tax_inclusive` | boolean | No | Whether the taxes should be included in the purchase price |
| `collection_ids` | array | No | An array of category Ids for the product |
| `is_label_enabled` | boolean | No | Is the product label enabled. If this is true, label object cannot be empty. |
| `is_taxes_enabled` | boolean | No | Are there any taxes attached to the product. If this is true, taxes array cannot be empty. |
| `available_in_store` | boolean | No | Indicates whether the product is available in-store. |
| `statement_descriptor` | string | No | The statement descriptor for the product. |
| `automatic_tax_category_id` | string | No | Tax category ID for Automatic taxes calculation. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Product Collection

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_CREATE_PRODUCT_COLLECTION`

Create a new Product Collection for a specific location Location PITs must be provisioned with the HighLevel permission: `products/collection.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `seo` | object | No | The metadata information which will be displayed in SEO previews |
| `name` | string | Yes | Name of the Product Collection |
| `slug` | string | Yes | Slug of the Product Collection which helps in navigation |
| `image` | string | No | The URL of the image that is going to be displayed as the collection Thumbnail |
| `collection_id` | string | No | Unique Identifier of the Product Collection, Mongo Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Price by ID for a Product

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_DELETE_PRICE_BY_ID_FOR_PRODUCT`

The "Delete Price by ID for a Product" API allows deleting a specific price associated with a particular product using its unique identifier. Use this endpoint to remove a price from the system. Location PITs must be provisioned with the HighLevel permission: `products/prices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `price_id` | string | Yes | ID of the price that needs to be returned |
| `product_id` | string | Yes | ID of the product that needs to be used |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Product by ID

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_DELETE_PRODUCT_BY_ID`

The "Delete Product by ID" API allows deleting a specific product using its unique identifier. Use this endpoint to remove a product from the system. Location PITs must be provisioned with the HighLevel permission: `products.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Product ID (24-character hexadecimal Mongo ID); slugs are not accepted. |
| `send_wishlist_status` | boolean | No | Parameter which will decide whether to show the wishlisting status of products |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Product Collection

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_DELETE_PRODUCT_COLLECTION`

Delete specific product collection with Id :collectionId Location PITs must be provisioned with the HighLevel permission: `products/collection.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | MongoId of the collection |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Product Review

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_DELETE_PRODUCT_REVIEW`

Delete specific product review Location PITs must be provisioned with the HighLevel permission: `products.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `review_id` | string | Yes | Review Id |
| `product_id` | string | Yes | Product Id of the product |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Inventory

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_GET_LIST_INVENTORY`

The "List Inventory API allows the user to retrieve a paginated list of inventory items. Use this endpoint to fetch details for multiple items in the inventory based on the provided query parameters. Location PITs must be provisioned with the HighLevel permission: `products/prices.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | The maximum number of items to be included in a single page of results |
| `cursor` | integer | No | Continuation offset returned as `next_cursor` by the previous call. |
| `offset` | integer | No | The starting index of the page, indicating the position from which the results should be retrieved. |
| `search` | string | No | Search string for Variant Search |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Price by ID for a Product

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_GET_PRICE_BY_ID_FOR_PRODUCT`

The "Get Price by ID for a Product" API allows retrieving information for a specific price associated with a particular product using its unique identifier. Use this endpoint to fetch details for a single price based on the provided price ID and product ID. Location PITs must be provisioned with the HighLevel permission: `products/prices.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `price_id` | string | Yes | ID of the price that needs to be returned |
| `product_id` | string | Yes | ID of the product that needs to be used |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Product by ID

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_GET_PRODUCT_BY_ID`

The "Get Product by ID" API allows to retrieve information for a specific product using its unique identifier. Use this endpoint to fetch details for a single product based on the provided product ID. Location PITs must be provisioned with the HighLevel permission: `products.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Product ID (24-character hexadecimal Mongo ID); slugs are not accepted. |
| `send_wishlist_status` | boolean | No | Parameter which will decide whether to show the wishlisting status of products |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Product Collections

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_GET_PRODUCT_COLLECTION`

Fetch product collections for the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permission: `products/collection.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Query to search collection based on names |
| `limit` | integer | No | The maximum number of items to be included in a single page of results |
| `cursor` | integer | No | Continuation offset returned as `next_cursor` by the previous call. |
| `offset` | integer | No | The starting index of the page, indicating the position from which the results should be retrieved. |
| `collection_ids` | string | No | Ids of the collections separated by comma(,) for search purposes |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Details about individual product collection

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_GET_PRODUCT_COLLECTION_ID`

Get Details about individual product collection Location PITs must be provisioned with the HighLevel permission: `products/collection.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Collection Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Product Reviews

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_GET_PRODUCT_REVIEWS`

API to fetch the Product Reviews Location PITs must be provisioned with the HighLevel permission: `products.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | The maximum number of items to be included in a single page of results |
| `offset` | integer | No | The starting index of the page, indicating the position from which the results should be retrieved. |
| `rating` | number | No | Key to filter the ratings |
| `status` | string ("pending" | "approved") | Yes | Moderation status of reviews to return. |
| `end_date` | string | No | The end date for filtering reviews |
| `store_id` | string | No | Comma-separated list of store IDs |
| `product_id` | string | No | Comma-separated list of product IDs |
| `sort_field` | string ("createdAt" | "rating") | No | The field upon which the sort should be applied |
| `sort_order` | string ("asc" | "desc") | No | The order of sort which should be applied for the sortField |
| `start_date` | string | No | The start date for filtering reviews |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Product Store Stats

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_GET_PRODUCT_STORE_STATS`

API to fetch the total number of products, included in the store, and excluded from the store and other stats Location PITs must be provisioned with the HighLevel permission: `products.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `search` | string | No | The name of the product for searching. |
| `store_id` | string | Yes | ID of the store funnel (`_id` from the funnel list where `isStoreActive` is true), not a page or step ID. |
| `collection_ids` | string | No | Filter by product collection Ids. Supports comma separated values |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Review Count as per status

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_GET_REVIEWS_COUNT`

API to fetch the Review Count as per status Location PITs must be provisioned with the HighLevel permission: `products.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rating` | number | No | Key to filter the ratings |
| `end_date` | string | No | The end date for filtering reviews |
| `store_id` | string | No | Comma-separated list of store IDs |
| `product_id` | string | No | Comma-separated list of product IDs |
| `start_date` | string | No | The start date for filtering reviews |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Prices for a Product

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_LIST_PRICES_FOR_PRODUCT`

The "List Prices for a Product" API allows retrieving a paginated list of prices associated with a specific product. Customize your results by filtering prices or paginate through the list using the provided query parameters. Location PITs must be provisioned with the HighLevel permission: `products/prices.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | string | No | To filter the response only with the given price ids, Please provide with comma separated |
| `limit` | integer | No | The maximum number of items to be included in a single page of results |
| `cursor` | integer | No | Continuation offset returned as `next_cursor` by the previous call. |
| `offset` | integer | No | The starting index of the page, indicating the position from which the results should be retrieved. |
| `product_id` | string | Yes | ID of the product that needs to be used |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Products

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_LIST_PRODUCTS`

The "List Products" API allows to retrieve a paginated list of products. Customize your results by filtering products based on name or paginate through the list using the provided query parameters. This endpoint provides a straightforward way to explore and retrieve product information. Location PITs must be provisioned with the HighLevel permission: `products.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | The maximum number of items to be included in a single page of results |
| `cursor` | integer | No | Continuation offset returned as `next_cursor` by the previous call. |
| `expand` | array | No | Name of an entity whose data has to be fetched along with product. Possible entities are tax, stripe and paypal. If not mentioned, only ID will be returned in case of taxes |
| `offset` | integer | No | The starting index of the page, indicating the position from which the results should be retrieved. |
| `search` | string | No | The name of the product for searching. |
| `store_id` | string | No | fetch and project products based on the storeId |
| `sort_order` | string ("asc" | "desc") | No | The order of sort which should be applied for the date |
| `product_ids` | array | No | List of product ids to be fetched. |
| `collection_ids` | string | No | Filter by product category Ids. Supports comma separated values |
| `collection_slug` | string | No | The slug value of the collection by which the collection would be searched |
| `included_in_store` | boolean | No | Separate products by which are included in the store and which are not |
| `available_in_store` | boolean | No | If the product is included in the online store |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Product Display Priorities

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_UPDATE_DISPLAY_PRIORITY`

Set product display priorities for a store in the connected Location. Confirm the complete intended ordering before calling. Location PITs must be provisioned with the HighLevel permission: `products.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `products` | array | Yes | Products and their display priorities. |
| `store_id` | string | Yes | ID of the store funnel (`_id` from the funnel list where `isStoreActive` is true), not a page or step ID. |
| `confirm_priority_change` | boolean | Yes | Must be true to confirm reordering products in the store. Not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Inventory

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_UPDATE_INVENTORY`

The Update Inventory API allows the user to bulk update the inventory for multiple items. Use this endpoint to update the available quantity and out-of-stock purchase settings for multiple items in the inventory. Location PITs must be provisioned with the HighLevel permission: `products/prices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `items` | array | Yes | Non-empty array of items to update in the inventory. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Price by ID for a Product

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_UPDATE_PRICE_BY_ID_FOR_PRODUCT`

Replace a product price by ID. This is a full replacement: resend every field to retain, including SKU, description, recurring schedule, trial period, total cycles, setup fee, compare-at price, shipping options, inventory settings, and digital-delivery settings. Omitted optional fields are cleared. Location PITs must be provisioned with the HighLevel permission: `products/prices.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sku` | string | No | The unique identifier of the SKU associated with the price |
| `meta` | object | No | Additional metadata associated with the price. |
| `name` | string | Yes | The name of the price. |
| `type` | string ("one_time" | "recurring") | Yes | The type of the price. |
| `amount` | number | Yes | The amount of the price. ( min: 0 ) |
| `user_id` | string | No | The unique identifier of the user who created the price. |
| `currency` | string | Yes | The currency of the price. |
| `price_id` | string | Yes | ID of the price that needs to be returned |
| `recurring` | object | No | The recurring details of the price (if type is recurring). |
| `setup_fee` | number | No | The setup fee for the price. |
| `product_id` | string | Yes | ID of the product that needs to be used |
| `description` | string | No | A brief description of the price. |
| `total_cycles` | number | No | The total number of billing cycles for the price. ( min: 1 ) |
| `trial_period` | number | No | The trial period duration in days (if applicable). |
| `track_inventory` | boolean | No | Need to track inventory stock quantity |
| `compare_at_price` | number | No | The compare at price for the price. |
| `digital_delivery` | array | No | Digital delivery objects with id, name, type, url, and size when required. |
| `shipping_options` | object | No | Shipping options of the Price |
| `membership_offers` | array | No | An array of membership offers associated with the price. |
| `available_quantity` | number | No | Available inventory stock quantity |
| `is_digital_product` | boolean | No | Is the product a digital product |
| `variant_option_ids` | array | No | An array of variant option IDs associated with the price. |
| `allow_out_of_stock_purchases` | boolean | No | Continue selling when out of stock |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Product by ID

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_UPDATE_PRODUCT_BY_ID`

Update a product by ID. HighLevel ignores product_type and clears taxInclusive when tax_inclusive is omitted. Location PITs must be provisioned with the HighLevel permission: `products.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `seo` | object | No | SEO preview fields: title and description. |
| `name` | string | Yes | The name of the product. |
| `slug` | string | No | The slug using which the product navigation will be handled |
| `image` | string | No | The URL for the product image. |
| `label` | object | No | Product label with required title and optional startDate and endDate. |
| `taxes` | array | No | List of ids of Taxes attached to the Product. If taxes are passed, isTaxesEnabled should be true. |
| `medias` | array | No | An array of medias for the product. |
| `variants` | array | No | An array of variants for the product. |
| `product_id` | string | Yes | Product ID (24-character hexadecimal Mongo ID); slugs are not accepted. |
| `description` | string | No | A brief description of the product. |
| `product_type` | string ("DIGITAL" | "PHYSICAL" | "SERVICE" | "PHYSICAL/DIGITAL") | Yes | Requested product type. HighLevel ignores this field on update and recomputes productType from the product's prices. |
| `tax_inclusive` | boolean | No | Whether the taxes should be included in the purchase price |
| `collection_ids` | array | No | An array of category Ids for the product |
| `is_label_enabled` | boolean | No | Is the product label enabled. If this is true, label object cannot be empty. |
| `is_taxes_enabled` | boolean | No | Are there any taxes attached to the product. If this is true, taxes array cannot be empty. |
| `available_in_store` | boolean | No | Indicates whether the product is available in-store. |
| `statement_descriptor` | string | No | The statement descriptor for the product. |
| `automatic_tax_category_id` | string | No | Tax category ID for Automatic taxes calculation. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Product Collection

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_UPDATE_PRODUCT_COLLECTION`

Update a specific product collection with Id :collectionId Location PITs must be provisioned with the HighLevel permission: `products/collection.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `seo` | object | No | The metadata information which will be displayed in SEO previews |
| `name` | string | No | Name of the Product Collection |
| `slug` | string | No | Slug of the Product Collection which helps in navigation |
| `image` | string | No | The URL of the image that is going to be displayed as the collection Thumbnail |
| `collection_id` | string | Yes | MongoId of the collection |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Product Review

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_UPDATE_PRODUCT_REVIEW`

Update status, reply, etc of a particular review Location PITs must be provisioned with the HighLevel permission: `products.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `reply` | array | No | Reply of the review |
| `detail` | string | No | Detailed Review of the product |
| `rating` | number | No | Rating of the product |
| `status` | string ("approved" | "pending") | Yes | Status of the review |
| `headline` | string | No | Headline of the Review |
| `review_id` | string | Yes | Review Id |
| `product_id` | string | Yes | Product Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Product Store Inclusion

**Slug:** `HIGHLEVEL_LOCATION_PRODUCTS_UPDATE_STORE_STATUS`

API to update the status of products in a particular store Location PITs must be provisioned with the HighLevel permission: `products.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `action` | string ("include" | "exclude") | Yes | Action to include or exclude the product from the store |
| `store_id` | string | Yes | ID of the store funnel (`_id` from the funnel list where `isStoreActive` is true), not a page or step ID. |
| `product_ids` | array | Yes | Non-empty array of non-empty product IDs |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Proposal Documents

**Slug:** `HIGHLEVEL_LOCATION_PROPOSALS_LIST_DOCUMENTS_CONTRACTS`

Return one page of proposal and contract documents for the connected HighLevel location. Availability may depend on an account entitlement that has not been verified. Location PITs must be provisioned with the HighLevel permission: `documents_contracts/list.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of matching documents to skip. |
| `limit` | integer | No | Maximum documents to return on this page. |
| `query` | string | No | Text to search for in documents. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `status` | string ("draft" | "sent" | "viewed" | "completed" | "accepted") | No | Document status to match. |
| `date_to` | string | No | Inclusive ISO 8601 end time; requires `date_from`. |
| `date_from` | string | No | Inclusive ISO 8601 start time; requires `date_to`. |
| `payment_status` | string ("waiting_for_payment" | "paid" | "no_payment") | No | Payment status to match. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Proposal Templates

**Slug:** `HIGHLEVEL_LOCATION_PROPOSALS_LIST_DOCUMENTS_CONTRACTS_TEMPLATES`

Return one page of proposal and contract templates for the connected HighLevel location. Availability may depend on an account entitlement that has not been verified. Location PITs must be provisioned with the HighLevel permission: `documents_contracts_template/list.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Template name to match. |
| `skip` | integer | No | Number of matching templates to skip. |
| `type` | string | No | Comma-separated template types: proposal, estimate, or contentLibrary. |
| `limit` | integer | No | Number of templates to return on this page. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `date_to` | string | No | Inclusive ISO 8601 end time; requires `date_from`. |
| `user_id` | string | No | User identifier; required for public document forms. |
| `date_from` | string | No | Inclusive ISO 8601 start time; requires `date_to`. |
| `is_public_document` | boolean | No | Filter for public document forms. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Send Proposal Document

**Slug:** `HIGHLEVEL_LOCATION_PROPOSALS_SEND_DOCUMENTS_CONTRACTS`

Irreversibly send an existing proposal or contract to external recipients for the connected HighLevel location. Review the document, recipients, sender, and delivery medium before calling. Availability may depend on an unverified account entitlement. Location PITs must be provisioned with the HighLevel permission: `documents_contracts/sendLink.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `medium` | string ("link" | "email") | No | Provider delivery medium. `email` sends an external email; `link` requests link delivery. |
| `sent_by` | string | Yes | HighLevel user identifier recorded as the sender. |
| `document_id` | string | Yes | Document identifier to send. |
| `location_id` | string | No | Connected HighLevel Location ID; caller-supplied values are ignored. |
| `cc_recipients` | array | No | Additional external recipients copied on the send. |
| `document_name` | string | No | Optional document name. |
| `notification_settings` | object | No | Sender and recipient notification configuration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create or Send Proposal from Template

**Slug:** `HIGHLEVEL_LOCATION_PROPOSALS_SEND_DOCUMENTS_CONTRACTS_TEMPLATE`

Create a proposal or contract from a template for a contact in the connected HighLevel location. Setting `send_document=true` or omitting it sends externally and is irreversible; pass `false` to create a draft. Availability may depend on an unverified account entitlement. Location PITs must be provisioned with the HighLevel permission: `documents_contracts_template/sendLink.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | HighLevel user identifier creating the document. |
| `contact_id` | string | Yes | Contact that will receive or own the document. |
| `location_id` | string | No | Connected HighLevel Location ID; caller-supplied values are ignored. |
| `template_id` | string | Yes | Template identifier to instantiate. |
| `send_document` | boolean | No | Whether HighLevel should send the created document externally. Set true only after confirming the contact and template; sending is irreversible. Omitted uses HighLevel's default and sends; pass false to create a draft. |
| `opportunity_id` | string | No | Opportunity to associate with the created document. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Ad Targeting

**Slug:** `HIGHLEVEL_LOCATION_SEARCH_AD_TARGETING`

Search targeting options on Facebook Ads, Google Ads, or LinkedIn Ads. Location PITs must be provisioned with the HighLevel permission: `adPublishing.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `q` | string | No | Optional LinkedIn `q` search term. Not accepted for Facebook or Google. |
| `type` | string ("geolocation" | "interest" | "language") | No | Required target taxonomy for Facebook and Google. Facebook accepts `geolocation`, `interest`, or `language`; Google accepts `geolocation` or `language`. Not accepted for LinkedIn. |
| `facet` | string | No | Required LinkedIn targeting facet, sent as `facet`. Not accepted for Facebook or Google. |
| `query` | string | No | Targeting search text, sent as `query`. Required for Facebook, optional for Google and LinkedIn. |
| `platform` | string ("facebook" | "google" | "linkedin") | Yes | Ad platform whose equivalent operation to call. |
| `search_type` | string | No | Optional Facebook targeting search subtype, sent as `searchType`. Not accepted for Google or LinkedIn. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Connect Account (Step 3 of 3)

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_ATTACH_OAUTH_ACCOUNTS`

Attach an account returned by SOCIAL_PLANNER_GET_OAUTH_ACCOUNTS (step 2 of the OAuth flow). Copy its provider identifiers unchanged: Instagram requires page_id; LinkedIn requires type and urn; YouTube, Threads, and Pinterest require type='profile'; Google Business Profile requires both location and account. Location PITs must be provisioned with the HighLevel permission: `socialplanner/oauth.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `urn` | string | No | LinkedIn person or organization URN. |
| `name` | string | No | Name of the Facebook page or account |
| `type` | string ("page" | "group" | "profile" | "location" | "business") | No | Provider account type returned by the account lookup. |
| `avatar` | string | No | Avatar or profile picture URL |
| `account` | object | No | Google Business Profile account returned by the account lookup. |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `page_id` | string | No | Facebook Page ID required for an Instagram account. |
| `location` | object | No | Google Business Profile location returned by the account lookup. |
| `platform` | string ("google" | "facebook" | "instagram" | "linkedin" | "tiktok" | "youtube" | "pinterest" | "threads" | "bluesky") | Yes | Social media platform (must match the platform used in Steps 1 and 2) |
| `username` | string | No | Pinterest profile username. |
| `verified` | boolean | No | Pinterest profile verification status. |
| `origin_id` | string | No | Original Facebook platform identifier |
| `account_id` | string | Yes | The OAuth Account ID received from Step 1 (same as used in Step 2) |
| `company_id` | string | No | Pinterest company identifier. |
| `website_url` | string | No | Pinterest profile website URL. |
| `origin_account_type` | string | No | Pinterest source account type. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Bulk Delete Social Planner Posts

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_BULK_DELETE_POSTS`

Idempotently soft-delete up to 50 Social Planner posts from HighLevel. Repeating a deletion may report the same count again, and `SOCIAL_PLANNER_GET_POSTS` does not list these records with its `deleted` filter. Confirm all post IDs before calling. The proven six-scope OAuth union is sufficient, but HighLevel does not map this endpoint to one individually necessary scope; no Social Planner-specific PIT permission was enforced by the minimal-PIT probe.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_ids` | array | Yes | Social Planner post IDs to delete from the HighLevel CRM database. |
| `confirm_bulk_delete` | boolean | Yes | Must be true to confirm deletion of every listed post. This value is not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Clone a queue item

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_CLONE_QUEUE_ITEM`

Duplicates an existing queue item at a specified order position. Requires an active edit session. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order` | number | Yes | Order for the cloned item (typically between source and next item) |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `item_id` | string | Yes | Provider field `itemId`. |
| `queue_id` | string | Yes | Provider field `queueId`. |
| `session_id` | string | Yes | Edit session ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a comment or reply

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_CREATE_COMMENT`

Create a top-level post comment (`isParentThread: true`, `parentId` = post ID) or reply (`isParentThread: false`, `parentId` = comment ID). Attachments work only on Facebook; mentions work on Facebook, LinkedIn, and Community; `notifyAllGroupMembers` broadcasts only in Community and is ignored elsewhere. Content limits are Facebook 8000, Instagram 2200, LinkedIn 3000, Community 8000, TikTok 150, Bluesky 300, YouTube 10000, and Threads 500 characters. Location PITs must be provisioned with `socialplanner/comments.write`. Explicit confirmation is required.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `content` | string | Yes | Content of the comment. Per-platform max length: Facebook 8000, Instagram 2200, Linkedin 3000, Community 8000, Tiktok 150, Bluesky 300, Youtube 10000, Threads 500. |
| `mentions` | array | No | Mentions for the comment. **Supported on:** Facebook, LinkedIn, Community. **Ignored on:** Instagram, TikTok, Bluesky — the field is accepted but mentions are not rendered on these platforms. |
| `platform` | string ("facebook" | "instagram" | "linkedin" | "community" | "tiktok" | "bluesky" | "youtube" | "threads") | Yes | Platform on which to create the comment |
| `parent_id` | string | Yes | Required internal post ID for a top-level comment (`isParentThread: true`) or internal parent comment ID for a reply (`isParentThread: false`). |
| `attachments` | array | No | Attachments for the comment (max 1 image). **Supported on:** Facebook only. **Not supported on:** Instagram, LinkedIn, TikTok, Bluesky, Community — the field is accepted by the API but the attachment will not appear on the comment. (Community processes the field server-side, but external URLs are not rendered due to its bucket restriction.) |
| `is_parent_thread` | boolean | Yes | Set `true` to create a top-level comment on a post (parentId = post ID). Set `false` to create a reply to an existing comment (parentId = comment ID). |
| `notify_all_group_members` | boolean | No | When `true`, all members of the Community group receive a push/in-app notification about this comment — equivalent to an `@everyone` broadcast.  **Supported on:** Community only. Ignored on all other platforms (the field is accepted but no notification is sent).  **Independent of the `mentions` array** — you do not need to add an `@everyone` entry to `mentions` for this to take effect. Conversely, putting the literal text `@everyone` in `content` does **not** by itself trigger notifications; only this flag does.  Defaults to `false` (no broadcast notification). Use `true` only when the comment is genuinely intended for every member of the group — overuse may cause members to mute the group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Like a comment

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_CREATE_LIKE`

Like a comment by its **Highlevel** comment ID (the `_id` returned by the list-comments endpoint — not the native platform ID). Works for any comment level — top-level comments, replies, and replies-to-replies. **Supported platforms:** Facebook, LinkedIn, Community, TikTok, Bluesky. Instagram is not supported (passing `instagram` returns 400). Location PITs must be provisioned with the HighLevel permission: `socialplanner/comments.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Internal HighLevel comment ID returned as `_id` by list comments |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `platform` | string ("facebook" | "linkedin" | "community" | "tiktok" | "bluesky") | Yes | Platform on which to like the comment; Instagram is unsupported |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create post

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_CREATE_POST`

Create a draft or publish/schedule content on connected external social networks. An immediate `published` request can succeed without returning a post ID; recover the created record with `SOCIAL_PLANNER_GET_POSTS` using a narrow `from_date`/`to_date` window around creation. Non-draft requests require explicit confirmation because they may make content public or notify followers. Location PITs must be provisioned with the HighLevel permission: `socialplanner/post.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | No | Array of Tag IDs to associate with the post for organization and filtering.  **Get Tag IDs from:** [Get Tags API](./social-planner/get-tags-location-id)  use the `_id` field from each tag.  **Validation:** All IDs must be valid MongoDB ObjectIds. |
| `type` | string ("post" | "story" | "reel") | Yes | Type of post to create. Determines the format and platform requirements.  **Available Types:** - `post` - Standard feed post (all platforms) - `story` - Temporary 24-hour story (Instagram, Facebook) - `reel` - Short-form video content (Instagram, Facebook, TikTok, YouTube)  **Customize Per Platform:** You can specify different content/types per platform using `facebookPostDetails.type`, `instagramPostDetails.type`, etc.  **Validations:** - Reels require exactly 1 video - Stories: Caption not supported for Instagram/Facebook - Facebook Groups do not support Reels |
| `media` | array | No | Post Media Data   The limitations of media as per the platforms is provided through the reference link in API description |
| `status` | string ("draft" | "scheduled" | "in_review" | "published" | "in_progress" | "pending" | "failed" | "notification_sent" | "deleted") | No | Post status. `scheduled` and `in_review` require `schedule_date`; every status, including `draft`, requires at least one account ID. |
| `summary` | string | No | Post content/caption text. Character limits vary by platform.  **Custom Values & Hashtags:** - You can include custom values/variables in the content (e.g., `{{contact.name}}`) - Hashtags: Use `#hashtag` format. Instagram allows max 30 hashtags. - Mentions: Use platform-specific mention format (see `mentions` field for structured mentions)  **Validations:** - Instagram/Facebook Story: Caption NOT supported for direct publishing - Facebook, LinkedIn, GMB: Content OR media is required (at least one) - Content is automatically trimmed to platform limits  **Reference:** [Platform Limitations Guide](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations) |
| `user_id` | string | Yes | User ID of the user creating/managing the post. Required for OAuth channel posts (non-draft). |
| `created_by` | string | No | User ID of the creator who is creating/managing the post. Must be a valid MongoDB ObjectId.  **Get User IDs from:** [Get User API](../users/get-user)  use the `id` field from the user object.  **Validation:** Must be a valid MongoDB ObjectId. |
| `account_ids` | array | Yes | One or more connected social account IDs. HighLevel requires a non-empty array for drafts and published or scheduled posts. |
| `category_id` | string | No | Category ID to organize the post. Categories help group related posts.  **Get Category IDs from:** [Get Categories API](./social-planner/get-categories-location-id)  use the `_id` field.  **Validation:** Must be a valid MongoDB ObjectId. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `schedule_date` | string | No | Schedule Date |
| `apply_watermark` | boolean | No | Apply watermark to media in this post.  **Note:** Watermarks are applied to images only. Videos are not watermarked. |
| `og_tags_details` | object | No | Open Graph link preview data. HighLevel stores metaImage, metaLink, and ogTitle; it accepts ogDescription but currently does not persist it. |
| `gmb_post_details` | object | No | GMB Post Details |
| `follow_up_comment` | string | No | Follow-up comment to be posted immediately after the main post is published.  **Supported Platforms:** Facebook, Instagram, LinkedIn, YouTube  **NOT Supported:** TikTok, Google My Business (GMB), Pinterest  **Use Case:** Great for adding hashtags, additional context, or engagement prompts without cluttering the main post.  - Follow-up comment is automatically trimmed to platform limits  **Reference:** [Platform Limitations Guide](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations) |
| `selected_best_time` | string | No | Selected Best Time slot for scheduling |
| `tiktok_post_details` | object | No | Tiktok Post Details |
| `youtube_post_details` | object | No | YouTube-specific post configuration.  **Key Fields:** - `title`: Video title (max 100 characters) - `type`: Video type (`video` for regular videos, `short` for YouTube Shorts) - `privacyLevel`: Video visibility (`private`, `public`, `unlisted`)  **Limits:** - Max 1 video per post - Caption (description) max 5,000 characters  **Requirements:** - Video is REQUIRED for YouTube posts - `type` field is required |
| `facebook_post_details` | object | No | Facebook-specific post configuration.  **Key Fields:** - `type`: Post type (`post`, `story`, `reel`)  **Restrictions:** - Facebook Groups do NOT support Reels - Reels require exactly 1 video - Stories do not support captions  **Reference:** [Platform Limitations Guide](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations) |
| `linkedin_post_details` | object | No | LinkedIn-specific post configuration.  **Key Fields:** - `postAsPdf`: Set to `true` to post images as a PDF carousel document - `pdfTitle`: Title for the PDF document (max 100 characters)  **Limits:** - Max 9 images/videos for regular posts - Max 300 pages for PDF carousel - Max PDF size: 100 MB  **Reference:** [Platform Limitations Guide](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations) |
| `post_approval_details` | object | No | Post Approval Details |
| `schedule_time_updated` | boolean | No | Flag indicating if the schedule datetime was manually updated. Used for tracking rescheduled posts. |
| `instagram_post_details` | object | No | Instagram-specific post configuration.  **Key Fields:** - `type`: Post type (`post`, `story`, `reel`) - `collaborators`: Map of account IDs to Instagram usernames for collaboration invites (max 3 per account) - `showOnFeed`: Show reel on profile feed (for reels)  **Collaborators Structure:** ```json { "accountId": ["username1", "username2"] } ``` Where `accountId` is from [Get Accounts API](./get-account) and usernames are Instagram handles without @.  **Restrictions:** - Media is REQUIRED for all Instagram posts - Max 30 hashtags allowed in caption - Stories do not support captions - Collaborators: Posts/Reels only (NOT Stories) - Reels require exactly 1 video  **Reference:** [Platform Limitations Guide](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations) |
| `pinterest_post_details` | object | No | Pinterest-specific post configuration. Required when posting to Pinterest accounts.  **Required Fields:** - `boardIds`: Object mapping account OAuth IDs to Pinterest board IDs  **Optional Fields:** - `title`: Pin title (max 100 characters) - `link`: Destination URL for the pin (max 2048 characters)  **Get Board IDs:** Use the Pinterest boards API or retrieve from connected account details.  **Limits:** - Max 1 image/video per pin - Caption max 800 characters  **Reference:** [Platform Limitations Guide](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations) |
| `confirm_external_publish` | boolean | No | Must be true unless status is draft, because this request may publish or schedule content on external social networks. This value is not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a new category queue

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_CREATE_QUEUE`

Creates a queue in draft status for a category. Published posts are auto-added. Use update endpoint to activate. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `user_id` | string | Yes | User id |
| `time_slots` | array | Yes | Publishing slots. Each slot uses Sunday=0 through Saturday=6 and a time in HH:MM format. |
| `category_id` | string | Yes | Category ID |
| `enable_future_posts` | boolean | No | Enable Future Posts. Defaults to false. |
| `prioritize_new_content` | boolean | No | Prioritize New Content. Defaults to false. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a new item in the queue

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_CREATE_QUEUE_ITEM`

Adds a new post item to a queue. Use sessionId for edit session or directToQueue for immediate addition. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order` | string | No | Order for the new item in the queue (cyclic-aware). Accepts: - A number: explicit order value calculated by FE as midpoint between adjacent items - "top": place at cyclic top (first to be scheduled next) - "bottom": place at cyclic bottom (last to be scheduled)  For positions between items, FE calculates: Math.floor((prevItem.order + nextItem.order) / 2) Defaults to end if not provided. Note: This field is ignored when directToQueue is true - the order will be automatically calculated based on the queue's prioritizeNewContent setting. |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `queue_id` | string | Yes | Provider field `queueId`. |
| `session_id` | string | No | Edit session ID |
| `variations` | array | No | Platform-specific variations. Facebook posts without media need a variation with non-empty `content`. |
| `primary_image` | string | No | Primary media URL (image) for the post. Falls back to modifiedPostPayload.primaryImage if not set. |
| `direct_to_queue` | boolean | No | When true, creates the queue item directly without requiring an edit session, even for active/paused queues. This flag is optional: omitting both it and `sessionId` can also create a live item. When true, `order` is ignored and placement follows the queue's prioritizeNewContent setting. |
| `modified_post_payload` | object | No | Queued post details. `accountIds` and `userId` are required; `media` defaults to an empty array. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Account

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_DELETE_ACCOUNT`

Delete account and account from group Location PITs must be provisioned with the HighLevel permission: `socialplanner/account.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Id |
| `user_id` | string | No | User ID |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `confirm_disconnect` | boolean | Yes | Must be true to confirm disconnecting this external social-network account. This value is not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete CSV

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_DELETE_CSV`

Delete a CSV import and all its associated posts Location PITs must be provisioned with the HighLevel permission: `socialplanner/csv.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | CSV Id |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `confirm_delete` | boolean | Yes | Must be true to confirm deletion of this imported CSV and its staged data. This value is not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete CSV Post

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_DELETE_CSV_POST`

Delete a specific post from a CSV import Location PITs must be provisioned with the HighLevel permission: `socialplanner/csv.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `csv_id` | string | Yes | CSV Id |
| `post_id` | string | Yes | CSV Post Id |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `confirm_delete` | boolean | Yes | Must be true to confirm deletion of this staged CSV post. This value is not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete an active post and schedule the next one

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_DELETE_CURRENT_ACTIVE_POST_AND_SCHEDULE_NEXT`

Deletes a post that is currently scheduled and automatically triggers the scheduling of the next available post in the queue. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `post_id` | string | Yes | Provider field `postId`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Unlike a comment

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_DELETE_LIKE`

Remove a like from a comment by its **Highlevel** comment ID (the `_id` returned by the list-comments endpoint — not the native platform ID). Works for any comment level — top-level comments, replies, and replies-to-replies. **Supported platforms:** Facebook, LinkedIn, Community, TikTok, Bluesky. Instagram is not supported (passing `instagram` returns 400). Location PITs must be provisioned with the HighLevel permission: `socialplanner/comments.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Internal HighLevel comment ID returned as `_id` by list comments |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `platform` | string ("facebook" | "linkedin" | "community" | "tiktok" | "bluesky") | Yes | Platform on which to remove the comment like; Instagram is unsupported |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Post

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_DELETE_POST`

Soft-delete one Social Planner post from HighLevel idempotently through the bulk-delete operation. Repeating the deletion may still report `deletedCount: 1`, and `SOCIAL_PLANNER_GET_POSTS` does not list these records with its `deleted` filter. This does not guarantee removal from an external social network. Location PITs must be provisioned with the HighLevel permission: `socialplanner/post.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Post ID to soft-delete from Social Planner. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `confirm_delete` | boolean | Yes | Must be true to confirm deletion of this social post. This value is not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete an item from a queue

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_DELETE_QUEUE_ITEM`

Deletes an item from a specific category queue. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `item_id` | string | Yes | Provider field `itemId`. |
| `queue_id` | string | Yes | Provider field `queueId`. |
| `session_id` | string | No | Edit session ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Discard edit session changes

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_DISCARD_EDIT_SESSION`

Cancels the edit session and deletes all staged changes without affecting the live queue. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `queue_id` | string | Yes | Provider field `queueId`. |
| `session_id` | string | Yes | Edit session ID |
| `keep_in_draft` | boolean | No | If true, keeps the queue in DRAFT state after saving instead of automatically activating it. Only applicable when the queue is currently in DRAFT status. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Edit post

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_EDIT_POST`

Edit an existing Social Planner post and optionally republish or reschedule it on its connected external networks. This PUT replaces stored post fields: GET the post first and resend values such as category, schedule date, and media that must be preserved. Non-draft changes require explicit confirmation because they may update public content or notify followers. Location PITs must be provisioned with the HighLevel permission: `socialplanner/post.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Post Id |
| `tags` | array | No | Array of Tag IDs to associate with the post for organization and filtering.  **Get Tag IDs from:** [Get Tags API](./social-planner/get-tags-location-id)  use the `_id` field from each tag.  **Validation:** All IDs must be valid MongoDB ObjectIds. |
| `type` | string ("post" | "story" | "reel") | Yes | Type of post to create. Determines the format and platform requirements.  **Available Types:** - `post` - Standard feed post (all platforms) - `story` - Temporary 24-hour story (Instagram, Facebook) - `reel` - Short-form video content (Instagram, Facebook, TikTok, YouTube)  **Customize Per Platform:** You can specify different content/types per platform using `facebookPostDetails.type`, `instagramPostDetails.type`, etc.  **Validations:** - Reels require exactly 1 video - Stories: Caption not supported for Instagram/Facebook - Facebook Groups do not support Reels |
| `media` | array | No | Post Media Data   The limitations of media as per the platforms is provided through the reference link in API description |
| `status` | string ("draft" | "scheduled" | "in_review" | "published" | "in_progress" | "pending" | "failed" | "notification_sent" | "deleted") | No | Post status indicating the current state of the post.  **Available Status Values:** - `draft` - Post saved as draft, not yet ready for publishing - `scheduled` - Post scheduled for future publishing (requires `scheduleDate`) - `in_review` - Post pending approval (requires `scheduleDate` and `postApprovalDetails`) - `published` - Post has been published - `in_progress` - Post is currently being processed - `pending` - Post is awaiting platform processing for Instagram media container creation - `failed` - Post publishing failed - `notification_sent` - Story notification sent (for manual story posting) - `deleted` - Post has been deleted  Draft edits still require valid `accountIds`; only media/content requirements may vary by destination. |
| `summary` | string | No | Post content/caption text. Character limits vary by platform.  **Custom Values & Hashtags:** - You can include custom values/variables in the content (e.g., `{{contact.name}}`) - Hashtags: Use `#hashtag` format. Instagram allows max 30 hashtags. - Mentions: Use platform-specific mention format (see `mentions` field for structured mentions)  **Validations:** - Instagram/Facebook Story: Caption NOT supported for direct publishing - Facebook, LinkedIn, GMB: Content OR media is required (at least one) - Content is automatically trimmed to platform limits  **Reference:** [Platform Limitations Guide](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations) |
| `user_id` | string | Yes | User ID of the user creating/managing the post. Required for OAuth channel posts (non-draft). |
| `created_by` | string | No | User ID of the creator who is creating/managing the post. Must be a valid MongoDB ObjectId.  **Get User IDs from:** [Get User API](../users/get-user)  use the `id` field from the user object.  **Validation:** Must be a valid MongoDB ObjectId. |
| `account_ids` | array | Yes | Account IDs for the post. Required for every edit, including drafts; HighLevel validates that each ID is a connected account for the location. |
| `category_id` | string | No | Category ID to organize the post. Categories help group related posts.  **Get Category IDs from:** [Get Categories API](./social-planner/get-categories-location-id)  use the `_id` field.  **Validation:** Must be a valid MongoDB ObjectId. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `schedule_date` | string | No | Schedule Date |
| `apply_watermark` | boolean | No | Apply watermark to media in this post.  **Note:** Watermarks are applied to images only. Videos are not watermarked. |
| `og_tags_details` | object | No | Open Graph link preview data. HighLevel stores metaImage, metaLink, and ogTitle; it accepts ogDescription but currently does not persist it. |
| `gmb_post_details` | object | No | GMB Post Details |
| `follow_up_comment` | string | No | Follow-up comment to be posted immediately after the main post is published.  **Supported Platforms:** Facebook, Instagram, LinkedIn, YouTube  **NOT Supported:** TikTok, Google My Business (GMB), Pinterest  **Use Case:** Great for adding hashtags, additional context, or engagement prompts without cluttering the main post.  - Follow-up comment is automatically trimmed to platform limits  **Reference:** [Platform Limitations Guide](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations) |
| `selected_best_time` | string | No | Selected Best Time slot for scheduling |
| `tiktok_post_details` | object | No | Tiktok Post Details |
| `youtube_post_details` | object | No | YouTube-specific post configuration.  **Key Fields:** - `title`: Video title (max 100 characters) - `type`: Video type (`video` for regular videos, `short` for YouTube Shorts) - `privacyLevel`: Video visibility (`private`, `public`, `unlisted`)  **Limits:** - Max 1 video per post - Caption (description) max 5,000 characters  **Requirements:** - Video is REQUIRED for YouTube posts - `type` field is required |
| `facebook_post_details` | object | No | Facebook-specific post configuration.  **Key Fields:** - `type`: Post type (`post`, `story`, `reel`)  **Restrictions:** - Facebook Groups do NOT support Reels - Reels require exactly 1 video - Stories do not support captions  **Reference:** [Platform Limitations Guide](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations) |
| `linkedin_post_details` | object | No | LinkedIn-specific post configuration.  **Key Fields:** - `postAsPdf`: Set to `true` to post images as a PDF carousel document - `pdfTitle`: Title for the PDF document (max 100 characters)  **Limits:** - Max 9 images/videos for regular posts - Max 300 pages for PDF carousel - Max PDF size: 100 MB  **Reference:** [Platform Limitations Guide](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations) |
| `post_approval_details` | object | No | Post Approval Details |
| `schedule_time_updated` | boolean | No | Flag indicating if the schedule datetime was manually updated. Used for tracking rescheduled posts. |
| `instagram_post_details` | object | No | Instagram-specific post configuration.  **Key Fields:** - `type`: Post type (`post`, `story`, `reel`) - `collaborators`: Map of account IDs to Instagram usernames for collaboration invites (max 3 per account) - `showOnFeed`: Show reel on profile feed (for reels)  **Collaborators Structure:** ```json { "accountId": ["username1", "username2"] } ``` Where `accountId` is from [Get Accounts API](./get-account) and usernames are Instagram handles without @.  **Restrictions:** - Media is REQUIRED for all Instagram posts - Max 30 hashtags allowed in caption - Stories do not support captions - Collaborators: Posts/Reels only (NOT Stories) - Reels require exactly 1 video  **Reference:** [Platform Limitations Guide](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations) |
| `pinterest_post_details` | object | No | Pinterest-specific post configuration. Required when posting to Pinterest accounts.  **Required Fields:** - `boardIds`: Object mapping account OAuth IDs to Pinterest board IDs  **Optional Fields:** - `title`: Pin title (max 100 characters) - `link`: Destination URL for the pin (max 2048 characters)  **Get Board IDs:** Use the Pinterest boards API or retrieve from connected account details.  **Limits:** - Max 1 image/video per pin - Caption max 800 characters  **Reference:** [Platform Limitations Guide](https://help.leadconnectorhq.com/support/solutions/articles/48001240003-social-planner-image-video-content-and-api-limitations) |
| `confirm_external_publish` | boolean | No | Must be true unless status is explicitly draft, because editing can republish content on external social networks. This value is not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get all categories with their queue status

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_FETCH_AVAILABLE_CATEGORIES`

Returns categories with status: "available" (no queue), "in_queue" (active/paused queue), or "draft" (queue in draft). Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `q` | string | No | Search query |
| `skip` | integer | No | Number of items to skip |
| `limit` | integer | No | Maximum number of items to return |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get scheduled posts calendar view

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_FETCH_CALENDAR_LIST`

Returns scheduled posts from active queues within a date range. Supports filtering by categories and accounts. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end_date` | string | Yes | End Date in ISO format |
| `start_date` | string | Yes | Start Date in ISO format |
| `account_ids` | array | No | Filter by Account IDs. If not provided or empty, returns all posts. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `category_ids` | array | No | Category Id |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch calendar view for an edit session

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_FETCH_EDIT_SESSION_CALENDAR`

Retrieves a calendar preview of scheduled posts based on draft items within an edit session. This shows how posts would be scheduled if changes were saved. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end_date` | string | Yes | End Date in ISO format |
| `queue_id` | string | Yes | Provider path parameter `queueId`. |
| `session_id` | string | Yes | Edit session ID |
| `start_date` | string | Yes | Start Date in ISO format |
| `account_ids` | array | No | Filter by Account IDs. If not provided or empty, returns all posts. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch a category queue by ID

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_FETCH_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. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `queue_id` | string | Yes | Provider path parameter `queueId`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch items from a queue

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_FETCH_QUEUE_ITEMS`

Returns paginated queue items. Pass sessionId to get draft items from an edit session instead of live items. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | number | No | Number of items to skip |
| `limit` | number | No | Maximum number of items to return |
| `cursor` | string | No | Continuation cursor returned by the previous call. Omit for the first page. |
| `item_id` | string | No | Item ID to center the response around. When provided, the response will position this item in the center with items above and below based on limit. The skip parameter is ignored when itemId is provided. |
| `queue_id` | string | Yes | Provider path parameter `queueId`. |
| `session_id` | string | No | Edit session ID |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `error_filter` | boolean | No | To return only queue items with errors |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch category queues for a location

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_FETCH_QUEUES`

Retrieves a paginated list of all category queues for a given location, excluding any that have been marked as deleted. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | number | No | Number of items to skip |
| `limit` | number | No | Maximum number of items to return |
| `cursor` | string | No | Continuation cursor returned by the previous call. Omit for the first page. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch slot information for queue items

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_FETCH_SLOTS`

Returns paginated slot information (scheduledDateTime, isSkipped) for queue items. Pass sessionId to get slots for draft items, or omit for live items. Call this after mutations to refresh slot data. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | number | No | Number of items to skip |
| `limit` | number | No | Number of items to return |
| `cursor` | string | No | Continuation cursor returned by the previous call. Omit for the first page. |
| `queue_id` | string | Yes | Provider path parameter `queueId`. |
| `session_id` | string | No | Session ID for edit mode. If not provided, calculates slots for live items. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Accounts

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_GET_ACCOUNT`

Get list of accounts and groups Location PITs must be provisioned with the HighLevel permission: `socialplanner/account.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get categories by id

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_GET_CATEGORIES_ID`

Retrieve a specific category by its ID Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Category Id |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get categories by location id

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_GET_CATEGORIES_LOCATION_ID`

Retrieve all categories for a specific location with optional search and pagination Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of categories to skip |
| `limit` | integer | No | Maximum categories to return |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `search_text` | string | No | Search text string |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List comments for a post or thread

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_GET_COMMENT_LIST`

Paginated list of comments scoped to a post (`parentId` = postId) or a comment thread (`parentId` = commentId). Use `skip`/`limit` for pagination, `sortBy` for ordering, `originIds` to filter by connected account, and `search` for keyword search. Location PITs must be provisioned with the HighLevel permission: `socialplanner/comments.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | number | No | Pagination offset — number of comments to skip (zero-based). Must be ≥ 0. |
| `limit` | number | No | Pagination page size — number of comments to return. Must be between 1 and 100. |
| `search` | string | No | Search |
| `sort_by` | string ("top" | "latest") | No | Sort by top comments or latest comments |
| `to_date` | string | No | End of the published-date window (ISO 8601). If provided, `fromDate` is also required. |
| `platform` | string ("facebook" | "instagram" | "linkedin" | "community" | "tiktok" | "bluesky" | "youtube" | "threads") | Yes | Platform whose comments to list |
| `from_date` | string | No | Start of the published-date window (ISO 8601). If provided, `toDate` is also required, and `fromDate` must be ≤ `toDate`. Omit both to disable date filtering. |
| `parent_id` | string | No | Parent ID — pass the Highlevel post ID (for replies under a specific post) or the Highlevel comment ID (for replies under a specific comment). Omit to list all top-level comments for the location filtered by `originIds`. Must be a valid 24-character Highlevel ID, not the native platform ID. |
| `origin_ids` | array | Yes | Origin IDs of connected accounts to filter by |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get CSV Post

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_GET_CSV_POST`

Get details of a specific CSV import including its posts Location PITs must be provisioned with the HighLevel permission: `socialplanner/csv.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | CSV Id |
| `skip` | integer | No | Number of records to skip |
| `limit` | integer | No | Maximum number of records to return |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Available Accounts (Step 2 of 3)

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_GET_OAUTH_ACCOUNTS`

Step 2 of the Social Planner OAuth flow: after Start OAuth returns an account ID, list the Facebook pages, Instagram professional accounts, Google Business Profile locations, LinkedIn organizations, TikTok accounts, YouTube channels, Pinterest accounts, Threads profiles, or Bluesky profiles available to attach. Pass the selected result to the attach-account action. Location PITs must be provisioned with the HighLevel permission: `socialplanner/oauth.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `search` | string | No | Search term to filter accounts/pages by name. Useful when the user has many pages to choose from. |
| `platform` | string ("google" | "facebook" | "instagram" | "linkedin" | "tiktok" | "tiktok-business" | "youtube" | "pinterest" | "threads" | "bluesky") | Yes | Social media platform |
| `account_id` | string | Yes | The OAuth Account ID received from Step 1 (Start OAuth) via the window message event |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get post

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_GET_POST`

Get post Location PITs must be provisioned with the HighLevel permission: `socialplanner/post.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Post Id |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get posts

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_GET_POSTS`

Get Social Planner posts. Use a narrow `from_date`/`to_date` window to recover an immediately published post when `SOCIAL_PLANNER_CREATE_POST` succeeds without returning a post ID. Location PITs must be provisioned with the HighLevel permission: `socialplanner/post.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of records to skip for pagination |
| `type` | string ("recent" | "all" | "scheduled" | "draft" | "failed" | "in_review" | "published" | "in_progress" | "pending" | "deleted") | No | type must be one of the following values: recent, all, scheduled, draft, failed, in_review, published, in_progress, pending and deleted |
| `limit` | integer | No | Maximum number of records to return |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `to_date` | string | Yes | To Date |
| `accounts` | string | No | List of account Ids separated by comma as a string |
| `from_date` | string | Yes | From Date |
| `post_type` | string ("post" | "story" | "reel") | No | Post Type must be one of the following values: - post, story, reel |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `include_users` | boolean | No | Whether to include user data. Accepts a boolean and sends HighLevel the required lowercase boolean string. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Social Media Statistics

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_GET_STATISTICS`

Retrieve analytics data for multiple social media accounts. Supports custom date ranges for both the current period and a comparison period. If no date ranges are provided, defaults to the last 7 days (excluding today) with comparison to the previous 7 days. Location PITs must be provisioned with the HighLevel permission: `socialplanner/statistics.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `platforms` | array | No | Array of social media platforms to filter analytics by. If not provided, all platforms will be included. NOTE: Linkedin (PAGE only) and Tiktok (BUSINESS only) are supported. |
| `prev_range` | object | No | Comparison date range. Can only be provided when currentRange is also present. If omitted while currentRange is present, no comparison data is returned. |
| `profile_ids` | array | Yes | Array of connected social media account IDs to fetch analytics for. This can be found as 'profileId' in /accounts api. |
| `current_range` | object | No | Custom date range for the current analytics period. If omitted, defaults to the last 7 days (excluding today) with automatic comparison to the previous 7 days. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get tags by ids

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_GET_TAGS_BY_IDS`

Retrieve specific tags by their IDs Location PITs must be provisioned with the HighLevel permission: `socialplanner/tag.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tag_ids` | array | Yes | Array of Tag Ids |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get tags by location id

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_GET_TAGS_LOCATION_ID`

Retrieve all tags for a specific location with optional search and pagination Location PITs must be provisioned with the HighLevel permission: `socialplanner/tag.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of tags to skip |
| `limit` | integer | No | Maximum tags to return |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `search_text` | string | No | Search text string |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Upload Status

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_GET_UPLOAD_STATUS`

Get the status of all CSV imports for a location Location PITs must be provisioned with the HighLevel permission: `socialplanner/csv.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of records to skip |
| `limit` | integer | No | Maximum number of records to return |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `user_id` | string | Yes | User ID |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `include_users` | boolean | No | Include user data in response |
| `is_from_template` | boolean | No | Filter CSVs imported from template library |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reset an item in a queue

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_RESET_QUEUE_ITEM`

Reset a staged queue item to its original state. For a live item with no original staged version, HighLevel deletes the item instead of restoring it. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `item_id` | string | Yes | Provider field `itemId`. |
| `queue_id` | string | Yes | Provider field `queueId`. |
| `session_id` | string | No | Edit session ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Save edit session changes

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_SAVE_EDIT_SESSION`

Applies all staged changes to the live queue and closes the edit session. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `queue_id` | string | Yes | Provider field `queueId`. |
| `session_id` | string | Yes | Edit session ID |
| `keep_in_draft` | boolean | No | If true, keeps the queue in DRAFT state after saving instead of automatically activating it. Only applicable when the queue is currently in DRAFT status. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set Accounts

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_SET_ACCOUNTS`

Set social media accounts for a CSV import to publish posts to Location PITs must be provisioned with the HighLevel permission: `socialplanner/csv.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | User ID |
| `approver` | string | No | Approver User Id |
| `file_name` | string | Yes | Name of file |
| `file_path` | string | Yes | File path |
| `rows_count` | number | Yes | Entries Count. rowsCount must be between 1 and number of posts in CSV |
| `account_ids` | array | Yes | Account Ids |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `csv_file_type` | string ("basic" | "advance") | No | CSV file type - determines the format of the CSV file being imported |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Start CSV Finalize

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_START_CSV_FINALIZE`

Finalize a CSV import and schedule all posts for publishing Location PITs must be provisioned with the HighLevel permission: `socialplanner/csv.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | CSV Id |
| `user_id` | string | Yes | User ID |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |
| `confirm_external_publish` | boolean | Yes | Must be true because finalizing the CSV may schedule or publish imported posts to external social networks. This value is not sent to HighLevel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Start or resume an edit session

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_START_EDIT_SESSION`

Creates a draft copy of queue items for editing. Starting another session for the same queue silently expires the previous session, so reuse the returned session ID until changes are saved or discarded. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `queue_id` | string | Yes | Provider field `queueId`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update queue settings or status

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_UPDATE_QUEUE`

Updates queue status (active/paused/deleted), time slots, or skip dates. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string ("active" | "paused" | "deleted") | No | Status of the Queue |
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `queue_id` | string | Yes | Provider field `queueId`. |
| `time_slots` | array | No | Publishing slots for the queue; each object specifies `dayOfWeek` and a `time` in HH:MM format. |
| `skip_date_time` | string | No | Skip Date Time in ISO format |
| `enable_future_posts` | boolean | No | Enable posting future content. Automatically Queue any New Posts Created in this Category. |
| `skip_legacy_watermark` | boolean | No | Skip legacy watermark cleanup when rescheduling posts |
| `prioritize_new_content` | boolean | No | Prioritize new content over older content. When true, new items added via directToQueue will be placed at the top of the queue. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update an item in a queue

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_UPDATE_QUEUE_ITEM`

Updates the content or variations of a specific item within a category queue. Location PITs must be provisioned with the HighLevel permission: `socialplanner/category.write`. Explicit confirmation is required before this mutation is sent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm` | boolean | Yes | Must be true to confirm this mutation and its external effects. Not sent to HighLevel. |
| `item_id` | string | Yes | Provider field `itemId`. |
| `queue_id` | string | Yes | Provider field `queueId`. |
| `new_order` | string | No | New order value or position keyword (cyclic-aware). Accepts: - A number: explicit order value calculated by FE as midpoint between adjacent items - "top": place at cyclic top (first to be scheduled next) - "bottom": place at cyclic bottom (last to be scheduled)  For positions between items, FE calculates: Math.floor((prevItem.order + nextItem.order) / 2) |
| `session_id` | string | No | Edit session ID |
| `variations` | array | No | Platform-specific variations. Facebook posts without media need a variation with non-empty `content`. |
| `primary_image` | string | No | Primary media URL (image) |
| `modified_post_payload` | object | No | Replacement post details. `accountIds` and `userId` are required; `media` defaults to an empty array. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload CSV

**Slug:** `HIGHLEVEL_LOCATION_SOCIAL_PLANNER_UPLOAD_CSV`

Upload a CSV file containing social media posts for bulk scheduling Location PITs must be provisioned with the HighLevel permission: `socialplanner/csv.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | Yes | CSV file containing social media posts to upload for validation and staging. |
| `location_id` | string | No | Location ID supplied by the connected account; caller values are overwritten. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Shipping Carrier

**Slug:** `HIGHLEVEL_LOCATION_STORE_CREATE_SHIPPING_CARRIER`

Create a shipping carrier after explicit confirmation. Location PITs require `store/shipping.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Shipping carrier name. |
| `services` | array | No | Available carrier services. |
| `callback_url` | string | Yes | Public rate callback URL. |
| `confirm_change` | boolean | Yes | Must be true to confirm this shipping configuration change. |
| `allows_multiple_service_selection` | boolean | No | Whether sellers may select multiple services. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Shipping Rate

**Slug:** `HIGHLEVEL_LOCATION_STORE_CREATE_SHIPPING_RATE`

Create a shipping rate after explicit confirmation. For carrier rates, HighLevel overwrites the supplied rate name with the selected carrier's name. Location PITs require `store/shipping.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Shipping rate name. |
| `amount` | number | Yes | Rate amount or carrier handling fee. |
| `currency` | string | Yes | Rate currency. |
| `description` | string | No | Delivery description. |
| `max_condition` | number | Yes | Maximum condition value; use 0 for none. |
| `min_condition` | number | Yes | Minimum condition value; use 0 for none. |
| `condition_type` | string ("none" | "price" | "weight") | Yes | Pricing condition type. |
| `confirm_change` | boolean | Yes | Must be true to confirm this shipping configuration change. |
| `is_carrier_rate` | boolean | No | Whether the rate is carrier-calculated. |
| `shipping_zone_id` | string | Yes | Shipping zone ID. |
| `shipping_carrier_id` | string | No | Shipping carrier ID. Required when is_carrier_rate is true; omit for a flat rate. |
| `percentage_of_rate_fee` | number | No | Percentage carrier-rate fee. |
| `shipping_carrier_services` | array | No | Enabled carrier services. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Shipping Zone

**Slug:** `HIGHLEVEL_LOCATION_STORE_CREATE_SHIPPING_ZONE`

Create a shipping zone after explicit confirmation. Location PITs require `store/shipping.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Shipping zone name. |
| `countries` | array | Yes | Countries and states in the zone. |
| `confirm_change` | boolean | Yes | Must be true to confirm this shipping configuration change. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Shipping Carrier

**Slug:** `HIGHLEVEL_LOCATION_STORE_DELETE_SHIPPING_CARRIER`

Delete a shipping carrier after explicit confirmation. Location PITs require `store/shipping.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm_change` | boolean | Yes | Must be true to confirm deleting this shipping carrier. |
| `shipping_carrier_id` | string | Yes | Shipping carrier ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Shipping Rate

**Slug:** `HIGHLEVEL_LOCATION_STORE_DELETE_SHIPPING_RATE`

Delete a shipping rate after explicit confirmation. Location PITs require `store/shipping.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm_change` | boolean | Yes | Must be true to confirm deleting this shipping rate. |
| `shipping_rate_id` | string | Yes | Shipping rate ID. |
| `shipping_zone_id` | string | Yes | Shipping zone ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Shipping Zone

**Slug:** `HIGHLEVEL_LOCATION_STORE_DELETE_SHIPPING_ZONE`

Delete a shipping zone after explicit confirmation. Location PITs require `store/shipping.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `confirm_change` | boolean | Yes | Must be true to confirm deleting this shipping zone. |
| `shipping_zone_id` | string | Yes | Shipping zone ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Available Shipping Rates

**Slug:** `HIGHLEVEL_LOCATION_STORE_GET_AVAILABLE_SHIPPING_RATES`

Calculate available shipping-rate quotes without changing provider state. HighLevel rejects amount_available=true, so omit it. A whole-country zone shadows state-specific zones, including when the whole-country zone has no rates. No endpoint-specific provider permission was evidenced beyond a valid Location token.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | object | Yes | Source of the order quote. |
| `address` | object | No | Customer shipping address. |
| `country` | string | Yes | Customer country code. |
| `products` | array | Yes | Products or prices and quantities in the quote. |
| `coupon_code` | string | No | Coupon code. |
| `amount_available` | boolean | No | Whether total_order_amount was already calculated. |
| `weight_available` | boolean | No | Whether total order weight was already calculated and should not be recalculated. |
| `total_order_amount` | number | No | Order amount used for rate matching. Required when amount_available is true. |
| `total_order_weight` | number | No | Estimated total order weight in kilograms. Required when weight_available is true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Shipping Carrier

**Slug:** `HIGHLEVEL_LOCATION_STORE_GET_SHIPPING_CARRIER`

Get a shipping carrier by ID. Location PITs require `store/shipping.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `shipping_carrier_id` | string | Yes | Shipping carrier ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Shipping Rate

**Slug:** `HIGHLEVEL_LOCATION_STORE_GET_SHIPPING_RATE`

Get a shipping rate by ID. Location PITs require `store/shipping.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `shipping_rate_id` | string | Yes | Shipping rate ID. |
| `shipping_zone_id` | string | Yes | Shipping zone ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Shipping Zone

**Slug:** `HIGHLEVEL_LOCATION_STORE_GET_SHIPPING_ZONE`

Get a shipping zone by ID. Location PITs require `store/shipping.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `shipping_zone_id` | string | Yes | Shipping zone ID. |
| `with_shipping_rate` | boolean | No | Whether to include zone rates. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Store Settings

**Slug:** `HIGHLEVEL_LOCATION_STORE_GET_STORE_SETTINGS`

Get store settings for the connected location. Location PITs require `store/setting.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Shipping Carriers

**Slug:** `HIGHLEVEL_LOCATION_STORE_LIST_SHIPPING_CARRIERS`

List shipping carriers. Location PITs require `store/shipping.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Shipping Rates

**Slug:** `HIGHLEVEL_LOCATION_STORE_LIST_SHIPPING_RATES`

Return one page of shipping rates. Location PITs require `store/shipping.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum rates to return. |
| `cursor` | integer | No | Offset returned by a previous call. |
| `offset` | integer | No | Starting result offset. |
| `shipping_zone_id` | string | Yes | Shipping zone ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Shipping Zones

**Slug:** `HIGHLEVEL_LOCATION_STORE_LIST_SHIPPING_ZONES`

Return one page of shipping zones. Location PITs require `store/shipping.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum zones to return. |
| `cursor` | integer | No | Offset returned by a previous call. |
| `offset` | integer | No | Starting result offset. |
| `with_shipping_rate` | boolean | No | Whether to include each zone's rates. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Shipping Carrier

**Slug:** `HIGHLEVEL_LOCATION_STORE_UPDATE_SHIPPING_CARRIER`

Update a shipping carrier after explicit confirmation. Location PITs require `store/shipping.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Shipping carrier name. |
| `services` | array | No | Available carrier services. |
| `callback_url` | string | No | Public rate callback URL. |
| `confirm_change` | boolean | Yes | Must be true to confirm this shipping configuration change. |
| `shipping_carrier_id` | string | Yes | Shipping carrier ID. |
| `allows_multiple_service_selection` | boolean | No | Whether sellers may select multiple services. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Shipping Rate

**Slug:** `HIGHLEVEL_LOCATION_STORE_UPDATE_SHIPPING_RATE`

Update a shipping rate after explicit confirmation. HighLevel resets is_carrier_rate to false when it is omitted, so resend is_carrier_rate and shipping_carrier_id when updating a carrier rate. For carrier rates, HighLevel overwrites the supplied rate name with the selected carrier's name. Location PITs require `store/shipping.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Shipping rate name. |
| `amount` | number | No | Rate amount or carrier handling fee. |
| `currency` | string | No | Rate currency. |
| `description` | string | No | Delivery description. |
| `max_condition` | number | No | Maximum condition value; use 0 for none. |
| `min_condition` | number | No | Minimum condition value; use 0 for none. |
| `condition_type` | string ("none" | "price" | "weight") | No | Pricing condition type. |
| `confirm_change` | boolean | Yes | Must be true to confirm this shipping configuration change. |
| `is_carrier_rate` | boolean | No | Whether the rate is carrier-calculated. |
| `shipping_rate_id` | string | Yes | Shipping rate ID. |
| `shipping_zone_id` | string | Yes | Shipping zone ID. |
| `shipping_carrier_id` | string | No | Shipping carrier ID. |
| `percentage_of_rate_fee` | number | No | Percentage carrier-rate fee. |
| `shipping_carrier_services` | array | No | Enabled carrier services. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Shipping Zone

**Slug:** `HIGHLEVEL_LOCATION_STORE_UPDATE_SHIPPING_ZONE`

Update a shipping zone after explicit confirmation. Location PITs require `store/shipping.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Shipping zone name. |
| `countries` | array | No | Countries and states in the zone. |
| `confirm_change` | boolean | Yes | Must be true to confirm this shipping configuration change. |
| `shipping_zone_id` | string | Yes | Shipping zone ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Surveys

**Slug:** `HIGHLEVEL_LOCATION_SURVEYS_GET_SURVEYS`

Return one offset-based page of surveys for the connected HighLevel location. Pass `next_cursor` back as `skip` to retrieve the next page. Location PITs must be provisioned with the HighLevel permission: `surveys.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of matching surveys to skip. |
| `limit` | integer | No | Maximum surveys to return (1-50). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Surveys Submissions

**Slug:** `HIGHLEVEL_LOCATION_SURVEYS_GET_SURVEYS_SUBMISSIONS`

Return one page of survey submissions for the connected HighLevel location. Pass `next_cursor` back as `page` to retrieve the next page. Location PITs must be provisioned with the HighLevel permission: `surveys.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `q` | string | No | Match a contact ID, name, email address, or phone number. |
| `page` | integer | No | One-based submission page number. |
| `limit` | integer | No | Maximum submissions to return (1-100). |
| `end_at` | string | No | Inclusive end date in YYYY-MM-DD format. |
| `start_at` | string | No | Inclusive start date in YYYY-MM-DD format. |
| `survey_id` | string | No | Return submissions for this survey only. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete User

**Slug:** `HIGHLEVEL_LOCATION_USERS_DELETE_USER`

Queue deletion of an existing HighLevel user. Location PITs must be provisioned with the HighLevel permission: `users.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | Unique ID of the user to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User

**Slug:** `HIGHLEVEL_LOCATION_USERS_GET_USER`

Retrieve one HighLevel user by ID. Location PITs must be provisioned with the HighLevel permission: `users.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | Yes | Unique ID of the user to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Users

**Slug:** `HIGHLEVEL_LOCATION_USERS_SEARCH_USERS`

Search users belonging to the connected HighLevel Location. Location PITs must be provisioned with the HighLevel permissions: `locations.readonly`, `users.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | string | No | Comma-separated user IDs to include. |
| `role` | string ("admin" | "user") | No | User role to include. |
| `skip` | integer | No | Number of matching users to skip. |
| `sort` | string | No | Sort by the provider-supported `dateAdded` field. |
| `type` | string ("account" | "agency") | No | User account type to include. |
| `limit` | integer | No | Maximum number of users to return on this page. |
| `query` | string | No | Full name, email address, or phone number to match. |
| `cursor` | string | No | Continuation offset returned by the previous page. |
| `sort_direction` | string ("asc" | "desc") | No | Sort direction, such as asc or desc. |
| `enabled2way_sync` | boolean | No | Filter by whether two-way sync is enabled. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update User

**Slug:** `HIGHLEVEL_LOCATION_USERS_UPDATE_USER`

Update non-password fields of an existing HighLevel user. Location PITs must be provisioned with the HighLevel permission: `users.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string ("admin" | "user") | No | User role. |
| `type` | string ("account" | "agency") | No | User account type. |
| `email` | string | No | Email address. HighLevel currently does not support changing it. |
| `phone` | string | No | Phone number in E.164 format. |
| `scopes` | array | No | Scopes to enable for the user; an empty list disables all. |
| `user_id` | string | Yes | Unique ID of the user to update. |
| `last_name` | string | No | Last name of the user. |
| `company_id` | string | No | Company ID associated with the user. |
| `first_name` | string | No | First name of the user. |
| `permissions` | object | No | Feature permissions to assign to the user. |
| `location_ids` | array | No | Location IDs the user may access. |
| `twilio_phone` | object | No | Complete per-Location inbound Twilio number map; replaces the stored map. |
| `profile_photo` | string | No | URL of the user profile photo. |
| `platform_language` | string ("en_US" | "es" | "fr_CA" | "fr_FR" | "nl" | "de" | "pt_PT" | "pt_BR" | "it" | "sv" | "da" | "fi" | "no") | No | User platform language preference. |
| `scopes_assigned_to_only` | array | No | Assigned-data-only scopes to enable; an empty list disables all. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Voice AI Agent Action

**Slug:** `HIGHLEVEL_LOCATION_VOICE_AI_CREATE_ACTION`

Create a behavior or capability for an existing Voice AI agent in the connected HighLevel Location. This mutates the agent and may require Voice AI entitlement. Location PITs must be provisioned with the HighLevel permission: `voice-ai-agent-goals.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Human-readable action name. |
| `agent_id` | string | Yes | Identifier of the agent that will own the action. |
| `action_type` | string ("CALL_TRANSFER" | "DATA_EXTRACTION" | "IN_CALL_DATA_EXTRACTION" | "WORKFLOW_TRIGGER" | "SMS" | "APPOINTMENT_BOOKING" | "CUSTOM_ACTION" | "KNOWLEDGE_BASE") | Yes | Voice AI action type. |
| `action_parameters` | object | Yes | Keys by action_type. CALL_TRANSFER: triggerPrompt, transferToType 'number', transferToValue (+ country code, 11-16 chars), triggerMessage; hearWhisperMessage is an optional boolean. DATA_EXTRACTION/IN_CALL_DATA_EXTRACTION: contactFieldId, description, examples; overwriteExistingValue optional. WORKFLOW_TRIGGER: triggerPrompt, triggerMessage, workflowId for a published workflow. SMS: triggerPrompt, triggerMessage, messageBody. APPOINTMENT_BOOKING: calendarId, daysOfOfferingDates, slotsPerDay, hoursBetweenSlots. KNOWLEDGE_BASE: triggerPrompt, knowledgeBaseId. CUSTOM_ACTION: triggerPrompt, triggerMessage, apiDetails {url, method POST&#124;GET, authenticationRequired/authenticationValue if needed, headers [{key,value}], parameters [{name, optional description, type, example}]}, selectedPaths (one or more for GET; [] for POST). For CUSTOM_ACTION, include selectedPaths for GET and omit non-empty headers and parameters: HighLevel may persist then report 'Maximum call stack size exceeded'. After that error, call VOICE_AI_GET_AGENT with agent_id to verify persistence. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Voice AI Agent

**Slug:** `HIGHLEVEL_LOCATION_VOICE_AI_CREATE_AGENT`

Create a Voice AI agent in the connected HighLevel Location. This changes the Location and may require Voice AI subscription entitlement or activation. Location PITs must be provisioned with the HighLevel permission: `voice-ai-agents.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `language` | string ("en-US" | "pt-BR" | "es" | "fr" | "de" | "it" | "nl-NL" | "multi") | No | Language used for speech and understanding. |
| `timezone` | string | No | IANA timezone for scheduling, such as America/New_York. |
| `voice_id` | string | No | Speech synthesis voice identifier. |
| `agent_name` | string | Yes | Agent display name (1-40 characters). |
| `translation` | object | No | Translation settings. |
| `agent_prompt` | string | No | Instructions governing agent behavior. |
| `business_name` | string | No | Business represented by the agent. |
| `inbound_number` | string | No | Inbound phone number for the agent. |
| `number_pool_id` | string | No | Number pool identifier. |
| `patience_level` | string ("low" | "medium" | "high") | No | Tolerance for caller response delays. |
| `welcome_message` | string | No | Greeting spoken when calls are answered. |
| `max_call_duration` | number | No | Maximum call duration in seconds (180-900). |
| `agent_working_hours` | array | No | Weekly intervals when the agent accepts calls. |
| `call_end_workflow_ids` | array | No | Up to 10 workflows to trigger after calls. |
| `send_user_idle_reminders` | boolean | No | Enable caller-idle reminders. |
| `is_agent_as_backup_disabled` | boolean | No | Disable use of this agent as a fallback. |
| `send_post_call_notification_to` | object | No | Post-call notification recipients. |
| `reminder_after_idle_time_seconds` | number | No | Seconds of silence before a reminder (1-20). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Voice AI Agent Action

**Slug:** `HIGHLEVEL_LOCATION_VOICE_AI_DELETE_ACTION`

Permanently remove an action and its configuration from a Voice AI agent in the connected HighLevel Location. This operation cannot be undone. Location PITs must be provisioned with the HighLevel permission: `voice-ai-agent-goals.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `agent_id` | string | Yes | Identifier of the agent that owns the action. |
| `action_id` | string | Yes | Unique identifier of the action to permanently delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Voice AI Agent

**Slug:** `HIGHLEVEL_LOCATION_VOICE_AI_DELETE_AGENT`

Permanently delete a Voice AI agent and its configuration from the connected HighLevel Location. This operation is destructive and cannot be undone. Location PITs must be provisioned with the HighLevel permission: `voice-ai-agents.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `agent_id` | string | Yes | Unique identifier of the agent to permanently delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Voice AI Agent Action

**Slug:** `HIGHLEVEL_LOCATION_VOICE_AI_GET_ACTION`

Retrieve one action configured for a Voice AI agent in the connected HighLevel Location. Voice AI availability may require product entitlement. Location PITs must be provisioned with the HighLevel permission: `voice-ai-agent-goals.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `action_id` | string | Yes | Unique Voice AI action identifier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Voice AI Agent

**Slug:** `HIGHLEVEL_LOCATION_VOICE_AI_GET_AGENT`

Retrieve one Voice AI agent owned by the connected HighLevel Location. Voice AI availability may depend on the Location's subscription or activation. Location PITs must be provisioned with the HighLevel permission: `voice-ai-agents.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `agent_id` | string | Yes | Unique voice AI agent identifier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Voice AI Agents

**Slug:** `HIGHLEVEL_LOCATION_VOICE_AI_GET_AGENTS`

List Voice AI agents in the connected HighLevel Location. Returns one page and an opaque continuation cursor; access may require Voice AI entitlement. Location PITs must be provisioned with the HighLevel permission: `voice-ai-agents.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | First page number to fetch. |
| `query` | string | No | Optional agent search query. |
| `cursor` | string | No | Opaque cursor returned by a previous call. |
| `page_size` | integer | No | Agents per page (1-50). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Voice AI Call Log

**Slug:** `HIGHLEVEL_LOCATION_VOICE_AI_GET_CALL_LOG`

Retrieve one Voice AI call log owned by the connected HighLevel Location. Voice AI dashboard access may require product entitlement. Location PITs must be provisioned with the HighLevel permission: `voice-ai-dashboard.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `call_id` | string | Yes | Unique Voice AI call identifier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Voice AI Call Logs

**Slug:** `HIGHLEVEL_LOCATION_VOICE_AI_GET_CALL_LOGS`

List Voice AI call logs in the connected HighLevel Location with documented filters, sorting, and one-page continuation. Access may require entitlement. Location PITs must be provisioned with the HighLevel permission: `voice-ai-dashboard.readonly`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | First page number to fetch. |
| `sort` | string ("ascend" | "descend") | No | Sort direction; used with sort_by. |
| `cursor` | string | No | Opaque continuation cursor returned by the previous call. |
| `sort_by` | string ("duration" | "createdAt") | No | Field used to sort call logs. |
| `agent_id` | string | No | Limit results to one agent. |
| `end_date` | number | No | Range end as a Unix timestamp. |
| `call_type` | string ("LIVE" | "TRIAL") | No | Call type filter. |
| `page_size` | integer | No | Call logs per page (1-50). |
| `contact_id` | string | No | Comma-separated contact IDs. |
| `start_date` | number | No | Range start as a Unix timestamp. |
| `action_type` | string | No | One or more comma-separated Voice AI action types: CALL_TRANSFER, DATA_EXTRACTION, IN_CALL_DATA_EXTRACTION, WORKFLOW_TRIGGER, SMS, APPOINTMENT_BOOKING, CUSTOM_ACTION, or KNOWLEDGE_BASE. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Voice AI Agent

**Slug:** `HIGHLEVEL_LOCATION_VOICE_AI_PATCH_AGENT`

Partially update a Voice AI agent in the connected HighLevel Location. Only provided fields change; this mutation may require Voice AI entitlement. Location PITs must be provisioned with the HighLevel permission: `voice-ai-agents.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `agent_id` | string | Yes | Unique agent identifier. |
| `language` | string ("en-US" | "pt-BR" | "es" | "fr" | "de" | "it" | "nl-NL" | "multi") | No | New language code. |
| `timezone` | string | No | New IANA timezone, such as America/New_York. |
| `voice_id` | string | No | New speech synthesis voice identifier. |
| `agent_name` | string | No | New agent name. |
| `translation` | object | No | Replacement translation settings with enabled and language keys. |
| `agent_prompt` | string | No | New behavior instructions. |
| `business_name` | string | No | New business name. |
| `inbound_number` | string | No | New inbound phone number. |
| `number_pool_id` | string | No | New number pool identifier. |
| `patience_level` | string ("low" | "medium" | "high") | No | New caller-response patience level. |
| `welcome_message` | string | No | New greeting. |
| `max_call_duration` | number | No | New maximum duration in seconds. |
| `agent_working_hours` | array | No | Replacement working hours using provider camelCase keys. |
| `call_end_workflow_ids` | array | No | Replacement post-call workflow IDs. |
| `send_user_idle_reminders` | boolean | No | Enable or disable idle reminders. |
| `is_agent_as_backup_disabled` | boolean | No | Disable or enable backup use. |
| `send_post_call_notification_to` | object | No | Replacement notification configuration using provider camelCase keys. |
| `reminder_after_idle_time_seconds` | number | No | New idle reminder delay. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Voice AI Agent Action

**Slug:** `HIGHLEVEL_LOCATION_VOICE_AI_UPDATE_ACTION`

Replace an existing Voice AI agent action configuration in the connected HighLevel Location. This mutates call behavior and may require entitlement. Location PITs must be provisioned with the HighLevel permission: `voice-ai-agent-goals.write`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Replacement human-readable action name. |
| `agent_id` | string | Yes | Identifier of the agent that owns the action. |
| `action_id` | string | Yes | Unique action identifier. |
| `action_type` | string ("CALL_TRANSFER" | "DATA_EXTRACTION" | "IN_CALL_DATA_EXTRACTION" | "WORKFLOW_TRIGGER" | "SMS" | "APPOINTMENT_BOOKING" | "CUSTOM_ACTION" | "KNOWLEDGE_BASE") | Yes | Replacement Voice AI action type. |
| `action_parameters` | object | Yes | Complete replacement keys by action_type. CALL_TRANSFER: triggerPrompt, transferToType 'number', transferToValue (+ country code, 11-16 chars), triggerMessage; hearWhisperMessage is an optional boolean. DATA_EXTRACTION/IN_CALL_DATA_EXTRACTION: contactFieldId, description, examples; optional overwriteExistingValue. WORKFLOW_TRIGGER: triggerPrompt, triggerMessage, workflowId for a published workflow. SMS: triggerPrompt, triggerMessage, messageBody. APPOINTMENT_BOOKING: calendarId, daysOfOfferingDates, slotsPerDay, hoursBetweenSlots. KNOWLEDGE_BASE: triggerPrompt, knowledgeBaseId. CUSTOM_ACTION: triggerPrompt, triggerMessage, apiDetails {url, method POST&#124;GET, authenticationRequired/authenticationValue if needed, headers [{key,value}], parameters [{name, optional description, type, example}]}, selectedPaths (one or more for GET; [] for POST). For CUSTOM_ACTION, include selectedPaths for GET and omit non-empty headers and parameters: HighLevel may persist then report 'Maximum call stack size exceeded'. After that error, call VOICE_AI_GET_AGENT with agent_id to verify persistence. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Workflow

**Slug:** `HIGHLEVEL_LOCATION_WORKFLOWS_GET_WORKFLOW`

Return the workflows available to the connected HighLevel location. Location PITs must be provisioned with the HighLevel permission: `workflows.readonly`.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
