Daily Meta Ads spend anomaly alerts in Slack

Every weekday at 8am, get a Slack alert flagging runaway spend, broken tracking, and CPA drift in your Meta Ads account, with plain English next steps.

Agentic Task
Meta AdsSlack BotMarketingNotifications & AlertsDaily Digests
PromptCreate

Every weekday at 8am in my local time zone, run a spend and pacing anomaly check on my Meta Ads account and post the result to a single Slack channel.

Data pull: use Meta Ads to list the campaigns in the account, then pull yesterday's performance metrics at the account level, campaign level, and ad set level (spend, impressions, CPM, CTR, CPA, ROAS, and conversions). Also pull the last 7 days of daily metrics per campaign so the agent can compute a trailing 7 day average for spend and CPA.

Anomaly detection: for each active campaign, decide whether any of these three conditions are true, and flag it if so.

1. Runaway spend: yesterday's spend was more than 150% of that campaign's trailing 7 day average daily spend.

2. Broken tracking: yesterday's spend was above a minimum floor (default $50) but attributed conversions were zero.

3. CPA drift: yesterday's CPA was more than 50% higher than the trailing 7 day average CPA.

Skip any campaign that is still in the LEARNING phase or has fewer than 3 days of delivery history, because the baselines are unreliable there. The agent should reason about what qualifies rather than treat these rules as brittle absolutes: if a campaign has been paused most of the week or its baseline is clearly noisy, note that and move on.

Output: post a single message to a Slack channel (I will pick the channel at setup) using the Slack bot. Structure the message like this.

Header line: a red, yellow, or green status. Red if there is at least one runaway spend or broken tracking flag. Yellow if there are only CPA drift flags. Green if nothing is off.

Account summary: one line with yesterday's total spend, total conversions, blended CPA, and ROAS for the account.

Per flagged item: campaign name, anomaly type, the specific numbers that triggered it (yesterday's value vs the 7 day baseline), and a one line recommendation. Use these recommendations: 'Pause or investigate' for runaway spend, 'Check pixel and conversion setup' for broken tracking, 'Lower budget or refresh creative' for CPA drift. The agent can rewrite these to fit the situation.

If everything looks healthy, post a short green message confirming the account looks fine and list yesterday's totals so I know the check ran.

Setup inputs I should be asked for: the Meta Ads account (or accounts) to monitor, the Slack channel to post to, the send time and days, the runaway spend multiplier (default 150%), the zero conversion spend floor (default $50), and the CPA drift threshold (default 50%).

What does this prompt do?

  • Checks yesterday's Meta Ads performance at the account, campaign, and ad set level every weekday morning.
  • Flags three specific problems: runaway spend, campaigns burning budget with zero conversions, and CPA that has drifted well above the trailing 7 day average.
  • Posts a single Slack message with a red, yellow, or green status header so you can see the state of the account in one glance.
  • Adds a one line recommendation next to each flagged campaign (pause, lower budget, or check pixel) so you know what to do next.

What do I need to use this?

  • A Meta Ads account with active campaigns and access to yesterday's performance data.
  • A Slack workspace and a channel where the alert should land.
  • About five minutes to connect both accounts and pick your thresholds.

How can I customize it?

  • Change the send time or the days it runs (for example, seven days a week instead of weekdays).
  • Adjust the thresholds that count as an anomaly, like moving runaway spend from 150% to 200% of the daily average.
  • Point the alert at a different Slack channel or a private DM, or route to more than one channel.

FAQs

How is this different from Meta's built in alerts?
Meta's built in alerts fire on single rules and do not compare a campaign to its own recent baseline. This workflow looks at each campaign's trailing 7 day average, filters out campaigns still in learning, and writes a plain English recommendation for each issue it finds.
Will it wake me up with noise on quiet days?
No. If nothing is off, you get a short green status message confirming the account looks healthy. Only real anomalies get a callout.
Can I run this on more than one ad account?
Yes. When you set it up, tell the workflow which ad accounts to check. It will roll them into the same Slack post or split them across channels, whichever you prefer.
Does it skip brand new campaigns?
Yes. Campaigns in the learning phase or with fewer than three days of data are excluded from the baseline math, because their numbers swing too much to be reliable.
Can I change the anomaly thresholds later?
Absolutely. The runaway spend multiplier, the zero conversion spend floor, and the CPA drift percentage are all exposed as settings you can tune after the workflow is generated.

Related templates

A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
Slack Bot
Agentic Task
LiveChat coverage board for planning next week's shifts

See the exact hours your chat queue backs up and customers give up waiting, then plan next week's shifts before it happens again.

LiveChat
Slack Bot
General Input Database
App

Stop finding out about wasted ad spend at the end of the week.

Connect Meta Ads and Slack once, and get a health check on your campaigns in your inbox before the coffee's cold.