Shopify
Net revenue, orders, AOV, units sold, sessions, new customers, LTV
Direct Shopify Admin GraphQL — client_credentials OAuth (24h tokens)
Klaviyo
Email revenue, campaign + flow attribution, flow message funnel
Direct API — Klaviyo-API-Key header
Recharge
Subscriptions, renewal rate, churn, first-90 cohorts, subscriber LTV
Direct API — X-Recharge-Access-Token header
Windsor (Meta + Google Ads)
Meta ad spend, ROAS, conversions; Google ad spend, ROAS
Windsor.ai aggregation layer — routes meta + google paid data
LoyaltyLion
Loyalty attributed revenue, points, tier breakdown, rewards by value
Direct API — Bearer token auth, cursor-paginated
Anthropic (Claude)
AI commentary generation for weekly reports
Model: claude-sonnet-4-5. ~$0.075/report.
Supabase
All dashboard data storage and auth
Service role key required for pipeline writes. Anon key for reads.
Instagram (Organic)
Post-level reach, engagement, impressions via Windsor
Windsor `instagram` connector — requires Meta Business Suite link
Google Ads
Ad spend, ROAS, search performance
Via Windsor aggregation
Shopify Analytics (Sessions)
Human-session counts via Shopify ShopifyQL (replaced GA4)
Same credentials as Shopify connector — no separate key
Slack (notifications)
Posts scheduled reports + system alerts to a Slack channel
Incoming Webhook URL — Slack App → Incoming Webhooks → Add to channel
Environment Variable Inventory
Every env var the app reads, grouped by source. Set/missing status is checked server-side at ping time. See .env.example in the repo for the full template.
Auth
Supabase
Shopify
Klaviyo
Recharge
Ads (Windsor)
LoyaltyLion
AI / Notifications