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
PromptCreate

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.

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.

FAQs

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.

Related templates

Partner tier review board for quarterly promotion calls

Work every partner tier decision from one board, with the revenue and commission numbers, clear promotion thresholds, and AI review briefs.

Introw
HubSpot
Slack
App
Reconcile partner commissions between HubSpot and Introw

Open one board at month end to find every closed deal missing a commission, every commission with no deal behind it, and every amount that does not add up.

Introw
HubSpot
Slack
App
One control room for every Instantly sending mailbox

See warmup status, daily send volume, and bounce risk for every sending account in one grid, with the riskiest mailboxes floating to the top.

Instantly
Slack
App
Partner payout approval queue with Xero bill handoff

Review Introw partner payouts line by line, approve them from one board, raise the matching bill in Xero, and post every approval to Slack.

Introw
Xero
Slack
App
One inbox for every Jira Service Management approval waiting on you

See every access, purchase and leave request waiting on your decision in one screen, approve or decline in place, and send the reason back to the requester.

Jira Service Management
Confluence
Slack
App
Shoppable link console for your WordPress recipe archive

See every published recipe, whether it has a live Instacart shopping link, and how many days before that link dies, then renew a whole batch in one pass.

Instacart
WordPress
App

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.