Google Analytics 4 + Intercom CSAT Weekly Rollup: Correlated Engagement-to-Support Digest via Make

Catch UX degradation before your quarterly review — pull GA4 engagement and Intercom CSAT for the same 7-day window, correlate them automatically, and get a structured digest in Slack every Monday morning.

The flow
Google Analytics logo
Source
Google Analytics
Intercom logo
Process
Intercom
Make logo
Process
Make
Claude logo
Process
Claude
Slack logo
Destination
Slack

The stack in the order it runs — data flows from the source through to where it lands.

Why this stack

Support and product teams almost never look at the same dashboards. A new feature ships, engagement drops 20% in GA4, product sees it. CSAT tanks the same week in Intercom, support sees it. Nobody connects the two until a quarterly review — which is 11 weeks too late to do anything useful.

GA4's Data API (v1beta) lets you pull event counts, session metrics, and page engagement via a POST request. No BigQuery required for weekly aggregates. Intercom's Reports API surfaces CSAT scores, conversation volume, and response time. The correlation logic is time-based: same 7-day window, look for co-movement.

Make handles this without a Code node. Both GA4 and Intercom have HTTP module support, and Make's built-in data transformers reshape the JSON inline. If you write JavaScript comfortably, n8n does the same job — the Make advantage here is the visual debugger, which matters when Intercom's API returns nested conversation objects and you need to see exactly where the parse breaks.

Skip this entire setup if your GA4 property isn't tracking core product events properly — session data alone tells you nothing meaningful. Also skip it if your Intercom CSAT response rate is below 20%. At that sample size the scores aren't statistically meaningful and you'll be making decisions on noise.

The stack (5)

  1. Google Analytics logo

    Web analytics most teams already run.

    The Data API makes traffic a free input for weekly ops digests.

  2. Intercom logo

    Customer messaging + support inbox.

    Conversation data surfaces churn/expansion signals worth routing to chat.

  3. Make logo

    No-code automation builder. Visual scenarios that chain APIs and AI calls.

    Per-operation pricing is cheaper than Zapier at the volumes I run, and the visual editor handles branching cleanly.

  4. Claude logo

    Long-context reasoning model from Anthropic — my daily driver for nuanced writing and orchestration.

    Better tone-matching and longer working memory than GPT for the tasks I care about most: guest messages, drafts, code review.

  5. Slack logo

    Team chat where most ops alerts and reports land.

    The default place a small team already lives — pipe reports here instead of email nobody opens.

How it runs

  1. 1

    Enable GA4 Data API and create a service account

    In Google Cloud Console, enable the 'Google Analytics Data API' for your project. Create a service account, download the JSON key, and add the service account email as a Viewer on your GA4 property under Admin → Account Access Management. In Make, add a Google Analytics 4 connection using the service account JSON — paste the entire JSON blob into the 'Service Account Key' field. Test it with a simple 'Run a Report' module pulling sessions for the last 7 days before moving on.

  2. 2

    Configure the GA4 report module in Make

    Add a 'Google Analytics 4 → Run a Report' module to your Make scenario. Set the Property ID in the format `properties/XXXXXXXXX`. Date range: last 7 days and prior 7 days for WoW comparison. Metrics: `sessions`, `engagedSessions`, `eventCount`, `bounceRate`. Dimensions: `date`. This gives you a daily breakdown you can aggregate in a subsequent Make data store step. Also pull a second report with dimension `eventName` filtered to your 3–5 core product events — this is how you see whether specific actions dropped, not just aggregate session counts.

  3. 3

    Pull Intercom CSAT and conversation volume

    Add an HTTP module in Make to call `GET https://api.intercom.io/conversations` with your Intercom Bearer token. Filter by `created_at > [7 days ago unix timestamp]` and `state=closed`. Then call `GET https://api.intercom.io/teams/{team_id}/reports/conversation_ratings` for the same window to get aggregate CSAT. Intercom's API is rate-limited to 1,000 requests per minute — for high-volume inboxes, use the conversation search endpoint with pagination and store results in a Make data store between pages.

  4. 4

    Compute WoW deltas in a Make Tools → Set Variable step

    Add a 'Tools → Set Multiple Variables' module. Compute: `session_delta_pct = (this_week_sessions - last_week_sessions) / last_week_sessions * 100`, `csat_delta = this_week_csat - last_week_csat`, `conversation_volume_delta_pct` using the same formula. Then set a `correlation_flag` variable: if `session_delta_pct < -10` AND `csat_delta < -5`, flag is 'HIGH' — that's your potential UX incident signal. If only one metric drops, flag is 'WATCH'. Otherwise 'HEALTHY'.

  5. 5

    Generate the one-line interpretation with Claude

    Add an HTTP module calling `POST https://api.anthropic.com/v1/messages` with model `claude-3-5-haiku-20241022` — use Haiku here, not Sonnet; cost stays low and you don't need deep reasoning for a one-liner. Prompt: 'You are an ops analyst. Given these metrics for a B2B SaaS product, write one sentence explaining the most important thing to know this week. Be specific about numbers. Do not use marketing language. Metrics: [inject the computed variables].' Cap the response at 100 tokens. This sentence becomes the digest headline.

  6. 6

    Build and post the Slack Block Kit message

    Add a Slack 'Create a Message' module using Block Kit JSON. Header block: the Claude-generated sentence. Two column sections using mrkdwn fields — left column: Sessions WoW, Engaged Sessions, Core Event Counts with delta badges; right column: CSAT score, conversation volume, avg first response time. Context block at the bottom with the `correlation_flag` and color coding (🟢 HEALTHY / 🟡 WATCH / 🔴 HIGH). Post to #product-ops every Monday at 8 AM.

  7. 7

    Add an immediate alert path for HIGH correlation flag

    After the variable computation step, add a Router module. On the 'HIGH' route, immediately post a separate Slack message to #incidents: '🔴 Possible UX Incident: engagement and CSAT both dropped significantly this week. Review GA4 + Intercom before standup.' This fires as soon as the Make scenario runs — don't wait for the Monday digest. Include a direct link to your GA4 property and your Intercom conversation ratings page in the message body.

  8. 8

    Log weekly results to Google Sheets for trend tracking

    Add a Google Sheets 'Add a Row' module at the end of the scenario. Append: `week_ending`, `sessions`, `sessions_wow_pct`, `csat_score`, `csat_delta`, `conversation_volume`, `correlation_flag`, `claude_summary`. After 8 weeks of data, connect Looker Studio to this sheet and visualize the correlation trend. That's when the real insight surfaces — whether your product releases are systematically driving support spikes, which is the whole point of building this in the first place.

Want me to build this for you instead?

Product Audit and CTO Mode run out of this same thinking. If you’re reading this thinking “I want this, but in my product” — let’s talk.

See services

More like this