Automation

# Describe it once. Runs forever.

Ask anything. In plain English. Trackingplan builds the automation for you — writing the narrative, creating the chart, linking the evidence, and delivering it where your team already works.

Reports

A weekly leads report, a Monday conversion-gap email, a daily traffic digest. The numbers, the chart, and what changed — written for the people who read it.

Ad-hoc monitoring

Turn the checks your team cares about into always-on monitoring: “Logged-in users must always carry `user_id`”, “Every purchase must include `currency`”…

Routing

Slack, Teams, email, Jira, or a webhook. Every automation goes where its audience already works, with the evidence linked.

Your touch

Add your reading of the numbers before it goes out. The analyst’s note travels with the report.

> “Trackingplan allows you to direct your efforts to the most impactful areas, which means better outcomes with fewer resources wasted.”

**Bert Reila** · Analytics Manager, Rethink

How it works

1.  01
    
    Describe what you want, when, and where it should land.“Every month, send the DPO a full compliance audit by email: cookies, vendors, consent and PII.”
    
2.  02
    
    Trackingplan drafts it and shows you the first edition on the spot.“Got it. I’ll email the full audit to dpo@northwind.example on the 1st of every month. Here’s this month’s edition so you can check the format.”
    
3.  03
    
    It runs on its own from then on.Oct 1, 09:00 · Gmail · dpo@northwind.example · “Monthly compliance audit — 5 findings, 2 for you”.
    
4.  04
    
    Edit and adapt as you go.“Turn it into a weekly report, and cc legal@northwind.example.”
    

[Start asking your data →](https://app.trackingplan.com/signup) [Book a demo](/demo)

See it in action

## Six automations, as they land.

Slack, email, Claude over the MCP, Jira: pick one on the left to see its latest run, with the evidence it came with.

Automations · running

on demandCookie banner vs production#privacy monthlyCompliance audit for the DPOdpo@ on demandGTM hygiene · unused triggersClaude · MCP weeklyBest sellers, and whygrowth@ hourlyTraffic anomaly watch#tp-ai-anomalies on releasedataLayer regression*JR*Jira Every month, send the DPO a full compliance audit: cookies, vendors, consent and PII.Send

Northwind · #privacyPosted by Trackingplan

tp

**Trackingplan** · app · 00:02

**Your banner declares 45 cookies. Production sets 47.**

-   undeclared `_ttp` · TikTok · set by *TikTok – Base Pixel* on every page, 240 ms after load — before the banner answers.
-   undeclared `_uetsid` · Microsoft Advertising · set by *Bing – UET* on `/checkout`, also before consent.

The other 45 match the CMP declaration, including purpose and retention. Nothing is set by the apps.

47 observed · 45 declared · 2 undeclared · *20 sessions attached*

Gmail · Monthly compliance audit · SeptemberFrom: trackingplan@tp.ai

**To:** dpo@northwind.example** Subject:** Monthly compliance audit — 5 findings, 2 for you

Cookies

-   47 observed, 45 declared. 2 undeclared `_ttp`, `_uetsid` — both set before consent.

Vendors

-   14 receiving data, 13 as intended. 1 unexpected Hotjar receives the email hash on `/account`.

Consent

-   97% of EU sessions carry a state. On 3% of DE sessions the Meta pixel fires before it.

Personal data in properties

-   `user_id` and `search_term` carry plain emails to GA4. Values masked in the evidence.

Every line links the hits it came from · Reply to this email to ask anything, the agent answers in-thread.

Claude · Trackingplan MCPNorthwind · 11 tools

**Ashley** · 11:24

Use Trackingplan to audit our GTM container. What can I delete without breaking anything?

list\_container · GTM-WX7K2Ptrigger\_usage · 90dvariable\_references

**Claude** · via Trackingplan MCP

**Five things you can delete, and one pair to merge.**

-   Triggers *Legacy – Thank You* and *Promo 2023 – Click*: 0 fires in 90 days of live traffic.
-   Variables *DL – oldCartId*, *DL – promoCode2023* and *JS – legacyUserType*: read by no tag.
-   merge *Purchase – Web* and *Purchase – Mobile Web* fire on the same event with the same conditions; one trigger covers both.

Trackingplan checked them against real traffic, not just the container: live version and Latest. None of this is still in use.

2 triggers · 3 variables · 1 merge · *0 fires in 90 days*

Gmail · Best sellers · week of Sept 1From: trackingplan@tp.ai

**To:** growth@northwind.example** Subject:** Top products this week — and what moved them

The three that carry the week

-   **Aria running jacket** · 1,412 units +64% — price went from 129€ to 99€ on the 6th; volume doubled within two days.
-   **Loop tote** · 980 units +31% — the *autumn-promo* Meta campaign went live on the 11th; 71% of its purchases carry that UTM.
-   **Field boot** · 744 units −8% — no price change, no campaign, `view_item` flat. This one is demand, not tracking.

Before you quote these

-   `item_list_name` has been missing on 6% of purchases since release v94, so the breakdown by list under-counts. Units and revenue are unaffected.

Top 20 and the full causes in Trackingplan · Reply to ask about any product.

Northwind · #tp-ai-anomaliesPosted by Trackingplan

tp

**Trackingplan** · app · 14:05

**Meta leads are 40% below baseline since Wednesday. This is not your tracking.**

-   −40% The drop starts at 09:12 on Wednesday and is entirely Meta. Three campaigns were paused nine minutes earlier.
-   The pixel is healthy: `lead` fires on every submit, `event_id` coverage 99%, no schema change in the last two releases.

The three paused campaigns were also the most expensive: CPL across the six still live went from 17.5€ to 14€.

volume −40% · cause: 3 campaigns paused · CPL *−20%*

*JR*Jira · DATA-2841 · openedvia webhook · 4 min after the release

P1 **v95 dropped `coupon` from checkout\_step**

what changed

`coupon` coverage on `checkout_step`: 41% → 0% within a minute of the deploy

cause

GTM variable *DL – coupon* reads `ecommerce.coupon_code`; the checkout sets `ecommerce.coupon`

owner

@ashley · last editor of the tag, assigned automatically

evidence

schema diff v94 → v95 · 20 sample payloads before and after

fix

One variable back to `ecommerce.coupon` — confirmed on the first live checkout with a code

opened *4 min* after the deploy · 1 parameter lost · owner assigned

In the product

## Put your analytics on autopilot.

-   Reporting
    
    ### Reports that arrive — to Slack, to your inbox, to your incident tool — before anyone has to ask.
    
    Per-team digests, live reports that never go stale… for those who want answers, wherever they want them.
    
    Posted to #data-daily · today · 09:00
    
    Slack·Email
    
    Daily report · today · 09:00
    
    **Yesterday at a glance: 2.41M hits (+3.1%), 1,884 purchases (+18%), ROAS proxy 2.4× (−9%).** Two anomalies worth your attention, three implementation issues opened overnight.
    
    **Trackingplan** · monitor
    
    **Anomalies:** *notification* events spiked +214% at 09:00, most likely the push campaign; confirm with growth. Meta *Purchase* CAPI events fell 31% below baseline: *event\_id* coverage dropped from 99% to 41% at 03:14 UTC.
    
    **Issues opened overnight:** the *checkout\_v2* tag is missing on */cart/payment* (200 sessions), *gclid* coverage on Google Ads conversions is down to 32%, and the new *onboarding\_started* event fires without *user\_id* in 17% of hits.
    
    Purchases, per dayYesterday
    
    Every weekday at 9am Madrid time, post yesterday’s traffic summary in #data-daily — top KPIs, anomalies, and any implementation issues opened overnight.Sent
    
-   Ad-hoc monitoring
    
    ### Your team’s operational knowledge, running on its own.
    
    Turn the weird, specific checks your team has learned to care about into always-on monitoring.
    
    Posted to #ecommerce · 12 minutes ago
    
    Slack·Email
    
    Ad-hoc check · 12 minutes ago
    
    **Heads up: 22% of purchase events are missing *currency*** since this morning’s release. Meta’s bidding has been learning from 78% of your orders since then.
    
    **Trackingplan** · monitor
    
    Since the 09:15 release, purchases from the new express checkout leave without *currency*: 312 orders so far, 22% of the total. Meta and Google Ads discard those conversions, GA4 reports them with no revenue. Purchases from the regular checkout still carry it.
    
    **Cause:** the express checkout builds its own *purchase* payload and never sets *currency*. One property to add in the express checkout’s dataLayer push.
    
    Purchase events without currency, %Since the release
    
    The Purchase event must always carry the currency property.Sent
    
-   Custom schedules
    
    ### Your checks, on autopilot.
    
    Turn manual verifications into scheduled checks that run automatically and surface changes when they matter.
    
    Posted to #privacy · today · 07:00
    
    Slack·Email
    
    Scheduled check · every 24 h · today · 07:00
    
    **Two new cookies since yesterday, neither of them in the CMP list:** *\_ttp* (TikTok) and *\_uetsid* (Microsoft Advertising). Both are set before the banner is answered.
    
    **Trackingplan** · monitor
    
    *\_ttp* is set by *TikTok – Base Pixel* on every page, 240 ms after load; *\_uetsid* by *Bing – UET* on */checkout*. Neither tag existed in the container before yesterday’s 18:40 publish. The other 45 cookies still match the CMP declaration, purpose and retention included.
    
    **To fix:** add both cookies to the CMP with their purpose, and put the two tags behind the marketing consent trigger, as the other pixels are.
    
    Cookies observed, per dayUndeclared
    
    Monitor the new cookies on my plan, compared to the list in the CMP, check every 24 hours, alert me on Slack.Sent
    
-   Automated debugging
    
    ### Turn errors into fixes
    
    And when an error appears, ask Trackingplan to automate its debugging — from finding the cause to routing it to the right person.
    
    Posted to #implementation\_analytics · 1 hour ago
    
    Slack·Email
    
    Discrepancy · investigated · 1 hour ago
    
    **GA4 and Meta disagree on the item ID of every purchase** since release v96. GA4 receives the SKU (*AR-1093-BLK*), Meta the catalog ID (*1093*). Google Ads still matches GA4.
    
    **Trackingplan** · monitor
    
    Since v96 went live at 10:20, the Meta pixel sends *content\_ids* from *ecommerce.items\[\].id* while GA4 keeps reading *item\_id*: 100% of purchases since then, 1,204 orders. Meta’s catalog matching has been failing on all of them, so Advantage+ is learning from purchases with no product.
    
    **Cause and fix:** v96 renamed *item\_id* to *id* in the items array; the GA4 tag has a fallback, the Meta tag does not. Either restore *item\_id* in the dataLayer push, or point the *DL – content\_ids* variable at *items\[\].id* and map it to the SKU. Owner @ashley, last editor of the tag.
    
    Purchases with matching item IDs, %Since v96
    
    Check if the same item ID is sent across all platforms and highlight any discrepancies/issues found. If you find a discrepancy, investigate what’s causing it and send instructions on how to fix it to #implementation\_analytics.Sent
    

## Some answers before the answers.

?What is Trackingplan?

tp

Trackingplan is your digital analytics agent. It works the way a digital analyst works: it sees the data as it is produced, monitors it continuously across 80+ providers, investigates what happened before it answers, and shows the evidence behind its conclusions.

Ask it a question, give it a task, or let it run an automation. It works from your actual traffic — not from assumptions — and can deliver the answer where your team already works: Slack, Teams, email, your app, or your IDE.

?What data does it actually see?

tp

Every request your website, iOS and Android apps, and server-side endpoints send to 80+ providers — including GA4, Meta, Google Ads, TikTok, Bing, Mixpanel, Segment, Amplitude, Snowplow, your CDP, and your consent stack — plus the dataLayer underneath them.

Trackingplan captures the schema, values, providers, consent signals, timing, and implementation context as data flows through your stack. The agent reasons over your actual traffic and its history, rather than filling gaps with a model’s guess.

?Why not use a general assistant with an MCP on our warehouse?

tp

**Because an AI agent can only reason about what it can see.**

A warehouse tells you what data eventually arrived. It doesn’t tell you whether the pixel fired correctly this morning, whether a consent state changed, whether a GTM release dropped a parameter, or whether Meta started receiving a different payload after a deployment. By the time the problem reaches the warehouse, the evidence about how the number was produced may already be gone.

Trackingplan starts at that layer. It observes the hits, dataLayer, pixels, SDKs, server-side payloads, consent signals, and implementations that determine what eventually reaches your analytics stack. It automatically builds the schema and semantic context around your real traffic, so the agent can understand what happened, what changed, where it happened, and whether the resulting data can be trusted.

?Another tool to configure?

tp

**No.** Trackingplan is designed to start observing without asking you to build a data model first.

Add one tag, pixel, server-side connection, or our iOS/Android SDK. No tables to expose, no relationships to define, no semantic layer to build, and no tracking plan to configure before the agent can start working. As data flows in, Trackingplan automatically infers your schema and semantic model from what is actually happening.

?What about privacy and PII?

tp

We are fully committed to respecting user privacy and maintaining compliance with global privacy regulations such as GDPR and CCPA. Trackingplan only observes the data your site or app is already sending to analytics or marketing tools — and only for the purpose of monitoring tracking quality and detecting implementation issues.

-   **Cookies.** Trackingplan does not use cookies. Our SDK only uses local storage to keep working locally, never to identify users across sessions or transmit that information to our servers.
-   **User IDs.** If your site or app sends user IDs to your analytics or ad vendors, Trackingplan inspects these requests as part of its monitoring. These IDs are never stored, linked, or enriched. All data is anonymized or masked on the user’s device before being forwarded for analysis.
-   **Fingerprinting.** Trackingplan does not use any form of fingerprinting. We do not collect device characteristics, behavioral patterns, or any other data used to generate unique identifiers.

In short: Trackingplan never introduces new tracking mechanisms, never stores personal data, and never builds user profiles. We act only as a passive observer of the data you’re already sending to your vendors, with strict safeguards against access to personally identifiable information.

If you want to review the decompiled script under NDA, contact our support team. For a complete overview, visit our Privacy & Security documentation.

?Prevention cannibalizes my billable hours.

tp

**It should cannibalize the work nobody wants to bill for.**

For agencies and consultants, the value isn’t in spending hours manually checking pixels, chasing broken implementations, or answering the same tracking question for the tenth time. It’s in being able to take on more sophisticated work, serve more clients without adding proportional headcount, and spend your time where expertise actually matters.

Trackingplan automates the repetitive operational layer. Your expertise stays in the loop where judgment matters.

[Still have questions? Book a demo · 30–45 min →](/demo)

## Meet the digital analytics agent that automates the work nobody thanks you for.

Put expert digital analytics capabilities in everyone’s hands — grounded in what's actually happening in your data.

[Book a demo →](/demo) [Start free trial](https://app.trackingplan.com/signup)

**Chats**

×

Send

Sample workspace. Answers are scripted — the real one reads your traffic.
