Skip to content
Edishan Lee TenorioAI Automation Specialist & CRM DeveloperSoftware Engineer · Full-Stack Developer · Mobile Developer

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
n8n canvas: daily 7 AM trigger, Meta Ads, Google Ads and GoHighLevel data pulls, merge and KPI calculation, KPI sheet, HTML email report and a CPL alert to Slack.Open full size ↗ (opens the workflow screenshot in a new tab)
The production n8n canvas · open full size to read every node

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

  1. 01

    Runs daily

    The workflow runs at 7:00 AM every morning.

    • Every Day 7:00 AM
  2. 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
  3. 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
  4. 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.