Account Settings
Notification Preferences
Marketing Intelligence panel default
Controls which tab (Native or Everflow) the Offers, Partners, and Advertisers panels open on. Auto uses Everflow when this account has an active Everflow integration, otherwise Native.
Account ID
Plan
Status
Created
Team Members
API Keys
API access has not been enabled for your account.
Contact your platform administrator to enable programmatic API access.
Create New Key
Custom scopes (optional — leave unchecked for full access based on role)
Usage Summary
AI Calls
Builds
Leads
Storage Writes
Audit Log
Billing & Plan
Current Plan
AI Calls (this month)
Leads (this month)
Builds (this month)
Usage-based billing with Stripe will be available here. Your current plan limits are enforced automatically.
Custom Domains
Integrations
Everflow
Affiliate network API — powers attribution name rendering, reconciliation, and buyer-pool routing.
Routes Everflow requests through a trusted IP for allowlisting. Leave blank to call api.eflow.team directly. Just the host is fine — the API version path (e.g. /v1) is taken from the Base URL automatically.
Refuses non-GET API calls. Recommended.
Your key is encrypted at rest (AES-256-GCM). We never display it again after save.
- API Key
- Base URL
- Proxy URL
- Read-only
- Network ID
- Last rotated
- Set by
Offer Pool Mapping
Map inbound Everflow offer IDs to internal buyer-pool slots. When an affiliate sends an offer_id that's mapped here, our waterfall only picks buyers inside that slot — so the affiliate gets credited for the offer they expected.
Conversion Reconciliation
Daily cron at 02:00 UTC compares Everflow's conversion ledger against our postback log. Drift >5% or >10 missing conversions fires an alert.
Data Ingestion
Performance data flows live from Everflow's reporting API into the Marketing Intelligence dashboard tiles. The button below triggers an on-demand backfill of raw conversion records (forensic / audit trail). Status of every run is tracked below.
rollup_daily via the nightly cron (or "Refresh cache now"). Per-Partner / per-Buyer attribution requires the entity link columns to be populated — click Hydrate entities to bulk-pull affiliates / advertisers / offers and re-resolve historical rows. Deep backfill is for raw-conversion forensic data. The remaining "Pull recent" / "Refresh offers" buttons are dead code from a prior architecture.
Refresh specific offers
Build statistical corpus (Tier 5)
Storage granularity is monthly. The date range selects which monthly partitions to populate; each enumerated month writes a Parquet file covering the full month, regardless of where the range falls within it. Range
2026-03-29 → 2026-04-28 writes both the March and April partitions (with full-month data each).
Audit a partition
Pick a written (table × month) partition and we'll query the actual Parquet on R2 via DuckDB. Surfaces row counts per weekly chunk (10k = Everflow truncated), day-level coverage, distinct dim counts, and a 5-row sample so you can eyeball whether the entries look like real data.
Probe export endpoint
Single call to POST /networks/reporting/entity/table/export with the table's standard dim columns. Reports HTTP status, body bytes, elapsed ms, quota-error flag, row count + sample (when format=json). Use this to find the practical date-range / file-size limits before committing to an architecture change. No Parquet write, no manifest update.
/export rejects when a table comes back verified-empty on a known-good date. Send a minimal set first (e.g. just date,advertiser), then add suspicious dims one at a time.Deep backfill
Recent runs
LeadProsper
Lead-broker API — outbound delivery for LP-fronted sites. The supplier identity (e.g. 111792 for Popular Marketing) is per-account; per-site campaign IDs live in funnel.yaml.
Your LP-side supplier identity. Same value across all campaigns under this account.
Different from the LP Key above. Used for /public/* analytics endpoints (Bearer auth). Mint one at support.leadprosper.io/article/59. On rotate, leave blank to keep the existing developer key.
Test-mode marker (advanced)
How a test submit marks synthetic leads so LP isolates them (no billing, no real buyer distribution). The marker is per-campaign — read the campaign's LP API spec (api.leadprosper.io/api-specs?hash=<key>) for the exact test field. It is NOT universal: e.g. campaign 32064 uses body field lp_action = test (verified — LP returns test:true), while LP's generic ping-post docs show Test_Lead = 1. A wrong marker is silently ignored → the lead is treated as LIVE. Pre-filled below with the campaign-32064 value; change it to match YOUR campaign's spec.
Your key is encrypted at rest (AES-256-GCM, same family as Everflow). We never display it again after save.
- LP Key
- Supplier ID
- Developer Key
- Test marker
- Last rotated
- Set by
Per target_date breakdown
Verify Configuration runs server-side checks only — no LP API call. Send live test lead POSTs a synthetic lead to LP direct_post and writes a connection_test_log audit row. Bootstrap LP buyers calls /public/campaigns (Developer Key auth) and seeds the buyers hierarchy in our DB so cost attribution + analytics tiles can join against real LP buyer rows. Idempotent — re-runs pick up new LP buyers without duplicating. While supplier 111792 is in LP TEST_MODE, no live buyer activity fires either way; once it flips out, the test marker (configured at save time) is what isolates Tier 2 traffic from real submissions.
Company Intel
Run full cycle
Identity → Intel → Risk in sequence. Kill-gates implicit (each stage skips unresolved profiles).
Identity resolution
Resolve canonical entity (company website) for each profile via a focused Perplexity call. Cheap and fast. Profiles that resolve cleanly become eligible for Intel + Risk enrichment; ambiguous / not-found profiles surface in the operator review queue. Re-running by default skips already-resolved profiles.
Intel enrichment (structured claims)
Build the structured-claims graph for each profile with a resolved canonical website. Per-claim citations required; confidence is derived from the source-authority registry, not the model's self-rating. Skips profiles whose identity isn't yet resolved (kill-gate). Re-running by default skips profiles that already have claims.
Risk scan (lawsuits, regulatory, layoffs, departures, negative press — last 24 months)
Scan each resolved-identity profile for actionable risk signals from the last 24 months. Severity-tagged so Draper rules can prioritize. Empty findings are stored as "scanned, found nothing" — a useful affirmative result, distinct from "haven't checked." Default skips profiles scanned in the last 7 days.
Bulk approve / reject pending review
Mass approve or reject the pending queue for a stage. Approve = promote pending_* → live entity_uri / claims / risk_signals (writes a history row per profile). Reject = clear the pending columns. After a large backfill this clears 1,000+ rows in a single workflow run instead of one click per profile.
Recent runs
Edit analytics
Tracks operator approve/edit/reject behavior on AI-derived claims. The signal we want: average AI confidence at the time of operator edits should be LOWER than at approves — that means AI is honest about uncertainty, and operators are catching the genuinely-uncertain claims.
Classifier
Replay diff (v1 vs v2)
Runs the legacy v1 classifier and the Phase 7γ v2 stack over the same buyer/window through the back-testing harness. Returns a date-aligned, side-by-side event diff so you can spot regressions or new detections before flipping the production default. Source = R2 (Parquet corpus, full history) or D1 (recent ~31-day rollup cache).
Geo Signal Audit
Is geo a high-fidelity signal?
Geo ingest is throttled (economic). This scans the historical offer×region corpus for cases where the per-region view caught something the offer-level view hid — a single region driving an offer's swing (concentration), regions trading places (rotation), revenue fragile to one region (concentration risk), or a region's move leading the offer's. It returns worked comps with $ impact and a fidelity score, or an honest “no — the throttle is justified.” Use it to decide whether geo earns closer-to-real-time ingest.
Webhooks
Fraud & Verification
Third-party services that validate each lead before delivery. Pick a fail mode for every active service — fail-open lets leads through and flags them as unverified if the vendor is down; fail-closed rejects leads until the vendor recovers.
Native click-fraud threshold
The score at which a native (non-Everflow) click is counted as
invalid in the rollup metrics. Matches the existing
fraud-engine reject boundary at 50. Until this is
set, the dashboard's Inv. Clicks column reports 0
for native traffic — that's not configured,
not measured zero.
Everflow rejection-rate line
Everflow rejects ("invalidates") clicks for caps, geo/device targeting, partner approval, IP/suppression blocks, or quality — mostly business rules, not fraud. This sets the rejection RATE above which Draper flags a source as worth a look. It is a quality tolerance, not a fraud line. For true fraud, run an invalid-click reason sample (below) to see the Forensiq/Anura/proxy share.
Invalid-click reason sample
Pull a sample (up to 1,000 clicks) of Everflow's rejected clicks for the last 7 days and classify WHY — the genuine-fraud share (Forensiq/ Anura/proxy/IP blocks) vs business rules. Sample estimate.
Recent health events (last hour)
Security Status
Branding
Customize how the admin interface looks for your team. Changes apply on next page load.
Images
Colors
Navigation Labels
Leave blank to use defaults.
Accounting — Overhead Lines
Log platform subscriptions, vendor services, banking fees, insurance, and tax that don't tie to a specific lead or conversion. Each line pro-rates daily into your COGS so Draper's Net Margin reflects the true cost of running the business.
Support
Report an Issue
API Reference
Draper Monitoring
Notification Settings
Materiality floors
Don't fire alerts on changes below these floors per day. A 1-lead drop or $0.57 revenue drop isn't business-relevant; an actual material move is. Set the floor at the smallest move this account considers worth knowing about. Leave blank to use the platform default.
| Metric | Floor | Platform default |
|---|---|---|
| Lead volume / day | 10 leads | |
| Conversions / day | 10 conversions | |
| Revenue / day | $ | $500 |
Tier ladder: move < floor = ignored. move ≥ floor + statistically anomalous = watch list. move ≥ 5× floor = urgent regardless of percent change (large absolute swings always surface).
Recommendation Rules
| Rule | Description | Enabled | Threshold |
|---|
System Overview
Messages
Avg Latency
RAG Hit Rate
Active Users
Blocked
Cron Runs
AI Cost
Registered Users
Activity Log
Cron Run History
Acknowledgment History
Preflight intent extraction
Routes each operator question through an LLM that classifies intent and stages a structured envelope BEFORE specialists run. When disabled, Draper falls back to the legacy regex router. Settings here are per-account.
Security & Rate Limiting
Data Plane
Imports the trailing 13 months of Everflow daily data from the Parquet archive into the D1 hot tier. Real-time queries — year-over-year comparisons, last-N-month seasonality — can answer instantly once this completes. The job runs in the background; you can close this tab and check back later.
Detectors
Recent cron summaries
Cost-invariant drift
SUM(rollup_daily.total_cost_cents) and SUM(rollup_daily_costs.amount_cents) over a rolling 7d window per account. Threshold: $0.50. Drift above threshold lands here as an alert; acknowledge once reviewed.
Click-rollup drift
SUM(rollup_daily.gross_clicks) (what Marketing Intelligence shows) and COUNT(*) of click_sessions (the source of truth) over a rolling 3-day window per site. Threshold: 15% gap on sites with 50+ clicks. A divergence above threshold means the rollup is mis-counting — it lands here so a silent undercount can't hide.
Timezone-provenance drift
Everflow aggregates vs export drift
rollup_daily EF rows — what the dashboards show) and its per-conversion export (everflow_raw_conversions — what per-lead settlement uses), per closed day in your timezone. A measured gap is normal (the two pipelines count differently and restate on different schedules); an alert means the gap exceeded the documented envelope — over 10% on revenue or 25% on conversions, on days with 50+ exported conversions. Review the day in Everflow, then acknowledge.
Stats Engine
Coverage — how much normal has been learned
Layers — built vs wired vs producing
Who reads each output
Parallel noise stream (retired in a later step)
Compliance Overview
Privacy & Consent
How your live sites handle consent and consent-verification services. We always honor Global Privacy Control and always send TrustedForm + Jornaya certificates with each lead. The IDs below are only needed if you subscribe to those services and want to view/query the certificates on their side.
We always honor Global Privacy Control signals — it's legally required in several states, so this can't be turned off.
Override Compliance Flag
You are acknowledging this finding and approving the build as-is. This does not suppress the flag on future builds.
Legal & Compliance Pages
Edit the Privacy Policy, Terms & Conditions, and Marketing Partners pages linked from each site's footer.
These are your own legal copy — saving publishes to the live page. (Markdown: # headings,
**bold**, - lists, [text](https://…) links.)
Pick a reusable roster to drive this page (edits to the roster fan out here automatically), or choose "Edit this page directly" to write a one-off list.
Partner Rosters
Reusable marketing-partner lists. Link a roster to a site from that site's Partners page above, and editing the roster here fans the updated list out to every linked site's Partners page automatically.
Scheduled Email Reports
Receive automated performance digests by email. Daily reports cover yesterday's metrics; weekly reports cover the last 7 days.
New Report Schedule
Partner Applications
Inbound Postback Monitor
Raw log of partner postbacks (Everflow, LeadProsper, …) hitting
/api/postback/<partner>.
Revenue-relevant writes (click_sessions.converted_at, lead_costs) are gated by
sites.config.postback.trust_writes — default OFF until
match logic is calibrated against real payloads (see Phase C plan §6 decision B / §5.5 of the spec).
Async Tasks
Long-running background work — Parquet → D1 bootstraps, multi-year seasonality reads, pooled-stats refreshes, Set D detector runs. Tasks marked running update every minute via the cron drainer; the watchdog auto-cancels anything stalled past its per-kind ceiling (default 10 min between checkpoints). Cancelling a running task takes effect at the next checkpoint boundary.
In flight
Recent (last 24h)
Preflight Intent — Model Scorecard
Bake-off scorecard for the preflight LLM. Scores candidate models against
a corpus of real operator phrasings mined from draper_log.
The model that wins here gets configured as the production preflight slot
(per Phase 013 §16-Q1 — "don't pick, test").
Preflight Probe — Inspect One Question
Type a question. The probe runs it through preflight (B3) + the per-mode handler (B5/B6) and shows what the orchestrator would do — without dispatching specialists, writing telemetry, or sending Telegram. Use this to sanity-check preflight behavior before flipping the production feature flag.
Preflight Telemetry — Rolling Window
Aggregates over draper_preflight_envelopes +
draper_preflight_outcomes +
draper_learning_candidates. Window is rolling N days
ending now (UTC). Empty when preflight is disabled for this
account or no traffic yet.
Postback Event
Paste the click_sessions.id from a session you recognize in the payload above. The event will be marked matched and stamped with the session's lead id.