Documentation
Data Mapping

Variable → Source

The master mapping table. Every metric on the dashboard, where it is fetched from, and which file renders it.

How to use this table
When a metric shows the wrong value or shows -, look it up here. The Source column tells you which API to debug; the Component column tells you where the row is rendered.
VariableSourceOrigin fieldStatus
Ad Spend (Google)GAdsGoogle Ads API metrics.cost_micros / 1_000_000partial
Clicks (Google)GAdsGoogle Ads metrics.clickspartial
Impressions (Google)GAdsGoogle Ads metrics.impressionspartial
Conversions (Google)GAdsGoogle Ads metrics.conversionspartial
Avg CPCGAdsmetrics.average_cpc / 1_000_000partial
CTR (Google)GAdsmetrics.ctrpartial
Cost Per ConversionGAdsmetrics.cost_per_conversion / 1_000_000partial
Ad Spend (Meta)Metainsights.spendpartial
Impressions (Meta)Metainsights.impressionspartial
Clicks (Meta)Metainsights.clickspartial
CTR (Meta)Metainsights.ctrpartial
CPC (Meta)Metainsights.cpcpartial
CPM (Meta)Metainsights.cpmpartial
Leads (Meta)Metainsights.actions[type=lead]partial
Cost Per Lead (Meta)Metainsights.cost_per_action_type[lead]partial
Landing Page ViewsMetainsights.actions[type=landing_page_view]partial
Link ClicksMetainsights.inline_link_clickspartial
ROASCalc(GHL pipelineValue / (GAds.spend + Meta.spend)) × 100live

Social Media tab

VariableSourceOriginStatus
EngagementSocialn8n push (key: meta_engagement)pending
FollowersSocialn8n push (key: followers)pending
CommentsSocialn8n push (key: meta_comments)pending
LikesSocialn8n push (key: meta_likes)pending
ViewsSocialn8n push (key: meta_video_views)pending
YouTube ViewsYTYouTube channels.list statistics.viewCountlive
YouTube SubscribersYTYouTube channels.list statistics.subscriberCountlive

Website Performance tab

VariableSourceOriginStatus
Website Conversion RateGA4GA4 conversions / sessionslive
Total Leads from WebsiteGHLleadBreakdown sum (planned)planned
Website Form LeadsGHLleadBreakdown.webformspending
Website Chat LeadsGHLleadBreakdown.webchatspending
Website Call LeadsGHLGHL contacts source = callplanned
Appointments Booked from WebsiteGHLderived from contact attributionplanned
Total Website TrafficGA4GA4 totalUserslive
Avg Time on SiteGA4GA4 averageSessionDurationlive
Avg Pages per VisitGA4GA4 screenPageViewsPerSessionlive
Mobile Speed ScorePSIPageSpeed Insights mobile.lighthouseResult.categories.performance.scorelive
Desktop Speed ScorePSIPageSpeed Insights desktop.lighthouseResult.categories.performance.scorelive
Clarity Sessions / Rage Click / Dead Click / Scroll DepthClarityMicrosoft Clarity API (not yet integrated)planned

SEO / GEO / AIEO tab

VariableSourceOriginStatus
Organic Traffic to SiteGSCGSC clickslive
Top Pages from Organic SearchGSCGSC dimension=page (UI pending)planned
Organic Website Form LeadsGHLderived from contact source = organic_seoplanned
Appointments from Organic TrafficGHLappointmentsBySource.organic_seoplanned
Keywords in Top 3/5/10/20SERPDataForSEO via n8n cachepartial
Total Tracked KeywordsSERPDataForSEO summary.totalKeywordspartial
Top 10 Keywords (GSC)GSCGSC searchAnalytics dimensions=querylive
Total BacklinksSERPDataForSEO backlinks summarypartial
Referring DomainsSERPDataForSEO referringDomainspartial
Domain RankSERPDataForSEO rankpartial
New Reviews - TotalGBPPlaces API userRatingCountlive
New Reviews 5 StarsGBPPlaces API reviews where rating=5 (sample)partial
Average RatingGBPPlaces API ratinglive
Calls from GBPGBPPerformance API callClicks (CALL_CLICKS)live
Total GBP ActionsGBPPerformance API sum of websiteClicks + callClicks + drivingDirectionslive

Local SEO Keywords tab

VariableSourceOriginStatus
Views on SearchGBPPerformance API BUSINESS_IMPRESSIONS_DESKTOP_SEARCH + MOBILE_SEARCHlive
Views on MapsGBPPerformance API BUSINESS_IMPRESSIONS_DESKTOP_MAPS + MOBILE_MAPSlive
Total ViewsGBPsum of abovelive
Phone CallsGBPPerformance API CALL_CLICKSlive
Website ClicksGBPPerformance API WEBSITE_CLICKSlive
Driving DirectionsGBPPerformance API BUSINESS_DIRECTION_REQUESTSlive
Tracked Keywords (Local Pack / Maps)Localclients.local_seo_keywords JSONBlive
Geo grid embedLocalclients.local_seo_keywords.embed_url (Local Falcon / Local Dominator)live

Email & SMS tab

Every row in this tab is an n8n push (ext() helper). Until n8n is configured, every row is hidden by the auto-hide logic.

Variablen8n key
Emails Sent (Total)email_total
Outbound / Inbound / Automated Emailsemail_outbound, email_inbound, email_automated
Email Response Rateemail_response_rate
SMS counts and ratesms_total, sms_outbound, sms_inbound, sms_automated, sms_response_rate
Total Emails / SMS Senttotal_emails_sms_sent
Total Conversationstotal_conversations
Calls (Total)calls_total
Bookings / Sales Won from Email / SMSGHL attribution (planned)

Calculated KPIs tab

VariableSource / formula
Cost/Leadn8n push (cost_per_lead) — fallback (GAds.spend + Meta.spend) / leads if pushed value missing
Cost/Appointmentn8n push (cost_per_appointment)
Cost/Quoten8n push (cost_per_quote)
Cost/Salen8n push (cost_per_sale)
Cost Per Customer Acquisitionn8n push (cost_per_acquisition)

Client Portal — Summary sub-tab

VariableSource / formula
Total RevenueGHL pipelineValue (sum of won deal monetaryValue)
Avg Ticket Valuerevenue / wonCount
Cost Per AppointmentadSpend / booked
Cost Per SaleadSpend / wonCount
Lead to Appointment Rate(booked / leads) × 100
Lead to Sale Rate(won / leads) × 100
Appointment to Sale Rate(won / booked) × 100
Leads InGHL opportunities.total (date-filtered)
Appointments Booked / ShowedGHL calendar events (date-filtered)
QuotedGHL opportunities in stage that contains "quote" (case-insensitive)
Jobs SoldGHL won deals (date-filtered)
Webforms / Webchats / Phone Calls / Qualified CallsGHL leadBreakdown (with n8n fallback for older clients)