How to Automate Generating Changelog Blog Posts with n8n

admin1234 Avatar

## Introduction

In fast-moving product teams, maintaining and publishing changelog blog posts can become a tedious, error-prone task. Product teams, technical writers, and automation engineers benefit immensely from automating this process. By connecting your project management or issue tracking system directly with a publishing platform, you save time, reduce manual errors, and keep your users informed seamlessly.

In this guide, we will build a fully automated workflow using **n8n**, an open-source workflow automation tool, to generate changelog blog posts every time new product updates are marked as released. This example covers integration with GitHub Issues or GitHub Releases, Google Docs for drafting, and WordPress for publishing.

## Use Case and Problem Statement

Many startups or product teams rely on manual methods or half-automated processes (copying release notes, formatting blog posts, and publishing) to keep changelogs up-to-date. This manual process leads to delays in releasing updates, inconsistent formatting, and overlooked content.

The automation will:

– Pull release/issue data automatically from GitHub.
– Collect release notes or issue descriptions.
– Format the changelog post using predefined templates.
– Draft the post automatically in Google Docs for review.
– Once approved, publish the post directly to a WordPress blog.

Beneficiaries include product managers, content creators, and users hungry for timely and consistent updates.

## Tools & Services Integrated

– **n8n:** Workflow automation orchestrator.
– **GitHub:** Source for released issue details or release notes.
– **Google Docs:** Drafting environment for changelog posts.
– **WordPress:** Publishing platform for blog posts.

Additional optional tools:

– Slack or Email for notifying the team about new posts.

## Step-by-Step Tutorial

### Prerequisites

– n8n instance running (local or cloud).
– GitHub account with repo access and a personal access token with read rights.
– Google Cloud project with Google Docs API enabled and OAuth credentials.
– WordPress site with API credentials (username, application password or OAuth token).

### Step 1: Triggering the Workflow

We want to trigger the workflow whenever a new GitHub Release is published or specific Issues are closed with a ‘Released’ label.

– Use **GitHub Webhook Trigger** node in n8n.
– Configure the webhook URL in your GitHub repo settings (Webhooks).
– Set it to listen to `release` events and/or `issues` events (specifically `closed` issues).

### Step 2: Filter Relevant Events

Add a **IF** node to filter releases or issues which are relevant for changelog:

– For releases: Check if the action is `published`.
– For issues: Check if the issue has a label `Released` or status `closed`.

Example expression for filtering:
“`json
{{$json[“action”] === ‘published’}}
“`

### Step 3: Retrieve Release or Issue Details

For releases:
– Use the **GitHub API** node to fetch detailed release notes and metadata.

For issues:
– Use **GitHub API** node to fetch issue title, body, labels, and comments if needed.

### Step 4: Format Changelog Content

Use an **n8n Function** node or **Set** node to format the fetched data into a markdown or HTML snippet suitable for a changelog.

Example formatting (pseudocode):

“`
## Release v{{$json[“tag_name”]}}

{{$json[“body”]}}
– Issues fixed:
{{$json[“issues”].map(issue => `- ${issue.title}`).join(‘\n’)}}
“`

### Step 5: Create Draft in Google Docs

– Use the **Google Docs node** to create a new document.
– Fill the document body with the formatted changelog content.
– Save the Document ID for tracking.

This allows your content team to review or edit before publishing.

### Step 6 (Optional): Notify Team via Slack or Email

– Use **Slack node** or **Email node** to alert the team with the link to the Google Doc draft.

### Step 7: Publish to WordPress

This step can be manual (triggered after draft approval) or semi-automated.

– Once ready, use the **WordPress node** in n8n.
– Convert Google Doc content to HTML (if needed) using Google Docs API export or function node.
– Post as new blog post with appropriate metadata (title, tags, categories).

### Step 8: Clean Up and Logging

– Update the workflow log.
– Optionally add a final notification (Slack/Email) that the post is published.

## Detailed Breakdown of n8n Workflow Nodes

| Node Name | Purpose |
|———————|————————————————-|
| GitHub Webhook Trigger | Starts workflow on new release/issue event |
| IF Node | Filters relevant events |
| GitHub API | Get detailed release/issue data |
| Function/Set | Format changelog text |
| Google Docs | Create or update draft document |
| Slack / Email | Notify team |
| WordPress | Publish blog post |

## Common Errors & Tips

– **Authentication Errors:** Ensure tokens and OAuth credentials are valid and have correct scopes.
– **Formatting Issues:** Use consistent text encoding and test markdown or HTML rendering on your blog.
– **GitHub Rate Limiting:** Cache data if running frequently.
– **API Limitations:** Google Docs API has quotas; batch requests carefully.
– **Approval Step:** Implement approval before publishing by adding manual trigger or trigger from Google Docs update.

To make it more robust:
– Add error handling nodes (e.g., Try/Catch in n8n).
– Retry API calls on failure.
– Log all webhook requests.

## Scaling and Adaptation Tips

– Adapt to other source control platforms (e.g., GitLab, Jira) by swapping API nodes.
– Use templating engines (like Mustache) inside Function nodes to support multiple changelog formats.
– Support multi-language changelogs by integrating translation APIs.
– Expand to cross-post changelogs on Twitter, LinkedIn using respective API nodes.
– Integrate user-feedback tools to automate FAQ updates from changelog comments.

## Summary

Automating changelog blog post generation with n8n streamlines your product update communication, reduces overhead, and improves accuracy. By integrating GitHub, Google Docs, and WordPress through n8n’s flexible nodes, product and technical teams can create an end-to-end workflow that triggers on releases, drafts content, enables review, and publishes updates seamlessly.

**Bonus Tip:** Implement an **approval workflow** by sending the Google Docs draft link to product managers through Slack, then use n8n’s manual trigger to proceed with WordPress publishing only after explicit approval. This balances automation with human oversight for quality control.

Start building this automated workflow today and free your team to focus on building great products instead of managing changelogs.