AI Playbook/Recipe

Theme

How do I find affiliates who stopped sending traffic so I can reactivate, pause, or offboard them?

The dormant-partner reactivation list, with paused/seasonal/brand-new-affiliate false positives filtered out before it lands in your inbox.

For
AM, Ops
In
e-com, lead-gen, financial services, SaaS, iGaming, mobile
Dasha Dagayeva
Dasha Dagayeva
Product Education Manager (she/her)
~15 min to ship

Medium

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
01

Quick Answer

A copy-paste prompt that pulls every active partner with zero clicks and zero conversions in the last 30 days, filters out the false positives (paused, brand-new, seasonal, low-volume-but-high-quality), and emails you a clean list grouped by reactivation priority. Runs weekly on a cron.

Everflow, Email
This prompt uses
02

The Pain

Every affiliate program has a long tail of partners who stopped sending traffic months ago and never got cleaned up. They sit in the partner list, look "approved," and quietly distort every average — your active-partner CVR, your per-partner payout, your "we have 800 partners" number on the sales deck. The fix is the same workflow at every company: open Reporting, filter to last 30 days, scroll for affiliates with zero clicks, decide one by one whether to reactivate, pause, or offboard. Hours of work, nobody's job, gets pushed to next quarter.

It comes up in roughly 1 in 5 customer conversations (122 distinct accounts in the last 16 months) — the biggest partner-ops pain in the dataset, more-mentioned than fraud or leaderboards. The Everflow Reporting page can filter by zero-click partners, but the manual scrub (which is dormant intentionally vs needs outreach vs should be offboarded) is what nobody has 90 minutes for on a Wednesday. The recipe pulls every active partner with zero activity in the last 30 days, filters out the false positives (paused on purpose, brand-new, seasonal, low-volume-but-high-quality), and emails a clean reactivation/offboard list grouped by recommended action.

The workflow Everflow's own solutions engineers walk customers through on demos — "they haven't sent us any traffic in 30 days, we're going to deactivate them…" — is exactly what this recipe automates. Same logic, runs weekly, surfaces the list before anyone has to remember to look.

Stat
Dormant-partner cleanup is the most-cited partner-ops pain in our customer call dataset — 122 distinct customers in 16 months, roughly 1 in 5 active Everflow accounts. Bigger than fraud, bigger than leaderboards.

Trying to activate and re-engage dormant affiliates… currently, we're not able to segment out based off of that activity. Do you have something like that?

Affiliate lead at a consumer wellness brand
02b

Foundation Prompt

Set this once. Reuse across every recipe.

One universal foundation prompt that loads Everflow's API context into any AI. Paste it once, then run any recipe on top of it. Ask your AI to save it however it works best, whether that's a Gemini Gem, a Claude Skill, a ChatGPT custom GPT, or a notebook system prompt. Same content, your AI's format.

~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. Pulls every active partner with zero clicks/conversions in the window, then filters out paused, brand-new (under 30 days), and seasonal-pattern partners before tiering the rest by reactivation priority.

v1.0 · tag

# role
You are an Everflow ops assistant.

# inputs
api_key            = {API_KEY}
network_id         = {NETWORK_ID}
days               = {DAYS}                  # default 30
new_partner_days   = {NEW_PARTNER_DAYS}      # default 30
seasonal_lookback  = 365                     # for spotting Q4-only partners
min_lifetime_value = 500                     # USD, partners under this = "low value"

# task
1. POST /v1/networks/affiliatestable
   - body: { filters: { account_status: ["active"] } }
   - returns the full active partner roster with affiliate_id + name +
     network_affiliate_id + time_created
2. POST /v1/networks/reporting/entity
   - body: { from: today - {days}, to: today,
             columns: [{column: "affiliate"}],
             query: {} }
   - returns clicks + conversions per active partner over the window
3. Cross-reference: any partner from step 1 NOT in step 2's results,
   OR present with clicks=0 AND conversions=0, is a dormancy candidate.
4. Apply false-positive filters. Exclude a partner if ANY are true:
   - time_created < today - {new_partner_days}d (too new)
   - account_status != "active" (paused or archived intentionally)
   - they had clicks or conversions in the prior {days}d window before this one
     (intermittent activity, not dormant)
5. Score remaining partners by reactivation priority. For each, also pull
   their lifetime stats:
   - POST /v1/networks/reporting/entity with from = time_created,
     to = today, columns: [{column: "affiliate"}]
   Tier them:
   - tier_high   = lifetime conversions >= 50 OR lifetime payout >= 5000
   - tier_watch  = lifetime conversions 5-49 OR lifetime payout 500-4999
   - tier_offboard = lifetime conversions < 5 AND lifetime payout < 500
6. For seasonal detection, check the same partner's activity in the
   same window one year ago (today - 365d to today - 365d + {days}d).
   If they had >0 clicks then but 0 now, tag them "seasonal_check" and
   move to tier_watch regardless of lifetime score.
7. Format an email digest grouped by tier. For each partner show:
   - name, network_affiliate_id, days_since_last_click, lifetime_payout,
     lifetime_conversions, account_manager (if available), seasonal_check tag
   - link to the partner's page in Core Platform
8. Return Markdown summary so I can verify counts before sending.

# guardrails
- Do not include partners with account_status = "paused" or "rejected".
- Min-tenure: exclude partners with `time_created` < today - {new_partner_days} days (default 30). New partners haven't been on long enough to confirm dormancy — they're still in onboarding. Default 30d; tighten to 14d for mobile, loosen to 60d for e-com with longer ramp-up.
- Confirm any "dormant" verdict using two windows: last {days} days AND last {days}*2 days. A partner who shows dormant on the short window but had activity in the longer window is intermittent, not dormant — drop to tier_watch instead of tier_offboard.
- Do not double-count partners who appear in both step 1 and step 2 with
  zero activity (they're the same row).
- If a partner has no clicks but has conversions (server-postback only),
  they are NOT dormant. Skip them.
- Cap email digest at top 50 per tier. Larger lists overwhelm the AM.
04

The Steps

Generate an API key in Core Platform

Core Platform → Control Center → Security → API Keys → click the + API key button. Read-only on Reporting + Affiliates is enough. Make sure you're using your Network Operating Partner key, not the Reporting key.

Decide your dormancy window

Default is 30 days. Lead-gen and iGaming usually run 30. E-com brands with longer purchase cycles can run 60. Mobile usually runs 14.

Decide your "new partner" guardrail

Partners onboarded in the last 30 days get excluded automatically so you don't chase someone who hasn't even launched yet.

Paste your keys into the prompt

Replace {API_KEY}, {NETWORK_ID}, {DAYS}, and {NEW_PARTNER_DAYS} in the block below.

Run it in Claude, ChatGPT, or Gemini

First run gives you the dormant list grouped by tier (high-priority reactivation, watch list, safe to offboard). The summary lands in 30 to 60 seconds.

05

Sample Output

Everflow
Everflow Reports <reports@everflow.io>
to me  ·  Fri, May 9 at 8:00 AM
INBOX
Dormant partner digest · 23 partners flagged · week of May 5
Out of 312 approved partners, 23 had zero clicks and zero conversions in the last 30 days. Grouped by recommended action:
TIER 1 · REACTIVATE (4 partners) Moved real volume historically — worth a personal nudge. Coupon network (P_4421) last click: 38 days ago · lifetime: 1,240 conv · $48,200 payout AM: [AM email] Push-traffic aggregator (P_2018) last click: 41 days ago · lifetime: 312 conv · $11,800 payout seasonal_check: had activity same week last year AM: [AM email] Native widget partner (P_3308) · Tier-1 cashback site (P_5102) — same shape, smaller lifetime numbers TIER 2 · WATCH LIST (11 partners) Some history. Templated re-engagement email is fine — no AM outreach needed. [list of 11 partner IDs + last click date + lifetime conv] TIER 3 · OFFBOARD CANDIDATES (8 partners) <5 lifetime conversions, <$500 payout. Approved but never launched. Safe to pause or archive. [list of 8 partner IDs]
New this period (5 partners) — joined in the last 30 days. Need a baseline before any reactivation/offboard decision. Listed separately so they don't get caught in the offboard batch.
Open partner list in Everflow  ·  Re-runs every Friday · Reply skip on this thread to pause the digest.
06

FAQ

Real questions, real answers
Doesn't Everflow already let me filter Reporting by partners with zero clicks?

Yes — Reporting can group by affiliate and filter for zero clicks in a window. What it doesn't do is the scrub layer: separate dormant-on-purpose from genuinely-needs-outreach from should-be-offboarded, exclude brand-new partners (<30 days) who don't have a baseline yet, filter low-volume-but-high-quality partners who legitimately ran zero this month, and group the remainder by recommended action. The recipe handles all of that and drops the list as a single email instead of a manual filter-and-scroll workflow.

What about brand-new partners who haven't launched yet?

Skipped by the new-partner guardrail. Anyone added in the last 30 days (configurable) is excluded so you don't chase someone who's still in onboarding.

What about seasonal partners who only ramp in Q4?

Handled by step 6. The prompt checks the same date window one year ago. If a partner had activity then but is dormant now, they get tagged seasonal_check and moved to the watch list regardless of lifetime score, so you don't accidentally offboard your Black Friday star in March.

06b

Notes & counter-cases

Edge cases, gotchas, and things to watch.

False positives the recipe handles. Paused on purpose (network operator put them on hold — surfaced as "paused, no action"). Brand-new (<30 days history, no baseline — listed separately under "new this period"). Seasonal (zero activity is expected for this time of year — flagged by year-over-year comparison if 12+ months of history). Low-volume-but-high-quality (partners with high CVR and small but consistent revenue; the recipe excludes from "offboard" recommendations if last 90 days revenue > $500).

What the recipe doesn't do. It doesn't make the offboard decision for you. It groups partners into "reactivate / pause / offboard" buckets with reasoning, then waits for human review. The whole point is making the manual scrub take 10 minutes instead of 90, not bypassing the judgment call.

Bulk action support. Some networks (large-network-scale) want to bulk-inactivate hundreds of dormant partners at once. The recipe outputs the list in API-callable format so the bulk action can be a follow-on script. Don't run that auto-fire — keep the human review step.

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.