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 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 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 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.
by Oneclick AI Squad
A fully automated, AI-powered email assistant built in n8n that reads incoming emails, understands their intent and sentiment, classifies them by category, drafts intelligent context-aware replies, and sends them automatically — all without any human intervention. Built using OpenAI + Gmail/SMTP integration for any business or team. 🎯 What's the Goal? Replace slow, manual email handling with an always-on AI email assistant that reads every incoming message, understands what the sender needs, and responds instantly with a professional, personalized reply — escalating only when truly necessary. 💡 Why Does It Matter? Email overload is one of the biggest productivity killers for businesses. Teams spend hours every day reading, triaging, and replying to repetitive messages — support requests, meeting inquiries, sales questions, and more. This workflow automates the entire cycle: inbox → understand → reply → log → escalate, saving hours per day while improving response times from hours to seconds. ⚙️ How It Works Gmail trigger polls inbox for new unread emails Email content (subject + body) is extracted and cleaned AI classifies email: Support / Sales / Meeting / Complaint / Spam / General Sentiment is analyzed: Positive / Neutral / Negative / Urgent AI drafts a professional, context-aware reply based on classification If sentiment is Urgent or Negative → escalate to human via Slack If routine → auto-send reply via Gmail Email thread logged to Google Sheets (sender, category, sentiment, reply) Slack notification sent with summary for team awareness Label applied in Gmail for organization & tracking 🔧 Configuration Requirements Gmail OAuth2** (for reading inbox and sending replies) OpenAI API key** (for classification, sentiment & reply generation) Google Sheets OAuth2** (for email log & analytics) Slack Bot Token** (for escalation alerts & team summaries) Optional: SMTP credentials** (if using non-Gmail provider) Optional: CRM webhook** (to sync contacts & interactions) 🚀 Setup Guide Import this workflow into your n8n instance Connect credentials: Gmail OAuth2, OpenAI, Google Sheets, Slack Open the Set Email Config node and configure: check_interval_minutes — how often to poll inbox (recommended: 5) auto_reply_categories — which categories to auto-reply (e.g. Support, General) escalate_categories — which to escalate (e.g. Complaint, Urgent) sender_name — your name or business name for reply signature log_sheet_id — Google Sheets document ID for logging slack_channel — channel name for escalation alerts Customize reply templates in the Set Reply Templates node Run a test with a sample email using the manual trigger Verify reply quality in Gmail Sent folder Check Google Sheets log for the entry Activate workflow — it will now monitor inbox automatically Monitor escalation volume in Slack and tune thresholds weekly 📞 Contact Us Need help setting up or customizing this workflow for your business? 👉 https://www.oneclickitsolution.com/contact-us/
by Ian Kerins
Overview This n8n template automates the generation of local business leads by scraping Google Maps. It goes beyond basic search results by visiting individual business pages to extract detailed contact information, reviews, and attributes (like LGBTQ+ friendly status). It includes built-in deduplication against a Google Sheet to ensure you only receive alerts for new leads. Who is this for? Marketing Agencies**: Finding local clients for services. Sales Teams**: Building lists of prospects in specific cities. Recruiters**: Finding businesses in specific niches. Researchers**: Gathering data on local business landscapes. What problems it solves Manual Data Entry**: Eliminates the need to copy-paste business details from Maps. Duplicate Leads**: Automatically checks against your database to prevent duplicate entries. Incomplete Data**: Performs a "deep scrape" to get data often missing from list views (websites, full phone numbers, reviews). Delayed Action**: Sends instant alerts via Gmail and Slack so you can act on new leads immediately. How it works Input: Takes a city name via a form (or can be scheduled). Search: Uses ScrapeOps to search Google Maps for your target keyword (e.g., "Dentist"). Deep Extraction: Visits each business profile to scrape phone numbers, websites, ratings, and reviews. Validation: Compares found businesses with your existing Google Sheet database. Action: Saves new leads to the sheet and notifies you via Gmail and Slack. Set up steps (~ 10-15 minutes) ScrapeOps Account: Register for a free API key at ScrapeOps. Google Sheet: Create a new Google Sheet. Add these headers: businessName, phone, website, rating, totalReviews, address, city, category, mapUrl, status, checkedAt, lgbtqFriendly, review1, review2, review3. Or duplicate this Template Sheet. Configure Nodes: Set Google Maps Configuration: Set your keyword (e.g., "dentist", "plumber"). Google Sheets Nodes: Connect your account and select the sheet you created. Gmail & Slack Nodes: Update with your email address and Slack channel. Pre-conditions An n8n instance (Cloud or Self-hosted). A ScrapeOps API Key (Free tier available). Google Cloud Console project with Gmail and Sheets APIs enabled (for credentials). Disclaimer This template uses ScrapeOps as a community node. You are responsible for complying with Google's Terms of Use, robots directives, and applicable laws in your jurisdiction. Scraping targets may change at any time; adjust render/scroll/wait settings and parsers as needed. Use responsibly for legitimate business purposes. Key Features The ScrapeOps n8n node provides access to three main APIs: 1. Proxy API Access to ScrapeOps' proxy aggregator for reliable web scraping: Smart proxy rotation across multiple providers JavaScript rendering support Anti-bot bypass capabilities Geo-targeting options Mobile and residential proxy support Full Documentation: n8n Proxy API Aggregator 2. Parser API Extract structured data from popular websites without maintaining your own parsers: Supported Sites:** Amazon, eBay, Walmart, Indeed, Redfin Page Types:** Product pages, search results, reviews, categories Returns clean, structured JSON data Full Documentation: n8n Parser API 3. Data API Direct access to structured data endpoints: Amazon Product API:** Get product details by ASIN or URL Amazon Search API:** Search products and get structured results Full Documentation: n8n Data APIs
by masahiro hanawa
Who is this for? This template is ideal for event organizers, conference managers, and community teams who need an automated participant management system. Perfect for workshops, conferences, meetups, or any event requiring registration and check-in tracking. What this workflow does This workflow provides end-to-end event management with two main flows: Registration Flow: ⦁ Receives participant registration via webhook ⦁ Generates unique ticket ID and stores in Google Sheets ⦁ Creates QR code using the QR Code node ⦁ Sends confirmation email with QR code attached Check-in Flow: ⦁ Scans and decodes QR code at venue entrance ⦁ Validates ticket against participant database ⦁ Blocks duplicate check-ins with clear error messages ⦁ Sends Slack notification for VIP arrivals ⦁ Returns real-time attendance statistics Setup Create a Google Sheet with columns: Ticket ID, Event ID, Name, Email, Ticket Type, Registered At, Checked In, Check-in Time Connect your Google Sheets and Gmail credentials Configure Slack for VIP notifications Set up the webhook URLs in your registration form Requirements ⦁ Google Sheets (participant database) ⦁ Gmail account (confirmation emails) ⦁ Slack workspace (VIP notifications) How to customize ⦁ Add capacity limits by checking row count before registration ⦁ Modify QR code size and format in the QR Code node ⦁ Add additional ticket types beyond VIP/standard ⦁ Integrate with payment systems for paid events