GoHighLevel (GHL)
Connect GoHighLevel to sync contacts, opportunities, appointments, and pipeline stages for full-funnel attribution.
GoHighLevel (GHL)
The GoHighLevel integration brings your CRM data into Atribu. It syncs contacts, opportunities (deals), and calendar appointments so you can track every step of your sales funnel -- from ad click to closed deal.
What you get
- Contacts synced with Atribu's identity graph (name, email, phone)
- Opportunities with deal values, pipeline stages, and UTM attribution data
- Calendar appointments merged into Atribu's Calendar view
- Full-funnel tracking from first ad click through to closed deal
Connecting GoHighLevel
Open Integrations
Go to Settings > Integrations in your Atribu workspace.
Start the connection
Click Connect next to the GoHighLevel card. You will be redirected to the GHL Marketplace.
Select your location
Choose the GHL location (sub-account) you want to connect. Each location connects to one Atribu profile.
Authorize permissions
Grant Atribu the requested permissions:
- Contacts -- read contact data (name, email, phone)
- Opportunities -- read deal data (stage, value, attribution)
- Locations -- identify your sub-account
- Calendars & Events -- read appointment data
Verify the connection
Back in Atribu, the GHL card should show Connected. Atribu will begin importing your contacts and opportunities.
What syncs
Contacts
Every GHL contact is linked to Atribu's identity graph using email and phone number. This creates a unified customer profile that connects the contact to their website visits, ad clicks, and payments.
| Data | Description |
|---|---|
| Name | First and last name |
| Primary email address | |
| Phone | Primary phone number |
| Source | Where the contact came from (form, ad, referral) |
Opportunities (deals)
GHL opportunities carry rich attribution data that Atribu reads to connect deals back to ad campaigns.
| Data | Description |
|---|---|
| Pipeline stage | Current stage (e.g., New Lead, Qualified, Closed Won) |
| Deal value | Monetary value of the opportunity |
| Contact | Linked contact with identity data |
| UTM data | Campaign, source, medium, and click IDs from the lead's origin |
| Stage history | Timeline of stage changes |
Calendar events
GHL appointments are synced and displayed in Atribu's Calendar view, merged with tracked events from your website.
| Data | Description |
|---|---|
| Appointment time | Start and end time |
| Contact | Linked contact information |
| Assigned user | Team member responsible |
| Calendar name | Which calendar the appointment belongs to |
| Status | Confirmed, cancelled, no-show, etc. |
Pipeline stage mapping
GHL organizes deals into pipelines with stages. For example:
New Lead --> Qualified --> Proposal Sent --> Closed WonAtribu maps each stage to a conversion type so it can track your funnel:
| Stage keyword | Conversion type |
|---|---|
| Contains "lead" or is the first stage | lead_created |
| Contains "appointment" or "booked" | appointment_booked |
| Contains "won" or "closed" | closed_won |
You can customize this mapping in Settings > Outcomes to match your specific pipeline stages.
Pipeline values vs real revenue
Pipeline values are NOT used for ROAS
GHL deal values represent what you expect to earn -- not what you have actually collected. A $5,000 deal in your pipeline might close for $3,000, get renegotiated, or fall through entirely.
Atribu tracks pipeline values separately as pipeline revenue and displays them in their own section of the dashboard. They are never included in ROAS calculations. Only confirmed payments from Stripe or MercadoPago count for ROAS.
Calendar merge
GHL appointments appear in Atribu's Calendar view alongside events tracked from your website. Atribu merges data from both sources:
- GHL data: real-time appointment status, calendar name, assigned team member
- Atribu data: attribution information (which ad campaign brought this customer)
When both sources have data for the same appointment, they are merged into a single entry with the best of both worlds.
UTM attribution from GHL
When a lead comes from a Meta or Google ad, GHL captures the campaign information from the click. Atribu reads this data to attribute the lead back to the correct campaign, ad set, and ad.
This means that even if a lead fills out a form directly on Facebook (using a Meta Lead Form) and goes straight into GHL without visiting your website, Atribu can still identify which ad campaign generated the lead.
Synthetic touches for off-site leads
When a lead enters GHL from a Meta lead form (not from your website), there is no website visit to track. Atribu automatically creates synthetic touches -- virtual touchpoints that represent the ad interaction. This ensures these leads are included in your attribution reports, even without a website session.
Learn more in Synthetic Touches.
Troubleshooting
Contacts are missing names
Some GHL contacts are created through opportunities rather than the contacts list. In these cases, the name may not be available during the initial sync. Atribu will backfill names as more data becomes available from subsequent syncs.
Opportunities are not syncing
- Check that the connection status shows Connected in Settings > Integrations
- Make sure the GHL location has at least one pipeline with opportunities
- If you recently added a new pipeline, trigger a manual sync
Appointments are not showing in Calendar
Calendar sync requires the Calendars and Calendar Events permissions. If these were not granted during setup:
- Go to Settings > Integrations
- Disconnect GoHighLevel
- Reconnect and make sure all permissions are granted