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 SIENNA
Automated AWS S3 / Azure / Google to local MinIO Object Backup with Scheduling What this workflow does ? This workflow performs automated, periodic backups of objects from an AWS S3 bucket, an Azure Container or a Google Storage Space to a MinIO S3 bucket running locally or on a dedicated container/VM/server. It can also work if the MinIO bucket is running on a remote cloud provider's infrastructure; you just need to change the URL and keys. Who's this intended for ? Storage administrators, cloud architects, or DevOps who need a simple and scalable solution for retrieving data from AWS, Azure or GCP. How it works This workflow uses the official AWS S3 API to list and download objects from a specific bucket, or the Azure BLOB one, then send them to MinIO using their version of the S3 API. Requirements None, just a source Bucket on your Cloud Storage Provider and a destination one on MinIO. You'll also need to get MinIO running. You're using Proxmox VE ? Create a MinIO LXC Container : https://community-scripts.github.io/ProxmoxVE/scripts?id=minio Need a Backup from another Cloud Storage Provider ? Need automated backup from another Cloud Storage Provider ? $\mapsto$ Check out our templates, we've done it with AWS, Azure, and GCP, and we even have a version for FTP/SFTP servers! For a dedicated source Cloud Storage Provider, please contact us ! $\odot$ These workflow can be integrated to bigger ones and modified to best suit your needs ! You can, for example, replace the MinIO node to another S3 Bucket from another Cloud Storage Provider (Backblaze, Wasabi, Scaleway, OVH, ...)
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 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
by Abideen Bello
Generate daily audio newsletters from news headlines with AI Who's it for Perfect for content creators, podcasters, news enthusiasts, and busy professionals who want to create automated audio news content or stay informed through personalized audio briefings. Ideal for social media managers, newsletter creators, and anyone building audio-first content experiences. How it works This workflow creates a fully automated news-to-audio pipeline: Schedule trigger fetches the latest news headlines from NewsAPI daily AI processing rewrites each article into newsletter-style content using Claude Content aggregation combines all processed articles into a cohesive newsletter Script generation transforms the newsletter into a 2-minute audio-ready script Text-to-speech converts the script into high-quality audio using OpenAI's voice models Email delivery sends the audio newsletter as an attachment to subscribers The workflow runs automatically on your chosen schedule, delivering fresh audio content without any manual intervention. How to set up Requirements NewsAPI account** with API key (free tier available) OpenRouter API access** for Claude model OpenAI API account** for text-to-speech functionality Gmail account** with OAuth2 access for email delivery Basic understanding** of audio file handling (optional) Step-by-step setup 1. Set Your Schedule trigger Configure the Schedule Trigger for your preferred timing (daily at 7 AM recommended) Consider your audience timezone and optimal delivery times Set up monitoring to ensure consistent execution 2. Configure News Source Sign up for NewsAPI at newsapi.org (free tier includes 100 requests/day) Replace YOUR_NEWSAPI_KEY with your actual API key in the HTTP Request node Customize the news query parameters (country, category, sources) to match your audience interests Test the API endpoint to ensure it returns expected data 3. Extract Individual Articles(Split Out) Takes the articles array from NewsAPI response Creates separate items for each news article Enables individual processing of each story Prepares data for AI content generation 4. Set Up AI Model Credentials Create an OpenRouter account for Claude access Add your OpenRouter API credentials in n8n Alternatively, replace with OpenAI GPT-4 if you prefer (update the model node accordingly) Configure rate limits and usage monitoring 5. Combine Newsletter Content" (Aggregate) Collects output from all processed articles Renames field to news for easy reference Prepares combined content for script generation Ensures no articles are lost in processing 6. Audio Script Generation GPT-4 creates 2-minute audio-ready script from newsletter content. Creates script with "Max" presenter persona Script features: 2-minute target duration Audio-friendly text (no special characters) Natural speaking flow and transitions Engaging introduction and conclusion 7. Configure OpenAI Text-to-Speech Add your OpenAI API credentials in n8n Choose your preferred voice model (options: alloy, echo, fable, onyx, nova, shimmer) Set audio quality preferences (standard vs HD) Test voice output with sample text 8. Customize Email Delivery Add your Gmail OAuth2 credentials Replace YOUR_EMAIL@example.com with your actual recipient email Update the sender name and business information in email template Configure attachment settings for audio files 9. Test the Complete Pipeline Run a manual execution to test all components Verify news data is properly fetched and processed Check audio quality and duration Confirm email delivery with audio attachment How to customize the workflow Advanced News Filtering Custom sources**: Replace NewsAPI with RSS feeds from specific publications Topic filtering**: Add keyword filtering to focus on specific industries or topics Multi-country support**: Fetch news from multiple regions and merge content Sentiment analysis**: Filter out negative news or categorize by sentiment Trending topics**: Integrate with social media APIs to include trending discussions AI Content Enhancement Voice persona**: Customize the AI prompt to create different presenter personalities (professional, casual, expert) Length control**: Adjust script length for different formats (1-minute updates, 5-minute deep dives) Multi-language support**: Generate newsletters in different languages based on subscriber preferences Fact-checking**: Add verification steps to ensure accuracy of AI-generated content Source attribution**: Include proper citations and links to original articles Audio Production Features Voice variety**: Rotate between different OpenAI voices for engaging content Background music**: Add intro/outro music using audio editing APIs Speed control**: Adjust playback speed based on content type Chapter markers**: Add timestamps for different news segments Quality optimization**: Implement audio normalization and enhancement Distribution Enhancements Multi-channel delivery**: Send to Slack, Discord, or team communication platforms Podcast publishing**: Automatically upload to podcast platforms via RSS Social media**: Post audio clips to Twitter, LinkedIn, or Instagram Website integration**: Embed audio player on your website automatically Mobile app push**: Send notifications to mobile apps with audio links Subscriber Management Mailchimp integration**: Build and manage subscriber lists automatically Preference tracking**: Allow subscribers to choose news categories or frequency Analytics tracking**: Monitor open rates, listening duration, and engagement A/B testing**: Test different voice styles, content lengths, or delivery times Segmentation**: Send different newsletters to different subscriber segments Content Workflow Customization Editorial review**: Add approval steps before content distribution Content calendar**: Integrate with planning tools for scheduled content themes Collaborative editing**: Include team review processes for content quality Version control**: Maintain archives of previous newsletters for reference Performance metrics**: Track which content types perform best Webhook Integration Examples Website Integration // Add this to your website for manual newsletter requests fetch('/webhook/trigger-newsletter', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ subscriber_email: 'user@example.com', topics: ['technology', 'business'], urgency: 'normal' }) }); Slack Command Integration Create slash commands to trigger newsletter generation on demand Allow team members to request specific topic newsletters Integrate with Slack workflows for automated team briefings Mobile App Integration Use webhooks to trigger newsletters from mobile app interactions Create push notification systems for breaking news alerts Build in-app audio players for seamless listening experience Troubleshooting Common Issues and Solutions NewsAPI quota exceeded: Monitor your daily API usage in NewsAPI dashboard Implement caching to reduce redundant requests Consider upgrading to paid plan for higher limits Add fallback RSS feeds when API limits are reached AI model rate limiting: Implement exponential backoff for API requests Monitor token usage across Claude and OpenAI services Add queue systems for high-volume processing Consider switching to different models during peak times Audio generation failures: Check OpenAI text-to-speech quotas and billing Validate text input for special characters that might cause issues Implement retry logic for failed audio generation Add fallback to text-only newsletters when audio fails Email delivery problems: Verify Gmail API quotas and sending limits Check audio file size limits (Gmail has 25MB attachment limit) Implement compression for large audio files Consider cloud storage links instead of direct attachments Content quality issues: Fine-tune AI prompts for more consistent output Add content validation steps to check for accuracy Implement editorial guidelines in AI instructions Create feedback loops to improve content over time Performance Optimization Workflow efficiency: Process news articles in parallel where possible Implement smart caching for repeated content Optimize API calls to reduce latency Monitor execution times and identify bottlenecks Cost management: Track API costs across all services (NewsAPI, OpenRouter, OpenAI) Implement budget alerts and automatic shutoffs Optimize content length to reduce text-to-speech costs Consider batch processing during off-peak hours Scalability preparation: Design for multiple subscriber support Plan for increased news volume during major events Prepare backup systems for service outages Document processes for team handoffs Security and Compliance API key protection: Never expose API keys in workflow exports Use n8n's credential management exclusively Implement key rotation policies Monitor for unauthorized API usage Content compliance: Review AI-generated content for accuracy and bias Implement content filtering for inappropriate material Ensure proper attribution to original news sources Maintain editorial standards and fact-checking processes
by Yassin Zehar
Description Automated workflow that creates Jira issues directly from Google Forms. The flow validates and normalizes the data, creates the Jira issue, writes the key back to the Google Sheet, and sends a Gmail notification. Context This template bridges lightweight Google Forms with enterprise Jira. It enables instant ticket creation while keeping Jira the single source of truth. The flow is idempotent (no duplicates) and production-friendly, with clean field normalization and safe mappings. Target Users Product / Ops teams running request portals on Google Forms Engineering managers who need quick Jira integration without custom UI Project managers who track intake in Google Sheets but want Jira as the system of record Orgs that want controlled ticket creation without exposing Jira directly Technical Requirements Jira Cloud project + API email + API token + “Create issues” permission Google Form + response Sheet Gmail credential for notifications Workflow Steps Trigger when a row is added Normalize Fields – Trim/clean text Create Jira Issue – POST to Jira REST; safe mappings Update Google Sheet – Match by Horodateur or rowNumber; write jira_key, issue_url, status, updated_at. Send Gmail – HTML email with key, title, link, priority, requester. Key Features Real-time (no polling): Forms → trigger→ n8n Idempotent updates using the Form timestamp (“Horodateur”) Clean normalization: summary/description/labels all standardized once Safe Jira mappings: priority via ID Notification: branded HTML email with all key fields Expected Output Google Form to create the issue Sheet updated with jira_key, issue_url, status, updated_at A valid Jira issue in the configured project Email sent to stakeholders / requester How it works ⏰ Trigger – As soon as a row is added, the workflow is triggered 🧱 Normalize – Clean summary/description/labels; pick reporter_email 🧾 Create – POST to /rest/api/3/issue, capture { id, key, self } 📗 Update – Write jira_key, issue_url, status, updated_at back to the Sheet ✉️ Notify – Send Gmail HTML confirmation to stakeholders/requester Tutorial video: Watch the Youtube Tutorial video About me : I'm Yassin, IT Project Manager, Agile & Data specialist. Scaling tech products with data-driven project management. 📬 Feel free to connect with me on Linkedin
by Daniel Shashko
How it Works This workflow automates the entire lead qualification process from form submission to personalized follow-up. When a prospect fills out your JotForm, the workflow instantly captures their information, runs it through an intelligent scoring algorithm that evaluates email domain, company size, budget, and timeline to assign a lead score (0-100 points). Based on the score, leads are automatically categorized as Hot (75+), Warm (50-74), or Cold (0-49) and routed accordingly. Hot leads trigger immediate notifications to your sales team via Slack with full contact details and qualification notes, while warm and cold leads are routed to marketing for nurture campaigns. All leads are simultaneously logged to HubSpot CRM with custom properties and Google Sheets for tracking and reporting. The workflow then generates personalized follow-up emails based on the lead tier—urgent, action-oriented messages for hot leads and educational, resource-focused content for others—and sends them automatically via SMTP. The entire process takes seconds from form submission to follow-up, eliminating manual data entry and ensuring no lead falls through the cracks. Who is this for? Sales and marketing teams drowning in manual lead qualification and data entry Startups and SMBs needing to respond to leads instantly without a large sales team Revenue operations professionals looking to improve lead routing and response times Anyone using JotForm for lead generation who wants automated CRM integration Setup Steps Setup time: Approx. 20-30 minutes (credential configuration, field mapping, template customization) Requirements: JotForm account with an active lead capture form HubSpot CRM account Google account with a tracking spreadsheet Slack workspace SMTP email provider (Gmail, SendGrid, etc.) Configure your JotForm to collect: Name, Email, Company, Phone, Company Size, Budget Range, and Implementation Timeline. Set up these nodes: JotForm Trigger: Connect your JotForm account and select your lead capture form. Extract & Format Lead Data: Map your JotForm field names to workflow variables. AI Lead Scoring: Review and adjust scoring weights if needed (optional). Route by Lead Quality: Automatically splits leads based on score thresholds. Add to HubSpot CRM: Connect HubSpot and create required custom properties (lead_score, lead_tier, budget_range, company_size, timeline). Log to Google Sheets: Connect Google account, select spreadsheet, and ensure column headers match. Slack Notifications: Connect workspace and select channels for hot leads (sales) and warm/cold leads (marketing). Generate Personalized Email: Customize email templates for each lead tier. Send Email: Configure SMTP credentials and sender information. Credentials must be entered into their respective nodes for successful execution. Customization Guidance Scoring Algorithm:** Adjust point values for email domain (25), company size (30), budget (25), and timeline (20) in the AI Lead Scoring node based on your priorities. Lead Tier Thresholds:** Modify the 75-point hot lead threshold and 50-point warm lead threshold to match your lead quality distribution. Email Templates:** Edit the JavaScript in the Generate Personalized Email node to include your calendar links, case studies, and value propositions. Field Mapping:** Update the Extract & Format Lead Data node if your JotForm uses different field names. CRM Customization:** Replace HubSpot with Salesforce, Pipedrive, or any other CRM that n8n supports. Notification Channels:** Add additional Slack channels, Microsoft Teams, or SMS notifications via Twilio for different routing scenarios. Additional Enrichment:** Insert data enrichment nodes (Clearbit, Hunter.io) between scoring and CRM creation for enhanced lead profiles. Once configured, this workflow will automatically qualify, score, route, and follow up with every lead—reducing response time from hours to seconds and eliminating manual data entry entirely. Built by Daniel Shashko Connect on LinkedIn
by Anwar Bouilouta
Most small businesses track invoices in Google Sheets, but nobody actually looks at the spreadsheet until cash flow gets tight. By then, invoices that should have been chased weeks ago are sitting there unpaid. This workflow gives you an automatic weekly report and alerts you when anything is overdue. Who is this for Freelancers, agencies, and small businesses that track invoices in Google Sheets and want a hands-off way to stay on top of what's been paid, what hasn't, and what's late. How it works Every Monday at 9 AM, the workflow pulls all rows from your invoice tracker in Google Sheets. A code node crunches the numbers: total paid, total unpaid, and total overdue. It builds an HTML email with a clean summary table that shows the overall picture plus a detailed breakdown of any overdue invoices, including how many days late each one is. That summary gets emailed to whatever address you configure. If there are any overdue invoices, a separate Slack alert goes out with the specifics so your team knows exactly what needs chasing. How to set it up Create a Google Sheet with an "Invoices" tab containing these columns: Invoice ID, Client Name, Amount, Due Date, Status (paid/unpaid/overdue) Open the "Configure Settings" node and fill in your Sheet ID, the email address you want the report sent to, your Slack channel ID, and your business name Connect your Google Sheets, Gmail, and Slack credentials in n8n Activate the workflow and wait for Monday, or trigger it manually to test Requirements Google Sheets (free) Gmail account with OAuth connected in n8n Slack workspace with OAuth connected in n8n Customizing the workflow You can change the schedule to daily or biweekly by editing the trigger node. The overdue threshold is based on the Due Date column, so if you want to flag invoices that are approaching their due date (not just past it), you can tweak the comparison in the code node. If you want to add more notification channels (email to the client directly, SMS alerts, etc.), just wire new nodes after the overdue check.
by Oneclick AI Squad
Transform your attendance management with this enterprise-grade automated workflow featuring AI-powered analytics, multi-dimensional insights, and intelligent alerting. Running hourly, it integrates multiple data sources (attendance logs + employee master data), performs sophisticated statistical analysis, detects anomalies, generates department-specific insights, and delivers beautiful HTML reports via email and Slack. Get real-time visibility into attendance patterns, punctuality trends, and actionable alerts for HR, management, and department heads. 📊🎯✨ Good to Know Intelligent Scheduling**: Runs hourly but only sends management alerts when critical thresholds are breached Multi-Source Integration**: Combines attendance logs with employee master data for enriched context Smart Analytics**: Calculates attendance rate, punctuality rate, absenteeism rate, and department-wise metrics Conditional Routing**: Management emails are triggered only for high-priority alerts (no email fatigue!) Production-Ready**: Includes error handling, data validation, and comprehensive logging Scalable Design**: Handles multiple departments, shifts, and employee types efficiently How It Works Automated Trigger – Runs hourly to monitor attendance with zero manual effort. Dual Data Ingestion – Fetches attendance and employee master data, then merges them for enriched analytics. Advanced Analytics Engine – Analyzes attendance, calculates key metrics, detects anomalies, and generates alerts. Smart Conditional Routing – Validates data, prioritizes alerts, and routes notifications via email, Slack, and database. Rich Email Reports – Sends visually formatted reports with metrics, alerts, and detailed employee breakdowns. Slack Block Kit Integration – Delivers structured, real-time attendance alerts with visual indicators to team channels. Data Persistence & Logging – Logs daily summaries, maintains audit trails, and prepares data for trend analysis dashboards. How to Use Basic Setup Import the Workflow: Copy JSON → n8n → Import from File Configure Credentials: Add Google Sheets, SMTP, and Slack credentials Update Spreadsheet IDs: Replace all placeholder sheet IDs with your actual Google Sheet IDs Set Email Addresses: Update sender and recipient email addresses Configure Slack Channel: Replace channel ID with your team's attendance channel Test: Execute workflow manually to verify connections Activate: Turn on the Schedule Trigger for hourly execution Advanced Configuration Adjust Alert Thresholds**: Modify the 10% (late) and 15% (absent) thresholds in Analytics Engine Customize Email Design**: Edit HTML in Format Email node for brand alignment Add More Channels**: Extend with Microsoft Teams, Discord, or SMS notifications Enhance Analytics**: Add shift-specific analysis, contractor vs. full-time breakdowns Integrate BI Tools**: Enable Power BI push dataset for real-time dashboards Requirements Google Sheets Setup Sheet 1: AttendanceLogs | Column | Type | Description | Example | |--------|------|-------------|---------| | EmployeeID | Text | Unique employee identifier | EMP001 | | EmployeeName | Text | Full name | John Doe | | Date | Date | Attendance date (YYYY-MM-DD) | 2025-01-15 | | Status | Text | Present/Absent/Late/Leave/WFH/Half-Day | Present | | CheckInTime | Time | Arrival time (HH:MM) | 09:15 | | CheckOutTime | Time | Departure time (HH:MM) | 18:00 | | Notes | Text | Optional comments | Doctor appointment | Sheet 2: Employees (Master Data) | Column | Type | Description | Example | |--------|------|-------------|---------| | EmployeeID | Text | Unique identifier (matches AttendanceLogs) | EMP001 | | EmployeeName | Text | Full name | John Doe | | Department | Text | Department name | Engineering | | Manager | Text | Reporting manager name | Jane Smith | | Shift | Text | Day/Night/Evening | Day | | Email | Email | Work email address | john.doe@company.com | | ContractType | Text | Full-Time/Part-Time/Contract | Full-Time | Sheet 3: DailySummary (Auto-populated by workflow) | Column | Type | Description | |--------|------|-------------| | Date | Date | Report date | | Hour | Number | Hour of day (0-23) | | Present | Number | Present count | | Absent | Number | Absent count | | Late | Number | Late count | | AttendanceRate | Number | Attendance percentage | Credentials Needed Google Sheets OAuth2 API Enable Google Sheets API in Google Cloud Console Create service account credentials Share all 3 sheets with service account email SMTP Email Account Gmail: Enable "App Passwords" in Google Account settings Or use company SMTP server details Requires: Host, Port (587), Username, Password Slack Bot Token Create Slack App at api.slack.com/apps Enable permissions: chat:write, chat:write.public Install app to workspace Copy Bot User OAuth Token (starts with xoxb-) Invite bot to target channel Placeholder Values to Replace | Placeholder | Where to Find | Example | |-------------|---------------|---------| | YOUR_ATTENDANCE_SPREADSHEET_ID | Google Sheets URL | 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms | | YOUR_EMPLOYEE_SPREADSHEET_ID | Google Sheets URL | 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms | | YOUR_SUMMARY_SPREADSHEET_ID | Google Sheets URL | 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms | | C12345678 | Slack → Right-click channel → Copy link → Extract ID | C05XXXXXXXX | | hr@company.com | Your HR email | hr@yourcompany.com | | management@company.com | Management distribution list | leadership@yourcompany.com | Customizing This Workflow Modify Alert Thresholds In the Analytics Engine node, find these lines: const lateThreshold = metrics.totalEmployees * 0.1; // Change 0.1 to 0.15 for 15% const absentThreshold = metrics.totalEmployees * 0.15; // Change to 0.20 for 20% Add New Status Types In the Analytics Engine node, add to the switch statement: case 'Remote': statusCount.remote++; break; Customize Email Template In the Format Email node, modify the emailHtml variable: Change gradient colors in the header div Add company logo: `` Adjust grid columns: grid-template-columns: repeat(5, 1fr); Add SMS Notifications Add Twilio or Vonage node after "Critical Alerts" Send to on-call manager for high-severity alerts Use message: 🚨 ${data.absent} employees absent today. Review required. Multi-Location Support Modify Analytics Engine to group by Location field: const locationMetrics = {}; todayRecords.forEach(record => { const location = employee.location; if (!locationMetrics[location]) { locationMetrics[location] = { present: 0, absent: 0, late: 0 }; } // ... aggregate by location }); Shift-Specific Analysis Add logic to compare check-in times against shift schedules: const shiftTimes = { 'Day': '09:00', 'Night': '21:00', 'Evening': '14:00' }; const expectedTime = shiftTimes[employee.shift]; Integration with HR Systems Add HTTP Request node to push data to: Workday**: POST attendance records via REST API BambooHR**: Update employee time-off balances ADP**: Sync payroll-related attendance data SAP SuccessFactors**: Update time management module Advanced Analytics Add Python or R nodes for: Predictive Analytics**: ML models to predict absence patterns Sentiment Analysis**: Correlate attendance with employee surveys Seasonality Detection**: Identify patterns (Monday blues, pre-holiday trends) Correlation Analysis**: Link attendance with project deadlines, weather, events Dashboard Integration Export data to visualization platforms: Power BI**: Use HTTP Request node to push to streaming dataset Tableau**: Write to database (PostgreSQL, MySQL) via Execute Query node Grafana**: Store in InfluxDB time-series database Custom Dashboard**: Build React app that reads from DailySummary sheet Troubleshooting Common Issues "Could not find node" Ensure all data sources are fetched before Analytics Engine runs Check node names match exactly in $('Node Name').all() syntax "No records found" Verify Date column format is YYYY-MM-DD in Google Sheets Check timezone settings in Schedule Trigger vs. Sheet locale Confirm EmployeeID values match between AttendanceLogs and Employees sheets "Email not sending" Verify SMTP credentials are correct Check if "Critical Alerts?" condition is being met Test email node independently with static data "Slack message failed" Ensure bot is invited to the target channel Verify channel ID format (starts with C, not # symbol) Check bot has chat:write permission scope Performance Optimization Large Datasets (>1000 employees)**: Add pagination in Google Sheets fetch Multiple Departments**: Run parallel branches for each department Historical Analysis**: Schedule separate weekly/monthly summary workflows Reduce API Calls**: Cache employee master data in workflow static data Security Best Practices ✅ Use service account credentials (not personal OAuth) ✅ Restrict sheet access to service account only ✅ Store credentials in n8n credential store (encrypted) ✅ Enable 2FA on all integrated accounts ✅ Audit logs regularly for unauthorized access ✅ Use HTTPS for all external API calls Discover more workflows – Get in touch with us
by Jainik Sheth
What is this? This workflow is a Lead Qualification Voice Agent automation template built in n8n. It automates the process of qualifying leads by initiating outbound calls, analyzing call transcripts, updating lead data, and sending follow-up emails. The workflow integrates Google Sheets, OpenAI, and Twilio (via ElevenLabs API) to streamline lead management for sales or customer success teams. 1. Initiate Call Purpose: This step starts the lead qualification process by detecting new leads and preparing to contact them. How it works: The workflow is triggered when a new lead is added to your data source (such as a new row in Google Sheets, using the “Google Sheets Trigger” node). The trigger node captures essential lead information (e.g., name, phone number, service of interest) from the new entry. The workflow then prepares a personalized call script or opener, often using an AI node (like OpenAI) to generate a friendly and relevant introduction based on the lead’s details. An outbound call is initiated to the lead’s phone number using a telephony integration node (such as HTTP Request to ElevenLabs or Twilio). Note: Ensure your trigger node is correctly set up to monitor the right data source and columns. Configure the telephony node with valid API credentials and the correct phone number field. Optionally, customize the AI prompt to tailor the call opener to your business context. 2. Fetch Client Data Purpose: This step retrieves detailed information about the lead from your data source (such as a CRM, database, or Google Sheets). How it works: The workflow uses a data retrieval node (such as Google Sheets, HTTP Request, or a database node) to fetch client details based on a unique identifier (like phone number or email) captured in the trigger step. The node is configured to query the data source for all relevant fields, such as the lead’s name, company, previous interactions, and any custom attributes important for your qualification process. The fetched data is then made available to subsequent nodes, allowing for dynamic personalization of the call script and follow-up actions. Note: Ensure your data source is up-to-date and contains all necessary fields for lead qualification. 3. Outbound Call Processing Purpose: To manage the workflow after the outbound call is initiated, including handling call results, analyzing transcripts, and updating lead status. How it works: After the call is placed (using a telephony integration node), the workflow waits for the call to complete. This can be achieved using a webhook node (if your provider supports callbacks) or a polling node to check call status. Once the call is finished, the workflow retrieves the call outcome (e.g., answered, voicemail, failed) and, if available, the call transcript. The transcript can be sent to an AI node (like OpenAI) for analysis—such as extracting intent, sentiment, or key information discussed during the call. Based on the analysis, the workflow updates the lead’s status in your data source (e.g., marking as “Qualified,” “Needs Follow-up,” or “Unreachable”). Optionally, the workflow can trigger additional actions, such as sending a follow-up email, notifying a sales rep, or logging the interaction in your CRM. Note: Use webhook nodes for real-time call result processing if your telephony provider supports it. Log all call results and analysis for future reference and reporting. Prerequisities OpenAI Google Sheets Twilio Elevenlabs: Import the twilio number into Elevenlabs Set up an agent in Elevenlabs Set up prompt into Elevenlabs Set up webhooks for fetch client initiation data and post call data Customization Change Data Source: Swap the Google Sheets node for another data source (e.g., Airtable, MySQL) as needed. Modify Call Script: Edit the OpenAI prompt to generate different call openers or scripts based on your use case. Adjust Call Logic: Modify the outbound call node to use a different telephony provider or to handle call scheduling. Notification Options: Integrate with email, chat, or notification services to alert your team of qualified leads.
by yu-ya
Automate order fulfillment and inventory sync from WooCommerce to Google Sheets and Slack This workflow provides a robust, end-to-end automated pipeline for managing e-commerce orders. It bridges the gap between your storefront and your fulfillment team by handling inventory validation, multi-channel notifications, and centralized data logging. Who’s it for? This template is designed for e-commerce business owners and operations managers using WooCommerce who want to eliminate manual order processing. It is ideal for teams that need real-time updates on stock availability and automated communication with both customers and warehouse staff. How it works Order Capture: The workflow triggers via a WooCommerce Webhook (real-time) or a Schedule Trigger (hourly sync). Data Extraction: It parses complex order JSON into a clean, usable format. Inventory Check: The system iterates through each line item to verify stock levels. Fulfillment Logic: It determines if an order is "Ready" or "Backordered" and calculates estimated shipping priorities. Multi-Channel Notification: In-Stock: Sends a confirmation email to the customer and alerts the fulfillment team on Slack. Backordered: Sends a delay notice to the customer and alerts the inventory manager on Slack. Data Logging: Every order is appended to a Google Sheet for long-term analytics and tracking. Requirements WooCommerce**: REST API access and Webhook setup. Gmail**: OAuth2 credentials for sending automated emails. Slack**: A Bot Token with permissions to post in #fulfillment and #alerts channels. Google Sheets**: A spreadsheet prepared with headers matching the order data. How to set up Credentials: Connect your WooCommerce, Gmail, Slack, and Google Sheets accounts in the respective nodes. WooCommerce Webhook: Copy the Webhook URL from the first node and paste it into your WooCommerce Webhook settings (Topic: Order Created). Inventory Logic: The "Check Inventory" node currently uses a simulated Code node. Replace this logic with a lookup to your actual inventory database or ERP system. Google Sheets: Open the "Log Order to Sheets" node and select your specific Spreadsheet ID and Sheet Name. How to customize Shipping Rates**: Modify the "Process Order Logic" node to include your specific carrier rates or integrate a shipping API (like ShipStation). Priority Rules**: Adjust the logic to flag "High Value" orders or specific VIP customers for faster processing. Messaging**: Customize the Gmail and Slack message templates to match your brand's voice.