{
  "service": "high_level",
  "displayName": "HighLevel",
  "categories": [
    "Marketing",
    "Communication"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Private Integration Token",
      "placeholder": "high_level_private_integration_token",
      "description": "HighLevel Private Integration token sent as a bearer token. Create it from HighLevel agency settings under Private Integrations: https://marketplace.gohighlevel.com/docs/Authorization/PrivateIntegrationsToken",
      "extraFields": [
        {
          "key": "locationId",
          "label": "Location ID",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "high_level_location_id",
          "description": "The HighLevel sub-account or location ID used as the default location for contact actions."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.gohighlevel.com",
  "actions": [
    {
      "id": "high_level.create_contact",
      "service": "high_level",
      "name": "create_contact",
      "description": "Create a HighLevel contact in a location.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "object",
            "properties": {
              "locationId": {
                "type": "string",
                "minLength": 1,
                "description": "The HighLevel sub-account or location identifier."
              },
              "firstName": {
                "type": "string",
                "description": "The contact first name."
              },
              "lastName": {
                "type": "string",
                "description": "The contact last name."
              },
              "name": {
                "type": "string",
                "description": "The contact full name."
              },
              "email": {
                "type": "string",
                "description": "The contact email address."
              },
              "phone": {
                "type": "string",
                "description": "The contact phone number."
              },
              "address1": {
                "type": "string",
                "description": "The first address line."
              },
              "city": {
                "type": "string",
                "description": "The city name."
              },
              "state": {
                "type": "string",
                "description": "The state, region, or province."
              },
              "postalCode": {
                "type": "string",
                "description": "The postal or ZIP code."
              },
              "website": {
                "type": "string",
                "description": "The contact website URL."
              },
              "timezone": {
                "type": "string",
                "description": "The contact timezone."
              },
              "source": {
                "type": "string",
                "description": "The source label for the contact."
              },
              "country": {
                "type": "string",
                "description": "The contact country."
              },
              "companyName": {
                "type": "string",
                "description": "The company name associated with the contact."
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One HighLevel contact tag."
                },
                "description": "Tags to attach to the contact."
              },
              "customFields": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The custom field identifier."
                    },
                    "value": {
                      "description": "The custom field value."
                    }
                  },
                  "additionalProperties": true,
                  "description": "One HighLevel custom field value."
                },
                "description": "HighLevel custom field values."
              }
            },
            "additionalProperties": true,
            "description": "HighLevel contact fields to create or update. Additional HighLevel custom fields are allowed."
          }
        },
        "additionalProperties": false,
        "required": [
          "fields"
        ],
        "description": "Input for creating a HighLevel contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The HighLevel contact identifier."
              },
              "locationId": {
                "type": "string",
                "description": "The HighLevel location identifier."
              },
              "firstName": {
                "type": "string",
                "description": "The contact first name."
              },
              "lastName": {
                "type": "string",
                "description": "The contact last name."
              },
              "name": {
                "type": "string",
                "description": "The contact full name."
              },
              "email": {
                "type": "string",
                "description": "The contact email address."
              },
              "phone": {
                "type": "string",
                "description": "The contact phone number."
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One HighLevel contact tag."
                },
                "description": "Tags attached to the contact."
              }
            },
            "additionalProperties": true,
            "description": "A HighLevel contact record."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw HighLevel response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact",
          "raw"
        ],
        "description": "The HighLevel contact response."
      }
    },
    {
      "id": "high_level.delete_contact",
      "service": "high_level",
      "name": "delete_contact",
      "description": "Delete a HighLevel contact by contact ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactId": {
            "type": "string",
            "minLength": 1,
            "description": "The HighLevel contact identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "contactId"
        ],
        "description": "Input for deleting a HighLevel contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether HighLevel accepted the contact deletion request."
          },
          "message": {
            "type": "string",
            "description": "The HighLevel deletion message."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw HighLevel response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "success",
          "message",
          "raw"
        ],
        "description": "The HighLevel contact deletion response."
      }
    },
    {
      "id": "high_level.get_contact",
      "service": "high_level",
      "name": "get_contact",
      "description": "Get a HighLevel contact by contact ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactId": {
            "type": "string",
            "minLength": 1,
            "description": "The HighLevel contact identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "contactId"
        ],
        "description": "Input for retrieving a HighLevel contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The HighLevel contact identifier."
              },
              "locationId": {
                "type": "string",
                "description": "The HighLevel location identifier."
              },
              "firstName": {
                "type": "string",
                "description": "The contact first name."
              },
              "lastName": {
                "type": "string",
                "description": "The contact last name."
              },
              "name": {
                "type": "string",
                "description": "The contact full name."
              },
              "email": {
                "type": "string",
                "description": "The contact email address."
              },
              "phone": {
                "type": "string",
                "description": "The contact phone number."
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One HighLevel contact tag."
                },
                "description": "Tags attached to the contact."
              }
            },
            "additionalProperties": true,
            "description": "A HighLevel contact record."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw HighLevel response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact",
          "raw"
        ],
        "description": "The HighLevel contact response."
      }
    },
    {
      "id": "high_level.search_contacts",
      "service": "high_level",
      "name": "search_contacts",
      "description": "Search HighLevel contacts in a location.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "locationId": {
            "type": "string",
            "minLength": 1,
            "description": "The HighLevel sub-account or location identifier."
          },
          "query": {
            "type": "string",
            "description": "A text query for matching contacts."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to return."
          },
          "pageLimit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of contacts to return."
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One HighLevel contact search filter."
            },
            "description": "Advanced HighLevel contact search filters."
          },
          "sort": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One HighLevel contact search sort option."
            },
            "description": "HighLevel contact search sort options."
          }
        },
        "additionalProperties": false,
        "description": "Input for searching HighLevel contacts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The HighLevel contact identifier."
                },
                "locationId": {
                  "type": "string",
                  "description": "The HighLevel location identifier."
                },
                "firstName": {
                  "type": "string",
                  "description": "The contact first name."
                },
                "lastName": {
                  "type": "string",
                  "description": "The contact last name."
                },
                "name": {
                  "type": "string",
                  "description": "The contact full name."
                },
                "email": {
                  "type": "string",
                  "description": "The contact email address."
                },
                "phone": {
                  "type": "string",
                  "description": "The contact phone number."
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "One HighLevel contact tag."
                  },
                  "description": "Tags attached to the contact."
                }
              },
              "additionalProperties": true,
              "description": "A HighLevel contact record."
            },
            "description": "The matching HighLevel contacts."
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "description": "The total number of matching contacts."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw HighLevel response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "contacts",
          "total",
          "raw"
        ],
        "description": "The HighLevel contact search response."
      }
    },
    {
      "id": "high_level.update_contact",
      "service": "high_level",
      "name": "update_contact",
      "description": "Update a HighLevel contact by contact ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactId": {
            "type": "string",
            "minLength": 1,
            "description": "The HighLevel contact identifier."
          },
          "fields": {
            "type": "object",
            "properties": {
              "locationId": {
                "type": "string",
                "minLength": 1,
                "description": "The HighLevel sub-account or location identifier."
              },
              "firstName": {
                "type": "string",
                "description": "The contact first name."
              },
              "lastName": {
                "type": "string",
                "description": "The contact last name."
              },
              "name": {
                "type": "string",
                "description": "The contact full name."
              },
              "email": {
                "type": "string",
                "description": "The contact email address."
              },
              "phone": {
                "type": "string",
                "description": "The contact phone number."
              },
              "address1": {
                "type": "string",
                "description": "The first address line."
              },
              "city": {
                "type": "string",
                "description": "The city name."
              },
              "state": {
                "type": "string",
                "description": "The state, region, or province."
              },
              "postalCode": {
                "type": "string",
                "description": "The postal or ZIP code."
              },
              "website": {
                "type": "string",
                "description": "The contact website URL."
              },
              "timezone": {
                "type": "string",
                "description": "The contact timezone."
              },
              "source": {
                "type": "string",
                "description": "The source label for the contact."
              },
              "country": {
                "type": "string",
                "description": "The contact country."
              },
              "companyName": {
                "type": "string",
                "description": "The company name associated with the contact."
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One HighLevel contact tag."
                },
                "description": "Tags to attach to the contact."
              },
              "customFields": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The custom field identifier."
                    },
                    "value": {
                      "description": "The custom field value."
                    }
                  },
                  "additionalProperties": true,
                  "description": "One HighLevel custom field value."
                },
                "description": "HighLevel custom field values."
              }
            },
            "additionalProperties": true,
            "description": "HighLevel contact fields to create or update. Additional HighLevel custom fields are allowed."
          }
        },
        "additionalProperties": false,
        "required": [
          "contactId",
          "fields"
        ],
        "description": "Input for updating a HighLevel contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The HighLevel contact identifier."
              },
              "locationId": {
                "type": "string",
                "description": "The HighLevel location identifier."
              },
              "firstName": {
                "type": "string",
                "description": "The contact first name."
              },
              "lastName": {
                "type": "string",
                "description": "The contact last name."
              },
              "name": {
                "type": "string",
                "description": "The contact full name."
              },
              "email": {
                "type": "string",
                "description": "The contact email address."
              },
              "phone": {
                "type": "string",
                "description": "The contact phone number."
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One HighLevel contact tag."
                },
                "description": "Tags attached to the contact."
              }
            },
            "additionalProperties": true,
            "description": "A HighLevel contact record."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw HighLevel response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact",
          "raw"
        ],
        "description": "The HighLevel contact response."
      }
    }
  ]
}
