Select a client from the Clients tab and click "View report" to load their data.
—
Ad spend
Lead performance GHL
Campaign breakdown
Fetch live data to load campaign breakdown.
Appointments booked GHL
All appointments are counted from GHL regardless of booking source. Self-booked, SDR-booked and AI agent-booked appointments are all included in the total.
Weekly trend (from call log)
Calls & conversations Sheets
Funnel summary
Select a client from the sidebar or Clients tab, then click "Credentials" to manage their API keys.
--
—
API credentials
Meta ads
GoHighLevel — sub-account
Calls — Google Sheet
Your sheet has: Date | Dials | Conversations | Apps — one row per client per month tab.
Global integration setup
These are agency-level credentials used across all clients. Per-client overrides can be set on the Credentials tab.
Meta ads — global system user token
This single token covers all ad accounts assigned to your AgencyReporting system user. You do not need a separate token per client.
GHL agency API key
GHL's API blocks direct browser requests (CORS). To pull live GHL data automatically you need a small proxy server.
The simplest option is a free Cloudflare Worker or Railway app — ask me to generate the proxy code and I'll build it for you in under 5 minutes.
Alternatively, leave this blank and enter leads and appointments manually per client using the manual override fields on each client's Credentials tab.
Google Sheets API
To get a Google API key: Google Cloud Console → APIs & Services → Credentials → Create API key → restrict to Sheets API.
The Sheet ID is the string between
The Sheet ID is the string between
/d/ and /edit in your sheet URL.
Sheet structure confirmation
How data is pulled
META — Leads are contacts in GHL tagged with source "Facebook" or "Meta". Spend is pulled from the Meta Marketing API using the ad account ID stored per client.
GHL — Appointments are all calendar events within the date range for the client's sub-account, regardless of status. Leads are contacts created within the range whose source is Meta/Facebook.
SHEETS — The call log sheet is read by matching the current month tab name (e.g. "March 2025") and finding the row where the client name column matches the stored client name.