> This page is for Agent Handler.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.merge.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.merge.dev/_mcp/server.

# GoHighLevel

**Authentication:** Private integration token or OAuth. See [Magic Link](/merge-agent-handler/features/magic-link) for the runtime auth flow, or [Application credentials](/merge-agent-handler/admin-setup/add-oauth-credentials) to bring your own OAuth app.

## Sample use cases

* Create a contact for `jane.doe@example.com` and add the `webinar-lead` tag
* List the opportunities in the `Sales Pipeline` that moved to `Won` this month
* Book an appointment on the `Discovery Call` calendar for Friday at 10am

## Available Tools

#### add_contact_tags

Add one or more tags to a contact. Tags that don't exist yet are created. Use list_contacts to find contact IDs. Retu...

#### check_blog_post_slug

Check whether a blog post URL slug is already in use for a location. Call this before create_blog_post or before chan...

#### create_appointment

Book an appointment on a calendar. calendarId, locationId, contactId, and startTime are required. Use list_calendars...

#### create_blog_post

Create a blog post on a blog site. location_id, blog_id, raw_html, and status are required. Use list_blogs for blog_i...

#### create_contact

Create a contact in a location. location_id is required: use search_locations to find it. Returns the new contact ID...

#### create_contact_note

Create a note on a contact. body is required. Use list_contacts to find contact IDs. Returns the new note ID.

#### create_contact_task

Create a task on a contact. title, dueDate, and completed are all required (pass completed=false for a new open task)...

#### create_email_template

Create an email builder template in a location. location_id and type are required: use search_locations for location\_...

#### create_opportunity

Create an opportunity. pipelineId, locationId, name, status, and contactId are required. Call list_pipelines first to...

#### create_social_post

Create a social media post for connected accounts. location_id and type are required; use search_locations for locati...

#### delete_appointment

Permanently delete an appointment (calendar event) by ID. This cannot be undone. Use list_calendar_events or get_appo...

#### delete_contact

Permanently delete a contact by ID. This cannot be undone. Use list_contacts to find contact IDs.

#### delete_contact_note

Permanently delete a note on a contact. Use list_contact_notes to find note IDs and list_contacts for contact IDs.

#### delete_contact_task

Permanently delete a task on a contact. Use list_contact_tasks to find task IDs and list_contacts for contact IDs.

#### delete_email_template

Delete an email builder template (the inverse of create_email_template). location_id and template_id are required: us...

#### delete_opportunity

Permanently delete an opportunity by ID. This cannot be undone. Use search_opportunities to find opportunity IDs.

#### delete_social_post

Delete a social media post (the inverse of create_social_post). location_id and post_id are required: use search_loca...

#### get_appointment

Fetch one appointment (calendar event) by ID. Use list_calendar_events to find event IDs.

#### get_calendar

Fetch one calendar by ID. Use list_calendars to find calendar IDs.

#### get_contact

Fetch one contact by ID. Use list_contacts to find contact IDs.

#### get_contact_note

Fetch one note on a contact by ID. Use list_contact_notes to find note IDs and list_contacts for contact IDs.

#### get_contact_task

Fetch one task on a contact by ID. Use list_contact_tasks to find task IDs and list_contacts to find contact IDs.

#### get_location

Fetch one HighLevel location (sub-account) by ID. Use search_locations to find location IDs.

#### get_opportunity

Fetch one opportunity by ID. Use search_opportunities to find opportunity IDs.

#### get_order

Fetch one payment order by ID. location_id is required (sent as the API's altId): use search_locations to find it. Fi...

#### get_social_media_statistics

Retrieve social media analytics for connected accounts over a date range, with an optional comparison period. locatio...

#### get_social_post

Fetch one social media post by ID. location_id and post_id are required: use search_locations for location_id and lis...

#### list_appointment_notes

List notes attached to an appointment, with limit/offset paging. Use list_calendar_events or get_appointment to find...

#### list_blog_authors

List blog authors in a location with search and limit/offset paging. location_id is required: use search_locations to...

#### list_blog_categories

List blog categories in a location with search and limit/offset paging. location_id is required: use search_locations...

#### list_blog_posts

List blog posts for a blog site with search and status filters and limit/offset paging. location_id and blog_id are r...

#### list_blogs

List blog sites in a location. location_id is required: use search_locations to find it. Returns blog site IDs for li...

#### list_calendar_events

List calendar events (appointments) in a location. location_id, start_time, and end_time (an epoch-ms window) are all...

#### list_calendars

List calendars in a location. location_id is required: use search_locations to find it. Returns calendar IDs for get\_...

#### list_contact_notes

List all notes on a contact. Use list_contacts to find contact IDs. Returns note IDs for get/update/delete_contact_note.

#### list_contact_tasks

List all tasks on a contact. Use list_contacts to find contact IDs. Returns task IDs for get/update/delete_contact_task.

#### list_contacts

List contacts in a location with free-text search and limit paging. location_id is required: use search_locations to...

#### list_conversation_messages

List messages in a conversation, newest first, with limit paging. Use search_conversations to find conversation IDs...

#### list_custom_fields

List a location's custom field definitions (ID, name, key, data type, picklist options). location_id is required: use...

#### list_email_templates

List email builder templates for a location with search and limit/offset paging. location_id is required: use search\_...

#### list_pipelines

List opportunity pipelines and their stages in a location. location_id is required: use search_locations to find it...

#### list_social_accounts

List connected social media accounts and groups for a location. location_id is required: use search_locations to find...

#### list_social_posts

List social media posts in a location with status, account, post-type, and date-range filters plus limit/skip paging...

#### list_transactions

List payment transactions in a location with filters for contact, subscription, entity, date range, payment mode, and...

#### remove_contact_tags

Remove one or more tags from a contact (the inverse of add_contact_tags). Use list_contacts to find contact IDs. Retu...

#### search_conversations

Search conversations in a location with filters for contact, assignee, status, last-message type/direction, free-text...

#### search_locations

Search HighLevel locations (sub-accounts) with offset paging. Use this to discover location IDs required by list_cont...

#### search_opportunities

Search opportunities in a location with server-side filters. location_id is required: use search_locations to find it...

#### send_conversation_message

Send a new message to a contact on a channel (SMS, Email, WhatsApp, IG, FB, Custom, Live_Chat). type, contact_id, and...

#### update_blog_post

Update an existing blog post. post_id, location_id, blog_id, raw_html, and status are required. Use list_blog_posts f...

#### update_contact

Update a contact's fields. Only the fields you pass are changed. Use list_contacts to find contact IDs.

#### update_contact_note

Update a note on a contact. body is required. Use list_contact_notes to find note IDs and list_contacts for contact IDs.

#### update_contact_task

Update a task on a contact. Only the fields you pass are changed. Use list_contact_tasks to find task IDs and list_co...

#### update_opportunity

Update an opportunity's fields. Only the fields you pass are changed. Use search_opportunities to find opportunity ID...

#### update_social_post

Update a social media post. location_id, post_id, and type are required; use search_locations for location_id, list_s...

#### upsert_contact

Create a contact, or update the existing one that matches by email/phone per the location's 'Allow Duplicate Contact'...