---
title: "HighLevel"
url: https://docs.light-ai.app/integrations/highlevel.md
canonical_url: https://docs.light-ai.app/integrations/highlevel
last_updated: 2026-10-13
summary: "HighLevel (GoHighLevel) workflows post leads straight to Light AI; quote outcomes go back to contacts and opportunities through a premium Inbound Webhook trigger or n8n."
api_status: beta
related:
  - https://docs.light-ai.app/integrations
  - https://docs.light-ai.app/inbound
  - https://docs.light-ai.app/webhooks
  - https://docs.light-ai.app/external-refs
---

# HighLevel

> HighLevel (GoHighLevel) workflows post leads straight to Light AI; quote outcomes go back to contacts and opportunities through a premium Inbound Webhook trigger or n8n.

| Direction | Path | How |
| --- | --- | --- |
| Leads → Light AI | **Direct** | Workflow → standard **Webhook** action to an [inbound source](https://docs.light-ai.app/inbound) in **URL mode** (it cannot add headers), or the premium **Custom Webhook** action in header mode (`X-Light-AI-Source-Secret`). Capture and map once. |
| Light AI → HighLevel | **Direct** · **via n8n** | A Light AI endpoint pointed at the premium **Inbound Webhook** trigger, mapped to contact and opportunity in the workflow. Or n8n with a Private Integration token: upsert the contact (template), then create or move the opportunity. |

## Leads in

1. Light AI: Settings → Developers → Inbound → New source → **HighLevel**. Copy the URL and secret.
2. HighLevel: Automation → Workflow → trigger (e.g. Form Submitted) → **Webhook** action with the secret URL, or **Custom Webhook** (POST, header `X-Light-AI-Source-Secret`).
3. Run the workflow once, then map the captured fields in Light AI.

## Outcomes out

1. HighLevel: a workflow with the **Inbound Webhook** trigger; copy its URL.
2. Light AI: create an endpoint to that URL for `quote.published`, `quote.approved`, `quote.declined`, `quote.expired` with a `static_header`.
3. Map the contact by e-mail or phone, then **Create/Update Opportunity** with the value and stage below.

## Lead → contact

| HighLevel | Light AI |
| --- | --- |
| `firstName`, `lastName`, `email`, `phone` | `contact.first_name`, `contact.last_name`, `contact.email`, `contact.phone` |
| `address1`, `city`, `state`, `postalCode` | `address.line1`, `address.city`, `address.region`, `address.postal_code` |
| `source`, `tags` | `"Light AI"` plus `source_detail`; a tag such as `light-ai` |
| Custom fields or a note | `message`, `service_interest`, form answers (`lead.form_answers`, see [Website request forms](https://docs.light-ai.app/forms)) and `project.app_url` |

## Quote → opportunity

| HighLevel | Light AI |
| --- | --- |
| `name` | Customer name and site address |
| `monetaryValue` | `totals.total.decimal` |
| `status`, `pipelineStageId` | `open` on `quote.published`; `won` on `quote.approved`; `lost` on `quote.declined` / `quote.expired` |
| Note | `line_items[]` as text, plus `links.app_url` |

## Notes

- Inbound Webhook and Custom Webhook are LC Premium workflow features: HighLevel bills each execution to the agency (rebilling is set per sub-account). The standard Webhook action is not premium.
- A Private Integration token belongs to one sub-account (location). Give it only the contacts and opportunities scopes. API v1 keys are end-of-support; use v2.
- Partners serving many locations: set each grant's `external_reference` to the HighLevel `locationId`; every event carries it as `grant.external_reference`.
- Photos and instant previews: webhook payloads carry only asset ids (`assets.photos[]`, `assets.mockups[]` with `url: null`). Fetch `GET /v1/leads/{id}` for links that expire after 60 minutes and download the files if the CRM can store them; otherwise store `project.app_url` (sign-in required). Never save a 60-minute link in a CRM.

## Download

- [quote-approved-to-highlevel.json](https://docs.light-ai.app/downloads/n8n/quote-approved-to-highlevel.json)

## Sources

- [Custom Webhook workflow action](https://help.gohighlevel.com/support/solutions/articles/155000003305-workflow-action-custom-webhook)
- [Inbound Webhook premium trigger](https://help.gohighlevel.com/support/solutions/articles/48001237383-how-to-use-the-inbound-webhook-workflow-premium-trigger)
- [Private Integration tokens](https://marketplace.gohighlevel.com/docs/Authorization/PrivateIntegrationsToken/)
- [Upsert contact](https://marketplace.gohighlevel.com/docs/ghl/contacts/upsert-contact)
- [Create opportunity](https://marketplace.gohighlevel.com/docs/ghl/opportunities/create-opportunity)
