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

  • 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.

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.

Last updated

Was this helpful?