AI Playbook/Recipe

Get my data out

How do I automate the weekly report I email myself every Monday morning?

Open standup already knowing how last week went. Revenue, top movers, and a one-paragraph read, in your inbox before anyone starts talking.

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
Dasha Shareyko
Product Education Manager
~15 min to ship

Medium

LinkedIn
COMMUNITY RECIPE · SUBMITTED BY
Gaia, Inc
LinkedIn
~15 min to ship
Medium
https://www.linkedin.com/in/dasha-shareyko-d-778b82120/
01

Quick Answer

Pulls last week’s revenue, conversions, and payouts, compares them to the prior week, shows you the top movers and unusual movement, and emails the weekly report to your inbox every Monday at 8 AM. The wow moment is opening your inbox before standup and finding the report already written.

Everflow, Slack, Gmail
This prompt uses
02

The Pain

Every Monday, somebody pulls the numbers by hand. Log into Reporting, pick last week, eyeball the movers, write three sentences for the boss. Often described in the same breath as "It's killing me."

Everflow's Scheduled Reports already cover the simplest version: pick your columns, pick your schedule, get the report attached to an email. Great for getting the raw data delivered on a schedule. The thing they don't do is the interpretation: week-over-week deltas, biggest movers, unusual movement callouts, the one-paragraph commentary you'd write yourself if you had time. That's the gap this recipe fills.

The pattern is universal: founders want it for their investor update, AMs want it to stay top-of-mind with their boss, ops leads want it because the exec asks "How are we doing" every Monday at standup. The numbers exist in Everflow. The problem is the assembly.

The pattern
Roughly 1 in 16 customers bring it up, almost always AMs and agency leads doing it by hand on Monday.

Every weekend when I do the weekly reports or monthly reports, it's killing me. I need to spend my whole day to do that.

In-house program manager, consumer electronics e-com brand
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. Builds the weekly digest with headline numbers, top movers, anomaly callouts, and a one-paragraph commentary, then sends to email and/or Slack.

# role
You are an Everflow ops assistant writing a weekly performance digest.


# who it goes to
recipient = self | client            # default self
- self:   written for you and your manager. Name partners plainly, keep the internal
          shorthand, and say what looks wrong as well as what looks good.
- client: written to be forwarded to the brand or advertiser you manage. Same numbers,
          different manners - no internal shorthand, no speculation about causes you
          have not confirmed, and never name another client's partners. If a figure
          moved for a reason you cannot evidence, say it moved and stop there.
Everything else in this prompt is identical for both. Only the voice and what you are
willing to assert change.

# inputs
api_key      = {API_KEY}
network_id   = {NETWORK_ID}
recipients   = {RECIPIENTS}        # comma-separated emails or Slack channel
timezone     = {TIMEZONE}          # e.g. America/Los_Angeles
currency     = {CURRENCY}          # default USD
program_name = {PROGRAM_NAME}      # for the subject line

# task
1. Compute two date windows in {timezone}:
     this_week  = last 7 full days (Mon–Sun)
     last_week  = the 7 days before that
2. POST /v1/networks/reporting/entity/table for both windows:
     - body: { from, to,
               columns: [{"column":"affiliate"}],
               query: { filters: [] } }
     - request metric columns: revenue, payout, conversions, clicks, gross_sales
3. Aggregate program totals for each window:
     revenue_total, payout_total, conversions_total, clicks_total, cvr
4. Compute WoW deltas (this_week vs last_week):
     - absolute and % change for each metric
     - flag any metric moving more than ±25% as a "headline mover"
5. Rank affiliates by this_week revenue. Pick top 5.
6. Compute biggest movers (top 3 risers + top 3 fallers) by absolute revenue change.
   - Skip affiliates with <$500 revenue in either window (too noisy)
   - Skip affiliates with <30 days of history (no baseline)
7. Anomaly checks:
     - Any affiliate with >50% drop WoW in revenue
     - Any affiliate with >100% rise WoW in conversions but flat clicks
     - Any affiliate that converted in this_week but had zero in last_week (new partner)
     - Program-level CVR moved by more than ±20% (something structural shifted)
8. Write a 2–3 sentence commentary explaining what changed and why it might matter.
   Examples: "Revenue is up 12% WoW, driven mostly by AffiliateA returning after
   a slow week. Watch AffiliateB: conversions doubled but clicks are flat,
   which usually means tracking duplication or a postback misfire."
9. Format the email:
   - Subject: "{program_name} weekly digest · week of {monday_date}"
   - Section 1: Headlines (revenue / payout / conversions / CVR, all with WoW %)
   - Section 2: Top 5 affiliates this week (revenue + WoW delta)
   - Section 3: Biggest movers (3 up + 3 down)
   - Section 4: Anomalies (only if any tripped)
   - Section 5: 2–3 sentence commentary
   - Footer: link to the same window in the Everflow Reporting page
10. Send via SMTP / Gmail API / Slack webhook to {recipients}.
11. Return the email body in Markdown so I can verify before scheduling.

# guardrails
- All currency in {currency}. If partners pay in mixed FX, note "FX-mixed"
  in the footer and skip currency-blended deltas.
- Skip the report entirely if last_week falls on a US federal holiday week
  (output a one-line note "holiday week, comparison skipped").
- Min-tenure: exclude affiliates with `time_created` < today - 30 days from biggest-movers and biggest-fallers sections (already skipped from movers; extend to all delta-based rankings). New partners with only 1-2 weeks of history always look like "huge movers" against a near-zero baseline. List them in a separate "new this period, first-week numbers" callout so they're visible without distorting the trend lines.
- Confirm any "biggest mover" using two windows: this_week vs last_week AND this_2_weeks vs prior_2_weeks. A partner that moves big on the 1-week view but flat on the 2-week is a spike, not a trend: label them "spike, not trend" so the recipient doesn't over-react.
- Don't flag a "new partner" if total revenue is under $100 (test traffic).
- Refunds posting in the next week will distort retroactive numbers. Note
  in the footer that figures are point-in-time.
- Round currency to whole dollars. Round percentages to whole numbers.
- Don't editorialize beyond the commentary block. Keep it factual.

# What you must disclose — NOT CHECKED
An empty result is NOT a clean result. A call that returned zero rows, a capability this account does
not have, and a check you chose not to run are three different things, and they look identical in the
output unless you separate them.
End every run with a NOT CHECKED block. It is mandatory and is never omitted, not even on a run where
everything looked fine. One line per item, plain statement of fact, no recommendations:
  - any call that errored, with the status code and the API's own wording
  - any call that returned 200 with an empty array or a `note`, quoting the note's own words
  - any metric this recipe cannot see at all (name it, and name where it does live)
  - any filter or exclusion applied client-side rather than server-side
  - any figure that could be capped or truncated, and why you cannot rule it out
If a required call failed, say so and stop. Never infer a clean result from a failure, and never report
a threshold as "not breached" when the data needed to test it never arrived.

# Paging and volume
/reporting/conversions paging is QUERY-STRING ONLY (?page=&page_size=, max 2000). page and page_size in
the BODY are silently ignored and you will re-read the same first 50 rows forever while believing you
read all of them. Read paging.total_count and loop until you have collected it; state both numbers.
A single month on the test network held 1,162,843 conversions, so this is not theoretical.
/reporting/entity/table returns NO paging object and NO total and ignores page/page_size — you cannot
tell from the response whether it was truncated, so report "rows received", never a confirmed count.
Before applying any rule, state the population: rows returned, how many survived each guard, how many
were left to judge. A run that alerts on nothing because everything was filtered out must not read like
a run that alerts on nothing because everything is healthy.

   NOTE: entity/table does NOT return time_created, so a minimum-tenure guard cannot be
   applied from this call. Get it from GET /v1/networks/affiliates?page=1&page_size=5000 and
   join on columns[0].id. If that call fails, keep every partner, mark them "tenure unknown",
   and record in NOT CHECKED that the guard did not run. Never drop it silently.
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.

Pick your delivery channel

Email (via Gmail / Apps Script / SMTP) or Slack (via incoming webhook). Both work; email is the default for the "boss-readable" version.

Run the prompt

With MCP connected, just run the prompt as written. On the API tab, first replace {API_KEY}, {NETWORK_ID}, {RECIPIENTS}, and {TIMEZONE}, then run it.

Run it once in Claude, ChatGPT, or Gemini

First run gives you last week's snapshot versus the week before, plus a draft email body. Verify the numbers match what you see on the Reporting page. The same prompt works in any of the three.

Tune the commentary

The prompt includes a 2–3 sentence commentary block. First run is generic; tighten it to your voice and what your boss actually cares about.

05

Sample Output

Everflow
Everflow Reports <reports@everflow.io>
to me  ·  Mon, May 5 at 8:00 AM
INBOX
Acme Affiliate Program weekly digest · week of May 5, 2026
Headlines ───────── Revenue $148,420 ▲ +12% WoW Payout $42,118 ▲ +9% Conversions 2,841 ▲ +14% Clicks 184,202 ▲ +3% CVR 1.54% ▲ +0.15pp Top 5 affiliates this week ────────────────────────── 1. Coupon publisher (P_4421) $38,210 ▲ +24% 2. Push-traffic aggregator (P_2018) $29,440 ▲ +6% 3. Native widget partner (P_3072) $18,902 ▼ -8% 4. Influencer network (P_9112) $14,108 ▲ +41% 5. Email-list partner (P_5503) $11,290 ▲ +3% Biggest movers ────────────── Risers Coupon publisher +$7,400 (back from a slow week, new creative) Influencer network +$4,100 (first full week on a new offer) Cashback publisher +$2,800 (scaled spend on existing offer) Fallers Display retargeter -$5,200 (paused, resumes next Monday) Native widget partner -$3,100 (CVR collapsed 2.1% → 0.8%, investigate) Seasonal-only partner -$1,900 (expected, holiday pull-forward) Anomalies ───────── ⚠ Native widget partner: conversions doubled, clicks flat. Likely tracking duplication or postback misfire. Pull the conversions report. ⚠ New cashback publisher (P_8801): 1,400 conversions week 1. Verify quality before next payout cycle.
Commentary
Revenue is up 12% WoW, driven mostly by the coupon publisher returning to baseline after a slow week and the influencer network ramping on a new offer. The headline number looks healthy, but the native widget partner's flat-click conversion spike is the kind of pattern that's bitten us before, worth a 5-minute look before next payout.
Open in Everflow Reporting  ·  Figures are point-in-time; refunds posting next week may move retroactive numbers.
06

FAQ

Real questions, real answers
Doesn't Everflow already have Scheduled Reports?

Yes. And they're great for getting raw data delivered on a schedule. Pick your columns, pick your window, get a report attached to an email. If you just need the numbers in your inbox on a schedule, use them.

This recipe adds the layer Scheduled Reports doesn't: week-over-week deltas, biggest movers, unusual movement flags, and a one-paragraph commentary a human would write. Customers who use Scheduled Reports often run this on top. The native feature gives you the data, the recipe gives you the read.

What scheduling tool should I use to run this weekly?

Make and Zapier are easiest if you've never written code. Google Apps Script is free and lives next to your Gmail; if your weekly report sends from a @yourcompany.com email, Apps Script is the cleanest. All three trigger the same prompt the same way.

Why WoW (week over week) and not MoM (month over month)?

Weekly is the schedule most affiliate program managers actually meet on. MoM smooths out the noise, but it also smooths out the early signal. A partner whose CVR collapsed yesterday won't show up MoM until next month. WoW lets you catch problems while there's still time to act. Run a separate MoM report for the exec / investor schedule.

06b

Notes & Counter-Cases

Edge cases, gotchas, and things to watch.

If a partner was paused intentionally during the window, the digest annotates the drop (e.g., "paused, confirmed with AM, resumes next Monday") instead of flagging it as an anomaly.

WoW deltas can be misleading on partners with weekly seasonality (weekend-heavy publishers, B2B with weekday spikes). The digest surfaces a MoM comparison alongside WoW on any partner where the WoW delta exceeds 50%.

Anomaly detection uses a two-window check: a conversion-spike with flat clicks is the textbook tracking-dup pattern, so the digest calls those out specifically rather than just labeling "big mover."

Brand-new partners (under 30 days) get their own "new this week" section so a 1,400-conversion week-1 doesn't get celebrated before payout quality is verified.

Partner Self-Serve: The same shape works for partners self-serving the answer. Swap affiliate_id = self and a partner-scoped API key, and any partner can run this recipe against their own performance, no AM needed. Useful for networks that want partners to answer “How am I doing?” on their own. Everflow reps have asked for this pattern on 6+ calls.

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.