by Mychel Garzon
Quick overview This workflow polls Outlook for meeting summary emails, uses GPT-4o to extract strategic decisions and action items from the transcript, logs decisions to a SharePoint list, creates Microsoft To Do tasks with normalized due dates, and sends failure alerts via Outlook email if any node errors occur. How it works An Outlook trigger polls for new emails from a configured bot sender address every 15 minutes and passes matching messages downstream. A deduplication node checks each email's conversation ID against a rolling in-memory list and drops any threads already processed in a previous run. The list is capped at 100 entries and rotates automatically. The HTML body of each email is stripped of markup and converted to clean plain text before being passed to the AI node. GPT-4o analyzes the plain text transcript and returns a structured JSON object containing two arrays: Strategic_Decisions and Action_Items. A parse node strips any markdown fences from the AI output, splits the two arrays, and routes them to separate output branches — decisions to SharePoint, action items to the due date normalizer. Each strategic decision is logged as a new item in the configured SharePoint list for permanent team-level record keeping. Action item due dates are normalized from YYYY-MM-DD to the dateTimeTimeZone format Microsoft Graph requires, then each action item is created as a dated Microsoft To Do task with assignee and deadline included Setup Replace bot@yourcompany.com in the Outlook Trigger sender filter with the actual address your meeting bot uses to send transcript emails. Connect your Microsoft Outlook OAuth2 credential to both the Outlook Trigger node and the Send Error Email node. Replace admin@yourcompany.com in the error node with your actual admin address. Connect your OpenAI credential to the Extract Insights via AI node. The prompt expects the AI to return a JSON object with Strategic_Decisions and Action_Items arrays — adjust the prompt if your meeting bot structures summaries differently. Connect your Microsoft SharePoint credential to the Log to SharePoint List node and configure the target site ID and list ID where decisions should be stored. Connect your Microsoft To Do credential to the Create To Do Tasks node and replace YOUR_TODO_LIST_ID with your actual task list ID. In the Parse & Route Arrays node settings, set the number of outputs to 2 so the split routing works correctly. Requirements Microsoft Outlook OAuth2 account with inbox access and a configured meeting bot sender address OpenAI API key with access to GPT-4o Microsoft SharePoint site with a list configured to receive decision records Microsoft To Do account with a task list ready to receive action items Customization Change the polling interval in the Outlook Trigger node from 15 minutes to any frequency that matches your meeting cadence. Adjust the DEADLINE_HOUR_UTC constant in the Normalize Due Date node to set task deadlines in your team's local timezone. Default is 14:00 UTC (17:00 EEST). Modify the GPT-4o prompt in the Extract Insights via AI node to match the structure of your meeting bot's email format or extract additional fields beyond decisions and action items. Add a Slack or Teams notification node after the SharePoint and To Do branches to alert the team when new decisions or tasks have been created. Additional info The Parse & Route Arrays node must have its output count set to 2 manually in the node settings tab on the canvas. This is not configurable from the parameters panel and is easy to miss during setup. If the AI output cannot be parsed, the node defaults to empty arrays for both Strategic_Decisions and Action_Items so the workflow never crashes on a malformed response. Due dates must be in YYYY-MM-DD format in the AI output. The Normalize Due Date node silently skips any value that does not match this pattern, leaving the task without a deadline rather than failing.
by Jitesh Dugar
Deliver your product updates in a modern, accessible format. This workflow automatically transforms GitHub releases into podcast-style audio announcements and distributes them via email and Slack. 🎯 What This Workflow Does This template bridges your development cycle with your marketing and communication channels. 🐙 Step 1 — GitHub Trigger & Notion Synthesis GitHub Trigger:** Fires when a new release is published Parsing:** Converts raw markdown into structured categories (features, fixes, improvements) Notion Merge:** Enriches data with additional context from your Notion changelog database 🎙️ Step 2 — AI Scriptwriting & Professional TTS Script Generation:** OpenAI converts technical notes into a conversational 60–90 sec script Voice Generation:** ElevenLabs turns the script into high-quality audio CDN Hosting:** Uploads MP3 via UploadToURL to generate a public URL 📧 Step 3 — Multimedia Newsletter Delivery Subscriber Fetch:** Loads email list from Google Sheets Email Creation:** Builds a rich HTML email with embedded audio player Distribution:** Sends via Gmail using BCC list 💬 Step 4 — Internal Sync & Database Update Slack Alert:** Posts update with audio preview to team channel Notion Update:** Marks entry as published and stores audio URL ✨ Key Features Bidirectional Notion Sync:** Reads and updates changelog entries Conversational AI:** Converts technical updates into human-friendly audio Dynamic HTML Emails:** Includes inline audio playback High-Quality Voice:** Uses ElevenLabs for realistic narration 🔧 Setup Requirements Required Integrations GitHub:** Personal Access Token (repo read scope) Notion:** Integration token + changelog database ElevenLabs:** API key + Voice ID OpenAI:** API key UploadToURL:** For MP3 hosting Slack:** Bot token Environment Variables NOTION_DATABASE_ID APPROVER_EMAIL DISCORD_WEBHOOK_URL SLACK_CHANNEL_ID Humanize your software updates. Import this template and start broadcasting your product journey with audio.
by Weavely AI
Stop forgetting to send follow-up surveys. This workflow automatically generates a tailored post-meeting survey from your Google Meet notes the moment a meeting ends, and sends it to all attendees with one Slack approval. Who is it for Teams and individuals who run recurring meetings and want structured feedback without manually writing and sending surveys after every call. How it works Google Calendar detects when a meeting ends Waits 10 minutes for Gemini to attach notes to the event Reads the meeting notes from Google Docs An AI agent generates 5 to 7 tailored survey questions based on what was discussed Weavely MCP builds and publishes the form automatically A Slack message is sent to the organiser to review and approve On approval, all attendees receive a branded email with the survey link How to set up Update the Configuration node with your calendar email and Slack user ID Connect Google Calendar, Google Docs, Gmail, OpenAI, and Slack credentials Enable Interactivity in your Slack app settings Requirements Google Workspace Business Standard or higher (required for Gemini meeting notes) OpenAI API key Weavely account, free at weavely.ai Slack workspace and Gmail account How to customise Swap Google Calendar for Calendly or any other calendar trigger Replace Gmail with a Slack message to the meeting channel Swap OpenAI for Claude or any other LLM supported by n8n Adjust the AI prompt to change the number or style of questions
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 Avkash Kakdiya
Quick Overview This workflow runs monthly to compare current vs. previous payroll data in Google Sheets, detect pay anomalies, alert Finance in Slack, email HR via Gmail, and log discrepancies back to a Google Sheets audit tab. How it works Runs on a monthly schedule (cron: 0 9 25 * *) to start a pre-payroll review. Reads the current pay run and the previous pay run from two Google Sheets tabs. Compares both periods per employee to flag duplicates, unmatched employees, pay without hours, and large net pay swings based on percentage thresholds. If no anomalies are found, posts an all-clear message to a Slack channel. For each flagged anomaly, classifies severity and posts an immediate Slack “payroll hold” alert for Critical items. Appends each flagged anomaly to an AnomalyLog tab in Google Sheets and emails HR a per-employee review message via Gmail. Aggregates all flagged items into a run-level digest and posts the summary and recommendation to Slack for Finance. Setup Add Google Sheets credentials and set your spreadsheet ID, ensuring it contains the CurrentPayRun, PreviousPayRun, and AnomalyLog tabs. Ensure your payroll sheets include the expected columns (employee_id, name, net_pay, hours, status, and email) so the discrepancy checks work correctly. Add Slack credentials and replace the Slack channel ID(s) used for critical holds, digests, and all-clear messages. Add Gmail credentials and set the HR recipient email address for anomaly review notifications. Adjust the schedule cron expression and the discrepancy thresholds in the detection code (for example, 15%, 40%, and 80%) to match your payroll policies.
by Filip Mijic
Quick Overview This workflow runs every day at 8 AM, pulls the last 24 hours of emails from your Gmail Primary inbox, summarizes their full content using Groq’s Llama 3.3, and posts an actionable daily inbox briefing to a Slack channel. How it works Runs daily at 8 AM on a schedule. Fetches all Gmail messages from the last day in the Primary category using a Gmail search query. Strips HTML, truncates long bodies, and combines all email subjects, senders, dates, and content into a single capped text block. Sends the compiled inbox text to Groq (Llama 3.3 70B) to generate a Slack-formatted briefing with a TL;DR, urgent items, and an email-by-email summary with tags. Posts the generated briefing to the selected Slack channel. Setup Connect a Gmail OAuth2 credential and ensure the Gmail query (default: newer_than:1d category:primary) matches the emails you want to include. Add a Groq API key credential and confirm the model selection (default: llama-3.3-70b-versatile) and prompt meet your formatting needs. Connect a Slack API credential and choose the target channel to post the briefing. Update the schedule time and confirm your n8n instance timezone so the workflow runs at the intended hour.
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 Julian Abt
Quick Overview This workflow runs daily, reads deadline rows from Google Sheets, and sends due-soon, due-today, or overdue reminder emails via Gmail, escalating overdue items to Slack and updating the sheet to prevent duplicate reminders. How it works Runs every day at 07:00 on a schedule. Reads all rows from a Google Sheets worksheet. Filters out completed items and rows already reminded today, then classifies remaining rows as due soon, due today, or overdue based on the DueDate. Sends an HTML reminder email through Gmail to the address in the Email column with a subject and message tailored to the urgency. Posts an escalation message to a specified Slack channel for items that are overdue. Updates each reminded row in Google Sheets by writing today’s date to the NotifiedOn column using the stored row number. Setup Add Google Sheets credentials and replace the spreadsheet URL/ID and sheet name used for reading and updating. Add a Gmail OAuth2 credential and ensure the Email column contains valid recipient addresses. Add Slack credentials and set the target channel (for example, #deadlines) for overdue escalations. Ensure your sheet includes the columns Title, DueDate (YYYY-MM-DD), Email, Status, and NotifiedOn, and uses Status = "Done" for completed items. Adjust the reminder window by changing REMINDER_WINDOW_DAYS in the date-classification code if needed.
by TakatoYamada
Quick Overview This workflow triggers on failed Stripe invoice payments, uses OpenAI to draft an escalating dunning email, sends it via Gmail, logs the outreach to Google Sheets, and notifies the billing team in Slack when the final attempt threshold is reached. How it works Triggers when Stripe emits an invoice.payment_failed event. Extracts and normalizes invoice details like customer email, amount due, currency, attempt count, and hosted invoice URL. Uses OpenAI (GPT-4o-mini) to generate a structured dunning email subject and body that escalates tone based on the attempt number. Sends the generated dunning email to the customer through Gmail. Appends the email/send details to a Google Sheets spreadsheet for dunning tracking. Checks whether the attempt count is 3 or higher and, if so, posts an escalation message to a Slack channel (for example, #billing). Setup Connect Stripe credentials and ensure your Stripe account sends invoice.payment_failed events to the workflow. Add an OpenAI credential for the Chat model used to draft the dunning email. Add Gmail credentials and confirm the sending account is allowed to email your customers. Add Google Sheets credentials, replace the spreadsheet ID in the Google Sheets node, and ensure a sheet/tab named "Dunning" exists. Add Slack credentials and set the target channel (for example, #billing) for final-attempt escalation messages.
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).