Revenue trend
Orders trend
Pace vs target
Active comps
AOV
Tickets sold
Unique buyers
Tkts / order
New / Returning
Top comp
Top region
Last hour
Today by hour —
Top 5 comps · today
Today's tactical actions
Action log
🔮 Projection bot
Self-learning loop: every AI suggestion is logged with an expected £ lift. Click ✓ Applied when you act on one, then 💰 Outcome later to record the actual lift. Past outcomes are fed back into Claude's system prompt so recommendations get sharper over time.
| # | Name | City | PC | Orders | Spend | AOV | Tickets | Last | Inact | |
|---|---|---|---|---|---|---|---|---|---|---|
| Loading customer index... | ||||||||||
Sales console requires admin password
Live revenue data — only admins and authorised staff can view.
📱 Send personal SMS
Sends a personalised SMS via Klaviyo to a single buyer. Real send requires Klaviyo SMS template + flow setup. For now, this prepares the payload and logs the action.
🚀 AI-driven sales boost
Claude analyses the current sales pace, ad performance, and audience state for this competition. Recommends the optimal action.
Active campaigns
Daily budget
Period spend
Period ROAS
Conversions
Conversion value
CPA
Flagged
| Campaign | Status | Daily £ | Spend | ROAS | CPA | Conv | Conv £ | CTR | CPM | Freq | Actions | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Click "↻ Refresh from Meta" to load live campaigns. Requires Meta Marketing API token + Ad Account ID in Settings (with ads_read or ads_management scopes — the CAPI-only token shows ⚠ in 🩺 Test all). | ||||||||||||
📚 Audit notes & targeting playbook (click to expand)
Tracked Meta revenue (12mo)
Active campaigns (audited)
UTM coverage
🚨 What NOT to do
Run untagged ads
1.7% of your ads have UTMs. £3M of Meta revenue is "untagged" — you can't optimise what you can't measure. Fix UTMs before doing anything else.
Optimise for COMPLETE_REGISTRATION
One ad set is doing this — Meta hands you traffic that signs up but doesn't buy. Always optimise for PURCHASE.
Run 148 campaigns simultaneously
Only 6 are actually active. The rest clutter the account and confuse Meta's attribution. Archive everything paused.
£1,500/day flagship with 3 attributed orders
The "Sales Main Catalogue" campaign earned £86 from £547K/year of annualised spend. Pause until UTMs are fixed.
✅ What works
Advantage+ Shopping with Lookalike-1%
Build LAL-1% from your top 1,745 spenders. They earned £5.7M (37% of revenue). Best Meta audience available to you.
Retargeting BOF (Engagers + Loyalty)
Two of the 6 active campaigns. Loyalty earns 0.92× tracked ROAS — likely 4-5× real ROAS once UTMs work.
Conversion API (CAPI)
Server-side tracking catches iOS / ATT losses. Expected lift: +15-30% in tracked Meta revenue.
Run fewer, scale winners
20%/week scaling rule. Don't go above unless ROAS holds >2× for 14 consecutive days.
🎯 Targeting playbook
| Audience | Source | Use for | Expected ROAS |
|---|---|---|---|
| Lookalike-1% Top Spenders | Top 1,745 buyers (£500+ LTV) | Cold acquisition, scale slow | 3-5× |
| Lookalike-2% Recent Buyers | Last 90 days buyers | Cold acquisition, scale fast | 2-4× |
| Retargeting — Engagers (180d) | Pixel ViewContent, no purchase | BOF conversion | 4-6× |
| Retargeting — Cart Abandon | InitiateCheckout, no Purchase | BOF conversion | 6-10× |
| Customer List — Loyalty | Top 10% buyers (17,457) | VIP exclusive comp launches | 5-8× |
| Reactivation — 90+ days | Lapsed buyers w/ £50+ LTV | Win-back | 2-3× |
| Geo — UK only, 18+ | Always | Compliance + cost control | — |
1. Brief
Klaviyo · key set
— recipients · est revenue: —
0/80 chars
2. Live preview
Smart suggestions
1. SMS Brief
Klaviyo · key set
— recipients · est cost: — · est revenue: —
2. Phone preview
Smart suggestions
1. Compose WhatsApp
Meta requires pre-approved templates for marketing. Twilio allows freeform within 24h session.
2. WhatsApp preview
Smart suggestions
Recent WhatsApp sends
| When | Provider | Recipients | Body | Status | Action |
|---|---|---|---|---|---|
| No sends yet | |||||
📥 Inbound · Auto-reply · Staff broadcast
📥 Inbox 0
Webhook URL for your provider: https://sol1.tail2d1d46.ts.net/wa/webhook
🤖 Auto-reply (Claude)
When ON, every incoming message gets an instant Claude-generated reply via Twilio. Stays under 300 chars. Auto-replies tagged AUTO in the inbox.
👥 Staff group broadcast
A WhatsApp number / group the Watchdog tab pings with reminders + AI-summarised status. Use a group's invite participant for broadcast lists.
🌐 Site
📉 Sales pace
🎯 Drawing today
⚡ Last hour
🤖 Latest AI guidance
Claude reads the checks above + your live competitions and writes a short staff brief — what to push, who to alert, what's at risk. This is the message that gets pinged to staff WA when 📲 Ping is hit.
📋 Run history
Last 20 watchdog runs — timestamp, severity, summary line.
📱 Mobile previews 240×430 · 🖥 Desktop full-width card. Limited to top 15 most recent for speed. Each card AI-rates the comp /10 with reasons + fixes when you click 🤖 Rate.
UK live map
●Top regions
🤖 AI targeting brief
Generated today
Compliance pass rate
Top platform
History
1. Brief
— competitions in dropdown
⌘/Ctrl-click to multi-select
Copy: Claude · Image: grok-imagine-image · Video: grok-imagine-video (8s, ~$0.40) · Video brief: Claude. All output is auto-checked against UK CAP / PECR / ICO; blocked variants get a compliant rewrite.
2. Output
3. History
Platform char limits
🎥 Video library
Every video you generate with 🎥 Video (Grok) is saved here so you can re-watch any of them later. xAI URLs may expire after a while — click ⬇ Download on anything you want to keep permanently.
| When | Channel | Audience | Subject / Body | Status | Actions |
|---|---|---|---|---|---|
| No sends scheduled yet | |||||
Customer database is restricted
Holds personal data — name, email, phone, address, order history. Enter the admin password to unlock.
📋 What you have available + budget (feeds the AI)
💡 Recommended from your 90-day data: — click Calculate
Friday flagship
Sunday flagship
Tuesday mid-tier
Peak month-dates
On shift now
Live-draw tonight
Team hours / wk
Sends today
🕐 Sign In / Out · one click each way · feeds the WA bot's "who's on shift" check
📅 This week's timesheet
Today's roster · —
Live-draw rotation
Send timetable (Aliyah)
Team — primary roles + this week's hours
Add staff member
Type a name, pick the role, set their weekly shift hours and draw-night job. Changes are saved to your browser instantly.
Weekly shift hours
Tick a day to mark someone IN, and set start + end hour (24h). Leave unticked for OFF days.
Holidays & sick leave
Add new entry
Current entries
Stats
🤖 Operational problem-solver
Describe any problem in plain English. Claude reads the staff rota, current shift, and active competitions, then assigns the right people with concrete steps.
⚙️ Autonomous loops (MCP-style)
Spam check
Reviews every campaign in your Klaviyo queue against UK ASA / CAP Code rules. Flags risky claims, missing free postal entry, misleading odds.
Status: idle
Sales pace agent
Monitors today's sales every 30 mins. If pace < target by 1pm, automatically pushes a 50K-recipient flash email or SMS based on which day-of-week converts best.
Status: disabled
Meta budget rebalancer
Daily check: paused any active Meta campaign with <1× attributed ROAS over 14 days. Scales any >2× ROAS by 20%. Confirmation required.
Status: requires Meta key
Competitor watcher
Daily: pulls current competitions from BOTB, Omaze, Raffle House, 7 Days Performance, Dream Car Giveaways. Suggests what Nitrous should match or beat.
Status: idle
🛒 Cart abandon SMS agent
Polls WooCommerce every 5 mins for orders stuck in checkout-draft / pending / failed. Triggers a personalised SMS via the configured provider 15 minutes after the customer left the site without paying. Excludes anyone already messaged in the last 12 hours.
Status: disabled · last poll: — · sent: 0
admin1234 · forced change on first login
📖 Permission reference
🔑 API Keys
☁️ Amazon SES / SNS
🔍 Google Ads (full OAuth — needed to actually call the API)
Google Ads can't be tested with a single key — it needs OAuth + a Developer Token. Steps to fill these:
1) Apply for a Developer Token at ads.google.com/aw/apicenter (~3 days approval).
2) Create OAuth credentials at console.cloud.google.com (Desktop app type) → copy Client ID + Secret.
3) Generate a Refresh Token via OAuth playground with scope https://www.googleapis.com/auth/adwords.
4) Login Customer ID is only required if your account sits under an MCC manager.
📱 WhatsApp Bot — scan QR to log in (personal/staff WA account · sends to your group · auto-replies via Claude)
1) Click ↻ Show QR. 2) On the staff phone open WhatsApp → Settings → Linked devices → Link a device → scan. 3) Once connected, pick your Nitrous staff group below. The watchdog will post status updates there and reply to staff questions automatically (using your Claude key).
⚠ This uses the unofficial WhatsApp Web protocol. Stable for low-volume staff messaging but technically against Meta ToS for personal accounts. Use a dedicated staff phone if possible.
⚠ Anyone in the directors group can run shell commands on the server via !exec. Make sure ONLY trusted directors are in this group.
📚 Lessons taught to the AI 0
Anything you teach here is injected into every reply in BOTH the staff and directors groups, permanently. Use it for: business rules, comp schedules, brand voice, edge-case handling, etc.
You can also teach from the directors WhatsApp group by just typing teach <rule>.
🐶 Watchdog (uses the WA bot above · runs server-side · works without browser open)
Sends to whatever group you picked in the WA Bot section above. No extra phones / Twilio / setup needed. Just pick how often and click Save & Start.
📊 Google Analytics 4 Realtime (real live-visitor count — replaces the estimate)
1) Find your GA4 Property ID at analytics.google.com → Admin → Property settings (numeric, e.g. 318291234). 2) Create a service account at console.cloud.google.com → keys → JSON → download. 3) Grant the SA email Viewer on your GA4 property (Admin → Property access management). 4) Paste the entire JSON below.
📞 Twilio (SMS + WhatsApp)
💬 Meta WhatsApp Business (direct)
📧 SendGrid / Mailchimp / 360dialog / Wati
👥 Users (admin only)
📋 Action log
Every staff action timestamped. Stored in localStorage.
📚 App documentation
The AI assistant uses MARKETING_APP_GUIDE.md as its system prompt. Edit that file in your editor to change behaviour.