Weekly Mixpanel product analytics digest in Slack
Every Monday at 9am ET, post a narrative recap of last week's top events, funnels, and retention to Slack, with the numbers logged to Google Sheets.
Build me a weekly product analytics digest workflow as an agent workflow.
Trigger: a cron schedule that fires every Monday at 9:00am America/New_York. Make the schedule, timezone, and Slack target channel all configurable inputs.
Step 1: Pull last-week vs prior-week data from Mixpanel. Use these three Mixpanel operations:
- Get Top Events for the last 7 days, and again for the 7 days before that, so we can compare. Make the events count (default 10) configurable.
- Query Saved Funnel for a configurable list of saved funnel IDs. For each funnel, fetch last week's conversion and the prior week's conversion, bucketed by week.
- Query Retention Report for a configurable born event, target event, and retention window (default 7-day retention). Fetch last week's cohort and the prior week's cohort.
Step 2: Compute the week-over-week percent change for every metric, rounded to one decimal place. Apply a configurable absolute-change threshold (default 5%) and flag any metric whose absolute WoW change is below the threshold as 'skip from narrative' so the digest stays readable. Keep the numbers themselves for the spreadsheet log.
Step 3: Have the agent write a 6 to 10 line narrative digest from the deltas above. The narrative should: lead with the single biggest gainer or drop, call out the two largest funnel deltas by funnel name, mention retention only if it moved past the threshold, and end with one or two concrete suggested follow-ups (for example 'investigate the signup funnel drop' or 'ask growth what changed in onboarding'). Use plain numbers and percent changes, not jargon.
Step 4: Post the narrative to Slack using the Slack Bot Send a Message operation. Target a single configurable channel ID. Format the message with a one-line header like 'Weekly product analytics: May 12 to May 18' followed by the narrative body. Use simple Slack mrkdwn formatting (bold for the header, bullets for follow-ups).
Step 5: Append every metric (including the ones skipped from the narrative) as structured rows to Google Sheets using the Append Values operation. One row per metric, with these columns: run_date, metric_type (top_event | funnel | retention), metric_name, last_week_value, prior_week_value, wow_pct, included_in_digest. Spreadsheet ID, tab name, and value input option should be configurable.
Configurable inputs the workflow should expose to the user at setup: cron schedule and timezone, Slack channel ID, Google Sheets spreadsheet ID and tab name, list of saved funnel IDs, retention born event + target event + retention window, top events count (default 10), and WoW absolute percent change threshold (default 5%).
Auth: Mixpanel via service account (Project ID + service account username/secret + region). Slack via the Slack Bot integration. Google Sheets via Google OAuth.
Final output: a short status line confirming the channel it posted to and how many metric rows it appended to the sheet, so a failed Slack send or a sheet write error is obvious in the run log.
Additional information
What does this prompt do?
- Pulls last week's top events, saved funnel conversions, and retention from Mixpanel and compares them to the prior week.
- Writes a short 6 to 10 line narrative that leads with the biggest movement, names the largest funnel deltas, and proposes one or two follow-ups.
- Posts the digest to a single Slack channel of your choice, ready for Monday morning standup or product review.
- Appends every metric and its week-over-week change to a Google Sheets tab so you build a queryable history over time.
What do I need to use this?
- A Mixpanel project with at least one saved funnel and a retention report your team cares about.
- A Slack workspace and a channel where the digest should be posted.
- A Google Sheets file with a tab ready to receive the weekly metric rows.
How can I customize it?
- Change the send time, the timezone, or the Slack channel that receives the digest.
- Pick which saved funnels and which retention event pair the digest tracks each week.
- Raise or lower the week-over-week change threshold so only meaningful movement shows up in the narrative.
Frequently asked questions
What numbers actually show up in the digest?
What if a metric did not really move?
Can I track more than one saved funnel?
Where does the historical data live?
Does this work for Mixpanel projects in the EU or India?
Stop rebuilding last week's product analytics by hand every Monday.
Connect Mixpanel, Slack, and Google Sheets once, and Geni delivers the weekly readout for you every Monday at 9am ET.