AI Playbook/Recipe

Show your boss

How do I compare specific funnel events year over year, so I see quality and not just volume?

Volume is the easy number to report. Quality hides one event deeper. This report puts every funnel event side by side across key timeframes, so you can see which growth is real and which is just noise.

Copy
Copy & export
Copy link
Plain page URL.
Copy page as Markdown
Full recipe content for LLMs
Open in AI
Open in Claude
Recipe prefilled.
Open in ChatGPT
Recipe prefilled.
Open in Gemini
Recipe prefilled.
Open-in actions need you logged into your Claude / ChatGPT / Gemini account in this browser. Not logged in? Copy as Markdown and paste it in.
Share
Dasha DagayevaEverflow
Michael Cole
Chief Marketing Officer
~10 minutes

Medium

LinkedIn
COMMUNITY RECIPE · SUBMITTED BY
Gaia, Inc
LinkedIn
~10 minutes
Medium
https://www.linkedin.com/in/michaelcole6/
01

Quick Answer

A read-only report that pulls any Everflow event you care about, not just the top-line conversion, across the windows that matter (this month versus the same month last year, last month versus last year, quarter to date, last quarter) and shows the change for each. So instead of demo requests are down 5%, you see one level deeper: requests down, but qualified requests down 19% while traffic is up 158%. That's the real story, and Everflow's built-in Variance Report can't show it today because it can't filter by event.

Everflow, Google Sheets, Apps Script, HubSpot
This prompt uses
02

The Pain

Volume is a vanity number. Quality is the truth, and it hides one level down.

Here's a shape that happens all the time. Traffic is up huge year over year, the top of the funnel looks great, and leadership assumes things are healthy. Then you look one event deeper and the qualified leads are actually down. You grew the noise, not the pipeline.

The reason this is hard to catch: most teams compare the top-line number (demo requests, signups, leads). But a lead isn't a qualified lead, which isn't a sales-qualified lead, which isn't an opportunity. A spike in generic signups can mask a drop in the events that actually move toward revenue. You need to compare the specific event, across time, side by side.

Everflow has a Variance Report, but it can't filter by event today. So you're stuck comparing demo requests when what you needed was the layer below. This lightweight spreadsheet script bridges the gap, pulling each event across each time window and refreshing itself on every run.

An event in Everflow is any action you fire as a conversion: a signup, a qualified lead, a stage change pushed from your CRM. This recipe compares any of those events over time, so you can see where momentum is real versus just volume.

The pattern
Every business with a multi-step funnel has a quality ladder, and the top-line number almost never tells you which rung is moving. This report compares any rung you choose, side by side, over time.

Picture a segment up 158 percent on traffic year over year, still trending behind last year on the events that actually matter. The raw lead count hides it completely. That gap is the exact moment this report earns its keep.

An illustrative scenario, not a customer quote
02b

Foundation Prompt

Set this once. Reuse across every recipe.

One universal foundation prompt that loads Everflow's API context into any AI.

~55 lines · ~340 tokens
# Everflow API Foundation Prompt

## Role & Objective
You are an Everflow API specialist. Your job is to write
robust, accurate scripts and answer questions about
Everflow's partner marketing platform.

## Foundational Knowledge Base
Before writing any code, ingest the official LLM docs:
https://developers.everflow.io/llms.txt
03

The Prompt

Same prompt across Claude, ChatGPT, and Gemini. It compares specific funnel events, not just the top-line conversion, across each time window and reports the change for each. Tuned to flag tiny denominators so a 1-to-2 move does not read like a trend.

Paste this prompt into Claude. Replace {API_KEY} and {NETWORK_ID} with your values, and edit the events list to your own funnel.

# role
You are an Everflow reporting assistant. Build me an event variance report
in Google Sheets, plus an Apps Script that refreshes it on each run.

# inputs
api_key      = {API_KEY}
network_id   = {NETWORK_ID}
timezone_id  = 80                 # America/Los_Angeles; change to yours
currency_id  = USD

# what I want
A table that compares specific funnel EVENTS (not just the top-line conversion) across
time windows, and shows the percent change for each. One row per event, columns grouped
by window.

# my quality ladder (events, in funnel order) - edit these to your own
# A CRM (HubSpot, Salesforce) usually fires these stage changes into Everflow as events.
events = [
  { name: "Leads",         match: "conversion" },                  # base conversion
  { name: "MQLs",          match: "event", event_id: {MQL_EVENT_ID} },
  { name: "SQLs",          match: "event", event_id: {SQL_EVENT_ID} },
  { name: "Opportunities", match: "event", event_id: {OPP_EVENT_ID} },
  { name: "Customers",     match: "event", event_id: {CUSTOMER_EVENT_ID} }
]

# segment (the filter that defines this report) - pick one or combine, or leave empty
segment_filters = [
  # { "filter_id_value": "{OFFER_ID}", "resource_type": "offer" },
  # { "filter_id_value": "{LABEL}",    "resource_type": "label" },
]

# windows (compute these dates relative to today)
MTD   = this month start through today      vs   MTDLY  = same span, last year
QTD   = this quarter start through today     vs   QTDLY  = same span, last year

# how to pull each number
- Clicks and base conversions ("Leads"):
    POST /v1/networks/reporting/entity/table
    body: { from, to, timezone_id, currency_id, columns:[{column:"offer"}],
            query:{ filters: segment_filters } }
    clicks = sum(row.reporting.total_click); leads = sum(row.reporting.cv)
- Event-level counts (MQL, SQL, Opportunity, Customer):
    POST /v1/networks/reporting/postconversions
    body: { from, to, timezone_id, currency_id, columns:[{column:"event_name"}],
            query:{ filters: segment_filters } }
    for each row: match the row's event id to my events[] and sum row.reporting.event

# output
Build a sheet "Event Comparison" with one row per event and, for each window pair, three
columns: Current, Last Year, percent change. Add a "Report Legend" block that spells out
the exact date range behind every abbreviation (MTD, MTDLY, QTD, QTDLY).

# guardrails
- Run the windows CONCURRENTLY, not one after another. This is 8 calls total
  (2 per window x 4 windows); fire them in parallel and assemble the table once
  they all return. Never loop one call per event - one call per window returns
  every event at once.
- Percent change = (current minus prior) divided by prior. If prior is 0, show "new"
  instead of a giant percentage.
- Small-base floor: if prior is under 5, show the raw counts and label the change
  "low base" instead of a huge percentage.
- Event counts include every event the reporting endpoint returns. Everflow's reporting
  filters have no working event-status filter, so do NOT claim "approved only" in the
  output. If your funnel has meaningful review lag, say so next to the number.
- Read-only. Never write back to Everflow.
- Use the short keys in headers plus the legend; full labels are too wide.
04

The Steps

Connect the Everflow MCP, or grab an API key

If you have the Everflow MCP connected, you can skip the key entirely. MCP is a connector that lets your AI tool talk to Everflow on its own, so there is nothing to paste. No MCP yet? Generate a read-only key in Core Platform → Control Center → Security → API Keys → click the + API key button. Read-only on Reporting is enough.

List your quality ladder

Name the events you want to track, in funnel order. The CRM model is Lead, MQL, SQL, Opportunity, Customer, whatever you fire as conversion events in Everflow. An event is any action you record as a conversion. A CRM like HubSpot or Salesforce usually pushes these stage changes into Everflow as events.

Pick your segment and windows

A segment is just a filter: one offer, one label, one partner, or all traffic. The windows are month to date versus the same span last year, and quarter to date versus last year. Edit either to fit how you report.

Run the prompt

With MCP connected, just run the prompt as written and the agent builds the variance table for you. On the API tab, first replace {API_KEY} and {NETWORK_ID} and your event IDs, then run it. It returns a Google Sheet plus an Apps Script: paste the script into Extensions → Apps Script, set your filter, and run. The same prompt works in Claude, ChatGPT, or Gemini.

Read the variance

Look for the divergence: where the top of the ladder is up but a lower rung is down. That gap is your early-warning signal, weeks before it shows up in closed revenue. After this first run, the tab regenerates itself each time, so the report stays current with no rework.

05

Sample Output

The Apps Script regenerates an "Event Comparison" tab on each run. One generic segment: clicks plus the quality ladder down through Opportunities, over two of the four windows. Clicks are way up. In the current month the qualified rungs are flat-to-down; over the quarter it is subtler, and that difference is the whole point (see the read below).

Everflow · Event Comparison · Jun 2026Saved
Share
File  ·  Edit  ·  View  ·  Insert  ·  Format  ·  Data  ·  Extensions
A1|fxEvent Comparison · all traffic
ABCDEFG
2EventMTDMTDLYChg%QTDQTDLYChg%
3Clicks7,2392,808+158%28,83023,591+22%
4Leads101146-31%489553-12%
5MQLs3442-19%244226+8%
6SQLs1112-8%8445+87%
7Opportunities921-57%9293-1%
Report Legend
MTD   Month-to-Date         [06/01/2026 - 06/18/2026]
MTDLY Month-to-Date Last Year [06/01/2025 - 06/18/2025]
QTD   Quarter-to-Date      [04/01/2026 - 06/18/2026]
QTDLY Quarter-to-Date Last Yr [04/01/2025 - 06/18/2025]
Chg%    (Current - Prior) / Prior
Event Comparison+ Add sheet

Read it: year over year, traffic is up 158 percent for the month while Leads are down 31 percent and MQLs down 19 percent. Volume grew, quality did not. Now look at the quarter column: SQLs are up 87 percent even as Leads (down 12 percent) and Opportunities (down 1 percent) stay flat-to-down. A single rung rising on its own is not health if the rung below it does not follow, and here the leak sits between SQLs and Opportunities. That is why you read the whole ladder instead of one number, and it is the conversation this report starts.

06

FAQ

Real questions, real answers
Why not just use Everflow's built-in variance report?

The native Variance Report can't filter by event yet, so it compares the top-line number, which is often the wrong metric. This recipe drills one event deeper, so you compare MQLs or Opportunities, not just demo requests. Full overlap with the native report is fine. Many people want this answer without logging into the platform at all.

What counts as a quality event versus a generic one?

That is your call, modeled on CRM deal stages. The common split: a generic Lead (any signup, including free-email addresses) versus a Marketing Qualified Lead (a real business contact). The freemail-versus-business-email line is the load-bearing quality signal for most B2B teams. Define your ladder once and the report tracks each rung.

MCP or API?

If you have the Everflow MCP connected, the agent pulls the event counts directly, no key to handle, and builds the variance table for you. (MCP is a connector that lets your AI tool talk to Everflow on its own.) If not, the prompt writes you a Google Sheet plus an Apps Script that calls the read-only Everflow reporting API and regenerates the tab on each run. Same report either way.

06b

Notes & Counter-Cases

Edge cases, gotchas, and things to watch.

Tiny denominators lie. The lower rungs of a funnel (Opportunities, Customers) often run on small counts. A move from 1 to 13 reads as a 1,200 percent jump and means nothing. The small-base floor in the prompt flags any window where the prior value is under 5 as low base and shows the raw counts instead, so a 1-to-2 swing does not look like a trend.

Confirm a swing across two windows. A drop that shows up month to date but not quarter to date is more likely a timing blip than a real decline. Read the MTD and QTD columns together before you raise an alarm.

Every event counts, approved or not. Everflow's reporting filters have no working event-status filter, so this report cannot restrict itself to approved events and does not claim to. If your funnel has meaningful review lag, a recent window can look soft purely because events have not been approved yet, so read the newest column with that in mind.

This overlaps Everflow's native Variance Report on purpose. The built-in report is great for the top-line number. This recipe exists for the layer below it, the specific event, and for people who want the answer without logging into the platform at all.

Your event names are your own. Lead, MQL, SQL, Opportunity, Customer is the CRM example because everyone understands it. Telehealth might track requested, consulted, approved. E-commerce might track added to cart, checked out, kept (not refunded). Swap the event names to whatever you fire in Everflow.

ASK US ANYTHING

Got a question this playbook hasn't answered yet?

Drop us the question you wish had a prompt. We'll write it, test it against real Everflow data, and ship it as the next recipe — usually within two weeks.

DJReviewed every Tuesday by Dasha & Jordan
NEWSLETTER

First dibs on new recipes

One Tuesday email. Latest industry news plus new recipes the day they ship. Unsubscribe in one click.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
×
Submit a recipe

Got a recipe of your own?

Share what's working with the Everflow API. Our team will reach out about details, timelines, and next steps.

Reviewed weekly · Author credit on every published recipe · We respond to every submission
Submit your idea and our team will reach out about details, timeline, and process.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
×
SHARE THIS RECIPE

Spread the playbook

LinkedIn no longer accepts pre-filled captions via URL. Two clicks: copy the caption below, then open LinkedIn and paste in the composer.

Your caption
Copy first, then open LinkedIn and paste in the composer.