by Robin Geuens
Overview Turn your keyword research into a clear, fact-based content outline with this workflow. It splits your keyword into 5-6 subtopics, makes research questions for those subtopics, and uses Tavily to pull answers from real search results. This way your outline is based on real data, not just AI training data, so you can create accurate and reliable content. How it works Enter a keyword in the form to start the workflow The OpenAI node splits the keyword into 5-6 research subtopics and makes a research question for each one. These questions will be used to enrich the outline later on We split the research questions into separate items so we can process them one by one Each research question is sent to Tavily. Tavily searches the web for answers and returns a short summary Next, we add the answers to our JSON sections We take all the separate items and join them into one list again The JSON outline is converted into Markdown using a code node. The code takes the JSON headers, turns them into Markdown headings (level 2), and puts the answers underneath Setup steps Get an OpenAI API key and set up your credentials inside n8n Sign up for a Tavily account and get an API key — you can use a free account for testing Install the Tavily community node. If you don’t want to use a community node, you can call Tavily directly using an HTTP node. Check their API reference for what endpoints to call Run the workflow and enter the keyword you want to target in the form Adjust the workflow to decide what to do with the Markdown outline Requirements An OpenAI API key A Tavily account The Tavily community node installed (Optional) If you don’t want to use the Tavily community node, use a regular HTTP node and call the API directly. Check their API reference for what endpoints to call Workflow customizations Instead of using a form to enter your keyword, you can keep all your research in a Google Doc and go through it row by row You can add another AI node at the end to turn the outline into a full article You can put the outline in a Google Doc and send it to a writer using the Google Docs node and the Gmail node
by Guillaume Duvernay
This template provides a straightforward technique to measure and raise awareness about the environmental impact of your AI automations. By adding a simple calculation step to your workflow, you can estimate the carbon footprint (in grams of CO₂ equivalent) generated by each call to a Large Language Model. Based on the open methodology from Ecologits.ai, this workflow empowers you to build more responsible AI applications. You can use the calculated footprint to inform your users, track your organization's impact, or simply be more mindful of the resources your workflows consume. Who is this for? Environmentally-conscious developers:** Build AI-powered applications with an awareness of their ecological impact. Businesses and organizations:** Track and report on the carbon footprint of your AI usage as part of your sustainability goals. Any n8n user using AI:** A simple and powerful snippet that can be added to almost any AI workflow to make its invisible environmental costs visible. Educators and advocates:** Use this as a practical tool to demonstrate and discuss the real-world impact of AI technologies. What problem does this solve? Makes the abstract tangible:** The environmental cost of a single AI call is often overlooked. This workflow translates it into a concrete, measurable number (grams of CO₂e). Promotes responsible AI development:** Encourages builders to consider the efficiency of their prompts and models by showing the direct impact of the generated output. Provides a standardized starting point:** Offers a simple, transparent, and extensible method for carbon accounting in your AI workflows, based on a credible, open-source methodology. Facilitates transparent communication:** Gives you the data needed to transparently communicate the impact of your AI features to stakeholders and users. How it works This template demonstrates a simple calculation snippet that you can adapt and add to your own workflows. Set conversion factor: A dedicated Conversion factor node at the beginning of the workflow holds the gCO₂e per token value. This makes it easy to configure. AI generates output: An AI node (in this example, a Basic LLM Chain) runs and produces a text output. Estimate token count: The Calculate gCO₂e node takes the character length of the AI's text output and divides it by 4. This provides a reasonable estimate of the number of tokens generated. Calculate carbon footprint: The estimated token count is then multiplied by the conversion factor defined in the first node. The result is the carbon footprint for that single AI call. Setup Set your conversion factor (Critical Step): The default factor (0.0612) is for GPT-4o hosted in the US. Visit ecologits.ai/latest to find the specific conversion factor for your AI model and server region. In the Conversion factor node, replace the default value with the correct factor. Integrate the snippet into your workflow: Copy the Conversion factor and Calculate gCO₂e nodes from this template. Place the Conversion factor node near the start of your workflow (before your AI node). Place the Calculate gCO₂e node after your AI node. Link your AI output: Click on the Calculate gCO₂e node. In the AI output field, replace the expression with the output from your AI node (e.g., {{ $('My OpenAI Node').item.json.choices[0].message.content }}). The carbon calculation will now work with your data. Activate your workflow. The carbon footprint will now be calculated with each execution. Taking it further Improve accuracy with token counts:* If your AI node (like the native *OpenAI** node) directly provides the number of output tokens (e.g., completion_tokens), use that number instead of estimating from the text length. This will give you a more precise calculation. Calculate total workflow footprint:* If you have multiple AI nodes, add a calculation step after each one. Then, add a final *Set** node at the end of your workflow to sum all the individual gCO₂e values. Display the impact:** Add the final AI output gCO₂e value to your workflow's results, whether it's a Slack message, an email, or a custom dashboard, to keep the environmental impact top-of-mind. A note on AI agents:** This estimation method is difficult to apply accurately to AI Agents at this time, as the token usage of their intermediary "thinking" steps is not yet exposed in the workflow data.
by n8nwizard
📋 Overview This n8n workflow automatically converts your Google Calendar events for the current day into Trello cards every morning at 8 AM. It fetches all calendar events for the day, filters out routine events (like Lunch or Check email), and creates neatly formatted Trello cards with a predefined meeting notes template. Perfect for professionals who want to keep their daily meetings and tasks synced with their Trello board. ⚙️ Key Features 🕗 Runs daily at 8 AM (configurable via Cron node) 📅 Fetches all Google Calendar events for the current day 🚫 Skips routine/repetitive events (Lunch, Check email, etc.) 🧩 Creates Trello cards with structured meeting notes 🔗 Includes event URL and due date in Trello card 🧠 Customizable filters and templates for full control 🧱 Workflow Steps 1. Run Daily at 8 AM (Cron Node) Automatically triggers the workflow every morning at 8:00 AM. You can adjust the time as needed. 2. Calculate Today's Date Range (Function Node) Generates the ISO-formatted start and end times for the current day (00:00–23:59). These values are passed to the Google Calendar node for querying events. 3. Fetch All Today's Calendar Events (Google Calendar Node) Fetches all events scheduled for today using your Google account. The calendar email (your-email@example.com) should be replaced with your actual email. 4. Process Events One by One (SplitInBatches Node) Splits the list of events into single items for individual processing. 5. Extract Event Details for Trello (Set Node) Maps each event’s details (summary, description, start time, and URL) into structured fields ready for Trello card creation. 6. Filter Out Routine Events (If Node) Skips over common recurring events (like “Check email,” “Lunch,” “Wrap Up & Clear Desk,” or “Beers and Griping”). You can customize this list as needed. 7. Create New Trello Card with Template (Trello Node) For non-filtered events, creates a new Trello card using a predefined meeting notes template. Includes: Title: Event summary Due date: Event start time Description: Preformatted meeting notes layout Source URL: Event link from Google Calendar 8. Skip Filtered Event (NoOp Node) Handles skipped events gracefully without performing any action. 🧰 Setup Instructions 1. Add Credentials Add Google Calendar OAuth2 credentials in n8n. Add Trello API credentials in n8n. 2. Replace Placeholder Values Update the calendar email in the Google Calendar node. Add your Trello board and list IDs in the Trello node. 3. Optional Customizations Modify the Cron node to change trigger time. Edit the Trello card template to match your meeting format. Add labels using idLabels in the Trello node. Adjust the filter conditions for different recurring tasks. 🧠 Example Use Case Imagine you have daily meetings in your Google Calendar. Each morning, this workflow: Collects all your events for the day. Skips unimportant ones (like lunch breaks). Automatically adds Trello cards for real meetings, each with a structured template for you to take notes and assign next steps. 🧾 Example Trello Card Template Title: Meeting with Client A Due Date: 2025-11-11T10:00:00Z Description: Meeting purpose (*Integrations, Playbooks, UI Issues, Project*): Task Next Steps (*Task, Assigned to, Checkpoint Date*): Task Decisions Made (*What, Why, Impacts*): Task Discussion (*Items/Knowledge Shared*): Task ✅ Requirements Google Calendar OAuth2 credentials Trello API credentials Active Google Calendar with events A Trello board/list to create cards in 📌 Notes You can adjust the workflow to run multiple times a day if needed. You can integrate Slack or email notifications for newly created cards. The workflow is lightweight and suitable for daily automation tasks. ✨ Tip: Combine this with n8n’s Slack or Notion integrations to get a full daily planning system that syncs your meetings, notes, and tasks automatically!
by Robert Breen
This workflow automatically pulls invoice rows from Google Sheets and generates a PDF invoice using a PDF.co template. Perfect for small businesses that manage invoices in Sheets but need professional, ready-to-send PDFs. ⚙️ Setup Instructions 1️⃣ Connect Google Sheets Copy this Invoice Template Sheet into your own Drive In n8n → Credentials → New → Google Sheets (OAuth2) Log in with your Google account and save In the workflow, select your Spreadsheet ID and Worksheet (Sheet1) in the Google Sheets node 2️⃣ Connect PDF.co Create a free account at PDF.co Copy your API Key from the dashboard In n8n → Credentials → New → PDF.co API Paste your API Key → Save In the PDF.co node, select your credential and choose the HTML Template to PDF operation 3️⃣ Create Your PDF.co HTML Template In your PDF.co dashboard, go to Templates → New Template Paste in the HTML from the template section below Save the template and copy its Template ID Replace the templateId in the workflow with your new ID 🧠 How It Works Get Invoice Rows** → Reads your Google Sheet rows (customer, line items, totals) Convert to HTML Import (Code node)** → Formats rows into structured data for the invoice template Create PDF (PDF.co)** → Sends the data into PDF.co and generates a professional PDF invoice 📬 Contact Need help customizing this (e.g., add taxes, change invoice styling, or auto-email invoices)? 📧 robert@ynteractive.com 🔗 Robert Breen 🌐 ynteractive.com 📄 Full HTML Template for PDF.co Use this HTML when creating your PDF.co template: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Invoice {{invoiceNumber}}</title> <style> body { font-family: Arial, Helvetica, sans-serif; margin: 36px; color: #222; } .header { display: flex; justify-content: space-between; align-items: center; } .brand { max-height: 56px; } h1 { margin: 12px 0 4px; font-size: 22px; } .meta { font-size: 12px; color: #555; } .two-col { display: flex; gap: 24px; margin-top: 16px; } .box { flex: 1; border: 1px solid #ddd; padding: 12px; border-radius: 6px; } .label { font-size: 11px; color: #666; text-transform: uppercase; letter-spacing: .02em; } table { width: 100%; border-collapse: collapse; margin-top: 16px; } th, td { border-bottom: 1px solid #eee; padding: 10px 8px; font-size: 13px; } th { background: #fafafa; text-align: left; } tfoot td { border-top: 2px solid #ddd; font-size: 13px; } .right { text-align: right; } .totals td { padding: 6px 8px; } .grand { font-weight: 700; font-size: 14px; } .notes { margin-top: 18px; font-size: 12px; color: #444; } </style> </head> <body> Invoice {{invoiceNumber}} Date: {{invoiceDate}} | Due: {{dueDate}} {{#company.logoUrl}} {{/company.logoUrl}} From {{company.name}} {{company.address}} {{company.phone}} {{company.email}} Bill To {{billTo.name}} {{billTo.address}} {{billTo.email}} Description Qty Unit Price Line Total {{#items}} {{line}} {{description}} {{qty}} {{unitPriceFmt}} {{lineTotalFmt}} {{/items}} Subtotal {{subTotalFmt}} Tax ({{taxRatePct}}) {{taxAmountFmt}} Discount -{{discountFmt}} Total {{totalFmt}} Notes: {{notes}} Terms: {{terms}} </body> </html>
by Guillaume Duvernay
Stop the daily grind of checking multiple apps just to stay updated. This template automates the creation of recurring digests by querying a powerful AI assistant you build on the Super platform. First, create an assistant in Super (https://super.work/) and connect it to all your key data sources like Notion, Jira, Slack, and HubSpot. Then, use this n8n workflow to ask it a specific question on a recurring schedule (e.g., "What was the progress on our key projects yesterday?"). The workflow delivers a concise, AI-generated summary directly to a Slack channel of your choice. It's the easiest way to get the information that matters most, without the manual work. Who is this for? Team leads & managers:** Get automated daily or weekly reports on project progress, sales performance, or customer support trends without having to chase down information. Operations teams:** Monitor key business activities by receiving automated summaries from various sources in a single, convenient message. Anyone overwhelmed by information:** Replace manual check-ins across multiple platforms with a single, intelligent digest tailored to your needs. What problem does this solve? Eliminates manual reporting:** Frees you from the repetitive, time-consuming task of gathering updates from different tools every day. Centralizes key insights:** Delivers crucial information from all your connected apps (via your Super assistant) into a single, easy-to-read Slack message. Saves time and improves focus:** Start your day with a concise, actionable summary instead of context-switching between numerous tabs and dashboards. Makes powerful, data-connected AI accessible:** Simplifies the process of querying a sophisticated AI assistant on a recurring basis to get answers from your own company's data. How it works First, in Super: The process starts on the Super platform (https://super.work/), where you create a new assistant. You'll define its purpose with a prompt and connect it to your live data sources (e.g., your Jira projects, Notion databases, etc.). Scheduled trigger: The n8n workflow runs automatically on a schedule you define (e.g., every weekday morning at 8:30 AM). Define the recurring query: A Set node holds the specific question you want to ask your Super assistant each time the workflow runs. Query the Super assistant: An HTTP Request node sends this query, along with your unique assistant ID, to the Super API. Deliver the digest to Slack: Your Super assistant generates an answer based on the live data it can access. The workflow then formats this answer and posts it as a clear, concise message in your designated Slack channel. Setup Set up your Super assistant (Prerequisite): First, go to Super, create an assistant, connect it to your data sources, and copy its Assistant ID and your API Token. Configure the query: In the Set query node, write the question you want to ask your assistant on a recurring basis (e.g., "Summarize all new deals created in HubSpot yesterday."). Connect to the Super API: In the Query Super Assistant (HTTP Request) node: Paste your Assistant ID into the assistantId field in the body. Add your Super API Token for authentication. We recommend creating a "Generic Credential" of type "Bearer Token" for this. Connect Slack: In the Send digest in Slack node, select your Slack account and choose the channel where you want the digest to be posted. Set the schedule: Adjust the Schedule Trigger to your desired frequency and time. Activate the workflow, and your automated digests will start arriving as scheduled! Taking it further Change the destination:* Not a Slack user? Easily swap the *Slack* node for an *Email* node to send the digest to your inbox, or a *Google Sheets** node to log all digests over time. Create dynamic queries:* Use n8n's expression editor in the *Set query** node to make your questions dynamic. For example, you could automatically insert yesterday's date into the query each day. Build multi-step reports:* Chain multiple *HTTP Request** nodes to ask your Super assistant several different questions, then combine all the answers into a single, more comprehensive report.
by Ali Khosravani
This workflow automatically generates realistic comments for your WordPress articles using AI. It makes your blog look more active, improves engagement, and can even support SEO by adding keyword-relevant comments. How It Works Fetches all published blog posts from your WordPress site via the REST API. Builds a tailored AI prompt using the article’s title, excerpt, and content. Uses OpenAI to generate a short, natural-sounding comment (some positive, some neutral, some longer, some shorter). Assigns a random commenter name and email. Posts the generated comment back to WordPress. Requirements n8n version: 1.49.0 or later (recommended). Active OpenAI API key. WordPress site with REST API enabled. WordPress API credentials (username + application password). Setup Instructions Import this workflow into n8n. Add your credentials in n8n > Credentials: OpenAI API (API key). WordPress API (username + application password). Replace the sample URL https://example.com with your own WordPress site URL. Execute manually or schedule it to run periodically. Categories AI & Machine Learning WordPress Content Marketing Engagement Tags ai, openai, wordpress, comments, automation, engagement, n8n
by Olivier
This template enriches HubSpot company records using real-time data from the Bedrijfsdata.nl API. It listens for changes to company properties (e.g., domain) and updates records with verified information such as KvK, LinkedIn, phone, and company size. ✨ Features Automatically enrich HubSpot company profiles with verified Dutch business data Smart fallback: match by Bedrijfsdata ID or dynamic fuzzy matching existing data Customize which HubSpot event triggers the workflow (company.propertyChange, create, etc.) Realtime integration with Bedrijfsdata.nl via their official API node Secure, modular, and extendable structure (error handling included) 🏢 Example Data from Bedrijfsdata.nl Bedrijfsdata.nl offers over 100 attributes per company. Example fields: name, address, postcode, city, province phone, email, website, linkedin_link industry_section, employees, revenue, sbi, vat bag_bouwjaar, bag_oppervlakte, bag_energielabel SEO data (keywords, backlinks), usage of software, structured descriptions Review ratings, opening hours, geo-location, etc. Example: Bedrijfsdata.nl B.V. Phone: 020-7895050 Mail: klantenservice@bedrijfsdata.nl Employees: 2-10 SBI: 6201 LinkedIn: linkedin.com/company/bedrijfsdata-nl Description: Bedrijfsdata.nl B.V. is a Dutch company that provides comprehensive data on over 3.1 million businesses in the Netherlands. They offer datasets categorized by industry, region, company [...] More fields: see developers.bedrijfsdata.nl ⚙ Requirements n8n instance or cloud workspace Install the Bedrijfsdata.nl n8n Verified Community Node HubSpot private app (OAuth2) with a webhook Bedrijfsdata.nl developer account (14-day free trial, 500 credits) 🔧 Setup Instructions Create HubSpot Private App Enable scopes for companies Add a webhook to listen to e.g. company.propertyChange on domain More info: HubSpot Private Apps Configure n8n Workflow Import this template Set your Bedrijfsdata.nl API credentials Set up HubSpot OAuth2 credentials Customize Fields (Optional) Modify the Update a company node to match your internal CRM fields Add logging, Slack notifications, or conditional branches if needed 🔐 Security Notes Workflow checks portalId, objectId, and event type Test-mode detection using a known company ID Errors are routed via dedicated error branches 🧪 Testing Create or update a company in HubSpot with a known domain Trigger the webhook from HubSpot Check n8n’s execution history Verify enrichment in HubSpot 🖼 Screenshots Before enrichment After enrichment 📌 About Bedrijfsdata.nl Bedrijfsdata.nl operates the most comprehensive company database in the Netherlands. With real-time data on 3.7M+ businesses and AI-ready APIs, we help Dutch SMEs enrich their CRM, workflows, and marketing automation. Built on 25+ years of experience in data collection and enrichment, our technology brings corporate-grade data quality to every organisation. Website: https://www.bedrijfsdata.nl Developers: developers.bedrijfsdata.nl 📞 Support Email: klantenservice@bedrijfsdata.nl Phone: +31 20 789 50 50 Support hours: Monday–Friday, 09:00–17:00 CET
by Krystian Syryca
Description This workflow fetches Toggl Track summary data for the previous month, aggregates hours per client and project, and emails a clean HTML report via Resend. How it works 1) Compute previous month period. 2) Fetch Toggl summary (grouping=clients, sub_grouping=projects). 3) Fetch clients and projects for proper names. 4) Merge and aggregate seconds to hours. 5) Generate HTML raport. 6) Send raport via Resend API. Requirements Toggl free account (Login, Pass, TOGGL_WORKSPACE_ID). Resend.com free account (RESEND_API_KEY). Customization Change trigger time in the Schedule Trigger node. Modify period calculation for weekly/quarterly in Get Toggle Summary node. Add archived projects by querying with active=false&archived=true and merging. Documentation Toggle docs Resend.com docs Author Krystian Syryca - krsweb.pl
by Easy8.ai
Auto-Sync Easy Redmine Tasks to Microsoft To Do This workflow automatically synchronizes tasks from Easy Redmine into a Microsoft To Do list using a predefined filter. Before syncing, it clears the target list in Microsoft To Do to avoid duplicates. It’s ideal for teams or individuals who plan work in Redmine but prefer Microsoft To Do for daily task tracking. By connecting Redmine’s task filtering with Microsoft To Do’s simple interface, this setup ensures your task list is always focused and up to date—without manual copying or switching tools. How it works Scheduled Trigger – Run Daily Sync Triggers the workflow automatically at a set time (e.g., every morning at 9:00 AM). Supports different time zones and execution intervals. Get All To Do Tasks – Clean Target List Fetches all existing tasks in a specific Microsoft To Do list. Prepares the list to be cleared before syncing new tasks. Delete All Tasks – Reset To Do List Deletes previously existing tasks to prevent duplication. A code node ensures that the workflow only proceeds after all deletions are complete. Get Redmine Tasks by Filter – Pull Fresh Data Retrieves tasks from Easy Redmine using saved filters (e.g., assigned to the user, due this week). Only pulls the relevant tasks defined by your Redmine criteria. Split and Format Tasks – One at a Time Processes each Redmine task individually. A code node enriches each task with a direct link back to the Easy Redmine issue. Create To Do Task – Sync to Microsoft To Do Creates a new Microsoft To Do task with name, due date, and optionally a formatted description. The result is a clean, updated task list reflecting current Redmine assignments. How to Use Connect credentials: Easy Redmine API token (with permission to access issues). Microsoft credentials (to manage Microsoft To Do lists). In the Redmine filter node, configure the filter to fetch relevant issues. In the Microsoft To Do nodes, select the correct list for both retrieval and creation. Open the Schedule Trigger node and adjust to your desired sync time and timezone. Run a test to confirm that the Redmine tasks appear correctly in your Microsoft To Do list. Example Use Cases Daily Planning: Automatically refill your Microsoft To Do list with current Redmine tasks every morning. Team Sync: Push sprint items or task board assignments into a shared team to-do list. Priority Focus: Only pull in tasks due today or marked as high priority in Redmine. Requirements Easy Redmine account API access enabled Saved filters for task selection Microsoft 365 account Microsoft To Do access Customization Adjust the Redmine filters to target different users, statuses, or projects. Modify the function node to format the task title or description with more detail. Add conditionals to only sync urgent or near-due tasks. Route different project tasks to different To Do lists. Optionally send a confirmation message (email, Slack) when the sync completes. Workflow Improvement Suggestions Rename nodes for clarity (e.g., “Delete Old Tasks”, “Fetch Redmine Tasks”). Add error handling if API requests fail. Use environment variables for list IDs and API URLs to improve reusability. Add logging or tracking (e.g., number of tasks synced per execution).
by Lucas Walter
Nano Banana Ad Cloning System This n8n template demonstrates how to automatically clone and adapt competitor Facebook ads for your own product using AI. Simply provide a Facebook Ad Library URL and your product image, and the workflow scrapes competitor ads, analyzes their design and messaging, then generates new versions featuring your product while maintaining the original ad's style and effectiveness. Use cases Adapt successful competitor ad creatives for your own products Test proven ad formats without starting from scratch Quickly produce multiple ad variations based on high-performing competitors Scale ad creative production by leveraging competitor insights A/B test different visual approaches inspired by market leaders Good to know The workflow processes up to 20 ads from the provided Facebook Ad Library URL Gemini's image generation may occasionally flag content as prohibited (workflow handles this automatically) Generated ads maintain the original style while swapping product branding and packaging All competitor reference ads and generated clones are automatically saved to Google Drive Image generation takes approximately 10-30 seconds per ad How it works Form Submission: User submits a Facebook Ad Library URL and uploads their product image Product Processing: The product image is converted to base64 for AI processing Ad Scraping: Apify's Facebook Ad Library Scraper extracts up to 20 ads from the provided URL Iteration Setup: The workflow processes each scraped ad individually Image Download: Each competitor ad image is downloaded and converted to base64 Reference Storage: Original competitor ads are uploaded to Google Drive for reference Prompt Generation: Gemini 2.5 Pro analyzes both images and creates detailed instructions for cloning the ad while replacing competitor branding with your product Ad Generation: Gemini 2.5 Flash Image Preview generates the new ad image based on the instructions Content Filter: Checks if generation was blocked for prohibited content Upload & Loop: Successfully generated ads are uploaded to Google Drive, then the workflow moves to the next ad How to use Click the form trigger URL to access the submission form Enter a Facebook Ad Library URL (e.g., from a competitor's page showing active ads) Upload your product image with clear branding and packaging Submit the form and wait for processing to complete Find your cloned ads and reference images organized in Google Drive folders Review generated ads and select the best performers for your campaigns Requirements Apify** account for Facebook Ad Library scraping Google Gemini API** account for ad analysis and image generation Google Drive** account for storing reference ads and generated clones Valid Facebook Ad Library URL with accessible ads Customizing this workflow Adjust the number of ads scraped in the scrape_ads node (currently set to 20 per source) Modify the prompt instructions in build_prompt node to emphasize different aspects (e.g., color schemes, layouts, text placement) Change the Google Drive folders in upload_ad_reference and upload_image nodes to organize by campaign or product line Add text overlay generation to include custom headlines or CTAs on generated images Implement quality scoring to automatically filter and rank generated ad variations Add Slack/email notifications when ad generation completes or fails Include metadata extraction to capture ad copy and targeting insights from scraped adsRetryClaude does not have the ability to run the code it generates yet.
by Mohammed Abid
Extract Gmail Metadata to Google Sheets This n8n template shows how to fetch new emails from a Gmail account, extract key metadata (sender name, email, subject, and message body), and append each email as a new row in a Google Sheet for record-keeping or follow-up workflows. Good to Know Gmail API Quotas: Gmail’s API has usage limits—make sure your application stays under 2500 read requests per day or implement exponential backoff on rate limit errors. OAuth Credentials: You’ll need to configure OAuth2 credentials in n8n to authenticate with Gmail. Sheet Structure: Prepare your Google Sheet with columns: Timestamp, Sender Name, Sender Email, Subject, Message. How It Works Gmail Trigger: Watches for new emails matching your search criteria (e.g., is:unread). Extract Metadata: A Function node reads the incoming payload and pulls: Name and Email from headers or body text Subject from common subject fields Message from body, text, or snippet Timestamp from current system time Append to Sheet: The Google Sheets node appends each processed email as a row in your target spreadsheet. How to Use Import the Template: Click "Use Template" in your n8n instance. Configure Credentials: Gmail OAuth2: Set up your Gmail account credentials in n8n. Google Sheets: Authorize with your Google account and select the spreadsheet. Adjust Search Criteria: Modify the Gmail Trigger to filter specific labels or queries. Activate and Test: Enable the workflow and send a test email. Verify Sheet: Check your Google Sheet for new rows with the extracted email data. Requirements n8n@latest Gmail OAuth2 Credentials Google Sheets API enabled in your Google Cloud project Customizing This Workflow Additional Fields: Extend the Function node to capture attachments, threads, or labels. Notification Flow: Add Slack or email nodes to notify your team of important messages. Data Enrichment: Integrate with NLP or sentiment analysis APIs to annotate messages.
by Jitesh Dugar
Resume Email Verifier & Visual Card Generator Overview Verify candidate emails and auto-generate beautiful resume cards. Validates deliverability, creates professional PNG cards, and emails them instantly. What This Workflow Does Automatically validate candidate email addresses and generate stunning, personalized resume snapshot cards delivered instantly via email. Perfect for recruitment platforms, job boards, HR automation, and career services. Key Features ✅ Advanced Email Verification - Validates deliverability, checks MX records, detects disposable emails ✅ Beautiful Visual Cards - Generates professional 600x400px PNG resume cards with gradient backgrounds ✅ Smart Routing - Separate paths for valid/invalid emails with appropriate notifications ✅ Professional Emails - HTML-formatted emails with personalized content and attachments ✅ Ready to Use - Comprehensive documentation with sticky notes explaining each step Perfect For Recruitment platforms verifying applicant emails Job boards creating visual resume confirmations HR departments streamlining candidate verification Career fairs generating instant digital resume cards Portfolio sites validating users and creating shareable snapshots Educational institutions providing students with verified digital resumes What You'll Need VerifiEmail Account - Email verification (https://verifi.email) htmlcsstoimage.com Account - Image generation (https://htmlcsstoimg.com) Gmail Account - Email delivery (free with Gmail API) Quick Start Import workflow into n8n Set up three credentials (Gmail OAuth2, VerifiEmail API, htmlcsstoimg API) Activate workflow and copy webhook URL Send POST requests with resume data Candidates receive beautiful resume cards via email! Sample Input { "name": "John Doe", "email": "john@example.com", "role": "Frontend Developer", "skills": "React, JavaScript, Tailwind CSS, Git" } Sample Output Valid emails: Professional email with resume card PNG attachment Invalid emails: Helpful error notification with troubleshooting tips Average processing time: 3-5 seconds Workflow Includes 9 pre-configured nodes with detailed sticky notes Complete documentation explaining each step Error handling for both valid and invalid paths Customizable HTML template for branding Professional email templates ready to use Easy Customization Change card colors and branding in HTML template Modify email templates for your company style Adjust validation rules in Set node Add additional data fields as needed Perfect for startups, agencies, and enterprises looking to automate resume processing and email verification! `