Weekly Klaviyo campaign digest to Slack and Google Sheets
Every Monday at 8am, get a ranked recap of last week's Klaviyo campaigns in Slack while the raw numbers are quietly archived to a Google Sheet.
Build me an agent workflow that runs every Monday at 8am (timezone and exact time configurable) and produces a weekly Klaviyo campaign performance digest. Post it to a Slack channel I choose, and archive the underlying numbers to a Google Sheet so trends accumulate over time.
Trigger: cron, weekly on Monday at 8am in my timezone. I should be able to change the day, time, and timezone later.
Step 1. Pull last week's campaigns from Klaviyo. Use Klaviyo's Get Campaigns to retrieve every email and SMS campaign whose send date falls in the last 7 days. Run it twice if needed, once for the email channel and once for the SMS channel, since Klaviyo filters by channel.
Step 2. Fetch performance stats for each campaign. For each campaign returned above, call Klaviyo's Query Campaign Values to get opens, open rate, clicks, click rate, conversions, and attributed revenue over that 7 day window. Capture recipient count as well. If a campaign has no measurable stats yet (sent within the last few hours), skip it and note the skip at the bottom of the digest.
Step 3. Write the digest. Compose a short, scannable Slack message. Keep walls of text out of it. Structure:
• Headline numbers up top: total campaigns sent, total recipients, average open rate, average click rate, total attributed revenue.
• Top 3 performers, ranked. Use revenue as the primary signal, click rate as the tiebreaker. Show campaign name, send date, open rate, click rate, revenue.
• Worst performer of the week, with a likely reason in plain English (subject line fatigue, off-peak send time, very small or very large audience, segment overlap, etc.). The reason is the agent's best read, not a hard claim.
• Week-over-week callouts: read the existing archive Google Sheet and flag anomalies. For example, open rate down more than 20 percent vs the trailing 4 week average, revenue per recipient cut in half, click rate hitting a new high.
Format the Slack message using Slack mrkdwn (single asterisks for bold, not double). Keep it tight.
Step 4. Post to Slack. Use Slack's Send a Message to post the digest to the channel I pick at setup. Channel should be configurable.
Step 5. Archive to Google Sheets. Use Google Sheets Append Values to add one row per campaign to a sheet I designate. Columns, in order: campaign name, send date, channel (email or SMS), recipients, open rate, click rate, conversions, attributed revenue, week of (Monday date). If the sheet is empty on the first run, add the header row first.
Inputs to collect at setup: Klaviyo API key, Slack channel for the digest, Google Sheet ID and tab name for the archive, my timezone, send day and time (default Monday 8am), and which channels to include (default both email and SMS).
If there were zero campaigns sent in the last 7 days, post a one-line Slack message saying so and skip the sheet write.
Additional information
What does this prompt do?
- Pulls every email and SMS campaign you sent in the last 7 days from Klaviyo, along with opens, clicks, conversions, and attributed revenue.
- Writes a short, scannable digest that names the top 3 performers, flags the worst one with a likely reason, and calls out anything that looks off versus prior weeks.
- Posts the digest to a Slack channel of your choice every Monday at 8am so the whole team starts the week aligned on what worked.
- Appends one row per campaign to a Google Sheet so trends build up over time and you can chart performance whenever you want.
What do I need to use this?
- A Klaviyo account with at least one email or SMS campaign sent in the past week.
- A Slack workspace and a channel where the Monday digest should land.
- A Google Sheet to act as the running archive (we will add one row per campaign each week).
How can I customize it?
- Change the schedule. Monday at 8am is the default, but you can shift the day, time, or move to a biweekly or monthly cadence.
- Swap the Slack channel, switch between email-only or SMS-only campaigns, or expand the lookback window past 7 days.
- Tweak what the digest emphasizes, like leaning more on revenue, on engagement, or adding a watchlist of campaign tags you care about.
Frequently asked questions
Does this work if I only run email campaigns and no SMS?
How does it pick the worst performer and explain why?
Where do the week-over-week comparisons come from?
Can I send the digest to more than one Slack channel?
What if I do not have a Google Sheet ready yet?
Stop building weekly Klaviyo recaps by hand.
Connect Klaviyo, Slack, and Google Sheets once, and Geni delivers a ranked campaign digest in Slack every Monday at 8am.