by Akhil Varma Gadiraju
📥 Gmail Attachment Backup to Google Drive — n8n Workflow This n8n workflow automatically backs up email attachments from a specific sender in Gmail to a designated folder in Google Drive. It polls Gmail every minute and uploads any new attachments from matching emails to the specified Google Drive folder with a timestamped filename. 📌 Use Case Primary Purpose: Automatically archive and back up attachments from a specific sender (e.g., test@gmail.com) to Google Drive for safekeeping, audit, or processing. Ideal For: Automating invoice/receipt collection from a vendor Archiving reports from a monitored email address Creating a searchable historical log of attachments for compliance 🧭 Workflow Overview Here’s how the workflow operates: 🔔 Gmail Trigger Polls Gmail every minute for new messages from a specific sender (test@gmail.com). 📩 Gmail Get Message Retrieves the full contents (including attachments) of the matched email. 🧠 Code (JS) Iterates over all binary attachments in the email and restructures them as individual binary items to upload separately. 📤 Google Drive Uploads each attachment to a target Google Drive folder (DOcs) with a timestamp and unique name. 📍 Replace Me (NoOp) Placeholder node to indicate workflow completion. You can replace this with Slack notifications, logs, or alerts. 🔧 How to Use Prerequisites An n8n instance (self-hosted or cloud) A connected Gmail account with OAuth2 credentials A connected Google Drive account with OAuth2 credentials Permissions for n8n to access your Gmail and Google Drive Setup Instructions Import the Workflow Copy and paste the workflow JSON into your n8n editor. Set Up Credentials Ensure the following credentials exist and are authorized: `Gmail (for Gmail nodes) `Google Drive (for Google Drive node) Configure the Folder Update the folderId in the Google Drive node if you want to use a different target folder. Activate the Workflow Enable the workflow in n8n. It will start polling Gmail every minute. ✏️ How to Customize | Task | How to Customize | |------|------------------| | Change sender filter | Modify the sender field in the Gmail Trigger node | | Adjust polling frequency | Change the pollTimes configuration in the trigger node | | Change destination folder | Update folderId in the Google Drive node | | Modify filename format | Edit the name expression in the Google Drive node | | Add post-upload logic | Replace or extend the Replace Me node with notifications, logs, etc. | | Process only specific attachments | Add logic in the Code node to filter by filename or MIME type | 📂 Filename Format Example [MessageID]_[Timestamp]_backup_attachment This naming convention ensures uniqueness and traceability back to the original message. ✅ Future Improvements Email subject filtering** to narrow down the match Slack/Email notifications** after upload Deduplication check** to avoid reuploading the same files Virus scan or file validation** before upload 💬 Support For any issues using this workflow: Double-check your credential permissions Review n8n logs for Gmail or Google Drive errors Visit the n8n community forums
by Lucía Maio Brioso
🧑💼 Who is this for? This workflow is for anyone who receives too many emails and wants to stay informed without drowning in their inbox. If you're constantly checking your Gmail and wish you had someone summarizing messages and sending just the important parts to your phone, this is for you. Especially useful for solopreneurs, customer support, busy professionals, or newsletter addicts. 🧠 What problem is this workflow solving? Email is powerful, but also overwhelming. Important info gets buried in threads, and staying on top of things can mean hours wasted scanning messages. This workflow turns that chaos into clarity: as soon as a new email arrives, you get a concise AI-generated summary in Telegram — straight to your pocket. No more checking Gmail constantly. No more missing key updates. Just a clean, human-style summary, written in the language you choose. ⚙️ What this workflow does Watches your Gmail inbox for new messages Prepares the content, including sender, subject, and message body Sends it to OpenAI to generate a friendly, casual summary Delivers that summary to your Telegram chat All in seconds, completely automated. 🛠️ Setup Connect your accounts: Gmail, Telegram, and OpenAI credentials must be added to the respective nodes. Set your Telegram chat ID: Use a bot like @userinfobot to get it. Customize the language in the Set summary language node (default is English). Activate the workflow — and watch it go. 🧩 How to customize this workflow to your needs You can make this workflow your own in a few easy ways: Summarize only some emails**: Add a Filter node after the Gmail trigger (e.g., only messages from certain senders). Change the tone or detail of summaries**: Tweak the system prompt in the Summary generation agent. Use a different model**: Swap OpenAI’s GPT-4o for another provider like Claude or DeepSeek. Translate to your preferred language**: Just change "english" to "español", "français", etc.
by Promovaweb
When you collect leads from a form, you need to format the incoming data such as the lead's name and also apply a basic validation of the email entered. Lucky for us, N8N offers all of these features with simple expressions that can easily be applied to data. This workflow aims to show how you can process your lead data before saving it in Mautic. How it Works This workflow receives data from a Wordpress form; applies name formatting and basic validation to the email; Creates the contact in Mautic; If e-mail is invalid, add the lead in Dot Not Contact list. Setup Steps Set up credentials when you first open the workflow. You'll need a Mautic account. You need to configure a form in Wordpress (Elementor, WPForms, etc.) and send it to the N8N Webhook address; Now map the fields you need to apply formatting and validation. After testing your workflow, swap the Test URL to Production URL in Discourse and activate your workflow
by Aitor | 1Node
This n8n workflow automates the generation and delivery of a daily order summary via email. It leverages an AI Agent to fetch and summarize e-commerce order data from the last 24 hours stored in Supabase, providing a concise overview of the daily business operations. How it works Scheduled Trigger:** The workflow is triggered every day at 8 AM. Sender Email Configuration:** A manual step allows you to set the sender's email address. AI Agent:** An AI Agent node acts as the central intelligence, interacting with various tools to gather and process data. Supabase Data Fetching:** The AI Agent calls "Get Orders," "Get Order Items," "Get Clients," and "Get Products" tables to retrieve relevant e-commerce data from your Supabase database. OpenAI Chat Model:** An OpenAI Chat Model with the 4.1 model is integrated to help the AI Agent understand and summarize the fetched data into a human-readable format. Gmail Summary:** Finally, the workflow sends a summarized report to your specified email address using the "Send Gmail Summary" node. Set up steps This setup will take approximately 15-20 minutes. Download the workflow: Download this workflow and import it into your n8n instance. Configure the Daily 8am trigger: Ensure the "Daily 8am" trigger is active and set to your desired timezone. Set Sender Email: In the "Set Sender Email" node, manually enter the email address you wish to use as the sender for the daily reports. Configure AI Agent: Chat Model: Connect your OpenAI Chat Model credential. Memory & Tools: Ensure all the necessary nodes ("Get Orders", "Get Order Items", "Get Clients", "Get Products", "Send Gmail Summary") are correctly linked to the AI Agent. In our workflow we call data from 4 tables in Supabase. Configure Supabase Database Connections: For each of the "Get Orders," "Get Order Items," "Get Clients," and "Get Products" nodes, you will need to configure your Supabase credentials to access your e-commerce database. Select the tables (e.g., orders, order_items, clients, products) that you want the AI agent to pull data from in your Supabase schema. Configure Gmail Credentials: In the "Send Gmail Summary" node, connect your Gmail account credentials to allow n8n to send emails on your behalf. Test the workflow: Run the workflow manually to ensure all connections are working correctly and the email summary is generated as expected. Requirements n8n instance:** An active n8n instance (self-hosted or cloud). Supabase Account:** A Supabase account with your e-commerce order data accessible. OpenAI API Key:** An OpenAI API key for the Chat Model. Gmail Account:** A Gmail account credentials to send the daily summaries. Need help? Feel free to contact us at 1 Node. Get instant access to a library of free resources we created.
by Derek Schatz
Overview This automated workflow delivers a weekly digest of the most important AI news directly to your inbox. Every Monday at 9 AM, it uses Perplexity AI to research the latest developments and organizes them into four key categories: New Technology, Trending Topics, Top Stories, and AI Security. The workflow then formats this information into a beautifully designed HTML email with summaries, significance explanations, and source links. What It Does Automatically searches for the latest AI news using Perplexity AI Categorizes content into four focused areas most relevant to AI enthusiasts and professionals Generates comprehensive summaries explaining why each story matters Creates a professional HTML email with styled sections and clickable links Sends weekly on Monday at 9 AM (customizable schedule) Includes error handling with fallback content if news parsing fails Setup Instructions Import the Workflow Copy the JSON code and import it into your n8n instance The workflow will appear as “Daily AI News Summary” Configure Perplexity API Sign up for a Perplexity API account at perplexity.ai Create new credentials in n8n: Type: “OpenAI” Name: “perplexity-credentials” API Key: Your Perplexity API key Base URL: https://api.perplexity.ai Set Up Email Credentials Configure SMTP credentials in n8n: Name: “email-credentials” Add your email provider’s SMTP settings Test the connection to ensure emails can be sent Customize Email Settings Open the “Send Email Summary” node Update the toEmail field with your email address Modify the fromEmail if needed (must match your SMTP credentials) Optional Customizations Change Schedule:** Modify the “Daily Trigger” node to run at your preferred time Adjust Categories:** Edit the Perplexity prompt to focus on different AI topics or change the theme altogether Modify Styling:** Update the HTML template in the “Format Email Content” node Test and Activate Run a test execution to ensure everything works correctly Activate the workflow to start receiving daily AI news summaries Requirements n8n instance (cloud or self-hosted) Perplexity API account and key SMTP email access (Gmail, Outlook, etc.)
by Aitor | 1Node
This n8n workflow provides a robust solution for Hostinger website owners looking to streamline their lead capture and qualification process. By integrating AI and popular marketing tools, it ensures efficient management of new leads. How it works This workflow automates the process of capturing leads from a Hostinger website form, qualifying them using an AI model, and syncing them with Beehiiv and Google Sheets. A new form submission on your Hostinger website triggers the workflow via Gmail. An AI model (OpenAI) extracts and qualifies relevant data from the form response, transforming it into a structured JSON format. The qualified lead is then added as a new subscriber to your Beehiiv newsletter. Finally, the lead information is appended to a Google Sheet for comprehensive tracking and record-keeping. Set up steps Create an account on Hostinger and set up a form on your website. Configure a Gmail trigger to capture form submissions from your Hostinger email sender. Ensure your email is mapped correctly for the Hostinger sender. Set up your OpenAI API key for the "Extract & Qualify Message Model" node. Create an account on Beehiiv. Obtain your Beehiiv API key and create your credentials. Set up a Google Sheet and configure the "insert in Sheets" node with the correct mapping. Approximate setup time: 15-30 minutes Why you need this? You need this workflow if you're a Hostinger website owner who wants to: Automate lead capture:** Say goodbye to manual lead processing and ensure no lead slips through the cracks. Qualify leads intelligently:** Leverage AI to instantly extract and qualify crucial lead information, saving you valuable time and improving lead quality. Grow your audience efficiently:** Seamlessly add qualified leads to your Beehiiv newsletter, nurturing them from the moment they express interest. Maintain organized records:** Automatically centralize all your lead data in a Google Sheet for easy access, analysis, and follow-up. Boost productivity:** Free up your time from repetitive administrative tasks and focus on growing your business. 👉 Need Help? Feel free to contact us at 1 Node. Get instant access to a library of free resources we created.
by Abolfazl Akbarzadeh
What we wanna do? Let's look at the concern. In my experience, some developers don't check their Jira board to find out whether there are new updates on the issues or not or if some Issues need to be addressed as soon as possible. So, the developer or anyone else in other fields needs to be informed about the task as soon as possible, too. One way to send this immediate notification is through the Telegram Bot. Setup Guide so, first of all, you need to register a Telegram Bot in your account and obtain its token, so that we'll be able to send Telegram messages by using this token through our bot; after getting your telegram bot token go to the workflow and click on one of the telegram nodes select the telegram credential or create one through the Credential to connect with field and put the token in the token in the Access Token field. Ok, you're done with the Telegram Side setup. then you need the Jira accounts (team users) accountId and also their telegram chatId for the telegram account node so that it can find the corresponding telegram user from the assignee of the issue, put this data as following guide comments in the telegram account node. Now we go for the Jira side setup, you need to setup some automation rules as your needs. go to the Jira settings and Global automation section, click on the Create Rule button select the Issue Created trigger type in the When step add a Send webhook request action, after selecting it you'll see its settings go back to workflow and from the jira-webhook node copy the Production URL paste it in the Web request URL field in the Jira action setting then set the HTTP method field on POST set Web request body on Issue Data (Automation format) in the header section, add a new header with the name type and value created for the creation event. OK, the Jira side also is done! Now It's time to test! If you've put your Jira accountId and telegram chatId in the telegram account node and of course started the telegram bot, after creating an Issue that is assigned to you, the creation notif will send to you in telegram!
by Keith Rumjahn
Case Study 📧 Want to collect email subscribers without paying expensive monthly fees? 💰 This workflow creates a free email collection system with built-in email verification to ensure you only collect legitimate email addresses! ✨ Learn more: 📺 Watch the tutorial: 📝 Read the detailed guide What this workflow does 🛠️ Creates a customizable email collection form that can be embedded on your website 🌐 Verifies email addresses using Hunter.io to filter out fake or invalid emails ✅ Stores verified email addresses in SendGrid for your email marketing needs 📊 Completely free solution (except for Hunter.io's 50 free monthly credits) 🆓 Setup ⚙️ Set up a free Hunter.io account for email verification Configure your SendGrid account credentials Customize the email collection form fields Get the embedded form code for your website How to adjust it to your needs 🔧 Add additional form fields beyond just email collection Customize the form's appearance and labels Modify the verification logic based on your requirements Connect to different email marketing platforms instead of SendGrid Add additional automation steps after email verification Benefits 🌟 No monthly subscription fees for email collection 💸 Built-in email verification prevents fake signups 🛡️ Scalable solution that won't lock you into expensive plans 📈 Clean email list with only verified addresses ✨ Simple setup and customization 🎯 This workflow is perfect for bloggers, small businesses, and anyone looking to build an email list without getting locked into expensive email marketing platforms as their subscriber count grows! 🚀 Built by rumjahn
by Incrementors
Discord Channel Creation Automation - n8n Workflow A comprehensive n8n automation that monitors Google Sheets for new project entries, automatically creates dedicated Discord channels, and sends formatted member notifications with all essential project details. 📋 Overview This workflow provides an automated Discord channel creation solution that eliminates manual channel setup and ensures consistent team communication. Perfect for agencies, development teams, and project-based organizations that need to streamline their Discord workspace management. ✨ Key Features 🔍 Automated Monitoring: Continuously watches Google Sheets for new entries requiring Discord channels 📢 Discord Integration: Creates dedicated channels using Discord API for organized communication 📊 Smart Filtering: Only processes valid entries without existing Discord channels 📧 Member Notifications: Sends formatted announcements with key project details 📈 Status Tracking: Updates Google Sheets with Discord channel IDs and completion status 🔄 Sequential Processing: Handles multiple channel requests with proper workflow sequencing ⚡ Error Handling: Built-in validation and error management 🎯 Customizable Messages: Flexible Discord notification templates 🎯 What This Workflow Does Input Sheet Data:** New entries in Google Sheets requiring Discord channels Discord Configuration:** Server and category settings for channel creation Notification Settings:** Member notification preferences and mentions Processing Monitor Trigger: Watches Google Sheets for new row additions Data Validation: Filters entries that need Discord channel creation Channel Creation: Creates new Discord channel with specified naming convention Sheet Update: Records Discord channel ID and status in Google Sheets Status Check: Verifies successful channel creation before messaging Member Notification: Sends formatted announcement to Discord channel Additional Details: Sends follow-up message with supplementary information Completion Tracking: Marks channel creation process as complete Output Data Points | Field | Description | Example | |-------|-------------|---------| | Entry ID | Unique identifier for the entry | ENTRY-2025-001 | | Title/Name | Name or title from the sheet entry | New Marketing Campaign | | Category/Type | Category or type of entry | Marketing Project | | Discord Channel ID | ID of created Discord channel | 1234567890123456789 | | Channel URL | Direct link to Discord channel | https://discord.com/channels/... | | Creation Status | Current status of channel creation process | Discord Created, Message Sent | | Timestamp | When the channel creation was completed | 2025-06-06T09:00:00Z | 🚀 Setup Instructions Prerequisites n8n instance (self-hosted or cloud) Google account with Sheets access Discord server with bot permissions 10-15 minutes for setup Step 1: Import the Workflow Copy the JSON workflow code from the provided file In n8n: Workflows → + Add workflow → Import from JSON Paste JSON and click Import Step 2: Configure Discord Integration Create Discord Bot: Go to Discord Developer Portal Create new application and bot Copy bot token for credentials Add bot to your Discord server with proper permissions Set up Discord credentials: In n8n: Credentials → + Add credential → Discord Bot API Enter your Discord bot token Test the connection Configure Discord settings: Note your Discord server (guild) ID Create or identify the category for new project channels Update guild ID and category ID in workflow nodes Step 3: Configure Google Sheets Integration Create Channel Request Sheet: Go to Google Sheets Create new spreadsheet named "Discord Channel Requests" or similar Copy the Sheet ID from URL: https://docs.google.com/spreadsheets/d/SHEET_ID_HERE/edit Set up Google Sheets credentials: In n8n: Credentials → + Add credential → Google Sheets OAuth2 API Complete OAuth setup and test connection Prepare your data sheet with required columns: Column A: Timestamp (auto-filled by form) Column B: Entry Name/Title Column C: Category/Type Column D: Description Column E: Contact/Owner Information Column F: Entry ID Column G: Discord ID (will be auto-filled) Column H: Discord Channel Creation Status (will be auto-filled) Step 4: Update Workflow Settings Update Google Sheets nodes: Open "Monitor New Project Entries" node Replace document ID with your Sheet ID Select your Google Sheets credential Choose correct sheet/tab name Update Discord nodes: Open all Discord nodes Replace guild ID with your Discord server ID Replace category ID with your project category ID Select your Discord Bot credential Configure notification settings: Open Discord message nodes Replace demo@example.com with actual email if needed Customize team mentions and message content Adjust notification timing as needed Step 5: Test & Activate Add test entry: Add sample data to your Google Sheet Ensure all required fields are filled Leave Discord ID column empty for testing Test the workflow: Activate workflow (toggle switch) Add new row to trigger workflow Verify Discord channel creation Check for member notifications Confirm sheet updates 📖 Usage Guide Adding New Channel Requests Navigate to your Google Sheets document Add new entry with all required information Leave Discord ID and status columns empty Workflow will automatically process within minutes Check Discord for new channel and notifications Understanding Status Updates The workflow uses intelligent status tracking: Empty Discord ID:** Entry needs channel creation "Discord Created":** Channel created, ready for notifications "Discord Created, Message Sent":** Process complete Error states:** Check execution logs for troubleshooting Customizing Member Notifications To modify notification content, edit Discord message nodes: Main announcement:** Update "Send Project Announcement Message" node Additional details:** Update "Send Additional Project Details" node Member mentions:** Replace @everyone with specific roles Message formatting:** Customize using Discord markdown 🔧 Customization Options Adding More Data Fields Edit Google Sheets trigger and message nodes to include: Budget or resource information Timeline and deadlines Assigned team members or owners Priority levels Additional context or requirements Modifying Discord Structure Customize channel organization: // Example: Add category to channel name "name": "{{ $json['Category/Type'] }}-{{ $json['Entry ID'] }}" // Example: Set channel topic "topic": "Channel for {{ $json['Title/Name'] }} - {{ $json['Category/Type'] }}" 🚨 Troubleshooting Common Issues & Solutions | Issue | Cause | Solution | |-------|-------|----------| | "Discord permission denied" | Bot lacks required permissions in Discord server | Ensure bot has "Manage Channels" and "Send Messages" permissions | | "Google Sheets trigger not firing" | Incorrect sheet permissions or credential issues | Re-authenticate Google Sheets, check sheet sharing settings | | "Channel creation failed" | Invalid guild ID, category ID, or duplicate channel names | Verify Discord IDs, ensure unique entry IDs | | "Messages not sending" | Discord rate limiting or invalid channel references | Add delays between messages, verify channel creation success | | "Workflow execution failed" | Missing data fields or validation errors | Ensure all required fields are populated | 📊 Use Cases & Examples 1. Project Management Automation Goal: Streamline project channel creation process Monitor new project requests or approvals Create dedicated project workspaces Notify relevant team members instantly Track channel setup completion 2. Event Organization Goal: Organize events with dedicated Discord channels Create channels for conferences, meetups, or workshops Include event details in notifications Tag organizers and participants Maintain event communication history 3. Team Department Organization Goal: Manage department or team-specific channels Separate channels for different departments Share department announcements and updates Coordinate team assignments Track departmental activities 4. Community Management Goal: Organize community groups and special interest channels Create channels for community groups Share group information and guidelines Facilitate member-to-member communication Track community engagement and growth 📈 Performance & Limits Expected Performance | Metric | Value | |--------|-------| | Processing time | 30-60 seconds per entry | | Concurrent entries | 5-10 simultaneous (depends on Discord limits) | | Success rate | 95%+ for valid data | | Daily capacity | 100+ entries (depends on rate limits) | Resource Usage Memory:** ~50MB per execution Storage:** Minimal (data stored in Google Sheets) API calls:** 3-5 Discord calls + 2-3 Google Sheets calls per entry Execution time:** 1-2 minutes for complete process 📋 Quick Setup Checklist Before You Start n8n instance running (self-hosted or cloud) Google account with Sheets access Discord server with admin permissions Discord bot created and added to server 15 minutes for complete setup Setup Steps Import Workflow** - Copy JSON and import to n8n Configure Discord** - Set up bot credentials and test Create Google Sheet** - New sheet with required columns Set up Google Sheets credentials** - OAuth setup and test Update workflow settings** - Replace IDs and credentials Test with sample entry** - Add test entry and verify Activate workflow** - Turn on monitoring trigger 🎉 Ready to Use! Your workflow URL: https://your-n8n-instance.com/workflow/discord-channel-creation 🎯 Happy Channel Management! This workflow provides a solid foundation for automated Discord channel creation. Customize it to fit your specific team needs and communication requirements.
by Lukas Kunhardt
Who is this for? This template is for any website owner, digital agency, or compliance officer operating within the European Union. It's designed for users who need to comply with the upcoming European Accessibility Act (EAA) but may not have deep technical or legal expertise. Disclaimer This workflow uses an npm package called "cheerio" to work with the specified URLs HTML code. Installing packages is only possible in self hosting. What problem is this workflow solving? / Use Case Starting June 28, 2025, the European Accessibility Act (EAA) mandates that most websites offering products or services in the EU must be accessible and publish a formal Accessibility Statement. Manually creating this legal document is complex, requiring both a technical site analysis and knowledge of specific legal requirements. This workflow automates the generation of a compliant first draft, saving significant time and effort. What this workflow does After you input your details (like website URL and API key) in a central configuration node, this workflow automatically: Scans your live website for accessibility issues using the powerful WAVE API. Processes the scan results to identify the main problem areas. Instructs a Google Gemini AI agent with a specialized legal prompt based on the European Accessibility Act. Generates a formal Accessibility Statement in your desired language. Saves the statement as an .html file and sends it to you as an email attachment. Setup This workflow is designed for a quick setup: Configure All Variables: Click the 'CHANGE THESE: dependencies' node. This is your central control panel. Fill in all the values, including your WAVE API Key, the URL to analyze, company details, and desired output language. Set Up Credentials: You will need to connect your Google accounts for the workflow to run. Gemini: Click the 'gemini 2.5 pro' node, click the gear icon (⚙️) next to the "Credential" field, and connect your Google Gemini API credentials. Gmail: Click the 'Send report by email' node and connect your Gmail account to allow sending the final report. Activate & Execute: Make sure the workflow is active in the top-right corner, then click 'Execute Workflow' to run your first analysis. How to customize this workflow to your needs This template is a great starting point for any EU country. Here's how to adapt it: Localize for Your Country (Important!):* The generated statement contains a placeholder for the "Enforcement Procedure". You *must* edit the prompt in the *'Accessibility Statement Generator'** node to replace this placeholder with the name and link to your specific country's official enforcement body. Change the AI:** Swap the Google Gemini node for any other AI model, like OpenAI or Anthropic Claude, by replacing the node and connecting it to the agent. Change the Trigger:* Replace the *'When clicking ‘Execute workflow’'** node with a Form Trigger or Webhook Trigger to run this workflow based on external inputs, for example, to offer this analysis as a service to your clients.
by Niranjan G
Who is this for? NVD (National Vulnerability Database) data is essential for security analysts, vulnerability managers, and DevSecOps professionals who need to perform both CVE lookups and monitor historical change logs. This workflow helps streamline those efforts by providing structured outputs for audit, triage, or compliance tracking purposes. 📝 Note: While this example uses Google Sheets as the destination, you can easily modify the final destination node (e.g., send to Slack, email, database, etc.) based on your specific automation needs.? What problem is this solving? Security teams often manually look up CVE data and track changes across multiple tools. This process is inefficient and error-prone. This workflow automates the CVE lookup and historical change tracking by logging enriched vulnerability data into Google Sheets in real-time. What this workflow does This workflow is designed for CVE API lookup and change history tracking. In many vulnerability automation pipelines, it is essential to determine not only the metadata of a CVE but also how it has evolved over time. Based on the operational need—whether it's enrichment, risk scoring, or remediation validation—this workflow becomes particularly handy in surfacing both current and historical CVE data. This template performs the following actions: Accepts incoming webhook requests containing a CVE ID Queries the NVD CVE Lookup API to fetch vulnerability metadata Queries the NVD CVE History API to retrieve all historical changes Flattens both datasets into a sheet-compatible structure Appends vulnerability metadata to one sheet and change history to another within the same Google Spreadsheet Setup 🔑 Request an NVD API Key To request an NVD API Key, please provide your organization name, a valid email address, and indicate your organization type at NVD API Key Request. You must scroll to the end of the Terms of Use Agreement and check "I agree to the Terms of Use" to obtain an API Key. After submission, you will receive a single-use hyperlink via email to activate and view your API Key. If not activated within seven days, a new request must be submitted. 📊 API Rate Limits Without an API key, you're limited to 5 requests per 30-second window. With an API key, you’re allowed up to 50 requests in the same period. To prevent request throttling, it's recommended to introduce slight delays between consecutive API calls in production setups. Clone or import this workflow into your n8n instance. Set up the following credentials: Google Sheets OAuth2 NVD API Key (via HTTP Header Auth) The workflow logs data to a Google Sheet titled NVD Database, with Sheet 1 named CVE Lookup and Sheet 2 named CVE History. Trigger each workflow using the respective webhook URL, appending ?cveId=CVE-XXXX-XXXX as a query parameter. 🔍 Example Webhook Request (CVE Change History) You can test this workflow with the following example: GET https://your-domain.com/webhook/cve-history?cveId=CVE-2023-34362 How to customize this workflow Use the Edit Fields node (optional) to centralize configuration like sheet name or query input Extend the CVE flattening logic to include more nested metadata if needed Integrate notification systems (e.g., Slack or email) by branching from the processing nodes Modify webhook paths for better endpoint organization 🔐 Production Security Tips Use HTTP Header Auth on the webhook for secure access > ⚠️ This template uses webhooks and NVD API access with authentication headers. This template uses two flows: Webhook 1:** NVD CVE Lookup — Lookup CVE vulnerability metadata from NVD and sync to Google Sheet Webhook 2:** NVD CVE Change History — Track change history for CVEs via NVD and log each update Each flow: Hits NVD’s respective endpoint Uses custom JS Code node to flatten the nested JSON Syncs data to dedicated Google Sheet tabs 🧩 4 nodes: Webhook → API Call → Parse → Sheet Sync Make sure both flows are activated and webhooks exposed for external access. Based on your needs, ensure you have a secure setup—whether hosted internally or in a cloud environment—when running n8n in production.
by Amit Mehta
How it Works This workflow fetches top news headlines every 10 minutes from NewsAPI, summarizes them using OpenAI's GPT-4o model, and sends a concise email digest to a list of recipients defined in a Google Spreadsheet. It's ideal for anyone who wants to stay updated with the latest news in a short, digestible format. 🎯 Use Case Professionals who want summarized daily news Newsletters or internal communication updates Teams that require contextual summaries of the latest events Setup Instructions 1. Upload the Spreadsheet File name: Emails Column: Email with recipient addresses 2. Configure Google Sheets Nodes Connect your Google account to: Email List Send Email 3. Add API Credentials NewsAPI Key** → for fetching top headlines OpenAI API Key** → for summarizing headlines Gmail Account** → for sending the email digest 4. Activate the Workflow Once active, the workflow runs every 10 minutes via a cron trigger Summarized news is sent to the list of emails in the spreadsheet 🔁 Workflow Logic Trigger: Every 10 minutes via Cron Fetch News: HTTP request to NewsAPI for top headlines Summarize: Headlines are passed to OpenAI's GPT-4o for 5-bullet summary Read Recipients: Google Sheet is used to collect email recipients Send Email: Summary is formatted and sent via Gmail 🧩 Node Descriptions | Node Name | Description | |-----------|-------------| | Cron | Triggers the workflow every 10 minutes. | | HTTP Request - NewsAPI | Fetches top news headlines using NewsAPI. | | Set | Formats or structures raw news data before processing. | | AI Agent | Summarizes the news content using OpenAI into 5 bullet points. | | Email List | Reads recipient email addresses from the 'Emails' Google Spreadsheet. | | Send Email | Sends the email digest to all recipients using Gmail. | 🛠️ Customization Tips Modify the AI prompt for tone, length, or content type Send summaries to Slack, Telegram, or Notion instead of Gmail Adjust cron interval for more/less frequent updates Change email formatting (HTML vs plain text) 📎 Required Files | File Name | Purpose | |-----------|---------| | Emails spreadsheet | Google Sheet containing the list of email recipients | | daily_news.json | Main n8n workflow file to automate daily news digest | 🧪 Testing Tips Add 1–2 test email addresses in your spreadsheet Temporarily change the Cron node to run every minute for testing Check email inbox for delivery and formatting Inspect the execution logs for API errors or formatting issues 🏷 Suggested Tags & Categories #News #OpenAI #Automation #Email #Digest #Marketing