by Dean Gallop
This workflow automates the end-to-end process of generating and publishing blog posts from live news headlines. Fetch Headlines – Collects the latest top stories from Google News and GDELT, merges them, and removes duplicates. Headline Selection & Classification – Picks top headlines, checks relevance, and applies style rules. Draft Generation – Uses GPT to create an initial blog article in a natural, human tone. Tone & Expansion – Refines the draft for clarity, length, and style (customized to your own writing voice). Image Generation – Sends the article topic to Leonardo AI, waits for the image to finish rendering, and retrieves the final asset. Publish to WordPress – Uploads the generated image, assigns alt-text, creates a WordPress post with the article and image, and logs the publication to Google Sheets for tracking. Purpose Designed for hands-off content automation, this workflow continuously produces SEO-ready blog posts enriched with AI-generated images and publishes them directly to WordPress. It’s ideal for: Running an automated blog that reacts to trending news. Keeping websites updated with fresh, styled content without manual effort. Creating a repeatable content engine that combines research, writing, and media assets in one pipeline. Setup Instructions: Add Your Credentials Go to Credentials in n8n and create: OpenAI (for article generation) Leonardo AI (for image generation) WordPress (to publish posts) (Optional) Google Sheets (to log published articles) Attach these credentials to the matching nodes in the workflow. Check the WordPress Node Update the WordPress site URL to your own blog. Make sure the category, tags, and status (publish/draft) are set the way you want.
by Praneel S
Automate blog updates via Discord with GitHub and customizable AI chatbot > ⚠️ Disclaimer: This template uses the 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 Import the workflow (or download the file here BlogAutomationclean.json) into your self-hosted n8n. Install the n8n-nodes-discord-trigger community node inside n8n workflow dashboard(click the link for the steps of setup). 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.) Update the GitHub nodes with: Owner → your GitHub username Repo → your blog repo name Path → target directory for new Markdown posts Customize the AI agent’s system prompt to match your tone and workflow. (Default prompt included below.) 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 flawless 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 fetch the current date and time in IST (India Standard Time). Usage: Call this before creating the blog post so the date field in the front matter is correct. Do not use any other timezone. 2. GitHub Nodes Create:* Used to create new files within *<insert-directory-path-here>**. Requires three parameters: owner → always <insert-username-here> repo → always <insert-repo-name-here> path → must be <insert-directory-path-here>/<filename>.md List:* Can list files inside *<insert-directory-path-here>**. Use it to check existing filenames before creating new ones. Read:** Can fetch contents of files if needed. Edit:* Can update a specific file in *<insert-directory-path-here>**. Protocol: Before editing, explicitly ask: “Are you sure you want me to edit <filename>.md?” If the user responds with “yes”, “continue”, or similar confirmation, proceed. If the user declines, do nothing. Constraint: Never attempt operations outside the specified directory. 3. Data Storage & Message History Purpose: Store temporary user confirmations and recall previous user messages as part of memory. Example: If you ask for edit confirmation and the user replies “yes” or “continue”, record that in storage. If later in the same conversation the user says “go ahead” without repeating the filename, check both storage and previous messages to infer intent. Always reset confirmation after the action is completed. Standard Workflow: Creating or Editing Blog Posts Activation: Begin when the user says: “Draft a new post on…” “Make the body about…” “Use my rough notes…” “Modify it to include…” “Edit the file…” Information Gathering: Ask for the Title (mandatory for new posts). Gather topic, points, or raw notes from the user. If user provides incomplete notes, expand them into a coherent, well-structured article. Drafting & Formatting: Call the Date & Time tool. Format posts in the following template: --- title: "The Title Provided by the User" date: "YYYY-MM-DD" --- [Well-structured blog content goes here. Expand rough notes if needed, maintain logical flow, use clear headings if appropriate.] Thanks for Reading! Writing rules: Tone: Neutral, informative, lightly conversational — not too cheerful. Flow: Use line breaks for readability. Expansion: If notes are provided, polish and structure them. Modification: If asked, revise while preserving original meaning. File Naming: Generate a short kebab-case filename from the title (e.g., "Making My Own Java CLI-Based RPG!" → java-cli-rpg.md). File Creation vs Editing: If creating → Use the GitHub Create tool. If file already exists → Ask the user if they want to edit it. Store their response in Data Storage. If confirmation = yes → proceed with GitHub Edit tool. If no → cancel operation. Final Action: Confirm success to the user after creation or editing. Advanced Error Handling: "Resource Not Found" If the create_github_file tool fails with "Resource not found": First Failure: Notify the user that the attempt failed. State the exact path used. Retry automatically once. Second Failure: If it fails again, explain that standard creation isn’t working. Suggest it may be a permissions issue. Await user instructions before proceeding further. Contact and Changes Feel Free To Contribute to it I do not own anything made here, everything was made by their respective owners Shout-out to katerlol for making the discord Node Trigger Contact me Here if you need any help!
by Christian Mendieta
🌟 Complete Workflow Overview The Full Blogging Automation Journey This N8N workflow transforms a simple topic request into a fully published, SEO-optimized blog post through a seamless 7-phase process. Starting with your topic idea, the system automatically researches, creates, optimizes, edits, and publishes professional content to your Ghost CMS website. Think of it as having an entire content team working 24/7 - from initial research to final publication, all orchestrated by AI agents working in perfect harmony. No more writer's block, no more SEO guesswork, just high-quality content that ranks and engages your audience 📋 Requirements & Setup What You Need to Get Started OpenAI API Key** - For GPT models (content generation) Anthropic API Key** - For Claude models as failover model Brave Search API Key** - For comprehensive research Ghost CMS Admin API Access** - For direct publishing Existing Blog Content** - Optional but recommended for better research 🔧 Workflow Architecture & Process How the AI Agents Work Together This N8N workflow implements a sophisticated multi-agent system where specialized AI agents collaborate through structured data exchange. The workflow uses HTTP Request nodes to communicate with OpenAI and Anthropic APIs, integrates with Brave Search for real-time research, and connects to Ghost CMS via REST API calls. Each agent operates independently but shares data through N8N's workflow context, ensuring seamless information flow from research to publication. The system includes error handling, retry logic, and quality gates at each stage to maintain content standards.
by Javier Rieiro
Generates a wordlist of 1,000–15,000 subdomains created by an AI agent by correlating detected technologies and recurring patterns. Objective Assist security researchers, bug bounty hunters, and web pentesters in the reconnaissance phase by incorporating an AI agent that generates additional potential subdomains. This enables discovery of assets outside the scope of traditional scans and expands the analyzable attack surface. How it works The user uploads a list of domains to scan (scope). The workflow performs a passive, comprehensive scan using four sources (subfinder, assetfinder, crt.sh, Wayback Machine). The scan results and detected technologies are passed to an AI agent. The agent runs in a loop up to 20 iterations, generating new subdomains each pass (average output depends on input and model). Generated subdomains are validated and deduplicated. Syntax is checked and availability is tested (host active / httpx). Requirements SSH access with a root user and the following tools: Subfinder Assetfinder HTTPX It is recommended to use a VPS with SSH because if the scope is very large the workflow will take a long time.
by Le Nguyen
How It Works This workflow transforms n8n into a smart Web Lead Form alternative to Salesforce's traditional Web-to-Lead, capturing leads, creating Salesforce records, and sending AI-personalized responses via email or SMS. Capture Submission**: User submits form data (name, email, phone, description, preference) via n8n's hosted form. Create Lead**: Maps data to a new Salesforce Lead. Personalize Message**: Uses OpenAI to generate a tailored welcome based on description and preference (detailed for email, concise for SMS). Route Outreach**: Branches to send via Twilio SMS or SMTP email depending on preference. Set Up Steps Setup takes about 15-30 minutes if you have credentials ready. Focus on connecting services; detailed configs are in workflow sticky notes. Duplicate this template in n8n. Add your Salesforce, OpenAI, Twilio, and SMTP credentials (no hardcoding—use n8n's credential manager). Customize form fields if needed and test with sample data. Activate and share the form URL on your site. n8n Web to Lead Form.json
by Biznova
AI Email Generator with Tone Selection Made by Biznova on Tiktok 📧 What This Does This workflow creates a professional email generator that allows users to: Choose from multiple tones (Professional, Friendly, Formal, Casual) Input recipient details, subject, and context Generate a complete, well-formatted email using AI 👥 Who's It For Business professionals who need to write emails quickly Customer support teams responding to inquiries Sales teams crafting outreach messages Anyone who wants help writing professional emails 🎯 How It Works User fills out a form with email details and selects a tone The workflow processes the input and creates an AI prompt OpenAI generates a complete email based on the tone The formatted email is displayed for the user to copy ⚙️ Setup Requirements OpenAI API key (get one at https://platform.openai.com) n8n instance (cloud or self-hosted) 🚀 How to Use Set up your OpenAI credentials in the "OpenAI Chat Model" node Activate the workflow Share the form URL with users Users fill out the form and receive a generated email instantly 🔧 Setup Steps 1. OpenAI API Key Go to https://platform.openai.com/api-keys Create a new API key Add it to the "OpenAI Chat Model" node credentials 2. Customize Tones (Optional) Edit the "Build AI Prompt" node Modify the tone instructions to match your needs Add new tones to the form dropdown 3. Adjust AI Settings (Optional) In "OpenAI Chat Model" node: Change model (gpt-4 for better quality) Adjust temperature (0.5-0.9) Modify max tokens for longer/shorter emails 4. Test the Workflow Click "Test workflow" button Fill out the form Check the generated email 5. Share the Form Activate the workflow Copy the form URL Share with your team or customers
by Arlene Martin
*Use Case: * Analyze images with multiple subjects. In this use case I have a bookshelf and am extracting and verifying book titles/authors from a bookshelf photo. *How it works: * 1) Webhook receives an image url from a front end in which a user can upload a picture. In this use case, it is an image of a book shelf. 2) Edit Field (Set): Saves image in a consistent location so AI can find it. 3) Analyze Image: Image is analyzed. Extracts titles from the book spines 4) Code: Splits extracted subjects to single item to be able to validate each item separately. Books are individualized to their own entity 5) *HTTP Request *validates each subject. Queries Google Books to validate books in case only partial titles were found. 6) Edit Field (Set): Tidies the result. 7) Code: Aggregates and deduplicates Titles and authors are aggregate into a list 8) Respond to Webhook returns list to front end How to use: Use with a frontend that can capture images and receive back the result. For this use case Supabase was used to store images from which the image analyzer could reference.
by Cooper
Turn Crisp chats into Helpdocs Automatically create help articles from resolved Crisp chats. This n8n workflow listens for chat events, formats Q&A pairs, and uses an LLM to generate a PII‑safe helpdoc saved to a Data Table. Highlights 🧩 Trigger: Crisp Webhook when a chat is marked resolved. 🗂️ Store: Each message saved in a Data Table (crisp). 🧠 Generate: LLM turns Q&A into draft helpdoc. 💾 Save: Draft stored in another Data Table (crisphelp) for review. How it works Webhook receives message:send, message:received, and state:resolved events from Crisp. Data Table stores messages by session_id. On state:resolved, workflow fetches the full chat thread. Code node formats messages into Q: and A: pairs. LLM (OpenAI gpt-4.1-mini) creates a redacted helpdoc. Data Table crisphelp saves the generated doc with publish = false. Requirements Crisp workspace with webhook access (Settings → Advanced → Webhooks) n8n instance with Data Tables and OpenAI credentials Customize Swap the model in the LLM node. Add a Slack or Email node after store-doc to alert reviewers. Extend prompt rules to strengthen PII redaction. Tips Ensure Crisp webhook URL is public. Check IF condition: {{$json.body.data.content.namespace}} == "state:resolved". Use the publish flag to control auto‑publishing. Category: AI • Automation • Customer Support
by Robert Breen
This workflow allows you to search your Outlook mailbox with natural language. You type what you’re looking for (e.g., “invoice from last week”), and the workflow: Uses OpenAI to generate a search query. Searches Outlook emails and ranks them by relevance. Outputs results in a simple table with score + link to each email. 👉 The number of results can be changed (default: 5). ⚙️ Setup Instructions 1️⃣ Set Up OpenAI Connection Go to OpenAI Platform Navigate to OpenAI Billing Add funds to your billing account Copy your API key into the OpenAI credentials in n8n 2️⃣ Set Up Outlook Connection In n8n → Credentials → New → Microsoft Outlook OAuth2 API Log in with your Outlook account & approve access Attach this credential to the Search Outlook node in the workflow (Optional) Change the limit parameter in the node if you want more/less than 5 results 📬 Contact Information Need help customizing this workflow or building similar automations? 📧 robert@ynteractive.com 🔗 Robert Breen 🌐 ynteractive.com
by inderjeet Bhambra
AI Security Pipeline - Prompt Injection Defense System using GPT-4O Protect your AI workflows from prompt injection attacks, XSS attempts, and malicious content with this multi-layer security sanitization system. > Important: The n8n workflow template uploader did not allow me to upload the complete system prompt for the Input Validation & Pattern Detection. Copy the complete System Prompt from here What it does This workflow acts as a security shield for AI-powered automations, preventing indirect prompt injection and other threats. It processes content through a multi-layered defense pipeline that detects malicious patterns, sanitizes markdown, validates URLs, and provides comprehensive security assessments. How it works Receives content via webhook endpoint Detects threats including prompt injections, XSS attempts, and data URI attacks Sanitizes markdown by removing HTML, dangerous protocols, and suspicious links Validates URLs blocking suspicious IP addresses, domains, and URL shorteners Returns security report with risk assessment and sanitized content Setup Import and activate the workflow Use the generated webhook URL: /webhook/security-sanitize Send POST requests with JSON: {"content": "your_text", "source": "identifier"} Use cases Secure AI chatbots and LLM integrations Process user-generated content before AI processing Protect RAG systems from data poisoning Sanitize external webhook payloads Ensure compliance with security standards Perfect for any organization using AI that needs to prevent prompt manipulation, data exfiltration, and injection attacks while maintaining audit trails for compliance.
by Robert Breen
Ask natural-language questions about your Monday.com tasks (e.g., “Which tasks are overdue?”, “Show me all items stuck”, “Summarize what’s due this week”). The assistant fetches real data from your Monday.com board and answers based only on that. ⚙️ Setup Instructions 1️⃣ Set Up OpenAI Connection Go to OpenAI Platform Navigate to OpenAI Billing Add funds to your billing account Copy your API key into the OpenAI credentials in n8n 2️⃣ Connect Monday.com Node In Monday.com → go to your Admin → API Copy your Personal API Token Docs: Generate Monday API Token In n8n → Credentials → New → Monday.com API Paste your token and save. Open the Get many items node → choose your credential → select your Board ID and Group ID. 🧠 How it works Sample Chatbot**: webhook/chat trigger for your questions Get many items (Monday.com)**: pulls board/group tasks Set Fields → Combine → Convert to text**: formats task data OpenAI Chat Model + Memory**: lets you ask questions and keeps context across turns Chat with Monday.com**: generates the final AI answer 📬 Contact Need help customizing this for your own board structure? 📧 robert@ynteractive.com 🔗 Robert Breen 🌐 ynteractive.com
by Yar Malik (Asfandyar)
Who’s it for This template is for anyone who wants to manage tasks, deadlines, and updates directly from WhatsApp. It’s especially useful for teams, freelancers, and small businesses that track their work in Google Sheets and want quick AI-powered assistance without opening spreadsheets. How it works / What it does This workflow turns WhatsApp into your personal task manager. When a user sends a message, the AI agent (powered by OpenAI) interprets the request, retrieves or updates task information from Google Sheets, and sends a concise response back via WhatsApp. The workflow can highlight overdue tasks, upcoming deadlines, and provide actionable suggestions. How to set up Connect your WhatsApp API account in n8n. Add your OpenAI credentials. Link your Google Sheets document where tasks are stored. Deploy the workflow and test by sending a message to your WhatsApp number. Requirements WhatsApp Business API account connected to n8n OpenAI account for AI responses Google Sheets with task data How to customize the workflow Adjust the AI prompt to change tone or instructions. Modify the Google Sheets fields (Task, Status, Due Date, Notes) to match your structure. Add conditions or filters to customize which tasks get highlighted.