All 222 tools

Every one of these is a single direct call - no search-then-describe-then-execute round trip. Each is hard-bound to one sub-account, so a link for one client can never reach another's data. There are deliberately no delete-contact style tools.

Contacts & conversations 33

ToolWhat it does
ghl_add_contact_tagsAdd tags to a contact.
ghl_add_contact_to_campaignAdd a contact to a campaign.
ghl_add_contact_to_workflowAdd a contact to a workflow (starts the workflow for that contact).
ghl_create_contactCreate a contact. Extra fields (address1, city, state, postalCode, companyName, dnd, customFields: [{id, value}], source, assignedTo...) pass through.
ghl_create_contact_noteAdd a note to a contact.
ghl_create_contact_taskCreate a task on a contact.
ghl_create_conversation_ai_agentCreate a Conversation AI agent (chat/SMS bot). Extra config passes through.
ghl_create_location_tagCreate a new tag in this sub-account.
ghl_create_recurring_taskCreate a recurring task. rruleOptions example: {intervalType: 'weekly', interval: 1, startDate: '2026-07-06', startTime: '09:00:00'}. Extra fields (description, assignedTo, contactIds, ...) pass through.
ghl_delete_conversation_ai_agentDelete a Conversation AI agent.
ghl_delete_location_tagDelete a tag from this sub-account.
ghl_delete_recurring_taskDelete a recurring task.
ghl_find_duplicate_contactCheck whether a contact already exists by email and/or phone number.
ghl_get_contactGet a contact by ID (full record incl. tags, custom fields, attributions).
ghl_get_contact_notesList a contact's notes.
ghl_get_contact_tasksList a contact's tasks.
ghl_get_conversation_ai_agentGet a Conversation AI agent's configuration.
ghl_get_conversation_messagesGet the messages in a conversation.
ghl_list_conversation_ai_agentsSearch/list Conversation AI agents.
ghl_list_location_tagsList all contact tags defined in this sub-account.
ghl_list_message_templatesList SMS/email/WhatsApp message templates saved in this sub-account.
ghl_remove_contact_from_campaignRemove a contact from one campaign, or from all campaigns if campaignId is omitted.
ghl_remove_contact_from_workflowRemove a contact from a workflow.
ghl_remove_contact_tagsRemove tags from a contact.
ghl_search_contactsSearch contacts. query matches name/email/phone; supports advanced `filters` array passthrough (GHL search spec).
ghl_search_conversationsSearch conversations (filter by contact, status, unread, last message direction, date range).
ghl_search_tasksSearch all tasks in this sub-account (across contacts). Filters pass through (e.g. completed, assignedTo, contactId, dueDate).
ghl_send_messageSend an SMS or Email to a contact through the location's configured providers. For Email: subject + html (and optional emailFrom). For SMS: message. The send is logged on the contact's conversation thread.
ghl_update_contactUpdate a contact. Fields pass through (firstName, lastName, email, phone, tags, dnd...).
ghl_update_conversation_ai_agentUpdate a Conversation AI agent. Fields pass through.
ghl_update_location_tagRename a tag.
ghl_update_recurring_taskUpdate a recurring task. Fields pass through.
ghl_upsert_contactCreate-or-update a contact matched by email/phone (GHL dedupes automatically). Preferred for report-recipient contacts. Same passthrough fields as ghl_create_contact.

Pipelines & deals 9

ToolWhat it does
ghl_add_opportunity_followersAdd follower users to an opportunity.
ghl_create_opportunityCreate an opportunity in a pipeline. Extra fields (pipelineStageId, monetaryValue, assignedTo, customFields, source) pass through.
ghl_get_opportunityGet an opportunity by ID.
ghl_get_pipelinesList pipelines with their stages (ids needed for creating/searching opportunities).
ghl_remove_opportunity_followersRemove follower users from an opportunity.
ghl_search_opportunitiesSearch opportunities with filters. Returns deals with value, stage, status, and contact.
ghl_update_opportunityUpdate an opportunity (name, stage, value, assignee...). Fields pass through.
ghl_update_opportunity_statusQuick win/loss update: set an opportunity's status.
ghl_upsert_opportunityCreate-or-update an opportunity for a contact in a pipeline (GHL matches on contact + pipeline). Extra fields pass through.

Money 65

ToolWhat it does
ghl_cancel_invoice_scheduleCancel a recurring invoice schedule.
ghl_create_couponCreate a discount coupon.
ghl_create_estimateCreate an estimate/quote. Required by GHL: name, currency, items, contactDetails, businessDetails. All fields pass through.
ghl_create_invoiceCreate a draft invoice. Required by GHL: name, currency, items (array of {name, currency, amount, qty}), contactDetails ({id, name, email?, phoneNo?}), businessDetails ({name, address?}), issueDate (YYYY-MM-DD), liveMode. Optional: dueDate, discount ({type: 'percentage'|'fixed', value}), title, invoiceNumber. All fields pass through.
ghl_create_invoice_scheduleCreate a recurring invoice schedule. Required by GHL: name, contactDetails ({id, name}), schedule ({rrule: {intervalType: 'monthly'|'weekly'|..., interval, startDate, ...}}), businessDetails, currency, items, liveMode. Fields pass through.
ghl_create_invoice_templateCreate an invoice template. Required by GHL: name, businessDetails, currency, items. Fields pass through.
ghl_create_order_fulfillmentMark order items as fulfilled/shipped. trackings: array of {trackingNumber?, shippingCarrier?, trackingUrl?}; items: array of {priceId, qty}.
ghl_create_priceCreate a price for a product. For recurring prices pass a `recurring` object ({interval: 'month'|'week'|'day'|'year', intervalCount}) plus optional trialPeriod, totalCycles, setupFee.
ghl_create_productCreate a product. Extra fields (description, image, medias, variants, statementDescriptor, availableInStore, slug, seo) pass through to the GHL API.
ghl_create_product_collectionCreate a product collection.
ghl_create_shipping_carrierRegister a shipping carrier with a callback URL for live rates.
ghl_create_shipping_rateCreate a shipping rate in a zone. conditionType: none | price | weight.
ghl_create_shipping_zoneCreate a shipping zone. countries: array of {code, states?: [{code}]}.
ghl_delete_couponDelete a coupon.
ghl_delete_estimateDelete an estimate.
ghl_delete_invoiceDelete an invoice.
ghl_delete_priceDelete a price from a product.
ghl_delete_productDelete a product by ID.
ghl_delete_product_collectionDelete a product collection.
ghl_delete_shipping_rateDelete a shipping rate.
ghl_delete_shipping_zoneDelete a shipping zone.
ghl_estimate_to_invoiceConvert an accepted estimate into an invoice.
ghl_generate_invoice_numberGet the next available invoice number.
ghl_get_couponGet a coupon by ID and code (the GHL API wants both).
ghl_get_invoiceGet an invoice by ID (response includes the payment URL).
ghl_get_orderGet an order by ID.
ghl_get_productGet a product by ID.
ghl_get_store_settingsGet online store settings (shipping origin etc.).
ghl_get_subscriptionGet a subscription by ID.
ghl_get_transactionGet a transaction by ID.
ghl_list_affiliate_commissionsList affiliate commissions.
ghl_list_affiliate_payoutsList affiliate payouts.
ghl_list_affiliatesList affiliates in the affiliate manager.
ghl_list_couponsList discount coupons.
ghl_list_estimatesList estimates with optional filters.
ghl_list_inventoryList inventory levels across product prices.
ghl_list_invoice_schedulesList recurring invoice schedules.
ghl_list_invoice_templatesList invoice templates.
ghl_list_invoicesList invoices with optional filters.
ghl_list_order_fulfillmentsList fulfillments for an order.
ghl_list_ordersList orders with optional filters.
ghl_list_pricesList prices for a product.
ghl_list_product_collectionsList product collections.
ghl_list_productsList products in this sub-account.
ghl_list_shipping_carriersList shipping carriers configured for the store.
ghl_list_shipping_ratesList rates in a shipping zone.
ghl_list_shipping_zonesList shipping zones for the online store.
ghl_list_subscriptionsList payment subscriptions with optional filters.
ghl_list_transactionsList payment transactions with optional filters.
ghl_record_invoice_paymentRecord a manual/offline payment against an invoice (cash, cheque, bank transfer...).
ghl_send_estimateSend an estimate to the customer.
ghl_send_invoiceSend an invoice to the customer by email and/or SMS. The customer receives a payable link.
ghl_start_invoice_scheduleActivate/start sending a recurring invoice schedule.
ghl_text2pay_invoiceCreate AND send an invoice in one step - this is the closest thing to a payment link in the GHL API; the response includes the payable invoice URL. Required: name, currency, items (array of {name, currency, amount, qty}), contactDetails ({id, name, email?, phoneNo?}), issueDate (YYYY-MM-DD), userId. action 'draft' returns the link without sending.
ghl_update_couponUpdate a coupon. The GHL API requires the full definition (name, code, discountType, discountValue, startDate) on update.
ghl_update_estimateUpdate an estimate. Fields pass through to the GHL API.
ghl_update_inventoryUpdate inventory quantities. items: array of {priceId, availableQuantity, allowOutOfStockPurchases?}.
ghl_update_invoiceUpdate a draft invoice. Fields pass through to the GHL API (name, currency, invoiceItems, issueDate, dueDate, discount, ...).
ghl_update_priceUpdate a price. The GHL API requires name, type, currency, and amount on update; extra fields pass through.
ghl_update_productUpdate a product. The GHL API requires name and productType on update; extra fields pass through.
ghl_update_product_collectionUpdate a product collection.
ghl_update_shipping_rateUpdate a shipping rate. Fields pass through.
ghl_update_shipping_zoneUpdate a shipping zone. Fields pass through.
ghl_update_store_settingsUpdate store settings. shippingOrigin: {name, country, city, street1, zip, ...}.
ghl_void_invoiceVoid an invoice (keeps the record; customer can no longer pay it).

Marketing 32

ToolWhat it does
ghl_create_email_templateCreate a new email builder template. Default type 'html' starts a blank template (GHL names it 'New Template' - rename in the builder UI); use type 'import' with importProvider + importURL to import from an external source.
ghl_create_url_redirectCreate a URL redirect. action: funnel | website | url | all.
ghl_delete_email_templateDelete an email builder template.
ghl_delete_url_redirectDelete a URL redirect.
ghl_facebook_ads_integration_statusCheck whether Facebook Ads is connected for this sub-account.
ghl_facebook_ads_list_reportList Facebook campaigns/adsets/ads with performance for a date range.
ghl_facebook_ads_reportFacebook Ads performance report for this sub-account.
ghl_facebook_campaign_getGet a Facebook campaign's details.
ghl_facebook_campaign_pausePause a Facebook campaign.
ghl_facebook_campaign_publishPublish a draft Facebook campaign. WARNING: starts spending the ad budget.
ghl_facebook_campaign_resumeResume a paused Facebook campaign.
ghl_google_ads_integration_statusCheck whether Google Ads is connected for this sub-account.
ghl_google_ads_list_reportList Google campaigns/adgroups/ads with performance for a date range.
ghl_google_ads_reportGoogle Ads performance report for this sub-account.
ghl_linkedin_ads_reportLinkedIn Ads performance report for this sub-account.
ghl_list_campaignsList campaigns in this sub-account.
ghl_list_email_campaignsList email campaigns with status and stats.
ghl_list_email_schedulesList scheduled email sends.
ghl_list_email_templatesList email builder templates.
ghl_list_form_submissionsList form submissions, optionally filtered by form, date range, or search query.
ghl_list_formsList forms in this sub-account.
ghl_list_funnel_pagesList pages inside a funnel.
ghl_list_funnelsList funnels in this sub-account.
ghl_list_survey_submissionsList survey submissions, optionally filtered by survey, date range, or search.
ghl_list_surveysList surveys in this sub-account.
ghl_list_url_redirectsList URL redirects for this sub-account's domains.
ghl_list_workflowsList all workflows in this sub-account (id, name, status). Use the workflow id with ghl_add_contact_to_workflow.
ghl_update_url_redirectUpdate a redirect's target or action.

Calendar 10

ToolWhat it does
ghl_create_appointmentBook an appointment on a calendar for a contact.
ghl_create_block_slotBlock time on a calendar (e.g. lunch, vacation).
ghl_create_calendar_groupCreate a calendar group.
ghl_delete_eventDelete a calendar event/appointment entirely. Prefer ghl_update_appointment with appointmentStatus=cancelled to keep a record.
ghl_get_appointmentGet one appointment by its event ID.
ghl_get_free_slotsGet available booking slots for a calendar between two dates.
ghl_list_blocked_slotsList blocked time slots in a date range.
ghl_list_calendar_groupsList calendar groups in this sub-account.
ghl_list_calendarsList calendars in this sub-account (id, name, type). Use the calendar id for free slots and appointments.
ghl_update_appointmentUpdate an existing appointment (reschedule, change status, reassign, retitle).

Data & media 33

ToolWhat it does
ghl_create_associationCreate an association between two object types. Example: key 'owner', firstObjectKey 'custom_objects.pets', firstObjectLabel 'pet', secondObjectKey 'contact', secondObjectLabel 'owner'.
ghl_create_brand_boardCreate a brand board. Extra fields (colors, fonts, logos...) pass through.
ghl_create_custom_fieldCreate a custom field. dataType examples: TEXT, LARGE_TEXT, NUMERICAL, PHONE, MONETORY, CHECKBOX, SINGLE_OPTIONS, MULTIPLE_OPTIONS, DATE, TEXTBOX_LIST, FILE_UPLOAD, SIGNATURE, RADIO.
ghl_create_custom_valueCreate a custom value.
ghl_create_media_folderCreate a folder in the media library.
ghl_create_object_recordCreate a record in a custom object. properties: object keyed by field key, e.g. {"name": "Buddy", "breed": "Beagle"}.
ghl_create_object_schemaCreate a custom object schema. Example: labels {singular:'Pet', plural:'Pets'}, key 'custom_objects.pets', primaryDisplayPropertyDetails {key:'custom_objects.pets.name', name:'Pet Name', dataType:'TEXT'}.
ghl_create_relationLink two records via an association (e.g. link pet record to contact).
ghl_delete_associationDelete an association.
ghl_delete_custom_fieldDelete a custom field. WARNING: destroys the field and its data on all records.
ghl_delete_custom_valueDelete a custom value.
ghl_delete_mediaDelete a file or folder from the media library.
ghl_delete_object_recordDelete a custom object record.
ghl_delete_relationRemove a relation between two records.
ghl_get_brand_boardGet a brand board's full details.
ghl_get_object_recordGet a custom object record by ID.
ghl_get_object_schemaGet an object schema (including its custom fields/properties) by key.
ghl_get_relations_by_recordGet all relations for a record (any object type).
ghl_import_courseImport a fully-formed course into Memberships (the only course-creation operation the public GHL API supports - editing existing courses via API is not possible). products: array of course products, each with title, description?, imageUrl?, categories (array of {title, lessons: [{title, description?, postContents?: [{type: 'video'|'html'|..., url?, content?}]}]}).
ghl_list_associationsList associations (relationship types between objects) in this sub-account.
ghl_list_brand_boardsList brand boards (brand kits: colors, fonts, logos).
ghl_list_custom_fieldsList custom fields for this sub-account (contact and/or opportunity model).
ghl_list_custom_valuesList custom values (location-level merge variables like {{ custom_values.x }}).
ghl_list_media_filesList files and folders in the media library.
ghl_list_object_schemasList all objects (standard + custom) for this sub-account. Custom object keys look like custom_objects.pets.
ghl_rename_mediaRename a file or folder in the media library.
ghl_search_object_recordsSearch records of a custom object.
ghl_update_associationUpdate an association's labels.
ghl_update_custom_fieldUpdate a custom field's name, placeholder, position, or options.
ghl_update_custom_valueUpdate a custom value's name and/or value.
ghl_update_object_recordUpdate a custom object record's properties.
ghl_update_object_schemaUpdate a custom object schema (labels, description, searchableProperties).
ghl_upload_media_from_urlUpload a file into the media library from a public URL (returns the hosted GHL URL).

AI 21

ToolWhat it does
ghl_create_kb_faqAdd a question/answer pair to a knowledge base.
ghl_create_knowledge_baseCreate a knowledge base.
ghl_create_voice_ai_agentCreate a Voice AI agent. Config fields (name, prompt, voice, language, businessName, greeting...) pass through to the GHL API.
ghl_delete_kb_faqDelete an FAQ from a knowledge base.
ghl_delete_kb_urlsRemove crawled URLs from a knowledge base.
ghl_delete_knowledge_baseDelete a knowledge base.
ghl_delete_voice_ai_agentDelete a Voice AI agent.
ghl_execute_agent_studio_agentExecute an Agent Studio agent with a message and return its response.
ghl_generate_marketing_imageGenerate an AI image (Flux model, 1024x1024) from a text prompt and save it into this sub-account's GHL media library. Returns the hosted media URL for use in social posts, emails, and funnels. Write prompts like a photographer's brief: subject, style, lighting, mood, composition.
ghl_get_agent_studio_agentGet an Agent Studio agent's details.
ghl_get_voice_ai_agentGet a Voice AI agent's full configuration.
ghl_get_voice_ai_call_logGet one Voice AI call log (includes transcript and outcome).
ghl_kb_crawl_websiteCrawl a website URL into a knowledge base. option: 'single' (one page), 'sitemap', or 'crawl' (follow links).
ghl_list_agent_studio_agentsList Agent Studio agents (published workflows/agents built in Agent Studio).
ghl_list_kb_faqsList FAQs in a knowledge base.
ghl_list_kb_urlsList crawled URLs in a knowledge base.
ghl_list_knowledge_basesList knowledge bases (used by Conversation AI / Voice AI agents).
ghl_list_voice_ai_agentsList Voice AI agents in this sub-account.
ghl_list_voice_ai_call_logsList Voice AI call logs with filters.
ghl_update_kb_faqUpdate an FAQ.
ghl_update_voice_ai_agentUpdate a Voice AI agent (patch semantics - only send fields to change).

People & admin 19

ToolWhat it does
ghl_create_businessCreate a business. Optional fields (phone, email, website, address, city, state, country, postalCode, description) pass through.
ghl_create_userCreate a user in this sub-account. companyId is your agency ID (find it via ghl_get_location_company_id). role: admin | user.
ghl_delete_businessDelete a business.
ghl_delete_userDelete a user.
ghl_get_businessGet a business by ID.
ghl_get_location_company_idGet this sub-account's details including its companyId (agency ID, needed for ghl_create_user).
ghl_get_userGet a user by ID.
ghl_list_businessesList businesses (companies that contacts belong to) in this sub-account.
ghl_list_document_templatesList document & contract templates.
ghl_list_documentsList documents & contracts (proposals/estimates sent for signature).
ghl_list_number_poolsList number pools for this sub-account.
ghl_list_phone_numbersList phone numbers owned by this sub-account.
ghl_list_usersList users (team members) in this sub-account.
ghl_purchase_phone_numberPURCHASE a phone number for this sub-account. WARNING: this incurs real monthly charges on the account.
ghl_search_available_phone_numbersSearch phone numbers available to purchase for this sub-account.
ghl_send_documentSend an existing document/contract to its recipients for signature.
ghl_send_document_from_templateCreate a document from a template for a contact and send it for signature.
ghl_update_businessUpdate a business. Fields pass through.
ghl_update_userUpdate a user (name, email, phone, role, permissions...). Fields pass through.

Connect your first sub-account free - no card, about 5 minutes.