by Hans Wilhelm Radam
Description: This workflow automates personalized email outreach to a list of hospitals. It uses a chat-based interface to accept a region and a list of hospital names, looks up their specific contact details from a structured Google Sheet, and sends a tailored email via Gmail. Who’s it for This template is perfect for healthcare startups, medical device sales representatives, or IT consultants who need to conduct targeted outreach to hospital administrators. It's designed for anyone looking to automate a personalized, region-specific email campaign without manual data entry. How it works Trigger: You provide input via a chat message. The first line is the region (e.g., LUZON), and each subsequent line is a hospital name. Parsing: A Code node splits your message into a structured list of items for processing. Batching: The workflow processes each hospital one by one for reliable execution. Data Lookup: Based on the region, the workflow queries the corresponding sheet in a Google Sheets document to find the hospital's specific contact details. Email Delivery: A personalized email is sent to the hospital's email address using Gmail, pulling data from the spreadsheet to customize the message. How to set up Credentials: Set up n8n credentials for Google Sheets and Gmail (using OAuth2 recommended). Google Sheet: Duplicate the provided template Sheet structure. Your sheet must have columns like Hospital Name and Main Email. Workflow Configuration: Replace the placeholder Google Sheet ID in the Set Configuration node with the ID of your own sheet. Requirements An n8n instance (cloud or self-hosted). A Google account with access to Google Sheets and Gmail. The provided Google Sheets template structure. How to customize Email Template:* Modify the email subject and body in the *Send Gmail Message** node. Use placeholders like {{ $json["Your Field"] }} to insert data from your Google Sheet. Data Source:** Replace the Google Sheets node with another data source (e.g., Airtable, PostgreSQL) by ensuring it outputs data in a similar JSON format. Output:** Instead of Gmail, use the SendBlue node to send an SMS or the Slack node to send a DM.
by Vlad Arbatov
Summary Every day at a set time, this workflow fetches yesterday’s newsletters from Gmail, summarizes each email into concise topics with an LLM, merges all topics, renders a clean HTML digest, and emails it to your inbox. What this workflow does Triggers on a daily schedule (default 16:00, server time) Fetches Gmail messages since yesterday using a custom search query with optional sender filters Retrieves and decodes each email’s HTML, subject, sender name, and date Prompts an LLM (GPT‑4.1‑mini) to produce a consistent JSON summary of topics per email Merges topics from all emails into a single list Renders a styled HTML email with enumerated items Sends the HTML digest to a specified recipient via Gmail Apps and credentials Gmail OAuth2: Gmail account (read and send) OpenAI: OpenAi account Typical use cases Daily/weekly newsletter rollups delivered as one email Curated digests from specific media or authors Team briefings that are easy to read and forward How it works (node-by-node) Schedule Trigger Fires at the configured hour (default 16:00). Get many messages (Gmail → getAll, returnAll: true) Uses a filter like: =(from:@.com) OR (from:@.com) OR (from:@.com -"__") after:{{ $now.minus({ days: 1 }).toFormat('yyyy/MM/dd') }} Returns a list of message IDs from the past day. Loop Over Items (Split in Batches) Iterates through each message ID. Get a message (Gmail → get) Retrieves the full message/payload for the current email. Get message data (Code) Extracts HTML from Gmail’s MIME parts. Normalizes the sender to just the display name. Formats the date as DD.MM.YYYY. Passes html, subject, from, date forward. Clean (Code) Converts DD.MM.YYYY → MM.DD (for prompt brevity). Passes html, subject, from, date to the LLM. Message a model (OpenAI, model: gpt‑4.1‑mini, JSON output) Prompt instructs: Produce JSON: { "topics": [ { "title", "descr", "subject", "from", "date" } ] } Split multi-news blocks into separate topics Combine or ignore specific blocks for particular senders (placeholders __) Keep subject untranslated; other values in __ language Injects subject/from/date/html from the current email Loop Over Items (continues) Processes all emails for the time window. Merge (Code) Flattens the topics arrays from all processed emails into one combined topics list. Create template (Code) Builds a complete HTML email: Enumerated items with title, one-line description Original subject and “from — date” Safely escapes HTML and preserves line breaks Inline, email-friendly styles Send a message (Gmail → send) Sends the final HTML to your recipient with a custom subject. Node map | Node | Type | Purpose | |---|---|---| | Schedule Trigger | Trigger | Run at a specific time each day | | Get many messages | Gmail (getAll) | Search emails since yesterday with filters | | Loop Over Items | Split in Batches | Iterate messages one-by-one | | Get a message | Gmail (get) | Fetch full message payload | | Get message data | Code | Extract HTML/subject/from/date; normalize sender and date | | Clean | Code | Reformat date and forward fields to LLM | | Message a model | OpenAI | Summarize email into JSON topics | | Merge | Code | Merge topics from all emails | | Create template | Code | Render a styled HTML email digest | | Send a message | Gmail (send) | Deliver the digest email | Before you start Connect Gmail OAuth2 in n8n (ensure it has both read and send permissions) Add your OpenAI API key Import the provided workflow JSON into n8n Setup instructions 1) Schedule Schedule Trigger node: Set your preferred hour (server time). Default is 16:00. 2) Gmail Get many messages: Adjust filters.q to your senders/labels and window: Example: =(from:news@publisher.com) OR (from:briefs@media.com -"promo") after:{{ $now.minus({ days: 1 }).toFormat('yyyy/MM/dd') }} You can use label: or category: to narrow scope. Send a message: sendTo = your email subject = your subject line message = set to {{ $json.htmlBody }} (already produced by Create template) The HTML body uses inline styles for broad email client support. 3) OpenAI Message a model: Model: gpt‑4.1‑mini (swap to gpt‑4o‑mini or your preferred) Update prompt placeholders: __ language → your target language __ sender rules → special cases (combine blocks, ignore sections) How to use The workflow runs daily at the scheduled time, compiling a digest from yesterday’s emails. You’ll receive one HTML email with all topics neatly listed. Adjust the time window or filters to change what gets included. Customization ideas Time window control: after: {{ $now.minus({ days: X }) }} and/or add before: Filter by labels: q = label:Newsletters after:{{ $now.minus({ days: 1 }).toFormat('yyyy/MM/dd') }} Language: Set the __ language in the LLM prompt Template: Edit “Create template” to add a header, footer, hero section, logo/branding Include links parsed from HTML (add an HTML parser step in “Get message data”) Subject line: Make dynamic, e.g., “Digest for {{ $now.toFormat('dd.MM.yyyy') }}” Sender: Use a dedicated Gmail account or alias for deliverability and separation Limits and notes Gmail size limit for outgoing emails is ~25 MB; large digests may need pruning LLM usage incurs cost and latency proportional to email size and count HTML rendering varies across clients; inline styles are used for compatibility Schedule uses the n8n server’s timezone; adjust if your server runs in a different TZ Privacy and safety Emails are sent to OpenAI for summarization—ensure this aligns with your data policies Limit the Gmail search scope to only the newsletters you want processed Avoid including sensitive emails in the search window Sample output (email body) Title 1 One-sentence description Original Subject → Sender — DD.MM.YYYY Title 2 One-sentence description Original Subject → Sender — DD.MM.YYYY Tips and troubleshooting No emails found? Check filters.q and the time window (after:) Model returns empty JSON? Simplify the prompt or try another model Odd characters in output? The template escapes HTML and preserves line breaks; verify your input encoding Delivery issues? Use a verified sender, set a clear subject, and avoid spammy keywords Tags gmail, openai, llm, newsletters, digest, summarization, email, automation Changelog v1: Initial release with scheduled time window, sender filters, LLM summarization, topic merging, and HTML email template rendering
by Tomohiro Goto
🧠 How it works This workflow automatically translates messages between Japanese and English inside Slack — perfect for mixed-language teams. In our real-world use case, our 8-person team includes Arif, an English-speaking teammate from Indonesia, while the rest mainly speak Japanese. Before using this workflow, our daily chat often included: “Can someone translate this for Arif?” “I don’t understand what Arif wrote — can someone summarize it in Japanese?” “I need to post this announcement in both languages, but I don’t know the English phrasing.” This workflow fixes that communication gap without forcing anyone to change how they talk. Built with n8n and Google Gemini 2.5 Flash, it automatically detects the input language, translates to the opposite one, and posts the result in the same thread, keeping every channel clear and contextual. ⚙️ Features Unified translation system with three Slack triggers: 1️⃣ Slash Command /trans – bilingual posts for announcements. 2️⃣ Mention Trigger @trans – real-time thread translation for team discussions. 3️⃣ Reaction 🇯🇵 / 🇺🇸 – personal translation view for readers. Automatic JA ↔ EN detection and translation via Gemini 2.5 Flash 3-second instant ACK to satisfy Slack’s response timeout Shared Gemini translation core across all three modes Clean thread replies using chat.postMessage 💼 Use Cases Global teams** – Keep Japanese and English speakers in sync without switching tools. Project coordination** – Use mentions for mixed-language stand-ups and updates. Announcements** – Auto-generate bilingual company posts with /trans. Cross-cultural communication** – Help one-language teammates follow along instantly. 💡 Perfect for Global companies** with bilingual or multilingual teams Startups** collaborating across Japan and Southeast Asia Developers** exploring Slack + Gemini + n8n automation patterns 🧩 Notes You can force a specific translation direction (JA→EN or EN→JA) inside the Code node. Adjust the system prompt to match tone (“business-polite”, “casual”, etc.). Add glossary replacements for consistent terminology. If the bot doesn’t respond, ensure your app includes the following scopes: app_mentions:read, chat:write, reactions:read, channels:history, and groups:history. Always export your workflow with credentials OFF before sharing or publishing. ✨ Powered by Google Gemini 2.5 Flash × n8n × Slack API A complete multilingual layer for your workspace — all in one workflow. 🌍
by Asuka
Who's it for Customer support teams, sales representatives, and international business professionals who need to handle multilingual email communication efficiently while maintaining quality control through human approval. How it works This workflow automates email responses by: Monitoring Gmail for emails with a specific label (e.g., "To_Process") Translating the email content using DeepL to your preferred language Generating an AI-powered summary and draft reply using OpenAI Requesting approval via Slack with a summary and one-click approval link Sending the reply only after human approval is received Removing the label to prevent reprocessing Set up steps Setup takes approximately 15-20 minutes: Configure credentials for Gmail, DeepL, OpenAI, and Slack Create a Gmail label for emails to process Update the Slack channel ID in the configuration node Ensure n8n is accessible via webhook (tunnel or production mode required) Requirements Gmail account with OAuth2 authentication DeepL API key (free tier available) OpenAI API key Slack workspace with OAuth2 app configured n8n instance accessible via webhook URL How to customize the workflow Change translation language**: Modify the DeepL node's target language Adjust AI model**: Switch between GPT-4 or GPT-3.5 in the OpenAI node Customize approval message**: Edit the Slack message format Add multiple languages**: Duplicate the translation node for multi-language support Filter specific senders**: Add conditions to process only certain email addresses
by vinci-king-01
How it works This workflow automatically monitors supplier health and supply chain risks, providing real-time alerts and daily reports to procurement teams. Key Steps Daily Risk Check - Runs the workflow every morning at 9:00 AM to assess supplier health. Multi-Source Data Collection - Scrapes supplier websites, investor relations pages, and industry news for risk indicators. AI-Powered Risk Analysis - Uses ScrapeGraphAI to extract and analyze financial status, operational issues, and regulatory problems. Risk Scoring Engine - Calculates comprehensive risk scores (1-10) based on multiple factors including financial health, operational disruptions, and news sentiment. Alternative Supplier Discovery - Automatically searches for backup suppliers when high-risk situations are detected. Smart Alert System - Routes notifications based on risk levels: immediate alerts for high-risk suppliers, daily summaries for normal operations. Multi-Channel Notifications - Sends alerts via Slack and detailed reports via email to procurement teams. Set up steps Setup time: 10-15 minutes Configure ScrapeGraphAI credentials - Add your ScrapeGraphAI API key for web scraping capabilities. Set up Slack integration - Connect your Slack workspace and configure the #procurement-alerts and #supply-chain-updates channels. Configure email settings - Set up email credentials for detailed reports to procurement teams. Customize supplier URLs - Update the supplier website URLs to monitor your specific suppliers. Adjust risk thresholds - Modify the risk scoring parameters based on your industry and risk tolerance. Set notification preferences - Configure alert conditions and message formatting for your team's needs.
by David Olusola
💰 Track Daily Fiat & Crypto Exchange Rates Report with ExchangeRate-API & CoinGecko A simple, reliable workflow that emails you a beautiful HTML currency report every morning at 8:00 AM (your n8n server’s timezone). It pulls USD→EUR and USD→NGN fiat rates and BTC/ETH prices (+ 24h % change), then formats a clean HTML email. 📌 What It Does ⏰ Schedule: Runs daily at 8:00 AM 🌍 Fiat Rates: USD→EUR and USD→NGN (via ExchangeRate-API, no key needed) ₿ Crypto: BTC & ETH prices + 24h change (via CoinGecko, no key needed) ✉️ Email: Sends a mobile-friendly HTML + plain text fallback 🗺️ Node Map (At a Glance) | # | Node Name | Type | Purpose | |---|-----------|------|---------| | 1 | Daily 8AM Trigger | Schedule Trigger | Fires every day at 08:00 | | 2 | Get Fiat Exchange Rates | HTTP Request | https://api.exchangerate-api.com/v4/latest/USD | | 3 | Get Crypto Prices | HTTP Request | CoinGecko simple price endpoint | | 4 | Merge | Merge | Combines fiat + crypto responses | | 5 | Format Email Content | Code (v2) | Builds HTML + text, sets subject & summary | | 6 | Send Daily Currency Email | Email Send | Sends the HTML email via SMTP | > 📝 Sticky Notes in the canvas explain each section. They’re optional and safe to delete. ⚙️ Required Setup 1) Schedule Time Open Daily 8AM Trigger → set cron to 08:00 daily. Suggested cron: 0 8 * * (server local time; if you’re in Lagos, ensure server timezone matches *Africa/Lagos** or adjust accordingly). 2) SMTP Credentials Open Send Daily Currency Email → set: From Email: your sender (e.g. your-email@gmail.com) To Email: recipient address Credentials: select your SMTP account Gmail tip:* use *App Passwords** (with 2FA enabled). Server: smtp.gmail.com Port: 587 (STARTTLS) or 465 (SSL) Auth: your full Gmail address + app password 3) API Access Both endpoints are free & no API key: Fiat (USD base): https://api.exchangerate-api.com/v4/latest/USD Crypto (BTC/ETH): https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd&include_24hr_change=true 🧩 Input Order The Format Email Content node is written to auto-detect which input is fiat vs crypto, so the Merge order doesn’t matter. A clean pattern is: Get Crypto Prices* → *Merge** (Input 1) Get Fiat Exchange Rates* → *Merge** (Input 2) Merge* → *Format Email Content* → *Send Daily Currency Email** 🚀 Test It Quickly Run Get Fiat Exchange Rates → verify rates.EUR and rates.NGN exist. Run Get Crypto Prices → verify BTC/ETH usd and usd_24h_change. Run Format Email Content → check it outputs subject, html, text. Run Send Daily Currency Email → confirm the styled report arrives. 🎛 Customize Currencies:** Add more fiat codes from rates (e.g., GBP, ZAR) and extend the HTML template. Coins:** Add ids= in CoinGecko (e.g., bitcoin,ethereum,solana) and render extra cards. Send time:** Adjust the cron (e.g., 30 7 * * * for 7:30 AM). Branding:** Edit colors, fonts, and header gradient in the HTML string. Timezone stamp:** Change the display timezone inside the Code node if needed. 🧩 Common Pitfalls & Fixes Email not styled:* Ensure the Email node is set to *HTML** format. Gmail auth fails:* Use an *App Password* and port *587** with STARTTLS. Empty values:** Run the two HTTP nodes once and confirm the responses contain data. Rate limits:** If you increase frequency, consider adding a short Wait node or caching.
by Roshan Ramani
Who's it for Business owners, marketers, and web developers who want to instantly respond to website contact form submissions and maintain organized lead records without manual monitoring. What it does This workflow automatically processes contact form submissions from your website, sending immediate WhatsApp notifications with formatted lead details while simultaneously logging all data to Google Sheets for organized lead management and follow-up tracking. How it works When someone submits your website contact form, the webhook instantly receives the data, formats it into a professional WhatsApp message with emojis and structure, sends the notification to your phone, and logs all details (name, email, phone, service, message, timestamp) to a Google Sheets database for permanent storage and analysis. Requirements WhatsApp Business API credentials Google Sheets API access with a spreadsheet containing these columns: date (for timestamp) name (contact's full name) email (contact's email address) phone (contact's phone number) service (requested service/interest) message (contact's message/inquiry) Website contact form that can POST to webhook URL with fields: name, email, phone, service, message n8n instance (self-hosted or cloud) Google Sheets Setup Create a new Google Sheet with the following column headers in row 1: Column A: date Column B: name Column C: email Column D: phone Column E: service Column F: message The workflow will automatically populate these columns with each form submission and use the date column for duplicate checking. How to set up Credentials Setup: Configure WhatsApp Business API credentials in the WhatsApp node Set up Google Sheets API connection and grant necessary permissions Configuration: Update the recipient phone number in the WhatsApp node (format: +1234567890) Replace the Google Sheets document ID with your spreadsheet ID Ensure your Google Sheet has the required column structure mentioned above Integration: Copy the webhook URL from the Contact Form Trigger node Configure your website form to POST data to this endpoint with field names: name, email, phone, service, message Testing: Test the workflow by submitting a sample form entry Verify WhatsApp notification is received and data appears in Google Sheets How to customize the workflow Message Format:** Modify the WhatsApp message template in the Format Lead Data node Additional Fields:** Add more form fields by updating both the Code node and Google Sheets mapping Email Notifications:** Include email alerts by adding an Email node after the Format Lead Data node Conditional Logic:** Set up different notifications for high-priority services or VIP customers Data Validation:** Add filtering rules in the Code node to handle spam or invalid submissions Multiple Recipients:** Configure the WhatsApp node to send alerts to multiple team members
by Cong Nguyen
📄 What this workflow does This workflow automates the process of finding LinkedIn leads and writing personalized outreach messages. It takes user input (keywords + purpose), generates a Boolean LinkedIn search query with Gemini, fetches up to 20 results via Google Custom Search API, logs them into Google Sheets, and then drafts custom outreach messages for each lead. Finally, the workflow updates the sheet and optionally sends you an email notification with the results. 👤 Who is this for Sales and business development teams who want to automate LinkedIn prospecting. Recruiters searching for candidates and generating outreach at scale. Marketers or founders looking for potential partners, clients, or collaborators. Anyone tired of manual LinkedIn searches and copy-pasting outreach messages. ✅ Requirements Google Sheets account (with a sheet for storing LinkedIn leads + messages). Google Custom Search Engine (CSE) enabled with "Search the entire web" and valid cx. Gemini API access (for Boolean query generation + outreach message drafting). SMTP credentials for optional email notifications. ⚙️ How to set up Connect your Google Sheets account and select the sheet to store results. Configure Gemini API credentials in n8n for both search query + outreach message generation. Create a Google Custom Search Engine and note down the key and cx. Update the HTTP Request node with your credentials (key, cx, hl, gl). Set up SMTP credentials if you want email notifications. Publish the Form trigger and test with sample keywords + purposes. 🔁 How it works Form Submit → Collects user input: keywords + purpose of contact. Gemini (Boolean Generator) → Creates a LinkedIn-specific search query (site:linkedin.com). Google Custom Search API → Fetches up to 20 matching profiles or company pages. Append to Google Sheets → Saves name, LinkedIn URL, description. Split & Loop → Processes each LinkedIn entry one by one. Gemini (Message Writer) → Generates personalized outreach messages using Purpose + company info. Update Google Sheets → Adds outreach message to the matching LinkedIn row. Optional Email Notification → Sends you a link to the updated sheet. 💡 About Margin AI Margin AI is an AI-services agency that acts as your AI Service Companion. We design intelligent, human-centric automation solutions—turning your team’s best practices into scalable, automated workflows and tools. Industries like marketing, sales, and operations benefit from our tailored AI consulting, automation tools, chatbot development, and more.
by Cristian Tala Sánchez
Who is this workflow for This workflow is designed for busy professionals, productivity enthusiasts, and teams drowning in email overload. Whether you're a startup founder, operations manager, executive assistant, or team lead, this solution helps you bring structure and clarity to your inbox. If you struggle to identify which emails deserve immediate attention versus which can be scheduled, delegated, or ignored, this workflow is for you. What it does / How it works This n8n automation integrates Gmail and OpenAI to apply the Eisenhower Matrix—a classic productivity framework—to incoming emails. It reads each new unread email from your inbox and automatically classifies it into one of four categories based on urgency and importance: Urgent + Important**: Critical messages requiring immediate action (e.g., legal, financial, investor or user-blocking issues). Not Urgent + Important**: High-value strategic emails you should schedule time for (e.g., partnership opportunities, key coordination). Urgent + Not Important**: Time-sensitive but delegable tasks (e.g., routine operations or technical updates). Not Urgent + Not Important**: Low-value noise like spam or promotions that should be archived or batch-reviewed later. The classification is powered by a GPT model with custom prompts tailored to understand email context and assign the right category with high accuracy. After classification, the workflow adds the appropriate label in Gmail and automatically archives emails marked as low-priority. The result: your inbox becomes a dynamic priority system, helping you make faster, smarter decisions without the mental load of constant triage. How to set it up Create Gmail Labels: Manually create these four labels in your Gmail account: Urgent + Important Not Urgent + Important Urgent + Not Important Not Urgent + Not Important Connect Accounts in n8n: Set up Gmail OAuth2 credentials in your n8n instance to allow reading and labeling emails. Add your OpenAI API key to enable the AI classification. Update Label IDs: In the Gmail nodes of the workflow, replace the label IDs (e.g., Label_4335697733647997523) with the IDs from your own Gmail account. You can find these by creating a dummy workflow with a “Gmail → Get All Labels” node. Test and Deploy: You can run the workflow manually using the “Execute Workflow” trigger or set it to run automatically with the Gmail Trigger that polls every minute. Review your Gmail inbox to see how labels are applied and ensure the archive function is working as expected. Requirements A free or paid n8n instance (self-hosted or cloud) Gmail account with OAuth2 access configured in n8n OpenAI API key (GPT-4.1-mini recommended for accuracy) Four predefined Gmail labels that match the Eisenhower Matrix Basic familiarity with editing Gmail node parameters in n8n How to customize the workflow Tailor the AI prompts**: Update the Text Classifier node with your own examples or definitions of what counts as urgent or important based on your business context. Refine inputs**: Add filters to process only emails from specific senders or domains (e.g., VIP clients, your team). Extend outcomes**: Trigger Slack alerts for urgent messages, auto-reply to certain senders, or sync scheduled items to your calendar. Localization**: Adjust labels and prompts to match your preferred language or naming conventions. Archive rules**: Modify the "Remove Labels" node to exclude specific categories from archiving or add additional cleanup actions. Why this improves productivity This workflow removes decision fatigue from your email routine. By automatically labeling and sorting emails according to urgency and importance, you: Spend less time sorting emails manually Focus energy on what truly matters Schedule strategic tasks thoughtfully Delegate or ignore distractions confidently Instead of reacting to your inbox, you take control of it—turning email chaos into a structured priority system that aligns with your goals.
by Barbora Svobodova
Telegram AI Voice & Email Assistant: Manage, Draft & Discuss Emails via Voice Who’s it for This workflow is perfect for professionals and teams who want to manage email communications hands-free directly from Telegram. Simply send a voice message to your bot and seamlessly check your recent emails, draft or send a reply, and discuss email threads—all powered by OpenAI’s transcription and chat capabilities, with no third-party voice agent required. How it works / What it does Sends voice messages to a Telegram bot, which are then transcribed via OpenAI. Retrieves recent emails, drafts, or sends replies based on your commands. Engages the user in conversational discussion about email content using OpenAI chat. Responds in text or synthesized voice (OpenAI), creating a natural interactive experience. Automates email management from Telegram, keeping you efficient on the go. How to set up Create a Telegram bot via @BotFather and obtain your API token. Add the OpenAI API key and Gmail OAuth credentials to n8n. Assign your credentials to the Telegram, OpenAI, and Gmail nodes (Draft/Send/Get Email). Deploy and activate the workflow. Interact with your Telegram bot: just send voice messages and let the assistant manage your emails! Requirements Telegram Bot Token OpenAI API Key Gmail OAuth Credentials How to customize the workflow Adjust the Switch node to route and handle new message types or responses. Integrate additional services such as Slack, Notion, or custom tools as needed. Fine-tune prompts or the OpenAI transcription settings for your specific use case. Modify email templates and memory/session nodes for advanced conversation flows. Embed video guides or extra sticky notes for enhanced onboarding and usability.
by Jitesh Dugar
Dynamic Email Signature Creator (PDF + HTML) Create gorgeous, branded, professional email signatures automatically — from a simple POST request. This workflow turns user details into a premium HTML signature, converts it into PDF, and delivers it instantly via Gmail, along with a clean JSON response. ✨ What This Template Does This workflow automatically: Receives user details (name, role, email, phone, links) via Webhook Extracts & validates inputs Generates a modern, premium HTML signature with icons + layout Converts HTML → high-quality PDF using HTMLCSS → PDF service Emails both the HTML signature preview + PDF attachment to the user Returns a clean JSON success response with the pdf_url Works 100% automated — no manual designing needed Perfect for: HR onboarding Corporate identity management Personal branding Team signature standardization Automated client signature setup 🔥 Features Beautiful modern design** Clean branding layout with icons (LinkedIn, Instagram, Website) Professional color palette + typography Auto-generated PDF (print-ready) Mobile-friendly & email-safe HTML Supports any social links Extremely easy to integrate with forms, portals, CRMs Fast: Signature generated in < 3 seconds 🧩 How It Works Webhook receives user information Input extractor formats the fields HTML template dynamically inserts user values HTML → PDF generator creates high-resolution output Email node sends signature + PDF Workflow responds with JSON (pdf_url, status, etc.) ⚙️ Setup Needed Connect these credentials in n8n: HTML → PDF** (PDFMunk account) Gmail** (for sending the final signature email) Update inside the HTML template: Brand colors Logo URL (optional) Social icon colors / links (optional) That’s it — your automated signature generator is live. 🏷️ Tags email-signature, branding, pdf-generator, html-template, gmail, automation, onboarding, corporate
by Daniel
Daily AI News Digest from Hacker News with GPT Summaries and Email Delivery Automate your daily AI news briefing: fetch AI-tagged stories from Hacker News, filter for the last 24 hours, scrape and summarize with GPT, then deliver a clean HTML email digest—no manual curation needed. What It Does Runs on schedule to fetch up to 1000 Hacker News stories tagged "AI", filters for today's posts, loops through each to scrape content from source URLs, generates concise AI summaries via OpenAI GPT, aggregates into a styled HTML newsletter, and sends via email. Setup Requirements Credentials Needed: OpenAI API Key**: Get from platform.openai.com/api-keys, add as "OpenAI" credential in n8n SMTP Server**: Configure email credentials (Gmail, Zoho, etc.) in n8n's SMTP settings Configuration Steps: Import workflow JSON into n8n Add OpenAI credential to "GPT 5 pro" node Add SMTP credential to "Send email" node Update fromEmail and toEmail fields in "Send email" node Set schedule in "start" trigger node (default: daily) Activate workflow Key Features Smart Filtering**: Fetches 1000 stories, filters last 24 hours using date expressions AI Summarization**: GPT generates heading + 2-sentence summaries with links Reliable Scraping**: HTTP requests with markdown conversion for clean LLM input Batch Processing**: Loops through items, processes sequentially Responsive Design**: Mobile-friendly HTML email template with inline CSS Aggregation**: Combines all summaries into single digest Customization Options Change Keywords**: Modify "AI" filter in "Get many items" node Adjust Timeframe**: Edit date filter in "Today" node Tweak Summaries**: Customize GPT prompt in "News Summary Agent" node Email Styling**: Update HTML/CSS in "Send email" node Schedule**: Change frequency in "start" trigger Use Cases Personal daily AI briefings for researchers/developers Team knowledge sharing via automated newsletters Content curation for blogs or social media Trend monitoring for marketers Troubleshooting No stories returned**: Check HN API limits, verify keyword filter Scraping failures**: Some sites block bots—proxy noted in workflow but may need updates Email not sending**: Verify SMTP credentials and test connection Poor summaries**: Adjust GPT prompt or switch model Execution Time: 2-10 minutes depending on story count