Skip to main content
Glama

Create invoice

ghl_create_invoice

Create a draft invoice for a contact. Specify line items, and details auto-fill from the contact record. Set due dates, currency, and terms; send it later.

Instructions

Create a draft invoice for a contact. Provide line items (name, qty, price). Business details are taken from GHL_BUSINESS_* env vars (or businessName/businessPhone overrides); contact details (name, phone, email, address) are auto-filled from the contact record. The invoice is created in draft status; use ghl_send_invoice to deliver it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesInvoice name/title.
itemsYesLine items on the invoice.
titleNoDisplay title. Defaults to your invoice-settings title (e.g. INVOICE).
dueDateNoDue date as YYYY-MM-DD. Defaults to the issue date.
currencyNoISO currency code, e.g. USD.USD
contactIdYesContact the invoice is billed to.
issueDateNoIssue date as YYYY-MM-DD. Defaults to today.
locationIdNoGHL Location (sub-account) ID. Defaults to GHL_LOCATION_ID.
termsNotesNoTerms & notes. Defaults to your saved invoice terms & notes.
contactNameNo
businessNameNo
contactEmailNo
contactPhoneNo
applyDefaultsNoApply your saved GHL invoice settings (logo, business info, terms & notes, title, due-after-days) like the UI does. Set false for a bare invoice.
businessPhoneNo
businessAddressNo
businessLogoUrlNo
businessWebsiteNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the minimal annotations, the description discloses important behavior: the invoice is created in draft status, business details are pulled from env vars or overrides, and contact details are auto-filled from the contact record. This is meaningful transparency for a create operation. It omits return-value and error behavior, but the core side-effect profile is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no wasted words. The main purpose is front-loaded, followed by data-source behavior and the downstream delivery step. Every sentence earns its place and avoids repeating what the input schema already says.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential draft-invoice workflow and key data-source behavior, but with no output schema, it does not state what the tool returns, such as the created invoice ID or object, which an agent needs to use the result. With 18 parameters and a nested items array, a bit more detail about optional overrides and return behavior would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 56%, so the description needs to compensate. It adds useful high-level meaning: line items need name/qty/price, business details come from env vars with businessName/businessPhone overrides, and contact details are auto-filled. However, several undocumented parameters like contactEmail, contactPhone, businessAddress, businessLogoUrl, and businessWebsite are only implied, not explicitly mapped.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb and resource: 'Create a draft invoice for a contact.' It explicitly calls out draft status, distinguishing the tool from invoice delivery, voiding, and deletion siblings. The phrase 'use ghl_send_invoice to deliver it' further disambiguates the invoice lifecycle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly frames the intended workflow: create a draft invoice first, then use ghl_send_invoice to deliver it. It gives practical context about data sources and contact auto-fill. It does not explicitly contrast invoice creation with estimate creation, but the draft-then-send sequence provides clear operational guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vmproductions631-tech/gohighlevel-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server