Daily Google Ads performance digest in Slack

Every weekday at 9am, get an AI written summary of yesterday's Google Ads spend, conversions, and ROAS posted straight to your Slack channel.

Agentic Task
Google AdsSlack BotMarketingOperationsDaily DigestsAI ReportsNotifications & Alerts
PromptCreate

Build me an agent workflow that posts a daily Google Ads performance digest to Slack every weekday at 9am in my timezone. This is the everyday PPC standup that in-house marketers and ad agencies rebuild by hand. I want it fully automated.

Trigger: cron, Monday through Friday at 9:00am. Make the day of week and time configurable when the workflow is set up.

Step 1. Pull yesterday's campaign performance from Google Ads for the connected customer. Use the Campaign Performance Report operation, or a Search Stream GAQL query against campaign metrics, whichever gives cleaner per campaign rows. For each active campaign I need: campaign name, campaign id, clicks, impressions, cost (metrics.cost_micros divided by 1,000,000 for display in account currency), conversions, conversion value, click through rate, cost per acquisition, and return on ad spend (ROAS = conversion value divided by cost).

Step 2. In the same run, pull a rolling 7 day baseline covering the 7 days before yesterday, aggregated per campaign, so we can compare yesterday to a normal day. Same metrics.

Step 3. Have the agent analyze the two datasets and identify: the headline number for the day (total spend, total conversions, blended ROAS), the top 2 or 3 movers in a positive direction, the top 2 or 3 movers in a negative direction, and any anomalies where a campaign's ROAS dropped or cost spiked past a configurable threshold versus its 7 day baseline. Defaults: flag when ROAS drops by more than 30 percent or when cost jumps by more than 50 percent versus the trailing 7 day average. Make both thresholds configurable.

Step 4. Write a short narrative digest: 4 to 6 bullets in Slack mrkdwn. Include the headline number as the first line, then wins, then losses and anomalies, then one clear recommendation for the day (for example "pause X for review" or "shift budget from Y to Z"). Keep the tone plain and useful, not marketing fluff. Format campaign names in bold with *asterisks*.

Step 5. Post the digest to a Slack channel using the Slack Bot Send a Message operation. Channel id should be configurable at setup time. If any Google Ads call fails or returns zero campaigns, still post a short message to the same channel saying the digest could not be generated and why, so the team knows the automation ran.

Important details:

- Google Ads cost is returned in micros; always divide metrics.cost_micros by 1,000,000 before showing it. Same for any other _micros field.

- Only include campaigns whose status is ENABLED, or that spent more than zero yesterday. Skip removed and paused campaigns with no activity.

- Use Slack mrkdwn syntax, not standard markdown: single *asterisks* for bold, _underscores_ for italic, and <url|text> for links.

- If the account uses a Google Ads manager (MCC), the workflow should still work against the operating customer id on the connection.

What does this prompt do?

  • Pulls yesterday's Google Ads results across every campaign, including clicks, impressions, cost, conversions, click through rate, cost per acquisition, and return on ad spend.
  • Compares each campaign against its trailing 7 day baseline so top movers, ROAS drops, and cost spikes are called out automatically.
  • Writes a short 4 to 6 bullet narrative with the headline number, biggest wins, biggest losses, and one clear recommendation for the day.
  • Posts the digest to your chosen Slack channel every weekday at 9am so the whole marketing team starts the day on the same page.

What do I need to use this?

  • A Google Ads account you can sign in to, with permission to view campaign performance for the customer you want to report on.
  • A Slack workspace and a channel where the daily digest should be posted.
  • A rough sense of what a good day looks like for your account, so you can set the ROAS drop and cost spike thresholds that trigger anomaly flags.

How can I customize it?

  • Change the schedule. Run it earlier, later, seven days a week, or only on business days.
  • Point it at a different Slack channel, or send to multiple channels for different stakeholders.
  • Tune the alert thresholds. Decide how big a ROAS drop or cost jump has to be before the agent flags it as an anomaly.
  • Adjust the metrics or the tone of the summary. Focus on a few campaigns, group by campaign type, or ask for a more executive style recap.

FAQs

Which Google Ads metrics are included in the digest?
Clicks, impressions, cost, conversions, click through rate, cost per acquisition, and return on ad spend for every active campaign for yesterday, plus a 7 day rolling average for comparison.
Can I run this for a client account inside a Google Ads manager (MCC)?
Yes. When you connect Google Ads you can point the workflow at any customer account you have access to, including client accounts under a manager account.
How does the anomaly detection work?
The agent compares yesterday's numbers to the trailing 7 day average for each campaign. If ROAS falls or cost rises past the threshold you set, that campaign is flagged in the digest as something to review.
Can I post the digest to more than one Slack channel?
Yes. Tell the agent which channels to post in and it will send the same digest to each one. You can also send different versions to different channels, for example a detailed one to the PPC channel and a top line summary to leadership.
Will it run on weekends?
By default it runs Monday through Friday at 9am. You can switch it to every day, business days only, or a custom schedule in the workflow settings.

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 rebuilding your PPC standup deck by hand.

Connect Google Ads and Slack once, and Geni delivers yesterday's campaign story to your team every weekday at 9am.