by Marián Današ
Why Creating and sending invoices manually is a major administrative bottleneck. It's not only slow but also prone to human error, such as creating duplicate invoice numbers or sending sensitive financial data in an unsecured format. This workflow solves these problems by creating a robust, end-to-end automation. It ensures every invoice has a unique ID, is professionally generated, is password-protected, and is delivered to your customer automatically. What This workflow provides a complete, secure solution for automated invoicing. It is designed to be triggered by a Webhook (e.g., from your e-commerce store, CRM, or billing platform) that provides customer and order details. The workflow then executes the following steps: Generate & Verify ID: It first generates a new invoice ID. It then performs a critical check by reading your master Google Sheet to ensure this ID is unique, preventing duplicate invoices. Generate PDF: Once the ID is verified, it passes the data to the PDF Generator API. This service dynamically populates your custom invoice template. (PDF Generator API makes it incredibly easy to build and manage your document templates via their web-based editor). Encrypt Document: For enhanced security, the workflow uses a PDF Generator API operation to encrypt the newly generated invoice with a password, protecting your client's sensitive data. Store & Deliver: Finally, it uploads the secure PDF to a specified Google Drive folder for your records and then automatically sends it to the customer as an attachment using Gmail. How Prerequisites: You will need active accounts for: PDF Generator API (for both generation and encryption) Google Suite (for Sheets, Drive, and Gmail) PDF Generator API Setup: Log in to your PDF Generator API account and use their template builder to create your invoice design. Note your Template ID, API Key, and API Secret. In the n8n PDFGeneratorAPI node (Generate a PDF document), create new credentials using your Key and Secret. In the node's parameters, select your Template ID from the list. Google Sheets Setup: Create a Google Sheet to act as your master list of invoices. In the Check If ID Already Exists node, authenticate your Google Sheets account. Set the Spreadsheet ID and Sheet Name. In the "Columns to Return" field, enter the name of the column where you store your invoice IDs. Security & Delivery Setup: Encrypt Node: In the Encrypt PDF document node, authenticate your PDF Generator API credentials (the same ones from Step 2). You can set a static password, or for better security, use an expression to set a dynamic password from the webhook data (e.g., the customer's postal code or order ID). Google Drive Node: Authenticate the Upload file node and specify the Drive and Folder ID where invoices should be stored. Gmail Node: Authenticate the Send a message + file node. Use an expression to map the customer's email from the trigger data into the "To" field. Test & Activate: The Webhook node has pinned test data. You can click "Test workflow" to run the entire process with this sample data. Once you confirm the file is generated, encrypted, and sent, connect your live app (e.g., Shopify, Stripe, etc.) to the production Webhook URL. Activate the workflow.
by Oneclick AI Squad
This automated n8n workflow monitors real-time cryptocurrency prices using CoinGecko API and sends smart alerts when price conditions are met. It supports multi-coin tracking, dynamic conditions, and instant notifications via Email, Telegram, and Discord. Good to Know Reads crypto watchlist data from Google Sheets. Monitors prices at defined intervals (24/7 monitoring). Handles upper and lower price limits with direction-based alerts (above, below, both). Implements cooldown logic to avoid duplicate alerts. Updates last alert price and timestamp in Google Sheets. Supports multiple alert channels: Email, Telegram, Discord. Uses CoinGecko API for price data (Free tier supported). How It Works 24/7 Crypto Trigger – Runs every minute (or custom interval) to check latest prices. Read Crypto Watchlist – Fetches symbols and conditions from Google Sheets. Parse Crypto Data – Converts Google Sheet data into structured JSON. Fetch Live Crypto Price – Uses CoinGecko API to get latest market price for each coin. Smart Crypto Alert Logic – Compares live price with upper/lower limits and evaluates conditions: Above – Trigger alert if price > upper\_limit. Below – Trigger alert if price < lower\_limit. Both – Trigger alert if either condition is met. Implements cooldown\_minutes to prevent repeated alerts. Check Crypto Alert Conditions – Validates alerts before sending notifications. Send Crypto Email Alert – Sends email alert if condition is true. Send Telegram Crypto Alert – Sends Telegram alert. Send Discord Crypto Alert – Sends Discord alert. Update Crypto Alert History – Updates last_alert_price and last_alert_time in Google Sheet. Crypto Alert Status Check – Ensures alert process completed successfully. Success Notification – Sends confirmation message on success. Error Notification – Sends an error alert if something fails. Google Sheet Columns (A-G) | Column | Description | | ------ | ---------------------------------- | | A | symbol (BTC, ETH, SOL, etc.) | | B | upper_limit (e.g., 45000) | | C | lower_limit (e.g., 40000) | | D | direction (both / above / below) | | E | cooldown_minutes (e.g., 10) | | F | last_alert_price (auto-updated) | | G | last_alert_time (auto-updated) | How to Use Import the workflow into n8n. Configure Google Sheets credentials and link your watchlist sheet. Add your CoinGecko API endpoint in the Fetch Price node (Free tier). Set up Email, Telegram, and Discord credentials for notifications. Test with sample data: Example: BTC, upper\_limit=45000, lower\_limit=40000, direction=both. Execute the workflow and monitor alerts. Requirements n8n environment with execution permissions. Google Sheets integration (with API credentials). CoinGecko API (Free tier supported). Notification channels: Email (SMTP settings in n8n). Telegram Bot Token. Discord Webhook URL. Customizing This Workflow Add more coins in Google Sheet. Modify alert conditions (e.g., percentage change, moving averages). Add SMS or WhatsApp notifications. Integrate with Slack or Microsoft Teams. Use AI-based price predictions for smarter alerts.
by Rajeet Nair
📖 Description 🔹 How it works This workflow turns a Google Form submission into a polished, SEO-optimized technical blog with a human approval step before publishing. Google Form Submission (Trigger) The process begins when a Google Form is filled. Responses are stored in Google Sheets, which acts as the trigger for the workflow. AI Blog Draft Generation Takes the form inputs (problem statement, options tried, solution, learnings, references, etc.). AI generates a structured draft JSON blog post containing: Title & metadata Problem explanation Solution breakdown Implementation methods with realistic code snippets Troubleshooting, performance tips, security notes, advanced use cases Clear developer-focused conclusion Template Fitting Reformats the draft into a professional long-form blog structure with consistent headings (H1, H2, H3), code blocks, and clear formatting. Optimization Layer Applies multi-layer optimization to make the blog: SEO-friendly (keywords, meta description, structured headings). GEO-ready (Generative Engine Optimization for visibility in ChatGPT, Claude, Gemini, etc.). Human-like in tone (reads naturally, avoids AI-detector flags). Human-in-the-Loop Review Sends the draft via Gmail (Send + Wait for Response) to an editor or approver. Approver options: ✅ Approve → Blog is stored & marked completed. ❌ Reject → Feedback is sent for revision. 🚫 Cancel → Workflow ends save status in sheets. Publishing / Storage Approved blogs are stored in a separate Google Sheet for publication tracking. Status in the original sheet is updated to Completed. ⚙️ Set up steps Connect Google Sheets & Gmail in n8n. Link your Google Form to the trigger sheet. Add AI provider credentials (Groq, Mistral, or OpenRouter). Customize blog structure (problem, solution, code, references, etc.). Set reviewer email(s) in Gmail node. Test the workflow by submitting a sample Google Form response. google form sample: ⚡ Result: A fully automated pipeline where filling a Google Form kicks off AI-powered blog generation, optimization, and a human-in-the-loop approval process, making technical content creation faster and more reliable.
by Parth Pansuriya
AI Meeting Summary Generator with Google Docs Integration Who’s it for Teams that record meetings and want fast, clear summaries without manual note-taking. Managers who need action items extracted automatically. Anyone using Google Drive + Google Docs as their central workspace. How it works / What it does This workflow automates meeting documentation: Watches a Google Drive folder for new audio/video meeting files. Downloads the file and transcribes speech into text using Gemini AI. Summarizes transcripts into Key Discussions and Action Items. Creates or updates a Google Doc with the formatted summary (title, bullets, checkmarks, styling). Sends final output to Docs with bold headings, bullets, and spacing for readability. How to set up Add your Google Drive Trigger to monitor a folder. Connect Gemini AI to handle transcription + summarization. Configure the Google Docs Tool to create/update your summary documents. (Optional) Use the Code Node + Docs API to apply bullet/checkmark formatting. Requirements Google Drive OAuth2 – for monitoring & downloading files Google Docs OAuth2 – for creating and updating documents Google Gemini API – for transcription + AI-powered summarization How to customize the workflow Change the Google Drive folder to monitor a different workspace. Edit the system prompt in the Summarizer to tweak summary style (e.g., more detail, decisions only, etc.). Modify the Code Node formatting rules (bullets, checkmarks, bold text). Add integrations (e.g., Slack, Email, Notion) to send summaries beyond Google Docs.
by David Olusola
🌍 Auto-Translate Incoming Emails to English This workflow automatically detects the language of every new Gmail email and translates non-English messages into English. The translated email is forwarded to your inbox with a clear "[TRANSLATED]" subject tag, and a label is added for easy filtering. ⚙️ How It Works Gmail New Email Trigger Listens for new unread emails in your Gmail inbox. Captures subject, sender, body text, and metadata. Normalize Email Data A Code node extracts the raw content from the email. Strips HTML, normalizes plain text, and prepares data for language detection. Detect Language (OpenAI) Uses OpenAI GPT-3.5-turbo to detect the email’s language. If the language is English, workflow ends. If not, continues to translation. Translate to English OpenAI translates the email body into clear English. Prepare Translated Email Builds a forwarded email containing: Original sender & subject Received date Message ID Translated content (with formatting) Send Translated Email A Gmail node sends the translated message to your inbox. Subject is prefixed with [TRANSLATED] for easy recognition. Add "Translated Emails" Label Automatically tags the original message in Gmail with "Translated Emails". Helps you filter all auto-translated emails later. 🛠️ Setup Steps 1. Gmail Label In Gmail, create a new label: Translated Emails Or update the label in the final Gmail node. 2. OpenAI API Key Get your key from platform.openai.com. Add credentials in n8n. Uses GPT-3.5-turbo (low cost, reliable). 3. Gmail OAuth In n8n, connect your Gmail account. Requires read/modify permissions. 📧 Example Output Subject: [TRANSLATED] Meeting Proposal Body: 🌍 AUTO-TRANSLATED EMAIL (Original Language: ES) 📧 Original From: juan@example.com 📅 Received: 2025-08-29 🔗 Message ID: 123456abcdef ═══════════════════════════════════════ TRANSLATED CONTENT: Hello, I wanted to ask if we can schedule the meeting for next week. ═══════════════════════════════════════ ✨ This email was automatically translated by n8n workflow. ⚡ With this workflow, every foreign-language email is instantly translated and delivered to you in English — no manual copy-pasting into Google Translate again.
by Giovanni Beggiato
How it works: Detects new unread Gmail messages Extracts sender name for personalized replies Classifies the email into one of four categories Applies the correct Gmail label and either sends an auto-reply, creates a draft, or logs the contact in Google Sheets Setup steps: Takes about 5–10 minutes to connect accounts and set labels Connect Gmail, OpenAI, and optional Google Sheets in n8n Add label IDs, Google Sheet ID, sheet name, and phone number in Set – Config Create four Gmail labels for the categories Keep full setup instructions in the sticky notes inside the workflow
by Ahmed Sherif
Personalized Cold Email System with Google Gemini AI and Telegram Approval An AI-powered cold email automation that uses Google Gemini to generate personalized outreach and a Telegram workflow for manual approval, ensuring high-quality, human-in-the-loop campaigns. Features Smart Lead Selection**: Fetches leads with an "Available" status from a designated Google Sheet. AI Email Generation**: Google Gemini creates a personalized subject line and email body based on lead data. Telegram Approval**: Sends each generated email to a Telegram chat for a one-click "Approve" or "Reject" decision. Edit & Regenerate**: Allows users to provide feedback on rejected emails, which the AI uses to regenerate a new version for re-approval. Auto-Send**: Approved emails are automatically dispatched via a configured SMTP server, including a professional signature. Complete Tracking**: Updates three separate Google Sheets (Filtered Leads, Sent Leads, Emails Sent) to maintain a clear audit trail. Rate Limiting**: A one-second delay between email sends helps avoid spam filters and protects sender reputation. Batch Processing**: Handles three leads per execution by default, which is configurable to scale up or down. How It Works A manual trigger initiates the workflow and captures the current date and time for logging. The system fetches a set number of leads (default is three) from the Filtered Leads sheet where the status is "Available". It loops through each lead individually to generate and send a unique email. The AI generates a personalized email (Subject + Body) using the lead's data. A preview of the email is sent to a specified Telegram chat with "Approve" and "Reject" buttons. If approved: The email is sent via SMTP. The lead's status is updated, and logs are written to the Sent Leads and Emails Sent sheets. The system waits one second before processing the next lead. If rejected: The system prompts the user for feedback in Telegram. The feedback is combined with the original prompt to generate a new email draft, which is sent for re-approval. A final notification is sent to Telegram when the batch is complete. Requirements Google Sheets with three tabs (see structure below). Telegram Bot Token and user/group Chat ID. Google Gemini API Key. SMTP Email Account credentials (server, port, username, password). Setup Instructions Google Sheets Setup: Create a new Google Sheet. Rename three tabs to exactly Filtered Leads, Sent Leads, and Emails Sent. Populate the Filtered Leads sheet with your lead data according to the structure specified below. API Credentials: Google Gemini: Generate an API key from your Google AI Studio account. Telegram Bot: Create a new bot by messaging @BotFather on Telegram and follow the prompts to get your API token. Get your Chat ID by messaging @userinfobot. SMTP Configuration: Obtain the SMTP server address, port, username, and password from your email provider (e.g., Google Workspace, Outlook). Automation Platform: In your automation platform (e.g., n8n, Make), create a new workflow. Connect your Google Sheets account using OAuth2. Add the Gemini API Key, Telegram Bot Token, Chat ID, and SMTP credentials into the respective modules or credential stores. Map the sheet columns to the variables in the workflow modules. Google Sheets Structure The automation requires the following column headers in each sheet. The names must be exact. Filtered Leads (Input Sheet)** FirstName: Lead's first name. LastName: Lead's last name. Email: Lead's email address. CompanyName: Name of the lead's company. JobTitle: Lead's current job title. Website: Company website (for AI context). LinkedIn: URL of the lead's LinkedIn profile. Notes: Any specific details or pain points for personalization. Status: Workflow status. Set to Available for leads ready to be processed. Sent Leads (Tracking Sheet)** Email: Email address of the contacted lead. CompanyName: Name of the company. TimestampSent: Date and time the email was sent. Emails Sent (Archive Sheet)** RecipientEmail: The lead's email address. Subject: The exact subject line that was sent. Body: The full email body that was sent. TimestampSent: Date and time the email was sent. Customization Guide This template can be adapted to fit specific campaign needs. Batch Size**: The number of leads processed per execution is controlled by the initial "Get Leads" module. Change the Limit parameter from 3 to your desired number. AI Prompt**: The core of the personalization is the prompt sent to the Gemini API. Modify this prompt to change the email's tone, structure, or call-to-action. You can instruct the AI to focus on specific data from the Notes column or reference a different value proposition. Lead Filtering**: The trigger condition is set to pull leads where Status = "Available". This can be changed to any other logic, such as Priority = "High" or Campaign = "Q4-Push", by adjusting the filter in the Google Sheets module. Email Signature**: The signature is typically configured within the SMTP "Send Email" module. Update the HTML or plain text here to change the signature across all sends. Telegram Notifications**: The text and buttons sent to Telegram for approval can be modified. You can add more lead data to the approval message (e.g., Job Title, Company Name) to give the approver more context.
by Fabian Herhold
Who’s it for Recruiting agencies, executive search firms, and in-house talent teams that want to automate candidate sourcing and prequalification. Instead of spending hours searching, scoring, and writing outreach, this workflow turns any job description into a ready-to-use shortlist with personalized messages. Youtube Walkthrough What it does (How it works) This workflow takes a job description (title, description, and location) and runs a complete recruiting automation pipeline: Normalize job titles** and generate variations to widen search coverage. Search candidates** in Apollo (or your CRM / database of choice). Remove duplicates** to keep clean lists. Score candidates** with AI (0–5) and provide concise reasoning across experience, industry, and seniority. Enrich LinkedIn profiles** (name, title, image, location, experience). Create structured candidate assessments** (summary, alignment, red flags, positives). Generate outreach messages** (email + LinkedIn DM) tailored to the candidate. Write to Airtable** for job/candidate tracking and downstream automation. Everything is plug-and-play, with no manual searching or copy-pasting required. Requirements n8n (Cloud or self-hosted) Airtable account + API access Apollo API or your preferred candidate source LLM provider: OpenAI or Anthropic LinkedIn enrichment API (RapidAPI, Apify, etc.) > ⚠️ Do not hardcode API keys in HTTP nodes. Always use Credentials in n8n. Airtable table specifications Create one base (e.g., Candidate Search – From Job Description) with two tables: Jobs Table Job Title (text) Job Description (long text) Job Location (text) Candidates (linked to Candidates table) Candidates Table Core fields: Name, LinkedIn URL, Job Title, Location, Image URL, Job Searches (linked) Assessment fields: Summary Fit Score, Executive Summary, Title Alignment, Skill Alignment, Industry Alignment, Seniority Alignment, Company Type Alignment, Educational Alignment, Potential Red Flags, Positive Signals, Final Recommendation, Next Steps Suggestion Outreach fields: Email Subject, Email Body, LinkedIn Message How to set up Connect credentials Add Airtable, Apollo/CRM, and OpenAI/Anthropic credentials under n8n Credentials. Create Airtable base/tables Follow the above spec for Jobs and Candidates. Match field names exactly to avoid mapping errors. Configure the trigger The workflow starts from a Form/Webhook node. It captures: Job Title (required) Job Description (required) Location (required) Target Companies (optional, comma-separated domains) Job title mutation The workflow uses an AI node to normalize the job title and generate up to 5 variations for broader candidate searches. Candidate search Apollo (or your CRM API) is queried with the generated titles and location filters. Results are deduped. AI scoring & structuring Candidates are scored 0–5 with clear reasoning (experience, industry, seniority, general fit). Profiles are formatted into structured JSON for Airtable. LinkedIn enrichment Enrichment API fetches missing data (geo, image, job history). Candidate assessment An AI model produces a full recruiter-ready evaluation (fit summary, strengths, red flags). Outreach generation The workflow drafts a concise cold email (<75 words) and LinkedIn DM (<60 words), consultative in tone. Write to Airtable All jobs and candidates (with assessments and outreach messages) are logged for review and integration. How to customize Swap Apollo with your CRM** (Greenhouse, Bullhorn, etc.). Adjust scoring prompts** to match your niche (sales, engineering, healthcare). Add custom filters** for target companies or industries. Change outreach tone** to align with your brand voice. Limit by score** (e.g., only push candidates with score ≥4). Security & best practices Store all keys in n8n Credentials (never in nodes). Use Set nodes to centralize editable variables (title, location, filters). Always add sticky notes in your workflow explaining steps. Rename nodes clearly for readability. Troubleshooting No candidates found?** Loosen title variations or broaden location. Low fit scores?** Refine keywords and required skills in scoring prompts. Airtable errors?** Double-check Base ID, Table ID, and field names. API rate limits?** Enable batching/pagination and increase intervals. SEO title: Build candidate shortlists from a job description to Airtable with Apollo, AI scoring, and personalized outreach Keywords: recruiting automation, Apollo people search, candidate enrichment, AI scoring, Airtable recruiting CRM, LinkedIn outreach, n8n workflow template
by Rully Saputra
Create GitHub issues from webhook input and send alerts to Telegram This workflow streamlines bug tracking by using a webhook to collect issue reports, automatically classifying and summarizing them with Gemini AI, then sending critical issues to GitHub and real-time notifications to Telegram. Optional manager approval is built in for low-priority reports. 🧑💻 Who’s it for This workflow is ideal for: Engineering teams needing automated issue tracking from multiple systems QA testers or customer support agents who log bugs via custom tools DevOps teams monitoring logs or error reports in real time Teams using GitHub for issue tracking and Telegram (or any messenger) for notifications ⚙️ How it works Webhook Trigger – Listens for incoming POST requests containing bug or task data. AI-Powered Classification – Uses the Gemini model to classify bugs as High or Low severity. Optional Approval – If severity is Low, it waits for a manager’s approval before proceeding. Bug Summary Generation – Passes through a filter and sends the input to Gemini to generate a clean summary. Create GitHub Issue – Submits the summarized issue to your GitHub repository. Telegram Notification – Sends a formatted message to a Telegram group or manager, depending on the path. 🛠️ How to set up Replace the GitHub node with your repo credentials and target repo. Set up the Telegram bot token and chat ID in the Telegram node. Customize the Gemini prompts for your preferred classification and summary logic. Define the conditions for “High” vs “Low” severity based on your data. 📋 Requirements A GitHub account with a personal access token (with repo access) A Telegram bot token and group chat ID Google Gemini API credentials (or your preferred AI model integration) 🔧 How to customize the workflow Swap Telegram with another messaging platform like Slack, Discord, or Microsoft Teams. Adjust classification rules to match your business logic. Change approval flow to notify a different person or add additional logic before sending to GitHub. Extend the webhook input format to support richer data, such as user info or system metadata.
by Dominic Spatz
Overview Automate UniFi Controller updates on self-hosted instances. This workflow checks the official UniFi Debian repo for a fresh release in the last 24 hours and, if found, upgrades the unifi package via SSH. It can also summarize changes and ping you on Telegram. Sticky notes are included to guide setup. How it works Schedule* runs daily (default *13:13**). HTTP Request** fetches InRelease and parses Codename + Date. IF gate** continues only if the repo changed within 24h. SSH** runs: apt-get --allow-releaseinfo-change update apt-get upgrade -y unifi (Optional) LLM* creates a short summary → *Telegram** sends it. Setup Bind credentials: SSH (required), OpenAI (optional), Telegram (optional). Set env var TELEGRAM_CHAT_ID for notifications. Adjust the Schedule Trigger to your maintenance window. Import inactive, test once, then activate. Customize Change the 24h freshness window in the Code node. Swap Telegram for Slack/Email if preferred. Add pre/post steps (backups, restarts) around the upgrade. Safety Test on a non-production controller first. No hardcoded secrets—uses n8n credentials and environment variables. If you want approval before upgrades, stop after the IF gate and notify only.
by plemeo
Who’s it for Growth hackers, community builders, and marketers who want to keep their Twitter (X) accounts active by liking posts from selected profiles automatically. How it works / What it does Schedule Trigger fires hourly. Profile Post Extractor fetches up to 20 tweets for each profile in your CSV. Select Cookie rotates Twitter session-cookies. Get Random Post checks against twitter_posts_already_liked.csv. Builds twitter_posts_to_like.csv, uploads to SharePoint. Phantombuster Autolike Agent likes the tweet. Logs the liked URL to avoid duplicates. How to set up Add Phantombuster + SharePoint credentials. In SharePoint “Phantombuster” folder: • twitter_session_cookies.txt • twitter_posts_already_liked.csv (header postUrl) • profiles_twitter.csv (list of profiles). Profile CSV format Your profiles_twitter.csv must contain a header profileUrl and direct links to the Twitter profiles. Example: profileUrl https://twitter.com/elonmusk https://twitter.com/openai
by Cheng Siong Chin
Overview Automate AI content creation from request to approval. While AI writes quickly, human review often delays delivery—and multiple tools create workflow gaps and version confusion. This unified solution streamlines the entire process, enabling teams to produce quality content at scale with transparent tracking. How it works Submit a form with your topic, tone, and keywords. GPT-4o generates the content and assigns a quality score (0–100). The reviewer receives an email to approve, edit, or reject the draft—all actions are automatically logged in Google Sheets for tracking and audit purposes. Setup steps Import the workflow JSON file into n8n Connect your OpenAI and Google account credentials Update three variables in the workflow: SHEET_ID (your Google Sheets document ID), REVIEWER_EMAIL (recipient for review notifications), and WEBHOOK_URL (for form submissions) Test the workflow with a sample submission Workflow Stages Submit a form with topic, tone, and keywords. GPT-4o generates content and assigns a quality score (0–100). Reviewer receives an email to approve, edit, or reject the draft. All review actions are automatically logged in Google Sheets with timestamps and approval status. Requirements n8n v1.0+ instance, OpenAI API key with GPT-4o access, and Google Workspace with OAuth2 credentials. Custom options Choose model: gpt-4o, 4o-mini, or 3.5-turbo. Adjust score weights: Readability 40%, Keywords 30%, Length 30%. Key benefits Generate drafts 99% faster and approve content 95% quicker. Centralized tracking ensures clarity and accountability.