by Michael Montaque
An AI-powered Gmail assistant built with n8n that automatically labels emails, learns from your decisions, and safely improves over time using human-in-the-loop training. This workflow combines: Gmail OpenAI Telegram n8n Data Tables to create a trainable AI inbox workflow that behaves more like an executive assistant than a traditional spam filter. Features ✅ AI-powered Gmail classification ✅ Dynamic Gmail label discovery ✅ Human-in-the-loop review system ✅ Trainable via Telegram ✅ Historical learning from previous decisions ✅ Gmail-safe architecture (labels first, no auto-delete) ✅ Backfill support for older emails ✅ Configurable confidence thresholds How It Works The system uses a simple but powerful workflow: New Email ↓ AI analyzes email ↓ Apply labels if confident ↓ If uncertain → send for review ↓ User teaches AI through Telegram ↓ Future emails become easier to classify The workflow dynamically loads all your labels but it filters for sub-labels under the parent label AI. IMPORTANT Gmail Setup Create a parent Gmail label named: AI Then create sub-labels underneath it. Becuase the system dynamically fetches your labels: you can customize your own labels the AI only uses valid existing labels labels stay synchronized with Gmail automatically What's happening underneath the hood? Every processed email receives the AI parent label so emails are not repeatedly reprocessed. The workflow uses a configurable confidence threshold. // Example item .json.confidenceThreshold = .9; | Threshold | Result | |-----------|----------| | 0.95 | Very conservative| | 0.90 | Recommended| | 0.80 | More automation| | 0.70 | Aggressive automation| If confidence is: ABOVE threshold → labels are applied automatically BELOW threshold → email enters review queue Human-in-the-Loop Training When the AI is uncertain the email is tagged and a rule is added to the data table for review. Once you trigger the training flow, Telegram asks the user how future emails should be handled. For each email rule, the user can: choose which label should apply reject the classification add additional instructions for more nuanced behavior Historical Learning Before asking the user for help, the AI searches previous decisions from the same sender. If previous reviewed decisions exist: confidence may increase historical labels may be reused automation becomes more accurate over time Pending/unreviewed decisions are treated as weak references only. Data Table Setup Create an n8n Data Table named: Email Rules Recommended columns: |Column| Type| |------|------------| |emailId| string| |threadId| string| |fromEmail| string| |fromName| string| |subject| string| |snippet| string| |confidence| number| |labelsApplied| string| |reason| string| |userQuestion| string| |ruleSuggestion| string| |isPending| boolean| |recommendedAction| string| Suggested Improvements Ideas for future upgrades: broad email provider support Notion-based rule management AI-generated email drafts Daily review digests Multi-user support Chat-based rule revision Web dashboard Safe-deletion Requirements Gmail (with sub-labels under AI) OpenAI API Key Telegram Chatbot
by WeblineIndia
Quick Overview This workflow collects tasks via a webhook, stores validated tasks in Google Sheets, and runs a daily prioritization routine that creates urgent items in Google Tasks with Slack alerts while summarizing medium/low tasks with OpenAI and emailing the digest via Gmail. How it works Receives a POST webhook request containing task details and normalizes fields like priority and due date. Validates required fields (including allowed priority values) and rejects invalid submissions with an error. Appends valid tasks to Google Sheets with a pending status and returns a success response to the webhook caller. Runs daily on a schedule, reads tasks from Google Sheets, keeps only pending items, removes duplicates, and sorts them by priority. For high-priority tasks, creates a Google Tasks item and sends a Slack alert. For medium and low-priority tasks, compiles a digest, generates an email-ready summary with OpenAI, and sends it via Gmail. Updates each handled task in Google Sheets with a Processed status and a processed timestamp. Setup Create a Google Sheet with columns for taskName, priority, category, dueDate, status, createdAt, and processedAt, and update the spreadsheet and sheet IDs in the Google Sheets steps. Add Google Sheets OAuth2 credentials for both reading and updating/appending rows. Add credentials for Google Tasks, Slack (OAuth2), Gmail, and OpenAI, and set the target Google Task list, Slack destination, and email recipients/subject as needed. Copy the webhook URL from the webhook trigger and configure your task intake source to send POST requests with fields like "Task Name", "Priority", "Category", and "Due Date". Adjust the schedule time and any validation rules (required fields and accepted priority values) to match your process.
by Incrementors
Quick Overview This workflow runs daily at 9 AM to scrape product titles and prices from a target website, store the results in Google Sheets, generate price statistics and an OpenAI GPT-4o-mini market insight, and email a formatted report with a CSV attachment via Gmail. How it works Runs every day at 9:00 using a schedule trigger. Fetches the target webpage HTML over HTTP and extracts all product blocks with CSS selectors. Splits the extracted product blocks into individual items, then parses each product’s title and price and sorts the list by price in descending order. Cleans the price into a numeric field and adds the current scrape date to each product record. Appends the product rows to a Google Sheets tab and, in parallel, calculates min/max/average price plus top and bottom price lists for analysis. Sends the compiled price context to OpenAI (GPT-4o-mini) to generate a short plain-text market insight. Converts the scraped product list into a CSV file, then emails the stats and AI insight with the CSV attached using Gmail. Setup Update the target URL and the CSS selectors used to extract product blocks, titles, and prices to match the site you want to scrape. Add an OpenAI credential and ensure the workflow can access the GPT-4o-mini model. Add Google Sheets OAuth credentials, set the spreadsheet ID, and create a “Products” sheet with columns for Title, Price, and Scraped Date. Add Gmail OAuth credentials and set the recipient email address used to send the daily report.
by Avkash Kakdiya
Quick Overview This workflow runs daily to check SSL certificate expiry for domains listed in Google Sheets, using ssl-checker.io to fetch certificate details, then creating Jira issues and sending Slack and Gmail alerts for risky certificates while logging results and posting a daily Slack digest. How it works Runs every day at 08:00 on a schedule trigger. Reads the domain list from a Google Sheets “Domains” sheet and filters out blank rows or domains marked as disabled. Processes domains one by one, calling the ssl-checker.io API to retrieve each site’s live SSL certificate details. Calculates days remaining until expiry, assigns a status (Expired, Critical, Warning, Healthy, or Unknown), and flags items that require attention. For certificates that need attention, creates a Jira task and sends an alert to Slack and an email via Gmail with the certificate details. For healthy certificates, writes the latest check results to a Google Sheets “Log” sheet. Aggregates all results from the run into a single summary message and posts the daily digest to Slack. Setup Create a Google Sheet with a “Domains” sheet containing at least a domain column (and optionally an enabled column) and a “Log” sheet to store results, then add your Google Sheets credentials and set the spreadsheet ID. Add an API key for ssl-checker.io (or a compatible SSL lookup endpoint) and place it in the HTTP Authorization header. Add your Jira credentials and set the target project key for ticket creation. Add your Slack credentials and set the channel ID used for alerts and the daily digest. Add your Gmail credentials and set the recipient address for email alerts. (Optional) Adjust the warning and critical thresholds (30 and 7 days) in the expiry calculation code if your policy differs.
by Flowcheckers
Who's it for This workflow is for anyone who runs n8n workflows and wants to know immediately when something breaks, without digging through execution logs. Especially useful for non-technical users and freelancers or agencies managing workflows for clients. How it works When a workflow fails, this system activates automatically. Claude AI analyzes the error using the technical details and the business context you provide, then generates a diagnosis with the direct cause, a step-by-step fix and prevention advice. A second AI agent validates the confidence score. Based on that score you receive a full diagnosis (≥80%), a diagnosis with a reservation (50–79%), or a manual review notification (<50%). All diagnoses are stored in your Supabase database. How to set up Run the provided SQL in Supabase to create the error_log table. Verify your domain in Resend and create an API key. Import the workflow, create four credentials (Anthropic, Supabase, Resend, n8n API) and link them to the correct nodes. Fill in the Config node and activate the workflow. Set it as the Error Workflow for each workflow you want to monitor. Full installation guide at flowcheckers.com. Requirements Anthropic API key, Supabase account, Resend account with verified domain. How to customize Add workflow_2, workflow_3 etc. in the Config node for additional workflows. Adjust the email templates in the Resend nodes to match your branding. Need the full installation guide including SQL code? Download it free at flowcheckers.com
by Oneclick AI Squad
Quick Overview This workflow runs on a weekday schedule or via webhook, pulls events from Google Calendar, analyzes meeting and focus-time patterns, generates optimization advice with OpenAI, then emails a digest through Gmail and appends the results to Google Sheets. How it works Runs every weekday morning on a schedule or starts on demand from an incoming webhook request. Sets a 7-day lookback and 7-day lookahead window and fetches all matching events from Google Calendar. Normalizes event fields, then excludes all-day, private/OOO, cancelled, and zero-duration events and classifies the remaining events into categories like deep work, collaboration, 1:1s, admin, and external. Aggregates the events and computes metrics such as meeting hours, focus hours, peak meeting hour, heaviest day, back-to-back chains, fragmentation score, top recurring meetings, and largest available free blocks. Sends the computed metrics to OpenAI (GPT-4.1-mini) to generate a concise weekly calendar optimization report. Formats a final report payload with a calculated health score, emails the digest via Gmail, appends the report data to Google Sheets, and returns a JSON success response for webhook runs. Setup Connect Google Calendar OAuth2 credentials and select the calendar ID to analyze. Connect an OpenAI API key and confirm the model selection (gpt-4.1-mini) fits your account and usage limits. Connect Gmail OAuth2 credentials and replace the recipient address in the email step. Connect Google Sheets OAuth2 credentials, replace YOUR_SHEET_ID (and sheet/tab name if needed) in the Google Sheets append request URL, and ensure the target sheet exists with the expected columns. If using the manual trigger, copy the webhook URL from n8n and call it with a POST request from your preferred tool.
by ScraperAPI
Quick Overview This workflow monitors a list of competitor web pages daily using ScraperAPI, detects meaningful content changes, summarizes them with Anthropic Claude, stores the latest snapshots in an n8n Data Table, and sends a daily digest to Slack and email (Gmail or SMTP). How it works Runs on a daily schedule at 8am (and can be run manually to initialize the storage table). Builds a list of competitor URLs to monitor, including the ScraperAPI proxy country code for each target. Iterates through the URLs, scrapes each page via ScraperAPI, cleans/truncates the markdown content, and computes a hash for change detection. Looks up the previous snapshot for each URL in an n8n Data Table and determines whether the content has materially changed. For changed pages, sends the previous and current snapshots to Anthropic Claude to generate a short change summary and upserts the updated snapshot and summary back into the Data Table. For unchanged pages, upserts the latest “last seen” timestamp and hash into the Data Table. After processing, fetches today’s changed summaries from the Data Table, assembles a daily digest, and posts it to Slack and sends it via Gmail and/or SMTP. Setup Add a ScraperAPI credential and ensure it is selected in the ScraperAPI node. Add an Anthropic credential for the Claude chat model used by the AI agent. Configure the competitor URL list (and optional countryCode) in the “Prepare URL List” code step. Add Slack credentials and set the target channel for posting the digest. Configure email delivery by setting up either Gmail credentials and the recipient address, or SMTP settings (from/to addresses and SMTP credential details).
by Avkash Kakdiya
How it works This workflow automates candidate screening by receiving application data via a webhook and structuring it for AI evaluation. An AI agent analyzes the candidate profile and assigns a score with reasoning. The score is extracted and evaluated against a threshold to decide if the candidate is shortlisted or rejected. Based on the result, the workflow either stores the candidate in Google Sheets and sends a success email or sends a rejection email. Step-by-step Receive and structure application data** Webhook1 – Receives job and candidate data from external sources. Edit Fields1 – Formats and organizes job and candidate information into structured fields. Evaluate candidate with AI** AI Agent – Sends structured data to AI for scoring and evaluation. Groq Chat Model1 – Provides the language model used for generating candidate score and reasoning. Code in JavaScript – Extracts score and reason from AI response for further processing. Filter, store and notify results** If – Checks if the candidate score meets the defined threshold. Append row in sheet – Stores shortlisted candidate details in Google Sheets. Send a message3 – Sends a shortlisted confirmation email to the candidate. Send a message1 – Sends a rejection email if the candidate does not qualify. Why use this? Automates candidate screening and eliminates manual evaluation Ensures consistent and unbiased scoring using AI Instantly notifies candidates about their application status Maintains a structured shortlist database in Google Sheets Saves time for HR teams and improves hiring efficiency
by Avkash Kakdiya
Quick Overview This workflow receives new Calendly meeting bookings, checks Google Sheets to prevent duplicate briefings, pulls contact and deal context from HubSpot, enriches company data with Clearbit, generates three talking points with OpenAI, then sends a prep pack to the sales rep via Slack and Gmail and logs the send in Google Sheets. How it works Receives a POST webhook from Calendly when a meeting is booked. Validates the Calendly webhook signature and extracts key meeting details like invitee email, meeting time, and assigned rep. Looks up the meeting UUID in Google Sheets and stops if a prep pack was already sent. Retrieves the prospect’s contact record and recent open deals from HubSpot, then enriches the person and company profile via the Clearbit enrichment API. Builds either a full or basic context payload (depending on whether the contact exists in HubSpot) and sends it to OpenAI Chat Completions to generate exactly three personalized talking points. Formats a final prep pack and sends it to the sales rep in Slack and by Gmail. Appends a “Sent” log entry with meeting and prospect details to Google Sheets. Setup Create and connect a Calendly webhook, then add your Calendly signing key in the webhook signature validation code. Connect your Google Sheets credentials and set the duplicate-check Sheet ID and logging Sheet ID, ensuring the target spreadsheet has a “SentLog” sheet with a MeetingUUID column. Connect your HubSpot credentials and confirm the workflow can fetch contacts by email and list deals in your portal. Add Clearbit API credentials for the HTTP Request node (header-based auth) and ensure the enrichment endpoint is accessible. Add an OpenAI API key for the Chat Completions request and adjust the model or token limits if needed. Connect Slack and Gmail credentials, then set the Slack channel ID and ensure the assigned rep email from Calendly can receive messages.
by Incrementors
Quick overview This workflow collects a video idea via an n8n Form, uses OpenAI to turn it into an optimized prompt, generates an 8-second VEO3 video with native audio via fal.ai, saves the MP4 to Google Drive, and emails the Drive link via Gmail. How it works Receives a submission from an n8n Form with the requester’s email, a plain-English video idea, and a selected style. Uses OpenAI (via an AI Agent) to convert the idea and style into a structured VEO3 title and detailed prompt returned as JSON. Cleans and parses the AI JSON, creates a filename-safe title, and sets the generation parameters to 16:9 and 8 seconds. Submits the prompt to fal.ai’s queue endpoint for the fal-ai/veo3 model and gets a request ID. Polls fal.ai every 30 seconds until the job status returns COMPLETED. Retrieves the final MP4 URL from fal.ai, downloads the video, uploads it to Google Drive, and emails the Google Drive web link to the requester via Gmail. Setup Create a fal.ai account, generate an API key, and replace YOUR_FAL_AI_API_KEY in the fal.ai HTTP request headers. Add an OpenAI API credential in the OpenAI Chat Model node and select the model you want to use. Connect Google Drive OAuth2 and replace YOUR_GDRIVE_FOLDER_ID with the target folder ID where videos should be saved. Connect Gmail OAuth2 for sending emails, then activate the workflow and use the Form URL (path veo3-video-generator) to submit requests.
by isaWOW
Quick overview This workflow triggers on a published GitHub Release, uses OpenAI to turn the release notes into a short spoken script and MP3, stores the audio on Google Drive, pulls subscribers from Google Sheets, and sends an HTML “listen” newsletter to them via Gmail. How it works Triggers when a GitHub Release is published for the configured repository. Parses and cleans the release changelog, extracting key items into features, fixes, improvements, and other notes. Uses an OpenAI chat model to rewrite the release details into a 60–90 second spoken script. Calls the OpenAI text-to-speech API to generate an MP3 audio file from the script. Uploads the MP3 to Google Drive and sets the file permissions to “anyone with the link can view.” Loads subscriber email addresses from Google Sheets, builds an HTML newsletter with the public audio link and release highlights, and sends it via Gmail using BCC. Setup Connect a GitHub credential with access to the target repo and replace YOUR_GITHUB_USERNAME and YOUR_REPO_NAME in the GitHub trigger. Add an OpenAI API credential for both the chat model step and the OpenAI TTS HTTP request. Connect Google Drive OAuth2 and replace YOUR_AUDIO_FOLDER_ID with the folder where the MP3 files should be saved. Connect Google Sheets OAuth2, replace YOUR_SUBSCRIBERS_SHEET_ID, and ensure your sheet includes subscriber rows with an Email (or email) column. Connect Gmail OAuth2 and replace YOUR_SENDER_EMAIL with the address that sends the newsletter.
by Ruth Aju
Who it's for SaaS founders and developers who want to automate their customer onboarding experience from payment to welcome email, without any manual work. How it works A Stripe Trigger listens for successful payment events. The payment amount is converted and used to identify the subscription tier. Customer details are extracted from the Stripe payload. The AI Agent queries Pinecone to retrieve the correct plan details and generates a personalised HTML welcome email with the renewal date calculated automatically. The email is parsed and sent via Gmail. Customer details and subscription info are logged to Google Sheets for renewal tracking. Set up steps Connect your Stripe account and point it to listen for checkout.session.completed events. Store your tier information as chunks in Pinecone. Add your OpenAI credentials for the AI Agent and Embeddings nodes. Connect Gmail as your sending account. Create a Google Sheet with columns: Name, Email, Amount, Tier, Renewal Date, Status. Requirements Stripe account Pinecone account with tier knowledge base uploaded OpenAI account Gmail account Google Sheets