Skip to content

Weekly

Email a weekly changelog from merged pull requests

Every Friday you get a customer-friendly changelog written from the week's merged pull requests, with any risky changes flagged for a second look.

Runs
Weekly
Apps
GitHub, Gmail
AI
Yes, uses the built-in AI allowance
Access
pull_requests:read; gmail.send

Send this to your assistant

Create a ClickRuntime automation: every Friday, take the PRs merged in acme/app this week, have AI write a short customer-friendly changelog and flag risky changes, and email it to me.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A software company ships improvements every week, but customers rarely hear about them. Writing release notes means reading pull request titles full of jargon and translating them, and it keeps getting skipped.

A changelog drafted from merged pull requests each Friday gives the team something to polish and send in minutes. Customers see steady progress, and the risk notes remind engineers which changes deserve a closer watch over the weekend.

What you get out of it

  • Customers see what you ship

    Regular updates show the product is improving. That supports renewals and reduces 'is this still maintained?' questions.

  • Jargon becomes plain language

    AI rewrites technical titles into benefits a customer understands. Internal-only changes are left out.

  • Risky changes are flagged

    Pull requests that touched payments, data or permissions are listed separately. The team knows what to watch after release.

  • A draft you can forward

    The email is ready to edit and send to your list or paste into a blog post. Release notes stop being a chore.

How it works

What happens, step by step

  1. Every Friday, ClickRuntime finds the pull requests merged in your repository during the week.

  2. It skips ones labelled as internal and reads the title, description and changed files of the rest.

  3. AI writes a short customer-friendly changelog and lists any changes that look risky.

  4. The draft is emailed to you to review and send on.

Before it runs live

  • Connect GitHub
  • Connect Google through your own Google app (a one-time, 10-minute setup), so it works with your own Gmail

What you get

RunsWeekly
Email a weekly changelog from merged pull requeststoday, 9:00Succeeded
Email · Changelog draft, week of 13 Oct• Exports now include custom fields • Faster search on large projects Risky changes: #512 changes how refunds are rounded

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Run it at a different time, more or less often, or only on weekdays
  • Change what the AI looks for, or how it writes the result
  • Add another app, for example also send it to Slack
  • Combine it with other GitHub and Gmail steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
changelog_pr_review_emails.pyexample
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, http, notify, ai

def gh(method, path, **kw):
    resp = http.request(method, f"https://api.github.com{path}", headers={
        "Authorization": f"Bearer {credentials.connection('github', 'work')}", "Accept": "application/vnd.github+json"}, **kw)
    return resp.raise_for_status() or (resp.json() if resp.content else None)

REPO = "acme/app"
SKIP = {"internal", "chore", "dependencies"}

@on_trigger
def run(event):
    since = date.today() - timedelta(days=7)
    prs = gh("GET", "/search/issues", params={"q": f"repo:{REPO} is:pr is:merged merged:>={since}", "per_page": 100})["items"]
    prs = [p for p in prs if not SKIP & {l["name"] for l in p["labels"]}]
    if not prs:
        return {"prs": 0}
    lines = []
    for p in prs:
        files = gh("GET", f"/repos/{REPO}/pulls/{p['number']}/files", params={"per_page": 50})
        lines.append(f"#{p['number']} {p['title']}\n{(p.get('body') or '')[:400]}\nFiles: {', '.join(f['filename'] for f in files)[:300]}")
    draft = ai.generate("\n\n".join(lines)[:20000], max_output_tokens=1000,
                        system="Write a short customer-friendly changelog with bullet points. Then a section 'Risky changes' listing PRs touching billing, auth or data.").text
    notify.email_me(f"Changelog draft, week of {since:%d %b}", draft)
    return {"prs": len(prs)}

FAQ

Common questions

Does it send to customers directly?
By default it sends to you so you can check it first. You can have it send to a mailing list address once you trust the wording.
How does it decide what is risky?
It looks at which files each pull request changed and its description, and flags changes to areas you name, such as billing or authentication, or very large changes.
Can it skip internal changes?
Yes. Pull requests labelled internal, chore or dependencies are left out of the customer changelog.
What permissions does it need?
pull_requests:read; gmail.send. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it runs (weekly). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Email a weekly changelog from merged pull requests” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.