by Rahul Joshi
Description Automatically identify clients who havenβt been contacted in 14+ days and re-engage them with personalized Gmail follow-up emails, Google Sheets tracking, and Slack notifications for account managers. Prevents churn by ensuring no client goes unnoticed. πππ¬ What This Template Does Triggers every Monday at 9:00 AM to check client activity. β° Fetches all contacts from GoHighLevel CRM. π Filters clients with no updates in the last 14+ days. π Sends personalized Gmail re-engagement emails. π§ Logs all inactive clients in Google Sheets for tracking. π Sends Slack notifications summarizing inactive clients for account managers. π¬ Handles workflow errors and alerts the team via Slack. π¨ Key Benefits β Automated client re-engagement β no more missed follow-ups. β Reduces churn by maintaining regular touchpoints. β Centralized Google Sheets audit trail for visibility. β Real-time Slack alerts keep teams informed. β Fully customizable inactivity threshold (default: 14 days). β Built-in error handling with instant Slack error alerts. Features Weekly cron trigger (default: Monday 9 AM). β° GoHighLevel CRM integration to fetch contacts. π Dynamic filter for βinactive 14+ daysβ clients. π Personalized HTML re-engagement email via Gmail. π Automatic Google Sheets logging with client metadata. π Slack notification summarizing inactive clients. π¬ Error Trigger node for reliable monitoring. π¨ Requirements n8n instance (cloud or self-hosted) Gmail OAuth2 credentials for sending emails Slack API credentials with chat:write and channels:read GoHighLevel OAuth2 credentials for CRM data access Google Sheets OAuth2 credentials for logging Target Audience Agencies and consultants managing multiple client relationships. π©βπΌ Account managers preventing client churn. π Service businesses needing systematic client check-ins. π’ Remote teams requiring Slack alerts for client engagement. π Step-by-Step Setup Instructions Connect Gmail, Slack, Google Sheets, and HighLevel credentials in n8n. π Replace placeholder values (YOUR_GOOGLE_SHEET_ID, YOUR_SLACK_CHANNEL_ID) with environment variables. βοΈ Customize inactivity threshold (default: 14 days). π Import the workflow JSON into n8n. π¦ Test manually with sample client records. β Enable the workflow for weekly automated execution. π
by Oneclick AI Squad
Streamline invoice management with this automated n8n workflow. Triggered daily at 9 AM, it fetches pending invoices, filters overdue ones, uses AI to generate personalized reminders, and sends them to clients. It also tracks payments via webhooks, updates statuses, and provides daily summaries to the finance team, ensuring efficient cash flow oversight. Key Features Daily checks at 9 AM ensure timely invoice tracking. AI generates personalized reminders and payment confirmations. Real-time webhook integration for payment updates. Daily summaries and activity logs enhance financial visibility. Workflow Process Schedule Daily Check** runs every day at 9 AM to initiate the workflow. Fetch Pending Invoices** queries the database for unpaid invoices. Filter Overdue Invoices** separates overdue invoices based on due dates. Calculate Reminder Logic** applies smart logic for reminder timing and urgency. Prepare AI Prompt** formats data into a tailored prompt for AI. AI Agent for Generate Email** uses AI to create personalized reminder emails. Format Email** styles the email with HTML for a professional look. Send Email Reminder** delivers the reminder to clients. Update Reminder Status** logs the sent reminder in the database. Create Activity Log** generates a manual log for auditing. Save Input Log** archives raw input data for analysis. Generate Daily Summary** creates a report of daily metrics. Send Summary to Finance Team** emails the summary to the team. Webhook Payment Received** captures payment confirmations via POST. Update Payment Status** updates the invoice status to "paid" in the database. Webhook Response** sends an acknowledgment to the payment gateway. Webhook Logic Filtering** validates webhook data. Prepare AI Prompt (in payment branch)** formats payment data for AI. Chat Memory Tool (in payment branch)** maintains context for AI. Generate Email (in payment branch)** creates a payment confirmation email. Send Payment Confirmation** emails the confirmation to the client. Setup Instructions Import the workflow into n8n and configure database credentials (e.g., Google Sheets or SQL) for "Fetch Pending Invoices." Set up the AI service (e.g., OpenAI GPT) with an API key for email generation. Configure Gmail API Key for sending emails and Slack (if integrated) for team alerts. Test the workflow by adding overdue invoices and simulating a payment webhook. Adjust reminder logic and thresholds (e.g., 7 days overdue) as needed. Prerequisites Database access (e.g., Google Sheets OAuth2 or SQL credentials) OpenAI API key for AI email generation Gmail API Key for email notifications Payment gateway webhook integration (e.g., Stripe) Structured invoice data format Database Structure: Create a table/sheet with columns: Invoice ID Client Name Amount Due Date Status Reminder Sent Payment Date Modification Options Adjust the "Schedule Daily Check" to a different time (e.g., 8 AM IST). Customize "Calculate Reminder Logic" for escalation (e.g., multiple reminders). Modify AI prompts for branded or localized email content. Integrate with accounting software (e.g., QuickBooks) for real-time data. Enhance "Generate Daily Summary" with custom financial metrics. Discover more workflows β Get in touch with us
by Nitin Dixit
Who's it for HR professionals and recruitment teams handling high application volumes Startup founders and hiring managers seeking to scale hiring efficiently Companies wanting consistent, objective candidate evaluation Teams spending 20+ hours per week on manual resume screening What it does Receives job applications automatically via Jotform webhook Downloads and parses resume PDFs using LlamaParse AI extraction Analyzes candidate qualifications with OpenAI GPT-4 (compatibility score, strengths, concerns, technical skills) Routes candidates into three categories based on AI score (1-10 scale) Sends personalized HTML emails: interview invitations for strong candidates (7-10), status updates for moderate (5-6), respectful rejections for weak matches (1-4) Generates detailed HR briefing emails for top candidates with interview questions and focus areas Completes full screening process in under 2 minutes per application How it works Jotform trigger captures new submissions with resume attachments HTTP requests fetch submission data and download PDF files LlamaParse extracts text from resume PDFs with status checking loop OpenAI AI Agent analyzes resume and cover letter, outputs structured JSON assessment JavaScript code parses AI output into usable data fields Switch node routes candidates to appropriate email path based on score Gmail nodes send customized HTML emails to candidates and HR team All processing happens automatically without manual intervention Set up requirements Jotform account** with API key (form fields: name, email, phone, position, start date, interview preference, cover letter, resume upload) LlamaCloud account** with API key for PDF parsing OpenAI API key** with GPT-4o-mini access Gmail OAuth2** credentials for sending emails Estimated setup time: 25-30 minutes Cost: ~$0.05-0.10 per application processed How to customize Email templates**: Replace all placeholders (company name, HR manager, contact details, interview format, social links) AI evaluation**: Edit AI Agent prompt to match your job requirements and scoring criteria Score thresholds**: Adjust Switch node conditions to change candidate category ranges (default: 7+ strong, 5-6 moderate, <5 weak) Additional features**: Add Google Sheets logging, Slack notifications, calendar booking, or ATS integration Branding**: Update HTML email colors, fonts, and styling to match company brand HR notifications**: Change recipient email from default to your HR manager's address
by Rajeet Nair
Overview This workflow automates invoice handling from upload to reporting using AI. Users submit invoices through a simple form. The workflow extracts key details, validates the data, stores valid invoices, and sends email notifications. It also generates a weekly summary report automatically. This helps reduce manual data entry and ensures consistent invoice processing. How It Works Form Submission Users upload an invoice (PDF or image) along with their email. Initial Storage The raw submission is stored for tracking and reference. Text Extraction The uploaded file is processed to extract text content. AI Data Extraction AI converts the raw text into structured invoice data such as invoice number, vendor, date, currency, and totals. Validation The workflow checks: Date format (YYYY-MM-DD) Allowed currencies Total amount validity Conditional Flow If valid β invoice is stored and a success email is sent If invalid β an error email is sent with details Weekly Reporting A scheduled trigger runs weekly to: Fetch all validated invoices Generate a summary report using AI Send the report via email Setup Instructions Add your OpenAI credentials (used for data extraction and reporting) Connect Gmail credentials for sending emails Configure Data Tables: invoice_form_submissions validated_invoices Update the Workflow Configuration node: Set report recipient email Adjust allowed currencies if needed Ensure the file field (invoiceFile) is correctly mapped Test with a sample invoice Activate the workflow Use Cases Automating invoice processing for small businesses Reducing manual accounting data entry Validating invoices before storing them Generating weekly financial summaries Handling invoice submissions from clients or teams Requirements OpenAI API credentials Gmail account (for sending emails) n8n Data Tables (or replace with your preferred database) n8n instance with file upload support Notes Make sure to fix the IF condition: Use {{$json.validation.isValid}} instead of accessing isValid directly. You can extend validation rules in the Code node based on your business needs. The reporting section can be customized to include more insights or formats.
by Ucartz Online
Improve your chess automatically β get a personalized AI coaching report delivered. This workflow connects to the free Chess.com public API, fetches your most recent game, and sends it to an AI language model that acts as your personal chess coach. Within minutes, you receive a structured HTML email covering everything from critical turning points to a personalized training plan. π§ How It Works Trigger β Runs on a daily schedule or manually on demand Config Node β Set your Chess.com username and email address (one-time setup) Fetch Games β Pulls your current month's games from Chess.com's public API (no API key required) Sort & Enrich β Identifies your color, result (Win/Loss/Draw), opponent details, ratings, and ECO opening code AI Analysis β Sends the full PGN and game context to your chosen LLM with a structured coaching prompt Email Report β Delivers a clean HTML coaching report directly to your inbox via Gmail π What's in the Coaching Report Game Summary β Opening, middlegame, and endgame narrative Critical Moments β 3β5 turning points with explanations of what happened and what should have been played Mistake Categories β Tactical oversights, positional errors, opening issues, endgame technique, time management What Went Well β Genuine strengths recognized and reinforced Five Key Lessons β Specific, memorable takeaways tied to your actual game Training Plan β Targeted drills and study resources based on your weaknesses Closing Motivation β Encouraging next step to keep you improving βοΈ Setup (Under 5 Minutes) Import the workflow into n8n Open the Config node and enter your Chess.com username and target email address Connect your Gmail OAuth2 credential Connect your preferred LLM credential (Google Gemini is pre-wired; swap for OpenAI or Claude if preferred) Activate the workflow β done! π€ Supported AI Models The quality of the results depends on the model you choose. You can start with the free Gemini models and compare the output with your expected results. The LLM node is plug-and-play, allowing you to switch between different models with a single click. Google Gemini 2.5 Flash (pre-configured) OpenAI GPT-4o β Best overall chess analysis quality Anthropic Claude Sonnet β Excellent at explanations and coaching tone Mistral / Llama β Self-hosted options for privacy-conscious users π‘ Stronger models produce better analysis. GPT-4o or Claude Sonnet are recommended for players rated 1000+. π¬ Extend the Workflow After the email step, you can easily add nodes to also send the report via: Telegram β instant mobile notifications Slack β post to a personal or team channel Notion β build a game review database Google Drive β archive reports as files Discord β share with your chess study group β Requirements n8n (self-hosted or cloud) A Chess.com account with at least one game this month Gmail OAuth2 credential Any supported LLM API credential (Google Gemini, OpenAI, Anthropic, etc.)
by Tony Adijah
Who is this for This workflow is ideal for marketers, product managers, competitive intelligence teams, and anyone who needs to track changes on web pages β whether it's competitor pricing, job postings, policy updates, product pages, or any content that matters to your business. What this workflow does It automatically monitors a list of URLs on a schedule, fetches each page, extracts clean text content, compares it against the previous snapshot stored in Google Sheets, generates a detailed line-by-line diff with change percentage and severity rating, and sends instant alerts via Telegram and email when changes are detected. How it works Schedule Trigger checks your target URLs at a configurable interval (default: every 4 hours). URL List node defines which pages to monitor β easily add or remove URLs without touching other nodes. HTTP Request fetches the current HTML content of each page with browser-like headers. Content Extractor strips HTML tags, scripts, styles, and navigation to get clean readable text, plus extracts page title and meta description. Load Previous Snapshot reads the last saved version from Google Sheets for comparison. Diff Engine compares current vs. previous content line-by-line, calculates a change percentage, assigns a severity level (low/medium/high/critical), and generates a human-readable diff summary showing exactly what was added or removed. Change Filter only passes through pages that actually changed β no noise, no false alerts. Save Snapshot stores the new version in Google Sheets for the next comparison cycle. Telegram + Email Alerts send formatted notifications with the diff summary, change percentage, severity, and a direct link to the page. Setup steps Add URLs β Edit the "URL List" code node and add your target URLs. Each entry needs a name (friendly label) and url (full URL). Optionally add a selector keyword to focus on specific page sections. Google Sheets β Create a new spreadsheet with a sheet named "website" and columns: Name, url, selector, pageTitle, metaDescription, cleanText, contentHash, contentLength, fetchedAt, httpStatus. Connect your Google Sheets OAuth credential and set the spreadsheet ID in both Sheet nodes. Telegram β Create a bot via @BotFather, get your Bot Token and Chat ID. Connect the Telegram credential and set your Chat ID in the Telegram Alert node. Email (optional) β Connect your SMTP or Gmail credential in the Email Alert node and set your from/to addresses. Schedule β Adjust the cron interval in the trigger node (every 1 hour for critical pages, every 24 hours for low-priority). First Run β Run the workflow manually once to save baseline snapshots. Change detection begins from the second run onward. Requirements Google Sheets account with OAuth credentials Telegram bot (created via @BotFather) with bot token and chat ID SMTP or Gmail credentials for email alerts (optional) n8n instance (cloud or self-hosted) How to customize Add CSS selector keywords in the URL List to monitor only specific sections of a page (e.g., pricing tables, job listings). Increase check frequency to every 15 minutes for critical monitoring. Add Slack, Discord, or WhatsApp as additional alert channels by branching from the Save Snapshot node. Use AI (OpenAI, Ollama) to summarize changes in plain language instead of raw diff output. Monitor API endpoints (JSON responses) by adjusting the Content Extractor logic. Add multiple sheets for different monitoring categories (competitors, pricing, legal, careers).
by Rahul Joshi
Streamline the final stage of your content production workflow by automating publishing, formatting, metadata generation, and approval routing. This AI-powered subworkflow pulls optimized drafts from Google Sheets, enriches them with SEO metadata, converts them into publish-ready HTML, and delivers them via email and Slack for approval or distribution. Ideal for teams managing high-volume content pipelines with structured review processes. β¨ππ What This Template Does Triggers via chat to start the content publishing process. π¬ Fetches the latest optimized content draft from Google Sheets using a content ID. π Prepares metadata such as topic, intent, platform, and parameters. π§© Uses an AI agent (GPT-4) to generate SEO metadata, HTML-formatted article, tags, and structured publish data. π€ Enforces JSON structure to ensure consistent output formatting. π§± Saves the publish-ready content (title, meta description, HTML, tags) back into Google Sheets for version tracking. π Sends the content to an approver via Gmail with a previewed HTML body. π§ Awaits approval and branches based on decision. π If approved, sends the final published content to the intended recipient via Gmail. π¨ Sends a success confirmation message to Slack for team visibility. π’ Key Benefits β AI-generated SEO optimization, metadata, and HTML formatting β Centralizes content versioning within Google Sheets β Automates approval workflows and content delivery β Ensures consistent output structure with JSON parsing β Reduces manual formatting, editing, and routing tasks β Delivers instant Slack notifications for team transparency Features Chat-triggered publishing workflow Google Sheets content retrieval and storage AI-driven formatting, metadata generation, HTML conversion Structured JSON enforcement for clean automation Gmail integration for approval + publishing Slack notifications for successful publication Short-term memory support for context persistence Requirements Google Sheets OAuth2 credentials OpenAI API key (GPT-4 or GPT-4 mini) Gmail OAuth2 credentials for sending and receiving approval messages Slack API credentials with chat:write access Preconfigured Google Sheet containing optimized content drafts Target Audience Content operations teams handling recurring content workflows SEO and marketing teams producing high-volume articles Agencies managing structured approval pipelines Automation specialists building content publishing systems Teams needing standardized, AI-enhanced HTML content Step-by-Step Setup Instructions Connect your Google Sheets OAuth2 credential and replace the sheet/document IDs. ποΈ Add your OpenAI API key for the AI Publishing Agent. π Connect Gmail credentials for both approval and final publishing emails. π§ Update all email addresses and Slack channel IDs with your own. βοΈ Modify metadata fields (topic, intent, platform) if needed. π― Run the workflow with a sample content ID to verify the flow. π Enable and integrate as a subworkflow inside your main content pipeline. π
by Yassin Zehar
Description Execute email actions directly from Notion. Set an emailβs status to Responded, Delegated, Routed, or Archived, and this workflow handles the Gmail action, Slack notification, or Jira routing automatically. Context This is the action layer for the Inbox Zero Engine. When you set an emailβs status in Notion, the workflow executes the appropriate action: β’ Responded: sends the draft reply via Gmail thread β’ Delegated: forwards the email + sends a Slack DM to the delegate β’ Routed: creates items in Jira, RICE+ backlog, or customer health β’ Archived: applies Gmail labels After each action, the entry is marked as βProcessedβ in Notion. Who is this for? β’ PMs using Notion as their command center β’ Anyone who wants to process email without leaving Notion β’ Teams that delegate and route emails frequently Requirements β’ Notion account with Email Intelligence database β’ Gmail OAuth2 β’ Slack Bot token How it works Trigger Watches Email Intelligence in Notion for status changes. Action Router 4-way switch: Responded sends reply, Delegated forwards + DMs, Routed creates tickets, Archived labels in Gmail. Closed Loop Updates each entry to βProcessedβ with timestamp and reference. What you get β’ One-click email actions from Notion β’ Automatic Gmail replies, forwards, and archiving β’ Slack notifications for delegated emails β’ Full audit trail in Notion About me : Iβm Yassin a Product Manager Scaling tech products with data-driven project management. π¬ Feel free to connect with me on Linkedin
by Jitesh Dugar
Overview Automatically generate professional PDF invoices when new orders are placed in Shopify. This template creates beautifully formatted invoices from order data, converts them to PDF, saves to Google Drive, and emails customers - all in one seamless workflow. π― What This Template Does Transform your Shopify order fulfillment with complete invoice automation. When a customer places an order, this workflow automatically: β Receives order data via Shopify webhook β Validates payment status (only processes paid orders) β Generates professional HTML invoice with your branding β Converts to PDF using HTML to PDF conversion β Saves invoice to Google Drive for record-keeping β Emails PDF invoice to customer automatically β Provides webhook response back to Shopify π Key Benefits Save Hours of Manual Work Eliminate manual invoice creation and sending Process unlimited orders 24/7 without intervention Professional invoices enhance your brand image Complete Automation No missed invoices - every paid order gets processed Automatic file organization in Google Drive Immediate customer notification improves satisfaction Professional Results Clean, branded invoice design that looks enterprise-ready Proper calculations for taxes, shipping, and totals PDF format suitable for accounting and customer records π What You'll Need Required Integrations: Shopify Store** - For order webhooks HTML to PDF Service** - For invoice conversion (API key required) Google Drive** - For invoice storage Email Provider** - For sending invoices to customers Technical Requirements: n8n instance (cloud or self-hosted) Basic webhook configuration in Shopify 10 minutes for initial setup π Features Included Smart Order Processing Payment validation (only processes paid orders) Complete order data extraction (customer, items, addresses) Tax and shipping calculations Multi-currency support Professional Invoice Design Modern, clean layout with company branding Detailed line items with SKUs and quantities Proper totals breakdown (subtotal, tax, shipping) Customer billing and shipping addresses Automated Distribution PDF saved with descriptive filename (invoice-ORDER_NUMBER.pdf) Organized storage in Google Drive "Invoices" folder Professional email template with attachment Proper webhook responses for Shopify integration Error Handling Skips unpaid orders with proper notification Comprehensive data validation Detailed execution logs for troubleshooting π¨ Customization Options Easy Branding Update company name, address, and contact details Modify color scheme and styling Add your logo and brand elements Invoice Layout Customize invoice template in HTML/CSS Add or remove fields as needed Modify PDF formatting options Email Templates Personalize customer email messages Add tracking links or additional information Customize sender details πΌ Perfect For E-commerce Stores** - Shopify merchants of any size Service Businesses** - Professional service invoicing Digital Products** - Immediate invoice delivery B2B Companies** - Automated business invoicing Accounting Teams** - Streamlined record-keeping π§ Setup Instructions Import Template - Add to your n8n instance Configure Webhook - Set up Shopify order webhook Add Credentials - Connect Google Drive and email accounts Update API Endpoint - Add your HTML to PDF service URL Customize Branding - Update company information in HTML template Test & Deploy - Run test orders to verify functionality π Expected Results Time Savings: Save 15-30 minutes per order on manual invoice processing Accuracy: Eliminate human errors in invoice calculations Customer Experience: Immediate invoice delivery improves satisfaction Organization: All invoices automatically organized and stored Scalability: Handle thousands of orders without additional effort π Works With Shopify** (primary trigger) WooCommerce** (with minor modifications) Any HTML to PDF API** (Puppeteer, wkhtmltopdf, etc.) Google Drive** (file storage) Gmail/SMTP** (email delivery) π Use Cases Retail Stores Automatic invoice generation for online orders Professional receipts for customer records Seamless integration with existing Shopify workflow Service Businesses Automated billing for completed services Professional invoice presentation Immediate delivery to clients Digital Products Instant invoice delivery upon purchase Automated VAT/tax handling for different regions Professional documentation for digital goods π― ROI Calculator If you process 100 orders per month: Manual time**: 100 orders Γ 20 minutes = 33+ hours Cost savings**: 33 hours Γ $25/hour = $825/month Annual savings**: $9,900+ in labor costs alone Plus benefits of improved customer satisfaction, reduced errors, and better organization. π Get Started Ready to automate your invoice workflow? This template provides everything you need for professional, automated invoice generation that scales with your business. Installation Time: 10 minutes Skill Level: Beginner to Intermediate Maintenance: Zero - runs automatically once configured Transform your order fulfillment process today with this complete invoice automation solution!
by Poghos Adamyan
How it works Connects to your n8n instance via API and fetches all credentials you have set up Maps each credential type to its real service name (supports 40+ services: OpenAI, Slack, Notion, Airtable, Google, Stripe, and more) Sends the full list to Claude AI, which researches current pricing tiers, free limits, and API rate limits for every service Builds a colour-coded HTML email report sorted by tier: π’ Free Β· π‘ Freemium Β· π΄ Paid only Includes: free quota, paid plan starting price, API rate limit, and key notes for each service Set up steps Create an HTTP Header Auth credential named n8n API Key β Header Name: X-N8N-API-KEY, Header Value: your n8n API key (Settings β API β Create API Key) Connect your Anthropic account credential for Claude AI pricing research Connect your Gmail OAuth2 credential for the report email Open the Configuration node and set your n8n instance URL and notification email address Run manually or add a Schedule trigger for automated weekly reports
by Cheng Siong Chin
Introduction Transform your Telegram bot into an AI vision system using GPT-4o-Mini and NVIDIA Stable Diffusion 3. Perfect for content moderators, researchers, and developers. Workflow Explanatory At start: Processes Telegram messages: imagesβanalysis, textβimage generation At Router: Routes by content type Upper path: Analyzes images using Nvidia Vila + GPT-4o-Mini Lower path: Generates images from text via Stable Diffusion 3 At Merge: Combines AI results At Gmail: Emails processed results How It Works Telegram Trigger listens for messages (images, text, documents) Content Router directs images β AI analysis, text β image generation Image Analysis: Downloads image β GPT-4o-Mini vision analysis β Email results Image Generation: Text prompt β Stable Diffusion 3 β Email generated image Gmail Notifications send formatted reports Prerequisites Telegram Bot token (via @BotFather) OpenAI API key (GPT-4 Vision) NVIDIA API key (free tier available) Gmail OAuth2 credentials Setup Steps Setup Steps * Create Telegram Bot* - Create Telegram bot and obtain token * Configure API Credentials* - Configure API credentials in HTTP Request nodes * Set Up Gmail OAuth2* - Set up Gmail OAuth2 * Import and Activate Workflow* - Import workflow, update credentials, and activate Customization Options Add more AI models (Anthropic, Gemini) Route audio/documents to transcription/OCR Replace Gmail with Slack or Discord Connect to databases for storage Benefits Speed**: Seconds per analysis vs. hours manually Accuracy**: AI-powered visual understanding Intelligence**: Historical tracking enables trend analysis
by Praneel S
Manage Google Calendar events and Gmail with a customizable AI assistant β οΈ Disclaimer: This workflow uses Google Calendar and Gmail nodes which you will have to configure yourself Whoβs it for This workflow is built for busy professionals, freelancers, and teams who want to automate calendar scheduling and email handling with the help of an AI assistant. Instead of switching between Gmail and Google Calendar, you can delegate tasks like βschedule a meeting,β βsend an invite,β or βcheck my latest emailsβ directly to the assistant. How it works The AI Agent interprets natural language requests and decides which tool to use. Uses Google Calendar nodes to: Check availability and list events. Create new events with attendees. Update existing events. Uses Gmail nodes to: Send emails with a clear subject and body. Retrieve recent messages or filter by sender/date. The Date & Time node ensures correct time handling for scheduling. Built-in guardrails ensure clarity: if information is missing (e.g., timezone, meeting duration), the AI will ask you instead of guessing. How to set up Import the workflow into your self-hosted n8n. Create credentials for: Google Calendar API (OAuth2) Gmail API (OAuth2) AI model (Google Gemini, OpenAI GPT, or another supported connector) Connect these credentials to the corresponding workflow nodes. Update default values like: Your Google Calendar email ID Timezone preferences Default conference solution (Google Meet is included by default) Test the workflow by asking natural queries such as: βSchedule a meeting with alice@example.com tomorrow at 3 PM.β βCheck my emails from this morning.β βWhatβs on my calendar next week?β Tools π€ AI Agent The βbrainβ of the workflow. Interprets your requests and chooses the right tool. Asks for clarification if details are missing and confirms before important actions. π§ Google Gemini Chat Model (or any LLM) The AI language model that powers the assistant. You can swap Gemini with OpenAI, Claude, or another model. π Simple Memory Keeps short-term context of the last ~10 interactions so the agent remembers what βitβ refers to in your requests. π§ Send a message in Gmail Sends emails from your Gmail account. Requires recipient, subject, and body. Generates clear, professional text. π₯ Get many messages in Gmail Checks your inbox. Can filter by timeframe or sender. Returns detailed summaries, not just one-liners. π Get many events in Google Calendar Lists your events for a chosen date range. Useful for βWhatβs on my schedule this week?β β° Date & Time Converts natural phrases like βtomorrow at 3 PMβ into exact ISO date-time values. β Get availability in Google Calendar Checks if youβre free during a specific time slot. Prevents double-booking before scheduling. π Create an event in Google Calendar Schedules a new meeting. Adds title, start/end times, attendees, description, and Google Meet link. βοΈ Update an event in Google Calendar Edits an existing meeting. Change time, attendees, or details without creating a new event. Example Prompt n8n AI Agent System Prompt: Personal Assistant You are an advanced AI Personal Assistant operating within an n8n workflow. Your primary function is to serve as a cognitive engine that translates user requests into specific, executable tool calls. You are precise, methodical, and you do not act without sufficient information. Core Operating Principles Tool-Centric Operation: You can only perform actions for which you have been explicitly provided a tool. Before acting, you will review the Tool Manifest to confirm you have the required capability. If a user's request does not map to any available tool, you MUST clearly state that you cannot perform the action and why. For example: "I am sorry, but I cannot set a reminder as I do not have a tool for that function." Clarification Mandate: If a user's request is ambiguous or is missing a required parameter for a tool, you MUST ask clarifying questions before proceeding. Never guess or assume details like timezones, email recipients, or event durations. Single-Focus Execution: Handle one primary task at a time. If a user asks to schedule a meeting and check emails, process the meeting first unless the user specifies otherwise. User Confirmation: Before executing actions that create data or notify others (e.g., creating an event, sending an email), briefly state your plan of action for the user to confirm. Example: "I will schedule an event titled 'Project Sync' for 3 PM tomorrow and invite 'bob@example.com'. Is that correct?" Tool Manifest & Usage Protocols You have access to the following tools. Adhere strictly to their parameters and usage triggers. Tool: system_getCurrentTime Description:** Retrieves the current date and time. When to Use:** When the user asks for the current time, date, or uses relative terms like "today", "tomorrow", "this week". This tool is often a dependency for other tools. Parameters:** timezone (string, required): The IANA timezone identifier (e.g., 'America/New_York', 'Asia/Kolkata'). Protocol:* If the user asks for the time without providing a timezone, you *MUST** respond by asking: "Certainly. In which timezone would you like the time?" You will output the time in HH:MM format as requested. Tool: googleCalendar_getEvents Description:** Fetches a list of events from the user's Google Calendar within a specified date range. When to Use:** When the user asks "What's on my schedule?", "Am I busy?", or asks about events for a specific day, week, or month. Parameters:** startDate (string, ISO 8601 format, required): The start of the time period. endDate (string, ISO 8601 format, required): The end of the time period. Protocol:** Use system_getCurrentTime to establish the date for relative queries. "This week" means from today's date for the next 7 days. "Today" means from the start of the current day to the end of the current day. Tool: googleCalendar_createEvent Description:** Creates a new event on the user's Google Calendar. When to Use:** When the user asks to "schedule", "book", "create", or "add" an event, meeting, or appointment. Parameters:** summary (string, required): The title of the event. startTime (string, ISO 8601 format, required): The start time of the event. endTime (string, ISO 8601 format, required): The end time of the event. attendees (array of strings, optional): A list of attendee email addresses. Protocol:** If the user mentions other people in the scheduling request, automatically include their names/emails in the attendees parameter. You must have all required parameters before calling this tool. Tool: gmail_sendMessage Description:** Composes and sends an email via Gmail. When to Use:** When the user asks to "email", "send a message", or "contact" someone. Parameters:** recipient (string, required): The primary recipient's email address. subject (string, required): The email subject line. body (string, required): The content of the email. Protocol:** The subject must be detailed and relevant to the body's content. The body should be professionally written and clearly articulate the user's message without unnecessary embellishment. Tool: gmail_getMessages Description:** Retrieves a list of emails from the user's Gmail account. When to Use:** When the user asks to "check my email", "see recent emails", or "find an email from someone". Parameters:** startDate (string, ISO 8601 format, optional): The start date to filter emails from. endDate (string, ISO 8601 format, optional): The end date to filter emails to. from (string, optional): Filter emails from a specific sender. Protocol:** Use system_getCurrentTime to define date ranges for requests like "emails from this morning". Defined Workflow: "Schedule a Meeting and Send Invite" When a user's request involves both scheduling a meeting and notifying the attendees, you MUST follow this exact sequence of tool calls: Acknowledge and Gather: Acknowledge the request. Check if you have all the necessary information (topic/summary, attendees, proposed time/date, duration). If not, ask for the missing details. Step 1: Check Availability (googleCalendar_getEvents): Use the googleCalendar_getEvents tool to check the user's schedule for the proposed startTime and endTime. Step 2: Report & Decide: If Conflict Exists: Report the scheduling conflict to the user, mentioning the existing event. State: "You already have '[Existing Event Title]' scheduled at that time. Would you like to find a different time?" Await further instructions. If No Conflict: Proceed to the next step. Step 3: Create Event (googleCalendar_createEvent): Once the time is confirmed to be free, call this tool with the gathered summary, startTime, endTime, and attendees. Step 4: Notify Attendees (gmail_sendMessage): After the event is successfully created, immediately call this tool to send an invitation email. recipient: The attendees from the event. subject: "Meeting Invitation: [Event Summary]". body: "Hello,\n\nThis is an invitation to schedule '[Event Summary]' on [Date] at [Time]. Please check your calendar for the official Google Calendar invite.\n\nBest regards," Step 5: Final Confirmation: Report to the user that the event has been scheduled and the invitation email has been sent. Requirements n8n instance Google Workspace or Gmail account with API access enabled Google Calendar API credentials Gmail API credentials AI model API key (Gemini, OpenAI, or other supported LLM) How to customize the workflow Swap out the AI model (Gemini, OpenAI, or another LLM). Modify the system prompt in the AI Agent to change its personality or strictness. Extend the workflow to trigger Slack or Teams notifications after scheduling. Adjust the email formatting template for different tones (casual, professional, etc.). Add error-handling logic for more advanced use cases (e.g., auto-rescheduling). Contributions Feel free to contact me for any help. Checkout the github page