Weekly WordPress traffic digest in Slack

Every Monday at 9am, get a Slack post ranking last week's WordPress articles by Google Analytics pageviews, with the top performers, the underperformers, and week-over-week deltas.

Deterministic Code
WordPressGoogle AnalyticsSlackMarketingAI ReportsDaily Digests

Build a deterministic code workflow that posts a weekly WordPress traffic digest to Slack every Monday at 9am ET. The trigger is cron.

Step 1: WordPress List Posts. Query the configured WordPress site for posts with status=publish and a published date in the last 7 days. For each post, capture title, slug, full URL, author name, and categories.

Step 2: Google Analytics Batch Run Reports against the configured GA4 property for the same 7-day window. Request the metrics pageViews, totalUsers, averageSessionDuration, and engagementRate, dimensioned by pagePath. Use a pagePath filter scoped to the slugs collected in step 1 so we only pull rows for those posts. Include the prior 7-day window as a second report in the batch so we can compute a week-over-week delta.

Step 3: Join the WordPress list and the GA4 rows on URL/slug. For posts with no GA row, fill metrics with 0. Sort by pageViews. Pick the top N performers and the bottom N performers, where N is a configurable input that defaults to 3. For each post, compute the week-over-week delta in pageViews against the prior period rows returned in step 2. Format a single Slack message: a short header (date range, total posts published, total pageviews), then a Top Performers section and an Underperformers section, each line showing title, author, pageviews, engagement rate, and the WoW delta with an up or down arrow.

Step 4: Slack Send a Message to the configured channel with the formatted recap. Use Slack mrkdwn so titles link to the post URL.

Configurable inputs: WordPress site (credential picker), GA4 property ID, target Slack channel, and the number of top and bottom posts to surface (default 3 and 3). The schedule (Monday 9am ET) should also be editable.

Integrations to use: wordpress, google-analytics, slack. Keep every step deterministic — no LLM nodes. If GA returns no rows for the period, still post a short Slack message saying which posts shipped and that no traffic data is available yet.

Additional information

What does this prompt do?
  • Pulls every article you published on WordPress in the past 7 days, with title, author, and category.
  • Matches each article to its Google Analytics 4 traffic so you see pageviews, unique readers, average time on page, and engagement rate.
  • Ranks last week's posts, surfaces the top performers and the underperformers, and adds a this-week-vs-last-week delta once a previous run is cached.
  • Posts a clean, skim-friendly recap to your team Slack channel every Monday at 9am ET.
What do I need to use this?
  • A WordPress site you can connect (self-hosted or WordPress.com with API access).
  • A Google Analytics 4 property installed on that WordPress site, with read access for the account you connect.
  • A Slack workspace and the channel you want the weekly recap posted to.
How can I customize it?
  • Change the schedule. Move it off Monday 9am ET to whatever day, time, and timezone fits your team's stand-up rhythm.
  • Change the size of the leaderboard. Pick how many top performers and how many underperformers to call out each week.
  • Change the Slack destination. Send to a marketing channel, an editorial channel, or DM the editor in chief.
  • Change the metrics shown. Drop engagement rate, add average session duration, or include only authors you care about.

Frequently asked questions

Do I need a developer to set this up?
No. You connect your WordPress site, your Google Analytics 4 property, and your Slack workspace once, pick the channel, and the workflow runs every Monday on its own.
Will this work with WordPress.com or only self-hosted WordPress?
Both work, as long as the REST API is reachable for the account you connect. The same setup applies.
What if Google Analytics has no data for a post yet?
Posts with no recorded traffic still show up in the recap with zeroes, so you can tell what shipped but underperformed instead of silently dropping them.
How does the week-over-week comparison work?
The first run only shows last week's numbers. From the second run onward, each post is compared to its previous week so you see the change.
Can I post the recap to more than one Slack channel?
Yes. You can duplicate the Slack step to post to a second channel, or DM a specific person in addition to the main channel.

Stop digging through Google Analytics every Monday.

Connect WordPress, Google Analytics, and Slack once, and Geni posts the recap to your team channel every Monday at 9am.