Atribu
Getting Started

Connect GoHighLevel

Sync contacts, deals, appointments, and pipeline stages from GoHighLevel

If you use GoHighLevel (GHL) as your CRM, connecting it to Atribu gives you visibility into the full customer journey -- from the first ad click to a booked appointment to a closed deal. Atribu syncs your contacts, opportunities (deals), and calendar events, and maps your pipeline stages to conversion types so you can track progress at every step.

What gets synced

DataDescription
ContactsName, email, phone number. Used to build the identity graph -- matching CRM contacts to website visitors.
OpportunitiesDeals in your pipeline, including stage, value, and UTM attribution data. GHL stores which ad campaign originated each deal.
Calendar eventsBooked appointments, including the calendar name, assigned team member, and linked contact.
Pipeline stagesYour pipeline configuration, mapped to Atribu conversion types (see below).

Connect GoHighLevel

Open Integrations

In your Atribu dashboard, go to Settings > Integrations.

Click Connect GoHighLevel

Find the GoHighLevel card and click Connect. You will be redirected to the GHL Marketplace.

Select your location

GHL uses "locations" (also called sub-accounts) to organize different businesses. Select the location you want to connect to this Atribu profile.

Authorize permissions

Review and approve the permissions Atribu is requesting:

  • Contacts (read-only) -- Access to your contact records
  • Opportunities (read-only) -- Access to your deals and pipeline data
  • Locations (read-only) -- Access to your location details
  • Calendars (read-only) -- Access to your calendars and booked events

Click Authorize to complete the connection.

Sync begins automatically

Atribu starts importing your GHL data right away. Contacts, opportunities, and calendar events will appear in your dashboard within a few minutes.

Pipeline stage mapping

When GHL opportunities move through your pipeline stages, Atribu maps each stage to a conversion type. This is how Atribu knows whether a deal represents a new lead, a booked appointment, or a closed deal.

Conversion types explained

Atribu uses these standard conversion types:

  • lead_created -- A new lead entered your pipeline (for example, someone filled out a form or was added as a contact)
  • appointment_booked -- A meeting or consultation was scheduled
  • qualified -- The lead has been vetted and meets your criteria
  • closed_won -- The deal was won and the client committed
  • payment_received -- Actual payment was collected (this comes from Stripe/MercadoPago, not GHL)

Your GHL pipeline stages are matched to these types automatically based on stage names. You can customize the mapping in Settings > Conversions.

Understanding pipeline value vs. cash revenue

Pipeline values are not real revenue

GHL deal values represent the projected worth of a deal -- what you expect to earn if the deal closes. These are useful for forecasting, but they are not the same as money in your bank account.

Atribu separates these clearly:

  • Pipeline value (from GHL) -- Shown in the "Pipeline" section of your dashboard. Useful for tracking deal flow and sales performance, but never included in ROAS.
  • Cash revenue (from Stripe/MercadoPago) -- Shown in the "Revenue" section and used for all ROAS calculations. This is actual collected payment.

A $10,000 deal in your GHL pipeline only counts toward ROAS once the client actually pays $10,000 through Stripe or MercadoPago.

Calendar integration

Once GHL is connected, the Calendar page in Atribu shows your booked appointments alongside attribution data. For each appointment, you can see:

  • Which ad campaign brought the customer in
  • The customer's full journey (pages viewed, forms submitted)
  • Deal value and pipeline stage

Atribu merges live GHL calendar data with its own attribution records, so you get real-time appointment status combined with marketing attribution in one view.

GHL and Meta native lead forms

Many leads that come through Meta (Facebook and Instagram) native lead forms go directly to GHL without the person ever visiting your website. These leads have campaign data from Meta's attribution (which ad they clicked, which ad set, etc.) but no website visit to track.

Atribu handles this automatically by creating synthetic touchpoints -- attribution records based on the campaign data that GHL passes along. This means even leads from Instagram lead forms that never visited your site are attributed to the correct ad campaign.

Troubleshooting

Missing contacts

GHL's contacts API may not return every contact in a single sync. Contacts that were created through opportunities (deals) rather than direct form submissions may take an additional sync cycle to appear. If specific contacts are missing after 24 hours, try triggering a manual re-sync from Settings > Integrations.

Pipeline stages are not mapping correctly

Go to Settings > Conversions to review and adjust your stage-to-conversion mappings. Atribu matches stages by keyword (for example, a stage named "Appointment Set" maps to appointment_booked). If your stage names use non-standard labels, you may need to map them manually.

Duplicate contacts

If the same person appears under multiple contact records in GHL (for example, with different email addresses), Atribu's identity resolution system will try to merge them based on shared identifiers (email, phone, contact ID). In some cases, manual deduplication in GHL may be needed.

Next steps

On this page