> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/sources/category/crm/gohighlevel/data-overview.md).

# Data Overview

Coupler.io pulls data from 10 GoHighLevel entities, covering your full CRM lifecycle — from lead capture to invoicing. Custom fields are supported on Contacts, Opportunities, and Companies, and each custom field is returned as its own column.

## Entities and what they return

| Entity        | Key data returned                                                                      |
| ------------- | -------------------------------------------------------------------------------------- |
| Opportunities | Deal name, stage, pipeline ID, status, value, assigned user, close date, custom fields |
| Orders        | Order ID, contact, amount, status, line items, created date                            |
| Pipelines     | Pipeline ID, pipeline name, stages list                                                |
| Invoices      | Invoice ID, contact, amount due, amount paid, status, issue date                       |
| Companies     | Company name, address, industry, custom fields                                         |
| Contacts      | Name, email, phone, tags, source, assigned user, custom fields, created date           |
| Conversations | Contact ID, channel type, last message date, unread count                              |
| Transactions  | Transaction ID, amount, currency, contact, created date                                |
| Appointments  | Appointment ID, contact ID, calendar, start/end time, status                           |
| Tasks         | Task ID, contact ID, title, due date, status, assigned user                            |

## Metrics and dimensions

#### Opportunities

| Field           | Type      | Description                                 |
| --------------- | --------- | ------------------------------------------- |
| name            | Dimension | Opportunity/deal name                       |
| pipelineId      | Dimension | ID of the parent pipeline                   |
| pipelineStageId | Dimension | ID of the current stage                     |
| status          | Dimension | open, won, lost, abandoned                  |
| monetaryValue   | Metric    | Deal value                                  |
| assignedTo      | Dimension | User ID of the assigned team member         |
| closeDate       | Dimension | Expected or actual close date               |
| createdAt       | Dimension | Date opportunity was created                |
| customFields    | Dimension | Flattened into individual columns per field |

#### Contacts

| Field                | Type      | Description                                 |
| -------------------- | --------- | ------------------------------------------- |
| firstName / lastName | Dimension | Contact name                                |
| email                | Dimension | Primary email address                       |
| phone                | Dimension | Phone number                                |
| source               | Dimension | Lead source                                 |
| tags                 | Dimension | Comma-separated tag list                    |
| assignedTo           | Dimension | Assigned user ID                            |
| dateAdded            | Dimension | Contact creation date                       |
| customFields         | Dimension | Flattened into individual columns per field |

#### Appointments

| Field               | Type      | Description                                   |
| ------------------- | --------- | --------------------------------------------- |
| contactId           | Dimension | Linked contact                                |
| calendarId          | Dimension | Calendar the appointment belongs to           |
| startTime / endTime | Dimension | Appointment window                            |
| status              | Dimension | booked, confirmed, showed, no-show, cancelled |

#### Invoices & Transactions

| Field                 | Type      | Description                         |
| --------------------- | --------- | ----------------------------------- |
| amount / amountDue    | Metric    | Invoice total or amount outstanding |
| amountPaid            | Metric    | Amount already collected            |
| status                | Dimension | draft, sent, paid, void             |
| contactId             | Dimension | Linked contact                      |
| issueDate / createdAt | Dimension | Date created or issued              |

## Common metric combinations

* **Opportunities + Pipelines (Join)** — Join on `pipelineId` to replace pipeline IDs with readable pipeline names in your reports.
* **Contacts + Opportunities (Join)** — Join on `contactId` to enrich deal data with contact details like email, tags, and source.
* **Invoices + Contacts (Join)** — Combine billing data with contact info for revenue reporting per client.
* **Appointments + Contacts (Join)** — Match appointments to contacts to analyze booking rates by source or tag.

## Use cases by role

{% tabs %}
{% tab title="Sales teams" %}

* Track open opportunities by stage and pipeline to identify bottlenecks.
* Monitor deal values and close dates in a live Looker Studio or Google Sheets dashboard.
* Join Opportunities with Pipelines to show pipeline names instead of raw IDs.
* Use the Contacts entity to report on lead sources and assigned-user performance.
  {% endtab %}

{% tab title="Agency owners" %}

* Pull data from multiple sub-accounts using Append to create a single consolidated view.
* Combine Invoices and Transactions to monitor revenue per client.
* Export Conversations to track channel engagement across accounts.
* Use AI destinations (Claude, ChatGPT) to auto-generate weekly performance summaries.
  {% endtab %}

{% tab title="Operations" %}

* Sync Tasks and Appointments to a spreadsheet to manage team workload.
* Use the `contactIds` parameter to pull tasks or appointments for a specific set of contacts.
* Monitor invoice statuses to flag overdue payments.
* Schedule automated refreshes so dashboards always reflect the latest CRM state.
  {% endtab %}
  {% endtabs %}

## Platform-specific notes

* **Custom fields** are supported on Contacts, Opportunities, and Companies. Each custom field appears as a separate column — not a JSON blob.
* **Custom fields on other objects** (e.g., Tasks, Appointments) are not exposed via the GoHighLevel API and won't appear.
* **Appointments and Tasks** support two filter parameters: a start date (fetches records for contacts created after that date) or a list of specific Contact IDs. If Contact IDs are provided, the start date is ignored.
* **Pipelines** returns stage definitions but not opportunity counts — join with Opportunities to get deal metrics per stage.
* **Date fields** like `createdAt` and `dateAdded` reflect GoHighLevel's stored timezone. If timestamps appear off by one hour, this is likely a timezone offset — adjust in your destination or transformation layer.
* **AssignedTo** fields return a user ID. To get the display name, you may need to cross-reference with your GHL user list manually, as a dedicated Users entity is not currently available.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.coupler.io/sources/category/crm/gohighlevel/data-overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
