W05 · Reporting · n8n
Daily Ads + Pipeline KPI Report: Meta, Google Ads & GoHighLevel
An ads-to-pipeline KPI report joins ad spend from Meta and Google with real outcomes from the CRM, so cost per lead and cost per booked call reflect actual bookings, not platform-reported conversions.
- For
- Agency owners
- Built in
- n8n
- Stages
- 4 stages, 11 nodes
Open full size ↗ (opens the workflow screenshot in a new tab)01The problem
Agency owners log into several platforms every morning to answer one question: is the ad spend turning into booked calls?
02How it works
- 01
Runs daily
The workflow runs at 7:00 AM every morning.
- Every Day 7:00 AM
- 02
Pull the data
Yesterday's spend and conversions come from Meta and Google Ads, and the pipeline (new leads, booked calls, revenue won) comes from GoHighLevel.
- Meta Ads (Yesterday)
- Google Ads (Yesterday)
- GHL Opportunities
- 03
Calculate KPIs
Ad spend is joined to real CRM outcomes to calculate cost per lead, cost per booked call and ROAS.
- Merge Sources
- Calculate KPIs
- 04
Deliver and alert
A row is appended to the KPI sheet that feeds a Looker Studio dashboard, a branded HTML report is emailed, and Slack is alerted if cost per lead goes over target.
- Append to KPI Sheet
- Build HTML Report
- Email Daily Report
- CPL Over Target?
- Alert: CPL Spike
03Built to fail safely
- Uses real CRM bookings, not platform-reported leads
- A per-client cost-per-lead target triggers a Slack alert the moment it's exceeded
- Every day is appended to a sheet, building a history the dashboard reads from
Outcome. The numbers an agency owner checks every week, calculated from real bookings and delivered every morning.
04Stack
- n8n
- Meta Ads
- Google Ads
- GoHighLevel
- Google Sheets
- Looker Studio
- Gmail
- Slack
FAQ
Questions about this workflow.
01Why not just use the numbers in Meta and Google Ads?
Ad platforms report their own conversions, not whether a lead actually booked. This report joins spend to GoHighLevel pipeline data, so cost per booked call is real.
02Where do the numbers show up?
In a Google Sheet that powers a Looker Studio dashboard, in a daily email report, and as a Slack alert when cost per lead goes over target.
03Can it run for several clients?
Yes. The cost-per-lead target and report recipient are set per client.
Next step
Want this workflow in your business?
Tell me how leads, bookings and follow-ups work today. I'll map where this workflow fits, what it connects to, and what it should be measured by.