Weekly Mixpanel product analytics digest in Slack

By General Input

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.

Integrations

  • Mixpanel
  • Slack Bot
  • Google Sheets

Type

Agentic Task

Categories

  • Product
  • Operations

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board