Integrations
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 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#
- Light AI: Settings → Developers → Inbound → New source → HighLevel. Copy the URL and secret.
- HighLevel: Automation → Workflow → trigger (e.g. Form Submitted) → Webhook action with the secret URL, or Custom Webhook (POST, header
X-Light-AI-Source-Secret). - Run the workflow once, then map the captured fields in Light AI.
Outcomes out#
- HighLevel: a workflow with the Inbound Webhook trigger; copy its URL.
- Light AI: create an endpoint to that URL for
quote.published,quote.approved,quote.declined,quote.expiredwith astatic_header. - 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) 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_referenceto the HighLevellocationId; every event carries it asgrant.external_reference. - Photos and instant previews: webhook payloads carry only asset ids (
assets.photos[],assets.mockups[]withurl: null). FetchGET /v1/leads/{id}for links that expire after 60 minutes and download the files if the CRM can store them; otherwise storeproject.app_url(sign-in required). Never save a 60-minute link in a CRM.