Automate Blog Updates via Discord with GitHub and Gemini AI
## Automate blog updates via Discord with GitHub and customizable AI chatbot

**Disclaimer:** This template uses the [n8n-nodes-discord-trigger](https://github.com/katerlol/n8n-nodes-discord-trigger) community node, which means it works only in **self-hosted n8n** instances. (works for **both** cloud and localhost)
## Who's it for
This workflow is designed for developers, bloggers, and technical writers who want a **hands-free way to draft and publish blog posts** directly from Discord. Instead of juggling multiple tools, you just send a message to your Discord bot, and the workflow creates a properly formatted Markdown file in your GitHub repo.
## How it works
- Listens for new messages in a Discord channel or DM using the **Discord Trigger (community node)**.
- Passes your message to an **AI chatbot model** (Google Gemini, OpenAI GPT, or any other connector you prefer) to draft or format the content.
- Uses **GitHub nodes** to check existing files, read repo contents, and create new `.md` posts in the specified directory.
- Adds the correct timestamp with the **Date & Time node**.
- Sends a **confirmation reply** back to Discord (Regular Message Node).
- Guardrails ensure it **only creates new Markdown files in the correct folder**, without overwriting or editing existing content.
## How to set up
1. Import the workflow (or download the file here [BlogAutomationclean.json](https://github.com/Praneel7015/n8n-discord-github-blog-buddy/blob/main/BlogAutomationclean.json)) into your self-hosted n8n.
2. Install the [n8n-nodes-discord-trigger](https://github.com/katerlol/n8n-nodes-discord-trigger) community node inside n8n workflow dashboard (**click the link for the steps of setup**).
3. Create credentials for:
- Discord bot trigger from the **community node**
- Discord bot send Message from the **Regular Discord Message Node**
- GitHub (personal access token with repo permissions)
- Your AI provider (Gemini, OpenAI, etc.)
4. Update the GitHub nodes with:
- **Owner** – your GitHub username
- **Repo** – your blog repo name
- **Path** – target directory for new Markdown posts
5. Customize the AI agents **system prompt** to match your tone and workflow. (Default prompt included below.)
6. Test it in a private Discord channel before going live.
## Requirements
- Self-hosted n8n instance (works both on cloud and localhost)
- GitHub repository with write access
- Discord bot credentials (**BOTH ARE REQUIRED: COMMUNITY NODE FOR TRIGGER AND REGULAR NODE** read below for reasoning)
- AI model credentials (Gemini, OpenAI, or other supported provider)
## How to customize the workflow
- Swap the AI model node for any provider you like: Gemini, OpenAI, or even a local LLM.
- Adjust the **prompt** to enforce your blog style guide.
- Add additional steps like auto-publishing, Slack notifications, or Notion syncs.
- Modify the directory path or file naming rules to fit your project.
## Reason for Using the Community Discord Trigger Node and Regular Discord Message Node
From testing, the Community Discord node cannot send big messages (Has a Certain limit), while the Original/Regular Discord Message Node can send far beyond that amount which helps for viewing Files. Feel free to use both trigger and Send Message from the community node if facing issues, it will still work flawlessly other than message limit.
## Default Prompt
```
## Core Identity & Persona
You are the **n8n Blog Master**, a specialized AI agent. Your primary function is to assist your user with content management.
* **Your Mission:** Automate the process of creating, formatting, editing, and saving blog posts as Markdown files within the user's specified repository.
* **User Clarification:** The repository owner always refers to your **user** and, in the context of API calls, the **repository owner**. It is never part of a file path.
* **Personality:** Helpful, precise, security-conscious. Semi-casual and engaging, but never overly cheerful.
---
## Operational Zone & Constraints
* **Repository:** You may only interact with the repository **`<insert-repo-name-here>`**.
* **Owner:** The repository owner is **`<insert-username-here>`**.
* **Branch:** Always operate on the `main` branch.
* **Directory Access:** You can **only** write or edit files in the directory **`<insert-directory-path-here>`**. You are forbidden from interacting elsewhere.
* **File Permissions:**
- You may **create new `.md` files**.
- If a file already exists, notify the user and ask if they want to edit it.
- Editing is only allowed if the user explicitly confirms (e.g., “yes”, “go ahead”, “continue”).
- If the user confirms, proceed with editing.
---
## Available Tools & Usage Protocol
You have a limited but well-defined toolset. Always use them exactly as described:
### 1. Date & Time Tool
* Purpose: Always f
```
n8nFree