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 WeblineIndia
Zendesk Refund Ticket Automation with WooCommerce Order Lookup, Slack Alerts & Gmail Emails This workflow automatically handles refund-related Zendesk tickets for WooCommerce orders. When a new refund ticket is created, it verifies whether the ticket is related to WooCommerce, fetches the order details, checks refund eligibility and then routes the case based on the refund type. Damaged items notify the internal team via Slack, while other refund cases trigger customer emails via Gmail for further proof or confirmation. Quick Implementation Steps Import the workflow JSON into n8n Connect Zendesk, WooCommerce, Slack and Gmail credentials Update Slack channel and Gmail sender settings Activate the workflow Start receiving and processing refund tickets automatically What It Does This workflow listens for new Zendesk tickets and checks whether they are related to WooCommerce refunds. If the ticket qualifies, it extracts the order ID from the ticket description and fetches the corresponding order from WooCommerce. Once the order data is retrieved, the workflow validates the order status and checks whether a refund already exists. Eligible cases are merged with ticket data and routed based on the refund reason, such as damaged items, wrong items, partial refunds or full refunds. For damaged items, the workflow immediately notifies the internal support team via Slack. For other refund types, it sends structured and context-aware emails to customers using Gmail, requesting proof or informing them about next steps. Who’s It For Customer support teams handling WooCommerce refunds Operations teams managing refund communication E-commerce businesses using Zendesk and WooCommerce Non-technical users who want automated ticket handling without coding Requirements to Use This Workflow Active Zendesk account with ticket access WooCommerce store** with REST API credentials Slack workspace** with permission to post messages Gmail account** connected via OAuth2 n8n instance (Cloud or Self-hosted) How It Works & Set Up Setup Instructions Import Workflow Upload the workflow JSON into your n8n instance. Zendesk Trigger Configuration Connect Zendesk OAuth credentials Trigger runs when a new ticket is created WooCommerce Configuration Add WooCommerce API credentials Ensure permission to fetch orders by ID Slack Setup Select the Slack channel for damaged item alerts Gmail Setup Connect Gmail OAuth Configure sender email and reply settings Activate Workflow Save and activate the workflow New refund tickets will now be processed automatically How To Customize Nodes Order ID Regex**: Modify extraction logic in the Zendesk normalization node Refund Keywords**: Update refund-type detection keywords (damaged, wrong, partial, full) Slack Message Format**: Customize internal notification content Email Templates**: Change subject lines and messages in Set nodes Eligibility Rules**: Adjust order status or refund conditions in IF nodes Add-ons (Optional Enhancements) Auto-tag Zendesk tickets based on refund type Assign tickets to specific agents or groups Log refund cases to Google Sheets or Airtable Add SLA timers for refund response tracking Integrate WhatsApp or SMS notifications Use Case Examples Automatically handle damaged product refund requests Ask customers for proof when wrong items are delivered Notify support teams instantly for high-priority refund cases Reduce manual order lookups for refund tickets Standardize refund communication across support channels > There can be many more similar use cases depending on business needs. Troubleshooting Guide | Issue | Possible Cause | Solution | |-----|---------------|----------| | Order ID is null | Order number not in ticket text | Ask customers to include order number | | Workflow not triggering | Zendesk trigger misconfigured | Check trigger event type | | Slack message not sent | Channel or credentials incorrect | Reconnect Slack account | | Email not delivered | Gmail OAuth expired | Reauthorize Gmail | | Workflow stops early | Order already refunded | This is expected behavior | Need Help? If you need help setting up this workflow or extending it with advanced automation then our n8n workflow developers at WeblineIndia are happy to assist.
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 Carlo B.
Who is this for? Support teams, knowledge managers, and ops builders who are drowning in outdated KB articles and repeat tickets. If your team keeps answering the same questions because your knowledge base has gaps nobody has time to find — this template finds them automatically and writes the first draft for you. What does it do? This is a complete multi-agent AI pipeline — 31 nodes across 7 pipeline stages that automate the entire KB maintenance lifecycle: Gap analysis** — An AI agent cross-references your recent support tickets against your existing KB articles and identifies what's missing, what's weak, and what's stale. Automated article drafting** — For every gap found, a second AI agent writes a complete KB article draft using your actual ticket data as context. Quality review** — A third AI agent scores each draft on accuracy, completeness, and clarity — so you know what's ready to publish and what needs work. Health scoring** — A fourth AI agent generates a comprehensive health report with a 0-100 score, letter grade, executive summary, and prioritised action items. Dual notifications** — Results are delivered via both Slack (rich blocks) and Gmail (polished HTML email) with color-coded health scores, gap tables, and action items. Staleness detection** — Flags existing articles that haven't been updated in configurable timeframes. Scheduled automation** — Runs daily on a cron schedule (or manually on demand). How it works The Configuration node defines your helpdesk API endpoints, notification settings, and thresholds. The pipeline fetches recent tickets and current KB articles via HTTP, normalises the data, then sends it to the Gap Analysis Agent (GPT-4.1). If gaps are found, each gap is split into an individual item and routed through the Article Drafter Agent → Quality Reviewer Agent pipeline. In parallel, a Staleness Check flags outdated articles. All results merge into the Report Generator Agent, which produces a structured health report. The Format Outputs node transforms this into both Slack blocks and a polished HTML email, delivered simultaneously via webhook and Gmail. If no gaps are found, the pipeline skips article drafting but still runs the staleness check and generates a health report. How to use it Import the workflow JSON into n8n Open the Configuration node and set your helpdesk API URL, notification email, and Slack webhook Connect your OpenAI credentials to the 4 AI model nodes Connect your Gmail credential to the Send Email Report node Update the 2 HTTP Request fetch nodes with your helpdesk authentication Run manually to test, then activate the daily schedule Required: OpenAI API key (GPT-4.1 and GPT-4.1-mini), Gmail account (for email reports) Optional: Slack incoming webhook (for Slack reports), any helpdesk with a REST API (Zendesk, Freshdesk, Intercom, etc.) Tags AI, AI Agent, Multi-Agent, LLM, OpenAI, GPT-4.1, Knowledge Base, Support, Helpdesk, Zendesk, Content, Automation, Gap Analysis, KB Management, Slack, Gmail, Report Data Collection > Ticket & KB Fetcher — Pulls recent support tickets and current knowledge base articles from your helpdesk API. Data is normalised into a consistent format for AI analysis. Update the HTTP Request nodes with your helpdesk URL and authentication. AI Analysis Pipeline > Multi-Agent Gap Analysis — 4 specialised AI agents work in sequence: (1) Gap Analysis identifies missing, weak, and stale content by cross-referencing tickets against KB articles. (2) Article Drafter writes complete KB article drafts for each gap. (3) Quality Reviewer scores each draft. (4) Report Generator produces a health score, executive summary, and prioritised actions. Output & Notifications > Dual Notification System — Results are formatted into both Slack blocks (with emoji health grades, key findings, and action items) and a polished HTML email (with color-coded score circle, gap tables with urgency badges, and action tables). Both are delivered simultaneously. Either channel can be disabled in the Configuration node. Staleness Detection > Article Freshness Check — Runs in parallel with the main pipeline. Flags any KB article not updated within the configurable threshold (default: 90 days). Results feed into the health report regardless of whether gaps were found. Setup Note > ⚠️ Credential Setup Required: After importing, you must configure: (1) OpenAI credentials on 4 AI model nodes (2x GPT-4.1, 2x GPT-4.1-mini), (2) Gmail OAuth credential on the Send Email Report node, (3) Your helpdesk API URL and auth on 2 HTTP Request nodes, and (4) Your Slack webhook URL and email address in the Configuration node. See the Setup Guide for a step-by-step checklist.
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 s3110
Who’s it for Traders, operations teams, and finance-minded founders who want a low-maintenance USD/JPY monitor that blends live pricing with short, news-aware AI commentary—delivered straight to email on a reliable cadence. How it works / What it does On a fixed schedule (every 4 hours), the workflow fetches the latest USD→JPY spot rate, enriches it with recent market context via a search tool, and asks an AI agent to produce a concise, structured take (trend, key drivers, and a buy/sell/neutral stance with rationale). The final summary is sent by email so stakeholders can skim, log, or forward without opening n8n. The design favors clarity (renamed nodes, sticky notes) and safety (no hardcoded secrets). How to set up Open Set (Fields) — Configure me and enter your Tavily API key and notification email. In Send results via Gmail, attach your email credential (or swap to SMTP/another provider). (Optional) Point LLM provider (configure) to your preferred model/vendor. Enable the schedule or adjust the interval to match your cadence. Requirements Tavily (or compatible) Search API key Email credential in n8n (Gmail or SMTP) An n8n instance with internet access How to customize the workflow Change the schedule frequency or trading window. Swap the rate source, add indicators (MA/RSI), or log to Sheets/DB. Extend the AI prompt and output schema for risk flags or position sizing. Add Slack/Telegram delivery or dashboards for team visibility. Disclaimer (community nodes) If you use community/experimental nodes, publish as self-hosted only and include a static workflow image at the top of your listing.
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 WeblineIndia
Birthday & Milestone Message Automation (n8n Google Sheets + Gemini AI + Gmail) This workflow automatically sends personalized birthday and anniversary emails to clients. It runs daily, checks a Google Sheet for matching dates, generates a warm AI message using Google Gemini and sends it via Gmail. It also includes a thoughtful investment idea tailored to the client’s age, risk profile and relationship type. Quick Implementation Steps Connect Google Sheets OAuth2 Add your Google Gemini API key Connect Gmail OAuth2 Update the Google Sheet ID Ensure your sheet has required columns: Client Name, Email, Advisor Name, Birthday, Anniversary, Relationship Type (Premium / Normal), Client Age, Risk Profile Activate the workflow What It Does This workflow automates client relationship engagement for financial advisors by sending personalized messages on important milestones like birthdays and anniversaries. It eliminates the need for manual tracking and ensures that no important date is missed. Every day at a scheduled time, the workflow reads all client records from a Google Sheet and checks if any client has a birthday or anniversary on that day. If a match is found, it prepares detailed variables including client information, tone and occasion. The workflow then intelligently selects a suitable investment idea based on the client’s age group and risk profile. This context is passed to Google Gemini, which generates a warm, human-like message. Finally, the message is formatted and sent as a text email via Gmail. Who’s It For Financial advisors Wealth managers Investment consultants Relationship managers handling client portfolios Firms managing high-value or premium clients Requirements To use this workflow, you need: n8n instance (Cloud or Self-hosted) Google Sheets account with client data Google Gemini API key Gmail account for sending emails Proper OAuth2 credentials configured in n8n A Google Sheet with the following columns: Client Name Email Advisor Name Birthday Anniversary Relationship Type (Premium / Normal) Client Age Risk Profile How It Works & Setup Guide 🧩 Step-by-Step Workflow Execution Schedule Trigger Runs every day at 9:01 AM Read Client Data Fetches all rows from Google Sheets Settings Node Stores configuration such as: Message tone Default values Subject line format Labels for birthday and anniversary Date Matching (IF Node) Checks if today matches: Client Birthday OR Client Anniversary If no match → workflow stops Prepare Variables Extracts and formats: Client details Occasion type Message tone (premium or normal) Email subject AI prompt Investment Suggestion Logic (Code Node) Selects suggestion based on: Age group (Young / Mid / Senior) Risk profile (Low / Moderate / High) Adds a meaningful explanation AI Message Generation Google Gemini generates: Warm personalized message Includes emotional investment suggestion Format Email Converts AI output into clean text format Send Email Gmail sends the message directly to the client How To Customize Nodes Schedule Node** Change time based on your preference Settings Node** Modify: Tone (formal, friendly) Subject lines Default age or risk values Advisor firm name Google Sheet Node** Replace Sheet ID with your own data source Code Node (Investment Logic)** Add or modify: Investment ideas Age group logic Risk mapping Gemini Node** Adjust prompt for: More emotional tone Shorter or longer messages Gmail Node** Change sender name or email behavior Add-ons (Enhancements) Add WhatsApp or SMS integration for multi-channel messaging Store sent messages in Google Sheets or CRM Add Slack notifications for internal tracking Include attachments (PDF reports or offers) Add client segmentation logic for advanced personalization Use Case Examples Automatically send birthday wishes to all clients without manual effort Strengthen relationships with premium clients using personalized messages Promote subtle investment awareness without sounding salesy Maintain consistent engagement across a large client base Improve client retention through thoughtful communication There can be many more such use cases depending on how you want to extend and customize this workflow. Troubleshooting Guide | Issue | Possible Cause | Solution | |------|--------------|---------| | No emails are sent | No matching date found | Verify birthday/anniversary format in sheet | | Workflow stops early | IF condition not satisfied | Check date comparison logic | | Incorrect client data | Column mismatch | Ensure exact column names are used | | Gemini not generating response | API key issue | Verify Gemini credentials | | Emails not delivered | Gmail authentication issue | Reconnect Gmail OAuth | | Wrong message tone | Settings misconfigured | Check tone values in Settings node | Need Help? If you need assistance setting up this workflow, customizing it for your business or building advanced automation solutions, feel free to reach out to our n8n workflow development team at WeblineIndia. Our team can help you design scalable, production-ready workflows tailored to your exact requirements.
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.
by Rahul Joshi
Description Streamline client retention and contract renewals by automatically identifying expiring accounts, sending personalized reminder emails, and notifying account managers through Slack. This workflow ensures timely outreach, improved renewal rates, and centralized tracking — without manual effort. 🔁📧📅 What This Template Does Triggers daily at 9 AM to check for contracts expiring within 10 days. ⏰ Fetches all client records from GoHighLevel CRM. 🗂️ Validates client data to ensure required custom fields (Contract End Date & Account Manager) are available. 🧩 Filters expiring contracts and formats key client details (name, email, expiry date). 🔍 Sends renewal reminder emails to clients using Gmail. 💌 Notifies account managers in Slack with full client and renewal details. 💬 Generates a summary report of total reminders sent and execution status. 📋 Logs all reminders and timestamps into Google Sheets for performance tracking. 📊 Key Benefits ✅ Never miss renewal deadlines again ✅ Improve client retention and satisfaction ✅ Reduce manual tracking and follow-up work ✅ Keep account managers informed in real-time ✅ Maintain a clear audit trail of renewal activities Features Automated daily scheduling (9 AM trigger) GoHighLevel integration for client data Dynamic filtering for contracts expiring within 10 days Gmail email automation for personalized messages Slack notifications for internal visibility Google Sheets logging for analytics and reporting Requirements GoHighLevel account with access to Contacts API Custom fields: Contract End Date and Account Manager Gmail account with OAuth2 credentials Slack Bot token with chat:write permission Google Sheets OAuth2 credentials Target Audience Account management and client success teams Agencies handling multiple client contracts Businesses with recurring subscriptions or service renewals Teams wanting automated retention workflows Step-by-Step Setup Instructions Connect your GoHighLevel account and ensure contract-related custom fields are configured. Set your Slack channel ID where renewal notifications will be sent. Connect Gmail for automated client communication. Link Google Sheets for centralized renewal logging. Adjust reminder window in the code node (daysUntilExpiry <= 10) as per your needs. Test the workflow once manually, then enable scheduling for automation.
by vinci-king-01
File Processing Pipeline with Email and GitHub This workflow automatically ingests newly-uploaded files, validates and transforms their contents, stores the processed files in a GitHub repository, and sends email notifications upon completion. It is ideal for teams that regularly receive data drops and need an auditable, automated pipeline to clean, version, and distribute those files. Pre-conditions/Requirements Prerequisites n8n instance (self-hosted or n8n cloud) GitHub and SMTP credentials with appropriate permissions Basic understanding of JavaScript for custom validation/transform code Required Credentials | Credential | Purpose | Minimum Scope | |------------|---------|---------------| | GitHub OAuth2 | Commit transformed files to a repository | repo | | SMTP (Email Send) | Dispatch success/failure notifications | send | Repository & Email Setup Requirements | Item | Example | Notes | |------|---------|-------| | GitHub Repository | git@github.com:org/data-pipeline.git | Branch must exist (default: main) | | Email Recipients | ops@company.com, data@company.com | Comma-separated list | How it works This workflow automatically ingests newly-uploaded files, validates and transforms their contents, stores the processed files in a GitHub repository, and sends email notifications upon completion. It is ideal for teams that regularly receive data drops and need an auditable, automated pipeline to clean, version, and distribute those files. Key Steps: Schedule Trigger**: Executes the pipeline on a defined schedule (e.g., hourly). HTTP Request**: Pulls a file manifest or fetches file blobs from an upstream service. SplitInBatches**: Iterates over each file individually for isolated processing. Code (Validate)**: Runs custom JavaScript to ensure file integrity and schema compliance. If (Validation Pass?)**: Routes good files forward and diverts failures. Code (Transform)**: Performs any data re-formatting, enrichment, or cleansing. Set**: Prepares commit metadata (file path, commit message). GitHub**: Creates or updates a file in the target repository/branch. Email Send**: Notifies stakeholders of overall job status, including summary metrics. Set up steps Setup Time: 10-15 minutes Clone the Workflow: Import the JSON file or copy from the n8n community templates gallery. Configure Schedule Trigger: Set your desired cron expression (e.g., 0 * * * * for hourly). HTTP Request Node: Enter the endpoint that lists or returns your new uploads. Add authentication headers if required. Adjust Validation Code: Open the first Code node and replace the schema rules with your own logic. Modify Transformation Logic: In the second Code node, apply formatting (e.g., CSV → JSON) or enrichment steps. GitHub Node: Select your GitHub OAuth2 credential. Specify repository, branch, and file path template (e.g., processed/{{ $json.filename }}). Email Send Node: Set SMTP credential. Add recipients and customize subject/body with variables. Test Run: Click “Execute Workflow” to ensure end-to-end success. Activate: Toggle workflow to “Active” for autonomous execution. Node Descriptions Core Workflow Nodes: Sticky Note** – Documentation and inline comments for maintainers. Schedule Trigger** – Initiates the automation on a fixed timetable. HTTP Request** – Retrieves incoming file list or contents. SplitInBatches** – Paginates large manifests to conserve memory. Code (Validate / Transform)** – Custom JS powering data quality checks and format conversion. If** – Branching logic for pass/fail handling. Set** – Crafts commit metadata and email summaries. GitHub** – Commits each transformed file to the repository. Email Send** – Dispatches completion notices or error alerts. Data Flow: Schedule Trigger → HTTP Request → SplitInBatches → Code (Validate) → If true → Code (Transform) → Set → GitHub false → Set (Error) Both branches converge → Email Send Customization Examples Custom Validation Rule // Reject files larger than 5 MB or missing required columns if (items[0].binary.data.size > 5 * 1024 * 1024) { throw new Error('File exceeds 5MB limit'); } const required = ['id', 'email', 'created_at']; required.forEach(col => { if (!items[0].json.headers.includes(col)) { throw new Error(Missing column: ${col}); } }); return items; Dynamic Commit Path Based on Date const date = new Date().toISOString().split('T')[0]; // YYYY-MM-DD item.json.gitPath = archive/${date}/${item.json.filename}; return item; Data Output Format The workflow outputs structured JSON data: { "filename": "orders_2023-10-01.csv", "status": "committed", "commitSha": "a1b2c3d4", "linesProcessed": 523, "errors": [] } Troubleshooting Common Issues GitHub authentication error – Ensure OAuth app is approved and the token has repo scope. Email not delivered – Verify SMTP host, port, and that “less secure apps” are allowed (if using Gmail). Performance Tips Batch large manifests (e.g., 100 records) to avoid memory spikes. Enable n8n queue mode for parallel processing on self-hosted instances. Pro Tips: Use environment variables ({{ $env["VAR_NAME"] }}) for endpoints and secrets. Configure branch protection in GitHub to enforce pull requests instead of direct commits. Aggregate success vs. failure counts in the Email body for quick health checks. This is a community n8n workflow template provided “as-is.” Always review and adapt the workflow to meet your security, compliance, and operational requirements.