Check your email
We sent a verification link to . Click the link to activate your account.
We sent a verification link to . Click the link to activate your account.
We automatically include the page you're on and recent errors — no need to describe those.
Switching brand
Refreshing this view...
Settings
Brand
Selected brand
| Brand | Ad Spend | Total Sales | MER | ROAS | CPA | Status | Last Check | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| No brands yet. Create brands to see the overview. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
All ad accounts and integrations across your brands
| Brand | Platform | Account | Status | Last Checked | Actions |
|---|---|---|---|---|---|
| Loading... | |||||
Client outcomes grouped by risk priority across accessible brands.
Client-ready weekly proof of what was caught, fixed, and protected — per brand, with a shareable link.
Check brands in the table below to plot them. Select a single brand to see it vs last month.
Where visitors drop off, and which channels convert best.
Manage each client brand, setup progress, KPI targets, integrations, and creative intelligence from one place.
Revenue spikes, traffic anomalies, spend discrepancies, and CVR shifts detected automatically and attributed to likely sources.
Track whether AI assistants (ChatGPT, Perplexity, Gemini, Google AI Mode) recommend your brand when shoppers ask buying-intent questions. Competitors sync automatically from Brand Brain.
Leave blank to use smart defaults built from your brand name.
Connect your ad platforms and tools to start monitoring KPIs.
Deep-link ads to Amazon, preserve paid click IDs, sync confirmed purchases, and keep bridge domains brand-specific.
Mobile path
Amazon app
Purchase source
Attribution API
Bonus
Brand Referral
Paid channels
Meta, Google, TikTok
Connect to automatically create Attribution tags on new bridge links and sync daily purchase reports from Amazon.
Default Attribution Tag — fallback for links without their own auto-generated tag
Each bridge link gets its own tag automatically. This tag is only used as a fallback if a link has no tag yet.
How it works: When you connect your Amazon Ads account, Sentinel calls Amazon's official Attribution API to auto-create a unique tracking tag for each bridge link. These tags append ?maas=...&ref_=aa_maas&tag=maas to your product URL, which Amazon uses to credit purchases back to your ads and pay the ~10% Brand Referral Bonus. This uses Amazon's own Attribution program — fully within ToS. Requires Amazon Brand Registry enrollment.
Use a branded subdomain so links look like go.yourbrand.com — SSL is provisioned automatically via Railway
Add these 2 DNS records at your domain registrar:
| Type | Name (click to copy) | Value (click to copy) |
|---|---|---|
| CNAME | go | — |
| TXT | — | — |
Record 2 is required for Railway to verify domain ownership and issue your SSL certificate. Set both as DNS-only (not proxied).
Each link opens the Amazon app on mobile and appends your Attribution tag automatically
Clicks open the Amazon app on mobile, Amazon.com on desktop.
Clicks go to your landing page. We'll generate a tagged Amazon deep-link URL to put on your "Buy on Amazon" button.
Connect a Google Sheet of warranty or product registration form submissions — new rows are automatically sent to Meta via CAPI as Purchase events
Auto-upload customer emails for lookalike & exclusion audiences
Checking connection...
Drag & drop your order report, or click to browse
Accepts .csv, .tsv, .txt from Amazon Seller Central
Create a bridge link
Paste your Amazon product URL — Sentinel extracts the ASIN and creates a unique redirect
Use as your ad destination
Set the bridge URL as your Meta/Google/TikTok ad landing page — it captures the click ID automatically
Opens the Amazon app on mobile
Instead of a browser, the bridge opens the Amazon app directly — converting at a significantly higher rate from Meta ads
Amazon confirms purchases + BRB credit
Attribution API syncs daily purchase data directly from Amazon. You earn ~10% Brand Referral Bonus on qualifying external-traffic sales.
Configure the KPI checks, anomaly detection, Slack routing, and buyer reports Sentinel runs for this brand.
Every check run, alert decision, anomaly, and AI recommendation for this brand.
| No history yet |
Ads that triggered automated kill criteria, with spend, ROAS, CPA, and next-review actions.
Generate ads, build Brand Brain, inspect creative fatigue, and turn winning inputs into production-ready assets.
Invite teammates, assign access levels, and control exactly which brands each person can work on.
Only admins can add or remove team members. Ask an admin on your team if you need to invite someone.
Create an account and grant brand access in one step.
Choose a profile to preselect the access level and pages, then adjust anything you need.
Leave blank for unlimited. AI pauses for this login when the monthly allowance is used.
Leave everything unchecked for full access. Select individual pages to limit this person to only those pages.
Account created. Share these credentials securely.
Loading team inventory...
Estimated Anthropic LLM spend so you can optimize models. Costs use list prices per model family.
Today
—
Last 7 days
—
Last 30 days
—
Loading…
Loading…
Loading…
Today
—
Last 7 days
—
Last 30 days
—
Get an email and/or Slack alert when today's LLM spend crosses your threshold (sent at most once per day).
Loading…
Loading…
In-app "Report an issue" submissions. Each opens a GitHub issue the fix agent picks up.
Run lightweight probes across external services before sharing the app with a client or after changing environment variables.
Ready to run diagnostics
Results will appear here with status, scope, and next action.
Your plan and payments. Checkout and card management run on Stripe-hosted pages — card details never touch Sentinel.
This permanently deletes your account, every brand you own, all connections, and all tracked orders and visits. There is no undo.
Create long-lived service keys for Mission Control, OpenClaw, and other external workers. Revoke any key the moment it is no longer needed.
Name keys by service and environment so they are easy to revoke later.
Key created. Copy it now.
For security, Sentinel will only show this token once. Keys never expire — revoke this one here the moment the worker stops needing it.
Add to Mission Control: ~/.openclaw/agents/main/agent/auth-profiles.json → profiles["sentinel:default"].token
Loading key inventory...
Manage cross-brand template assets and controlled ownership operations.
Templates here become available to every brand as fallback inspiration. Upload a reference ad and Gemini will reverse-engineer a reusable blueprint.
Move ownership of one of your brands to a new email. The recipient gets their own account with only this brand visible. They'll set their password via the Forgot Password flow.
Email send failed. Copy this 24-hour reset link and share it with the recipient directly (Slack, text, etc.):
How this works
Compare first-party pixel truth against platform reporting and inspect order-level attribution.
Click-Based
View-Through (VTA)
Hover a model to see details
Compare to Custom Range
Data filters
Advanced reporting scope and QA controls.
Last Click credits the final eligible touch. A purchase credited to Google or organic social is not a missing purchase. Use Assists or Model Compare to see earlier touches.
| Campaign / Ad set / Ad | Ad Spend | ROAS | Purch. | Revenue | CPA | Impr. | Clicks | CTR | Thumb-Stop | CPM | CPC | Outbound CTR | Cost/Unique Outbound | Purchases (Meta) | ROAS (Meta) | CPA (Meta) | Conv. Value | AOV | Refund % | Net Rev. | Page CVR | NC Purch. | New Cust. CPA | NC-ROAS | Browser-linked | Order-source match | New Customers | Returning Customers | Returns % | LTV Rev. | Avg LTV | LTV ROAS | LTV Cust. | Leads | CPL | Opt-in Rate | Start Trials | CPST | Lead → Trial | Trial → Purchase | Lead → Purchase | Amazon Purch. | Amazon Rev. | Amazon ROAS | DPV | ATC | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading campaigns... | |||||||||||||||||||||||||||||||||||||||||||||||||||
| Order | Customer | Amount | Source | Campaign | Method | Confidence | Type | Date |
|---|
Re-check Spiffy payments
Re-verify recent Spiffy orders against Stripe and drop any whose payment never fully completed (so failed/incomplete payments stop counting as revenue).
Ad tracking parameters
Scan active Meta ads for missing UTMs or ad-level IDs — the #1 cause of orders landing in Direct/Unknown instead of the ad that drove them.
Cash revenue, click-date accrual, platform claims, and evidence quality in one view.
The attribution model and window (how far back from an order Sentinel looks for the click that earned it) are set in the top bar of the Attribution page — one home, no duplicates. Paid/organic/direct/email channels have built-in defaults (7/90/90/30 days) unless overridden there. Platform-specific windows (e.g. Guesty bookings) live on that platform's integration card.
Off = Cash basis (revenue counted on order date). On = Accrual basis (revenue counted on ad click date).
Set automatically from your ad accounts once one is connected, so Sentinel's day matches the platforms'.
Compares your connected ad accounts against paid UTMs from accounts Sentinel isn't connected to (e.g. an outside agency running ads for the same brand). Leave off unless another team runs ads alongside yours.
Checking whether events are flowing? That lives in — this section is for installing and re-installing.
Pixel health based on received events:
Check if the pixel is installed on a specific page:
Runs as a registered Web Pixel extension inside the Sentinel Shopify App — captures Shopify analytics events (page_viewed, product_added_to_cart, checkout_started, checkout_completed) from a trusted sandbox that can actually reach our backend. Replaces the legacy manual-paste Custom Pixel below, which Shopify's inline-pixel CSP silently blocks.
Brand-new Shopify connections get this installed automatically as part of the OAuth flow. Existing brands: click Reinstall on connected stores to enable it without redoing OAuth (requires the brand's existing token already has the write_pixels scope — connect again if not).
Manual-paste install path. Mostly blocked by Shopify's inline-pixel CSP — events fire inside the sandbox but the outbound fetch is silently dropped, so this surface usually shows zero events even when correctly installed. Use the Sentinel Web Pixel above instead. This section is kept for back-compat with merchants who installed before the Web Pixel extension landed.
Fast path: Click Copy & Open Shopify Admin — copies the code and opens Settings → Customer Events in a new tab, ready to paste.
You installed the Customer Events pixel manually (no Shopify OAuth connection). Add this second snippet to theme.liquid so Sentinel can capture paid clicks on landing pages — the same coverage the auto-install provides.
</body>ScriptTag auto-installed via Shopify OAuth
Landing page tracking is already active on every storefront page. The theme script is not needed — no extra steps required.
Runs Sentinel's storefront tracker as a Shopify theme app embed and routes paid clicks through Shopify's App Proxy. This gives storefront coverage even when browser extensions block normal third-party scripts. Coexists with the Web Pixel via server-side dedup — safe to enable alongside.
Fast path: Click Enable in Theme Editor — opens your live theme editor with the Sentinel Tracker app embed pre-focused. Toggle it on, preview your storefront, then click Save.
For brands using Guesty — install the standard Sentinel pixel on the marketing site, then install this in the booking engine's Custom Code Snippet.
Use this for Webflow, SaaS sites, landing pages, and other non-Shopify funnels. The snippet saves the visitor ID in _stl_vid, stores UTMs/click IDs in _stl_utm, remembers submitted emails, and carries those values into hosted checkout or trial links so purchases from SendOwl, Stripe, PayPal, Guesty, and custom forms can be matched back to the original visit.
Select platform for install steps:
data-sentinel-lead with value truedata-sentinel-event with value start_trialAlternative: paste directly into your theme's header.php before </head>.
Note: Code Injection is available on Business plan and above.
layout.html, base.html, or similar)<head> tagLoading snippet...
Step 2 — Add UTMs to your ad destination URLs. Sentinel will save these values and reuse them if the visitor later clicks to an off-site checkout:
Leads are tracked automatically. When a visitor submits a form containing an email field, Sentinel detects it. For Webflow popups or unusual forms, add data-sentinel-lead="true" to the form, wrapper, email input, or submit button to make the lead trigger explicit.
Start Trial/download clicks use a Webflow-friendly attribute, not custom JavaScript. Add data-sentinel-event="start_trial" to the download or trial button. Sentinel uses the email remembered from the opt-in when it fires the Start Trial event.
Step 3 — Track purchases (custom checkout only)
Shopify, Guesty, SendOwl, PayPal, and Stripe webhooks track purchases server-side once connected — skip this step for those platforms.
Only use this for a fully custom checkout where you control the thank-you page:
<script> // revenue = order total, email = customer email (links purchase to the ad click) window.Sentinel.trackPurchase(149.00, 'customer@example.com'); </script>
The email is optional but strongly recommended — it's the most reliable signal for matching the purchase back to the original ad click. Revenue can be a dynamic value from your backend.
Works with standard HTML forms, AJAX/fetch submissions, Webflow forms, popups, SaaS trial CTAs, and dynamically loaded forms. Advanced fallback: developers can still call window.Sentinel.trackLead(email) or window.Sentinel.trackAppDownload(email) directly when a custom app needs manual control.
Serve the pixel from a brand-specific subdomain. Standard tracking is ready by default; custom domains are optional.
Current brand
Loading...
Best default for most brands. No client DNS work required.
WILDCARD_TRACKING_DOMAIN in Railway variables to enable (e.g. track.roirockstars.com).
No custom domain configured for this brand.
Use this only when the client can add DNS records for a domain like t.brandname.com. Until then, Sentinel uses the standard shared subdomain above.
DNS setup instructions
Add these records in the client's DNS provider, then click Verify DNS.
SSL is provisioned automatically by Railway once both records are added.
For clients running ads to several domains, add a tracking subdomain on each root domain (e.g. t.domainA.com, t.domainB.com). The pixel ID is the same — paste each domain's snippet on that domain's store. Until these are set up, the auto cross-domain linker keeps identity stitched across the brand's domains.
Shopify stores auto-install the pixel on the shared domain. Click to re-point each connected store at its matching first-party subdomain (no re-connect needed).
Send purchase events server-side to Meta and Google for higher match rates, bypassing iOS 14.5 restrictions.
Meta → Events Manager → your dataset → Settings → Generate access token. No OAuth/app review needed — Meta recommends a long-lived token for server events. Stored encrypted; leave blank to keep the existing token.
Most brands should use all tracked purchases. Choose "Amazon only" only when you want Sentinel to send Amazon conversions but leave D2C purchases to another CAPI provider or native checkout pixel.
Clients often have forgotten Lead senders wired up — a Zapier zap, a browser pixel in site custom code, another tool. If one is live alongside Sentinel, Meta counts every lead twice.
1. Open Meta Events Manager → the brand's pixel → Lead and check "event breakdown by integration/connection method." Server + Browser both reporting, or two server sources, means a second sender exists.
2. If it's a Zapier zap: remove only the "send event to Facebook" step — zaps often also add the contact to the CRM/email list, and that step must stay.
3. If the second sender can't be removed: make it share the page's event ID. Sentinel automatically reuses a page-generated Meta event ID as its Lead event_id — from a hidden form input named facebook_event_id / fb_event_id, or set explicitly via window.SentinelMeta = { leadEventId: '…' } — so Meta dedups the two senders instead of double-counting.
4. Verify with one test opt-in: Events Manager should show exactly one Lead.
End-to-end CAPI test
Dry-run the full Webflow lead → Start Trial → SendOwl purchase → Meta CAPI enrichment path without sending a live Meta event.
Use this for Webflow + SendOwl funnels like CineDream. Sentinel captures browser identifiers on the Webflow side, then attaches them to the later SendOwl purchase for Meta CAPI.
1. Popup opt-in
In Webflow, add this custom attribute to the opt-in form, popup wrapper, or submit button. Sentinel reads the email and remembers it for later funnel events.
Name: data-sentinel-lead
Value: true
2. Download click
Add this custom attribute to each Start Trial/download button. Sentinel displays it as Start Trial and stores it internally as app_download.
Name: data-sentinel-event
Value: start_trial
3. SendOwl purchase
SendOwl webhook records the paid order. Sentinel matches by email/session, enriches it with _fbp, _fbc, IP, user agent, UTMs, and sends Purchase through Meta CAPI.
Keep Meta Pixel for browser events. Use Sentinel CAPI for server-side purchases so the same dataset receives stronger signals. Advanced fallback: custom apps can still call window.Sentinel.trackLead(email) or window.Sentinel.trackAppDownload(email) directly.
Sends purchase events to X via their Conversions API using the twclid click ID captured by the Sentinel pixel — enabling deterministic ad-level attribution.
Append your Amazon Attribution tag to bridge link redirects. Enables the Brand Referral Bonus (~10% back on qualifying sales).
Enable CAPI to see server-side events here.
Geo experiments measure what your ads cause: delivery changes in some regions while the rest carry on, and the difference is the lift. The pixel split further down is a tracking diagnostic, not incrementality.
One answer per channel from every lift test. The model, planner and budget rules all use it.
Change spend in a few regions and measure the revenue it really adds.
Meta's own randomised tests, imported daily.
Total revenue ÷ total ad spend across all channels (deduplicated daily snapshots)
The pixel flags a random share of visitors after they land. Both groups saw the same ads, so any gap between them comes from the split itself, not from advertising. Use these numbers to check tracking, never to judge a channel. For what your ads cause, run a geo experiment above.
Flags a share of visitors at landing. It does not stop anyone seeing ads, so it cannot measure incremental revenue.
Both groups saw the same ads. A large gap points at a tracking or assignment problem, not at ad effect.
The same split, per campaign. Labels here describe the split, not what the campaign caused.
Hours where traffic exceeded 2× the median baseline — useful for detecting TV ad airings, viral moments, or PR hits
Compare ad-acquired customers against organic/direct customers, then use cohort forecasts to understand long-term payback quality.
Track influencer and creator performance with UTM redirect links, pixel-attributed orders, and AI opportunity analysis.
Revenue attributed via pixel + UTM tracking
Bookings/orders using this code count toward this creator — even without a tracked link.
Create Tracking Link
Tracking and attribution
Measure the revenue impact of a video, post, or launch — including Amazon revenue that click-tracking can't see. Your organic Instagram videos are detected automatically; lift compares the window after a release to the matched window before it.
A sale, launch, holiday or collaboration. Recording the expected size is what makes the result readable afterwards.
Tracking and attribution
Confirm the current brand is collecting visits, purchases, and server-side conversion events.
Viewing brand
Selected brand
Pixel not set up yet
Follow these 3 steps to start tracking visitors and attributing ad spend for this brand.
Configure your pixel domain
Go to Attribution → Settings to generate your pixel ID and custom tracking domain.
Copy & install the snippet
Paste the generated snippet into the <head> of every page on your site (or use the Shopify app block).
Send a test event
Visit your site once, then come back and click Send Test Event above to verify the pixel is working.
UTM Setup Instructions
Add UTM parameters to your ad URLs so every click is attributed to the right ad. Select your ad platform:
In Meta, Google, or TikTok URL-parameter fields, paste the connected string exactly as shown below, without a leading ? or &. If you are manually appending UTMs to a landing page URL, start with ? when the URL has no query string, or & when the URL already has one.
In Meta Ads Manager → Ad level → URL Parameters field, paste:
Tip: bulk-select ads in Ads Manager and paste this once into the URL Parameters field.
In Google Ads → Campaign/Ad Group → Final URL suffix field, paste:
Paste into "Final URL suffix" at campaign level (not the Tracking template).
In TikTok Ads Manager → Ad level → URL Parameters field, paste:
TikTok uses double-underscore macros. Set at ad group level for consistency.
What each UTM means
For brands that run lead generation (contact forms, booking applications, sign-ups) instead of ecommerce. The same pixel snippet works on any site — no Shopify or revenue platform connection required.
Step 1 — Install the Pixel
Paste the standard pixel snippet (above) into the <head> of every page on your site. The pixel will automatically capture UTM parameters and click IDs when visitors arrive from ads.
Step 2 — Lead forms are automatic
Leads are tracked automatically. When a visitor submits any form containing an email field, Sentinel detects the submission and records the lead — no extra code needed.
The pixel automatically intercepts form submissions (both standard HTML and AJAX/JavaScript), extracts the email, remembers it, and fires a lead event. Works with React forms, popup modals, multi-step funnels, and dynamically loaded forms. Deduplicates automatically so repeat submissions don't double-count.
Webflow opt-in marker
If the form lives inside a popup or custom component, add this custom attribute to the form, popup wrapper, email input, or submit button.
data-sentinel-lead="true"
Start Trial / download buttons
Add this custom attribute to buttons that mean the visitor started the trial or downloaded the app. Sentinel uses the remembered email when available.
data-sentinel-event="start_trial"
If a custom app needs full control, developers can still call the helpers directly:
// Call this anywhere after the pixel loads
window.Sentinel.trackLead('visitor@example.com');
window.Sentinel.trackAppDownload('visitor@example.com');
Step 3 — Add UTMs to Your Ad Links
Use these connected parameters in the URL Parameters field of your Meta ads so each lead is attributed back to the campaign and ad that drove it. If you manually add them to a page URL, use ? before the first UTM or & if the URL already has a question mark.
What You'll See
Lead counts and Cost Per Lead (CPL) will appear in the Attribution table (enable the Leads / Cost Per Lead columns), the Command Center metric picker, and the Agency Overview column selector. No purchase or revenue data is required.
Ask customers how they found you right after checkout
0
Total Responses
Self-reported attribution from customers on your order confirmation page.
Thank-You Page Snippet
Add this snippet to your Shopify store:
Shopify Admin → Settings → Checkout → scroll to "Additional scripts"
The widget appears 1.5s after the customer lands on the thank-you page and auto-dismisses after submission. Responses are stored once per order.
Add snt_sid to your email platform's link tracking so every campaign click identifies the subscriber — even on a device that has never visited your site. The pixel joins the click to their identity and retroactively links their earlier visits, so email-driven orders stop landing in Direct/Unknown.
utm_source=klaviyo&utm_medium=email&snt_sid={{ email }}
utm_source=activecampaign&utm_medium=email&snt_sid=%EMAIL%
utm_source=mailchimp&utm_medium=email&snt_sid=*|EMAIL|*
Klaviyo: Settings → Email → UTM tracking → add snt_sid as a custom parameter with value {{ email }}. Unrendered merge tags are ignored safely — the pixel validates the value looks like an email before using it.
Detect storefronts firing this brand's pixel by mistake. Shows how many visits, orders, and how much revenue stored under this brand actually came from another brand's domain.
Map discount codes to a source / medium / campaign. Orders carrying a mapped code get attributed to that source — overrides the pixel cascade for the highest-confidence signal.
| Code | Source / Medium | Campaign | Note | Status | |
|---|---|---|---|---|---|
| Loading… | |||||
| Platform | Event | Status | Response | Time |
|---|---|---|---|---|
| Loading events... | ||||
Use campaign performance to suggest spend reallocations, reduce waste, and scale stronger pockets.
| Campaign | Platform | Current Spend | Recommended | Change | Reason |
|---|---|---|---|---|---|
|
No optimization run yet
Analyze campaign performance to generate budget recommendations for this brand.
| |||||
Browse Meta Ad Library, find winning ads, save examples to Swipe File, or clone concepts into AI Creatives.
Track competitor creative, identify durable ads, and turn proven video patterns into brand-ready UGC scripts.
Scan IG/TikTok handles for organic posts ranked by views.
Look up any brand or keyword without saving them as a tracked competitor.
Large videos can take a minute. Keep this tab open while Sentinel uploads and saves each file.
For multiple files, Sentinel uses this as a prefix and adds a number. Leave blank to use each filename.
How the business is doing — last 28 days vs the prior 28, what changed and why, plus Sentinel's synthesized weekly read on performance, creative, and anomalies.
Waiting for intelligence data
Save competitor ads, uploaded references, and generated winners into one brand-scoped creative library.
Set monthly revenue and spend targets, monitor pacing, and generate an AI year-end projection.
Revenue to Goal
—
to goal
Spend to Goal
—
to goal
AI Projection
—
projected year-end
No AI projection yet
Generate an end-of-year forecast
Click any target to edit · ROAS auto-computed
A forward posting plan drafted from what this brand has actually been posting — every owned profile, the brand channel and the founder's, what each post was about and which ones worked. Instead of emailing the client for updates and waiting, read the updates off their feed.
One model across every force that moves your market — media, promotions, price, distribution, competitive pressure, launches, and the retail calendar. Not just where the ad money went: where attention is worth spending.
A multiplier on what the platform reports. 1.20 means the platform under-reports by 20%; 0.30 means only 30% of what it claims was caused by the ads.
The non-media forces that move your market. This is what separates a mix model from a media report.
Measure a channel once and every later model inherits the anchor. This is the only input that settles how much of revenue media actually caused.
Where your traffic comes from and how it converts — sessions, new visitors, orders, revenue, and conversion rate by source/medium, landing page, and organic referrer. From first-party pixel data + attributed orders.
Overlay any KPIs over time to spot correlations — revenue vs ad spend, ROAS, or customer-tag signups (e.g. pro stylists). Ad metrics span pre- and post-pixel history; store revenue comes from Shopify.
No data in this range yet
Connect Shopify for store revenue, or pull ad history so spend and ROAS lines appear here.
Monitor Klaviyo revenue, list health, flow coverage, and recent campaign activity for this brand.
Enter this brand's Klaviyo Private API Key to unlock email revenue, flow coverage, list health, and campaign reporting.
Pick every scope up front — Klaviyo key scopes can't be edited after creation. Missing one means creating a new key later.
Required Klaviyo key access
Reporting & Brand Brain — Read access
Email Studio also needs — Full access
Email Studio = template push, draft campaigns, image hosting.
Find it in Klaviyo Settings > API Keys. Choose Custom Key, select the read scopes listed here, then paste the pk_ key. The key is saved only for this brand.
Generate an approval-ready campaign pack from Brand Brain and Klaviyo context.
The studio drafts copy, design direction, HTML, SMS, QA, and approval steps. Walk through each step using the tabs above before anything moves into Klaviyo.
Health Score
Email Revenue
—
RPE
—
Revenue/email sent
Subscribers
—
Total list size
Open Rate
—
Revenue Leak
—
/month estimated
Key automated flows
Revenue = Klaviyo-attributed Placed Order revenue in the selected window.
Each campaign now shows attributed revenue, even when the value is $0.
Pick a source, choose the destination, let Sentinel map media and copy, then launch paused Meta ads from one reviewable workspace.
Vars: {filename} {campaign} {date} — e.g. {campaign} | {filename}
Vars: {filename} {campaign} {date}
Meta AI may adjust your creative.
Drop files here
or browse
JPG · PNG · GIF · MP4 · MOV · up to 100 files
Tip: use Offer_4x5 + Offer_9x16 for placement groups, or Card_01, Card_02 for carousels.
Uploading…
Please don't close this tab
0%
No saved snippets yet
Configure setup and upload creatives to get started
Select a Meta connection, campaign, and page first.
Visual URL shown on ad (e.g. "yoursite.com")
Drop new ads into an ad set that already exists in your Meta campaign. Targeting, budget, and bidding stay exactly as they are — we just attach the new ads.
Automatically pause campaigns or adjust budgets when KPI thresholds are breached.
Review Slack-ingested or uploaded videos, edit generated ad copy, and create paused Meta ad sets for final review.
Map Slack channels to Meta ad accounts for automatic video ingestion
Review transcribed videos, edit ad copy, then create ad sets in Meta
Review decisions with Sentinel, teach it how you operate, and follow every result.
Find revenue or new-customer spikes, then check nearby paid, organic, and social-listening signals.
Competitors sync from Brand Brain automatically.
Ask Sentinel to audit growth, diagnose creative, explain revenue movement, draft scripts, and prepare execution plans from the current brand brain and live performance data.
Conversations
Loading history
⚡ Autopilot jobs
Recurring agent runs
Create a conversation, then ask for a sourced diagnosis, creative plan, script pass, revenue readout, or reviewable media action.
Conversation
Live tools, Brand Brain context, and approval-gated execution
Write the instructions once — the Growth Agent runs them on schedule, files the full report as a conversation, and queues any proposed actions for your approval. Nothing executes without you.
Track what happened after approved plans ran, understand 24/72-hour performance movement, and promote winning outcomes into the Knowledge Base.
Outcome timeline
Latest 30 tracked outcomes
| Plan | Verdict (72h) | ROAS Δ | CPA Δ | Reason | Date |
|---|---|---|---|---|---|
| Loading… | |||||
Brand Info docs feed the AI's Brand Brain live — edit one and the AI knows on its next reply. Plus SOPs, playbooks, winning patterns, and past action outcomes used by the Ad Agent.
The philosophy this brand's engines and AI reason from: which automated rules run, which lever comes first, and the decision ladder the AI must walk before it recommends an action. Where a playbook rule and the doctrine disagree, the doctrine wins.
Every other engine judges a campaign on a settled day. This one asks a question none of them can: is a campaign burning through a normal day's budget right now with almost nothing coming back? It proposes a pause for review — it never pauses anything itself.
Fires once today's spend reaches this share of what the campaign normally costs in a whole day.
Only campaigns under this share of the brand's ROAS target are candidates.
Search Results
Analyzing video frames with AI…
AI-ranked best frames — click to select as ad thumbnail
Relaunch a proven ad into this session — the new ad reuses the post's likes, comments, and shares.
Loading your recent ads…
No reusable ads found for this account.
Select ads to reuse
Time uses your local timezone. Must be at least 1 minute in the future.
Don't close this tab — Meta is processing your creatives.
Select ad formats → Claude fills them with your brand DNA → jobs fire automatically
Generate high-performing AI variations in seconds
Clone Ad Mode — AI will analyze your inspiration to create matching ads for your product
These are the competitor ads you've discovered. Select one or more as style inspiration.
Fill in the details below or import from a URL. We'll use this to generate a custom ad for you.
Paste the offer URL — we'll scrape it and auto-fill the fields
Use a specific offer/landing page URL — separate from your main brand site if needed. We pull product name, description, price, and visuals.
or add your product manually
Upload or scrape from URL. The AI uses these to place your exact product in the generated ad.
Upload a photo of a person — background will be auto-removed and they'll be placed in the ad.
Inspirations (0)
The AI will combine styles from all selected inspirations. The first image sets the layout and aspect ratio.
Product
Style Presets — click to apply
0 / 4000
0%
Starting generation...
Loading...
Tag already exists for this ad.
Amazon Attribution is already tracking this ad. You can create a new tag with a different product URL if needed.
The Amazon product page your ad should link to. Must contain a valid ASIN.
What this creates:
Tag created! Copy this URL into your ad:
Amazon may take ~24h to create the actual Attribution tag. The link will redirect correctly in the meantime.
Daily
Current Period
Select the advertising profile you want to connect:
Select the ad accounts you'd like to connect:
Shopify requires app installs and connection handoffs to begin from a Shopify-owned surface. Open Sentinel from the Shopify App Store or your Shopify admin Apps page, then Shopify will pass your store securely to Sentinel.
Connect using your agency Business Manager system user token. The system user must be assigned to the brand's ad account in your BM before connecting.
Only needed if pasting a different token. The agency system user option uses the token already stored in your Railway environment.
Validated Customer Meta Access
Token looks valid.
Scopes
None detected
Token Ref
-
Drop a video or click to browse
MP4, MOV, AVI, WebM • Max 100MB
This may take 15-30 seconds for longer videos
frames analyzed • s video
Loading explanation...
Agency members automatically get access to all your brands, including any new brands you add later.
Pull warranty registration data and fire Meta CAPI Purchase events automatically.
Copy the URL directly from your browser's address bar when viewing the sheet.
Row 1 is assumed to be the header row and will be skipped automatically.
Deconstruct the ad · adapt copy · generate your version
Analyzing with Claude Vision
Extracting text, deconstructing the creative, adapting for your brand…
Drop images here or click to browse
PNG, JPG, WEBP — multiple files supported