Consolidating Leads From Multiple GoHighLevel Locations
Running several GoHighLevel sub-accounts splits your leads, calls and revenue into silos. How to consolidate them into one view without duplicates or lost attribution.
Businesses end up with multiple GoHighLevel locations for good reasons. A coaching company launches a second offer and gives it its own sub-account so the pipelines and automations don’t collide. An agency acquires a brand that already had its own location. A franchise or multi-clinic business runs one location per site. A founder separates a high-ticket program from a low-ticket community. Each decision makes sense on its own. Together they leave you with leads, calls and revenue spread across several islands, and no single place to answer “how many leads did we get this month, from which ads, and how many closed?”
This post covers why GHL locations don’t naturally roll up, the main ways teams consolidate them (and what each approach costs), how to handle the people who show up in more than one location, how to keep the ad attribution intact, and what a consolidated report should look like.
Why locations don’t add up on their own
In GoHighLevel, a location (also called a sub-account) is a self-contained workspace: its own contacts, pipelines, calendars, forms, workflows, users and phone numbers. That isolation is the feature. It’s what lets an agency give each client their own space, or a business keep two offers’ automations from touching each other.
The same isolation is what makes reporting hard:
- Contacts are separate. The same person who opts into two offers exists as two contacts in two locations, with two histories.
- Pipelines differ. Location A’s “Booked” stage might be Location B’s “Strategy Call Scheduled.” Stage names, order and meaning drift.
- Calendars and users are per location. A closer who works both offers may have two user records, two calendars and two sets of activity.
- Attribution is per location. Each location records whatever source data its own forms captured, often inconsistently.
- Revenue may not be in GHL at all. Payments often land in Stripe, Whop or another processor, which doesn’t know which location the buyer came from.
So the question “what’s our cost per booked call across the business” requires pulling data out of every location, normalizing it and de-duplicating people. Doing that by hand every week is where most teams give up.
Three ways to consolidate
Option 1: Exports and a spreadsheet
Export contacts and opportunities from each location, paste them into a master sheet, and build pivot tables. It works for a one-off answer and it’s free.
The downsides show up by week three: exports are snapshots, the person maintaining it goes on holiday, stage names don’t match, and de-duplication is a manual VLOOKUP on email that misses everyone who used a different address. Attribution is limited to whatever UTM fields each location happened to capture.
Option 2: Workflows pushing to a central place
Build a workflow in each location that sends new contacts, appointments and stage changes by webhook to a central system: a “master” GHL location, a data warehouse, or a database behind a BI tool. This is live and more reliable than exports.
The cost is maintenance. Every location needs the same workflows, kept in sync as pipelines change. Webhook payloads differ by trigger type. And you still need to solve de-duplication and attribution centrally. Teams with a technical ops person can make this work well; webhooks explained for marketers who aren’t engineers covers the basics.
Option 3: Connect every location to one reporting layer
The third option is to connect each location directly to a reporting or attribution tool that understands multiple locations as one business. The tool pulls contacts, appointments, opportunities and dials from each location, maps them to a common set of events, and merges people who appear in more than one.
This is what Callix’s support for multiple GHL locations per account is for: you connect more than one GHL location to one Callix account and switch between them on the GHL settings page. Each location’s leads, bookings and calls flow into the same account, alongside your ad data and payment processors, so one dashboard covers the whole business.
Normalizing pipelines and calendars
Whichever route you take, consolidated numbers are only as good as the mapping underneath. Before you look at a single combined report, decide on a common vocabulary:
| Common event | Location A (coaching) | Location B (agency offer) |
|---|---|---|
| Lead | Form: Free training opt-in | Form: Audit request |
| Application | Typeform submitted | : |
| Booked call | Calendar: Strategy Call | Calendar: Discovery Call |
| Showed | Stage: Call Completed | Stage: Met |
| Closed | Stage: Enrolled | Stage: Signed |
Each location keeps its own names; the mapping translates them into shared events. In Callix, each GHL calendar can be mapped to its own Callix event, and Map all applies one mapping to every calendar, form or funnel at once (untick any that should stay out). A GHL stage that records a payment can book each opportunity’s own Opportunity value rather than a fixed amount, which matters when two locations sell offers at different prices.
If setter and closer calls are mixed across locations, label them by type too, so show rate on a 15-minute setter call doesn’t get blended with show rate on a 60-minute strategy call.
Handling people who appear in more than one location
Overlap is common. Someone joins the free community in Location B, then applies for the coaching program in Location A. In the raw data that’s two leads. For the business, it’s one person who moved from one offer to another, which is exactly the journey you want to see.
Rules that work:
- Match on email first, then phone. Most duplicates share one or the other. In Callix, when a person is already known by email or phone, new events attach to that contact instead of creating a second prospect.
- Keep secondary identifiers. People use a personal email on one form and a work email on another. When you merge two records, keep both addresses so future data from either lands on the same person. Duplicate contacts in Callix can be merged from the CRM, and an AI assistant connected through the MCP server can merge two records of the same person, with a dry run first.
- Count leads, not submissions. Two opt-ins from the same person in two locations should be one lead in your top-line number. Callix’s Callix Leads metric counts prospects rather than events for this reason.
- Keep the location as an attribute. You still want to know which offer each lead entered through. Treat location (or funnel) as a dimension you can filter by, not a separate dataset.
Data hygiene: keeping a CRM clean as a company scales has more on de-duplication rules.
Keeping ad attribution intact
The biggest loss in multi-location setups is usually attribution. Each location’s forms were built at different times by different people, and some capture UTMs while others don’t. When you consolidate, the leads without a source pile up as “Unknown.”
Fix it at the source, not in the report:
- Put the same first-party pixel on every location’s funnel pages, so every visit is tracked the same way regardless of which location’s form the lead submits.
- Pass a session or click ID into each location’s forms and calendars, so the lead links to the visit that brought it in. Our guide on how to track booked calls back to the ad that drove them covers the calendar side.
- Attach DM leads to the ad that started the conversation. If a location runs Instagram DM campaigns, Callix can create prospects from Instagram DMs in GHL with that ad attached.
- Map users to reps across locations. A closer with a user in two locations should be one rep in your reporting. With GHL user mapping in Callix, a GHL user whose email matches a Callix user is mapped automatically, and dials count for the rep who made them rather than whoever connected GHL.
A worked example
Say a business runs three locations: a $5,000 coaching program, a $1,500 group program and a free community that feeds both. One month looks like this when each location reports on its own (illustrative numbers):
| Location | Leads | Booked calls | Closes | Revenue in GHL |
|---|---|---|---|---|
| Coaching | 420 | 140 | 28 | $140,000 |
| Group | 610 | 95 | 30 | $45,000 |
| Community | 1,300 | , | , | : |
| Sum | 2,330 | 235 | 58 | $185,000 |
Consolidated, with people de-duplicated and payments pulled from Stripe:
- Unique leads: about 1,750, not 2,330, because roughly 580 people appear in two locations.
- 160 of the coaching program’s 420 leads first joined the free community. Their close rate is twice that of cold leads.
- Stripe shows $171,000 collected, not $185,000; some GHL opportunities were marked won before the first payment cleared.
- Spend by campaign against unique leads and collected cash shows the community-building ads, which looked like they produced no revenue, sourcing a large share of coaching clients.
None of that is visible from three separate location reports.
What a consolidated report should show
At minimum:
- Top line: unique leads, booked calls, show rate, closes, cash collected, across all locations.
- By location (or funnel): the same metrics, filterable, so each offer owner still sees their own numbers.
- By campaign, ad set and ad: spend against unique leads, calls and cash, across locations.
- Cross-location journeys: how many buyers of offer A first entered through offer B.
- By rep: one row per person, regardless of how many locations they have a user in.
If you also run multiple sites or offers outside GHL, define funnels so every lead is tagged with where it landed; Callix lets you filter any widget by funnel and filter the CRM to leads that first landed in a given one.
A checklist before you consolidate
- List every location, what it sells, and who owns it.
- Write the common event vocabulary and map each location’s forms, calendars and stages to it.
- Decide your de-duplication rules (email, phone, merge policy).
- Put the same pixel on every funnel page and pass session or click IDs into every form and calendar.
- Map each user in each location to a single rep.
- Connect payments from the processors, not just GHL opportunity values.
- Build one top-line report and one per-location view, and retire the spreadsheet.
Multiple locations are a sensible way to run several offers. They just shouldn’t mean several versions of the truth.
