Weekly GitHub changelog to Notion and Slack

Every Friday at 4pm, turn the week's merged pull requests into a customer-readable changelog in Notion and announce it in Slack.

Deterministic Code
GitHubNotionSlackEngineeringProductAI ReportsContent GenerationNotifications & Alerts

Every Friday at 4pm, build a weekly changelog from our merged GitHub pull requests, publish it to Notion, and announce it in Slack. The pipeline is fixed and deterministic: list, fetch, AI generate, create page, notify.

Trigger: cron, every Friday at 16:00 in our team timezone.

Step 1. Use GitHub Search Issues and Pull Requests with a query of is:pr is:merged merged:>=YYYY-MM-DD where the date resolves at run time to the previous Friday. Include one or more repo: qualifiers for the repos I configure. Page through results so we capture every merged PR from the last seven days.

Step 2. For each PR returned, call GitHub Get a Pull Request to grab the title, body, author login, merged_at timestamp, html_url, and labels. Collect these into a single array.

Step 3. Run an AI generation step over the collected PRs. Group entries into four sections: Features, Improvements, Fixes, and Internal. Use PR labels as the primary signal (for example feature, enhancement, bug, chore, internal) and fall back to inferring from the title and body. For each PR, write one customer-readable sentence rewritten from the raw PR title (no internal jargon, no ticket prefixes). Also produce a short headline for the week and pick the top three highlights to feature in Slack.

Step 4. Use Notion Create a Page to create a new page under the Weekly Changelog parent page I configure. The title should be something like "Changelog: Week of MMM D" and the body should contain the four sections as headings with the rewritten one-liners as bullets. Each bullet should link back to the original PR url and credit the author.

Step 5. Use Slack Send a Message to post to the team channel I configure. The message should include the week headline, the three highlights as bullets, and a link to the new Notion page. Keep it short so it reads cleanly in the channel.

If the GitHub search returns zero merged PRs, skip steps 3 through 5 so we do not post an empty changelog. Integrations: GitHub, Notion, Slack.

Additional information

What does this prompt do?
  • Searches GitHub for pull requests merged since last Friday across the repos you choose, then fetches each one to grab title, body, author, and labels.
  • Uses an AI generation step to group the PRs into Features, Improvements, Fixes, and Internal sections and rewrite raw PR titles into customer-readable one-liners.
  • Creates a new page under your Weekly Changelog parent in Notion with the formatted release notes.
  • Posts a Slack message to your team channel with the headline, the top three highlights, and a link back to the Notion page.
What do I need to use this?
  • A connected GitHub account with read access to the repos you want included.
  • A connected Notion workspace with a parent page (for example, called Weekly Changelog) where new entries should be created.
  • A connected Slack workspace and the channel ID where the announcement should be posted.
How can I customize it?
  • Change the cron from Friday at 4pm to whatever cadence fits your release rhythm, for example end of sprint or first business day of the month.
  • Adjust the repo list and the GitHub search qualifiers (labels, authors, base branches) to scope what counts as changelog-worthy.
  • Edit the AI grouping prompt to match your tone of voice, the section names you actually use, or to include a short executive summary at the top.

Frequently asked questions

How does the workflow know which PRs to include each week?
It runs a GitHub Search Issues and Pull Requests query with is:pr is:merged and a merged:>=YYYY-MM-DD date that resolves to the previous Friday at run time. You can scope the query to specific repos, labels, or base branches.
Can I use this with multiple GitHub repositories?
Yes. The search query supports multiple repo: qualifiers, so the workflow will collect merged PRs from every repo you list and merge them into a single changelog.
Where does the changelog get saved in Notion?
It is created as a new child page under a parent page you specify (for example, a Weekly Changelog index). Each run creates a fresh dated page so you keep a full history.
What does the Slack announcement look like?
A short message with the week range as the headline, three top highlights chosen by the AI step, and a link to the full Notion page so people can click through for the rest.
What if no PRs were merged that week?
The workflow will detect an empty result from the GitHub search and skip creating the Notion page and Slack message, so your channel does not get a noisy empty update.

Stop hand-writing release notes every Friday.

Connect GitHub, Notion, and Slack once, and Geni publishes a clean weekly changelog for you every Friday at 4pm.