How to Track ROI With GoHighLevel Reporting Dashboards
Most agencies only learn how to track ROI with GoHighLevel reporting dashboards after a client asks for numbers nobody set up to capture.
A won deal sitting in your pipeline doesn't say which ad, email, or funnel actually produced it. That takes revenue, ad spend, and attribution sitting on the same dashboard, not three different spreadsheets.
What the Opportunity Widgets Actually Show
GoHighLevel ships seventeen separate Opportunities widgets built for this. A handful matter more than the rest.
Won Opportunity Value adds up every closed deal's dollar total. Opened Opportunity Value shows what's still in the pipeline, and Total Opportunity Value combines both regardless of status.
Volume widgets sit alongside the revenue ones. Won Opportunities and Lost Opportunities count deals rather than dollars, and Opportunity Counts by Status breaks the pipeline into Open, Won, Lost, and Abandoned.
Each widget renders as a number, a donut, a bar, a line, or a table. HighLevel's Opportunities widget library supports 24 condition fields, including pipeline, stage, assigned user, and lost reason.
Group by source instead of stage, and the same revenue splits out by where each deal came from. That's what turns a pipeline report into an ROI report.
It works best when your stages already match how deals actually move, the way we laid out in building a sales pipeline in GoHighLevel from scratch.
How to Track ROI Once Spend Joins the Dashboard
Revenue only answers half the question. The cost side has to come from the ad platform itself.
Meta Ad widgets pull spend, average CPC, cost per conversion, and CPM into the same dashboard, next to clicks, impressions, reach, and click-through rate. Table-style widgets rank campaigns by spend or conversions automatically.
None of it populates until you connect a Meta ad account under Settings, then Integrations, then Facebook, and grant LeadConnector the right permissions on your Business Manager.
Google Ads widgets work the same way, eleven of them, covering total cost, cost per click, clicks, impressions, and conversions, plus breakdowns by campaign.
Connect it once at the sub-account level, using your Google account, your Manager account, and the ad account itself. Every widget added afterward inherits that connection automatically.
Put a Won Opportunity Value widget on the same dashboard as either spend widget, and you can read return on ad spend at a glance. That's the kind of dashboard worth setting up properly during GHL setup and configuration rather than bolting on later.
Giving the Credit to the Right Channel
Spend and revenue on the same dashboard still don't say which channel caused which deal. That's what attribution is for.
GoHighLevel tracks two kinds. First Attribution looks at a contact's original touchpoint, and Latest Attribution looks at whatever they interacted with most recently. Someone who found you through a Google ad and came back later through an email carries different source data under each one.
Three layers of data exist to filter on, through HighLevel's attribution and UTM filtering:
- Medium: HighLevel's own classification of forms, surveys, calendars, and social sources.
- Session Source: groups traffic into direct, organic, paid, social, and referral.
- UTM parameters: the raw values themselves, down to campaign, keyword, and ad group.
Add attribution to a widget's conditions before its UTM fields appear, and a single filter group lets you group opportunity revenue by Session Source or Medium directly.
That's the setup that answers the real question: not how many leads a funnel produced, but how much closed revenue traces back to it. Funnels built with clean UTM parameters from the start, the kind covered in our funnel builder setup guide, feed this reporting without cleanup later.
Check it on a schedule instead of only when a client asks. Workflow automation can push the same numbers to your inbox instead of you going to find them.
Cover photo by Negative Space on Pexels
Need help implementing this in GoHighLevel?
Our team builds, automates, and scales GoHighLevel systems for agencies every day. Book a free call and we'll map out exactly what to ship next.
Book a free call