by n8n Team
This workflow compares 2 datasets from a single database. Two SQL nodes create a slightly different summary report based on the payments table. Both reports have the same structure, but different time periods. In addition to that, output from the "Orders from 2004 and 2005" node has an extra manipulation on the ordercount variable. This makes Compare Datasets node to produce four outputs: data in A Only Branch, in B Only Branch, Same Branch records and Different Branch records. Please refere to the MySQL Tutorial website and download the example database: https://www.mysqltutorial.org/mysql-sample-database.aspx
by Usman Liaqat
This workflow listens for incoming WhatsApp messages that contain media (e.g., images) and automatically downloads the media file using WhatsApp's private media URL. The trigger node activates when a WhatsApp message with media is received. The media ID is extracted from the message payload. A private media URL is retrieved using the media ID. The media file is downloaded using an authenticated HTTP request. Ideal for: Archiving WhatsApp media to external systems. Triggering further automations based on received media. Integrating with cloud storage like Google Drive, Dropbox, or Amazon S3. Set up steps Connect your WhatsApp Business API account. Add HTTP credentials for downloading media via private URL. Set up the webhook in your WhatsApp Business account. Extend the workflow as needed for your use case (e.g., file storage, alerts).
by Jitesh Dugar
Customer Support Ticket Documentation Automation Automatically transform resolved support tickets into professional, AI-powered PDF documentation with complete tracking and team notifications. Overview This workflow automates the entire process of documenting resolved support tickets — from receiving ticket data to generating professional PDF case studies, storing them in Google Drive, tracking in spreadsheets, and notifying your team. Powered by AI, it creates consistent, high-quality documentation that can be reused for knowledge base articles, training materials, and compliance records. What This Workflow Does Receives resolved support tickets via webhook from your support platform Extracts and normalizes ticket data (works with Zendesk, Freshdesk, and custom formats) Generates AI-powered summaries using OpenAI GPT-4, creating structured case studies with: Problem description Troubleshooting steps taken Final resolution Key takeaways and prevention tips Creates professional PDF documents with branded HTML templates Uploads PDFs to organized Google Drive folders Tracks all tickets in a Google Sheets database for reporting and analytics Sends Slack notifications to your team with links to completed documentation Handles errors gracefully with automatic alerts when issues occur Key Features Fully Automated:** Zero manual intervention after setup AI-Powered Documentation:** Intelligent summaries that extract insights from raw ticket data Professional Output:** Branded, print-ready PDFs with modern styling Multi-Platform Support:** Works with any support tool that can send webhooks Centralized Tracking:** All tickets logged in Google Sheets for easy reporting Error Handling:** Built-in failure detection with Slack alerts Customizable:** Easy to brand with your company colors, logo, and styling Scalable:** Handles hundreds of tickets per day Use Cases Knowledge Base Building:** Automatically create searchable documentation from real support cases Team Training:** Build a library of resolved issues for onboarding new support agents Compliance & Audit:** Maintain complete records of all customer interactions Performance Analytics:** Track resolution times, common issues, and agent performance Customer Success:** Share professional case studies with stakeholders Process Improvement:** Identify recurring issues and optimize workflows Prerequisites Required Services & Accounts n8n** (self-hosted or cloud) OpenAI Account** with API access PDFMunk Account** (for HTML → PDF conversion) Google Workspace** (for Drive & Sheets) Slack Workspace** (optional but recommended) Support Platform** that can send webhooks (Zendesk, Freshdesk, Intercom, etc.) Required Credentials OpenAI API Key PDFMunk API Key Google Drive OAuth2 credentials Google Sheets OAuth2 credentials Slack Bot Token (OAuth2) Setup Instructions 1. Import the Workflow Copy the workflow JSON. In n8n, click “Import from File” or “Import from Clipboard.” Paste and import. 2. Configure Credentials OpenAI API Get API key from OpenAI Add in n8n: Credentials → OpenAI API → Paste key PDFMunk API Sign up at pdfmunk.com Copy API key → Add in Credentials → HtmlcsstopdfApi Google Drive OAuth2 Create project at Google Cloud Console Enable Drive API Create OAuth 2.0 credentials Add in n8n: Credentials → Google Drive OAuth2 → Connect Google Sheets OAuth2 Enable Google Sheets API in the same project Add in n8n: Credentials → Google Sheets OAuth2 → Connect Slack OAuth2 Create app at Slack API Add scopes: chat:write, chat:write.public Install to workspace Add bot token in Credentials → Slack OAuth2 API 3. Configure Node Settings Google Drive Folder ID Create a folder in Drive for PDFs Copy folder ID from the URL → https://drive.google.com/drive/folders/FOLDER_ID_HERE Paste in the “Upload to Google Drive” node Google Sheets Configuration Create a new sheet titled “Support Ticket Documentation Log.” Add these headers in Row 1: | Ticket ID | Subject | Customer Name | Customer Email | Agent Name | Priority | Category | Resolved Date | Resolution Time | PDF Link | Document Generated | Status | | --------- | ------- | ------------- | -------------- | ---------- | -------- | -------- | ------------- | --------------- | -------- | ------------------ | ------ | Copy Sheet ID from URL → https://docs.google.com/spreadsheets/d/SHEET_ID_HERE/edit Paste it in the “Update Google Sheets” node configuration. Slack Channel ID Right-click your Slack channel → View Channel Details Copy the Channel ID Update it in: “Send Slack Notification” node “Error – PDF Failed” node “Error – Upload Failed” node 4. Configure Webhook in Support Tool Activate the workflow in n8n Copy the Webhook URL from the “Webhook – Receive Ticket” node In Zendesk/Freshdesk: Trigger: “Ticket Status = Resolved” Method: POST Paste the n8n webhook URL Send ticket data as JSON 5. Test the Workflow Click “Execute Workflow” manually Send a test webhook Verify each step completes successfully Check: Generated PDF in Google Drive Row entry in Google Sheets Slack notification delivery How It Works Webhook Trigger → Receives resolved ticket Data Extraction → Normalizes ticket fields AI Summarization (OpenAI) → Generates structured summary HTML Formatting → Styles and adds branding PDF Conversion (PDFMunk) → Converts HTML → PDF Google Drive Upload → Saves and returns shareable link Sheets Logging → Appends ticket info + PDF link Slack Notification → Notifies team with summary Error Handling → Detects and reports failures Result → Clean, documented ticket case study in minutes Customization Branding Update company name, logo URL, and color scheme in the “Format HTML” node. Default color: #4CAF50 → Replace with your brand color. AI Prompt Customization Modify “AI Summarization (OpenAI)” node to add: Industry-specific terms Additional sections or insights Different summary tone or length Notification Customization Add @mentions or emojis in Slack messages for better visibility. Data Flow Webhook → Extract Data → AI Summary → Format HTML → Convert to PDF ↓ Download PDF → Upload to Drive → Log in Sheets → Notify Team ↓ Error Handling (if any) Expected Output PDF Document Includes: Branded header with company name/logo Resolution time badge Ticket metadata (ID, priority, customer, agent, etc.) Full AI-generated case study Professional footer with timestamp Google Sheets Entry: All ticket info Resolution metrics Direct PDF link Status = “Generated” Slack Notification: Summary of ticket Clickable PDF link Timestamp Performance Processing Time:** 10–20 seconds/ticket Capacity:** 100+ tickets/day PDF Size:** 50–300 KB Troubleshooting Webhook not triggering → Check webhook URL, trigger conditions, and public access. PDF generation fails → Verify HTML syntax and PDFMunk API key. Google Drive upload fails → Re-authenticate credentials or check folder permissions. Slack notification missing → Ensure bot token, scopes, and channel ID are valid. Data extraction errors → Adjust field mappings or inspect payload format. Best Practices Test before production rollout Monitor first-week error logs Organize Drive by date/priority Validate Sheets columns Use a dedicated Slack channel Archive old PDFs regularly Review AI summaries weekly Document configuration changes Security Notes All credentials stored securely in n8n PDF links are restricted by Drive sharing settings Webhooks use HTTPS for secure data transfer No sensitive info logged in error messages Future Enhancements Multi-language summaries Integration with Confluence or Notion Customer satisfaction feedback link ML-based issue categorization Analytics dashboard Weekly email digests Public knowledge base generation Support Resources n8n Documentation n8n Community OpenAI API Docs PDFMunk Support Google Drive API Slack API Docs License This workflow template is provided as-is for use with n8n under the MIT License.
by PiAPI
What does the workflow do? This workflow is primarily designed to generate animated illustrations for content creators and social media professionals with Midjourney (unoffcial) and Kling (unofficial) API served by PiAPI. PiAPI is an API platform which provides professional API service. With service provided by PiAPI, users could generate a fantastic animated artwork simply using workflow on n8n without complex settings among various AI models. What is animated illustration? An animated illustration is a digitally enhanced artwork that combines traditional illustration styles with subtle, purposeful motion to enrich storytelling while preserving its original artistic essence. Who is this workflow for? Social Media Content Creators: Produces animated illustrations for social media posts. Digital Marketers: Generates marketing materials with motion graphics. Independent Content Producers: Creates animated content without specialized animation skills. Step-by-step Setting Instructions To simplify workflow settings, usually users just need to change basic prompt of the image and the motion of the final video following the instrution below: Sign in your PiAPI account and get your X-API-Key. Fill in your X-API-Key of PiAPI account in Midjourney and Kling nodes. Enter your desired image prompt in the Prompt node. Enter the motion prompt in Kling Video Generator node. For more complex or customization settings, users could also add more nodes to get more output images and generate more videos. Also, they could change the target image to gain a better result. As for recommendation, users could change the video models for which we would recommend live-wallpaper LoRA of Wanx. Users could check API doc to see more use cases of video models and image models for best practice. Use Case Input Prompt A gentle girl and a fluffy rabbit explore a sunlit forest together, playing by a sparkling stream. Butterflies flutter around them as golden sunlight filters through green leaves. Warm and peaceful atmosphere, 4K nature documentary style. --s 500 --sref 4028286908 --niji 6 Output Video When there is troubleshooting Check if the X-API-Key has been filled in nodes needed. Check your task status in Task History in PiAPI to get more details about task status. More Generation Case for Reference
by Joachim Hummel
This workflow automates the daily backup of all your n8n workflows to a designated folder in Nextcloud. It ensures that you always have the last 7 days of backups available while automatically deleting older ones to save space. 🔧 Features Scheduled Trigger: Runs automatically once per day (can be executed manually as well). Directory Management: Creates the /N8N-Backup directory in Nextcloud if it doesn't already exist. Backup Collection: Retrieves all workflows from the n8n instance. JSON Conversion: Converts each workflow into a JSON file. Upload to Nextcloud: Saves each backup file into the specified backup directory. Retention Control: Keeps only the latest 7 backups and deletes the rest from Nextcloud. 📌 Notes Make sure to manually create the /N8N-Backup directory in your Nextcloud account before using this flow. Update the Backup Path node if you wish to change the upload directory. Ideal for teams using n8n with self-hosted instances and requiring offsite backup via Nextcloud. 🔒 Requirements n8n instance with access to the Nextcloud node. Valid credentials for your Nextcloud account with API access. Update: 08/11/2025 “Backup Flows to Nextcloud” – Import format fixed Summary: The workflow now exports one clean JSON object per workflow (no arrays, no backup/meta fields), so files can be imported 1:1 via the n8n UI. What changed: Switched from “Convert to File” to a Set node that builds the JSON in binary data. Enabled filters.include = "all" on Get many workflows to include nodes, connections, settings, pinData, and tags. Sanitized filenames and removed IDs/metadata that can break UI imports. Fixed Nextcloud path and binary property mapping (data). Verification: Generated multiple backups and imported each via UI (“Import from file”) without errors. Each file begins with { (single object) and loads with full workflow structure. Notes: Keep “Binary Property” set to data in the Nextcloud node. Filenames are sanitized to avoid special-character issues.
by Henri
Description This template will help you verify that incoming calls from a Slack webhook actually come from Slack and not some unknown third-party services. It is mainly used to prevent attacks from malicious bots or individuals. This is a Sub-Workflow, so it should be used inside the main workflow that contains the webhook listening for Slack requests. How to Use What to Edit You should set the Slack Signing Secret that you can find on your Slack App dashboard in the general tab. It should be located under the following URL: https://api.slack.com/apps/[SLACK_APP_ID]/general Input The input should be the received Slack request. This workflow should then be placed directly after the Slack Webhook. Outputs Success Output If the signature was verified successfully, we return a key verified_signature set to true along with data from the Slack request itself. Error Output When the signature could not be verified, we raise an error. You can handle this case in your main workflow by using an Error Workflow or by changing your node settings and choosing some actions in case of an error. Changelog Version 1.0.1 (2023-12-11) Changed replace by replaceAll in JS code in case of several arguments. Added some custom replacements that encodeURIComponent does not take into account
by Rajeet Nair
📖 Description 🔹 How it works This workflow introduces an AI + Human-in-the-Loop pipeline for employee timesheet management. It combines the power of Google Drive, AI (OCR + LLM), and Gmail with a human review step to ensure accuracy and compliance. AI-Powered File Discovery Scans a Google Drive folder for new or updated timesheet files (PDF, Word, Excel, Images). AI Data Extraction Uses OCR and LLM (Mistral) to intelligently read and extract structured data. Supports multiple formats: PDF, Word (DOC/DOCX), Excel (XLS/XLSX), and Image files (JPG, PNG, scanned documents). Creates clean JSON with file details and timesheet logs (date, hours worked, tasks, notes). Smart Data Formatting Converts AI output into a clear HTML summary table for easy review. Flags potential anomalies (missing hours, duplicate dates, irregular entries). Human-in-the-Loop Verification Sends an approval email via Gmail containing: File metadata AI-generated HTML summary JSON attachment of raw extracted data HR/Managers review the summary and approve/reject before final actions occur. Post-Approval Automation (optional) Approved records can be saved in a separate Google Drive folder. Employees or HR receive confirmation emails. ⚙️ Set up steps Connect Credentials Add Google Drive and Gmail credentials in n8n. Configure Mistral (or any LLM) API credentials. Configure Google Drive In the “Search files and folders” node, replace the folderId with your company’s timesheet folder ID. Customize Extraction Schema Sticky notes explain how JSON output is structured. Adapt it for your organization’s needs (e.g., overtime, project codes). Set Up Human Verification Emails Update Gmail node recipients to your HR or approval team. Customize the email body (AI summary + JSON file attached). Activate & Test Enable the workflow. Upload a sample timesheet to trigger the AI + human verification loop. ⚡ Result: A robust AI + Human-in-the-Loop workflow that reduces repetitive data entry, prevents payroll errors, and gives HR full confidence before final approval.
by Kalyxi Ai
🚀 Automate News Discovery & Publishing with GPT-4, Google Search API & Slack 🎯 Overview Automated content publishing system that discovers industry news, transforms it into original articles using GPT-4, and publishes across multiple channels with SEO optimization and intelligent duplicate prevention. ✨ Key Features 🤖 Smart Query Generation** - AI agent generates unique search queries while checking Google Sheets to avoid duplicates 🔍 News Discovery** - Uses Google Custom Search API to find recent articles (last 7 days) 🧠 Content Intelligence** - Processes search results and skips anti-bot protected sites automatically 📝 GPT-4 Article Generation** - Creates professional, SEO-optimized news articles in Reuters/Bloomberg style 📢 Multi-Channel Publishing** - Publishes to CMS with automatic Slack notifications 📊 Comprehensive Tracking** - Logs all activity to Google Sheets for analytics and duplicate prevention 🔄 How It Works ⏰ Scheduled Trigger runs every 8 hours to maintain consistent content flow 🤖 AI Agent generates targeted search queries for your niche while checking historical data 🔍 Google Search finds recent articles and extracts metadata (title, snippet, source) 🛡️ Smart Content Handler bypasses sites with anti-bot protection, using search snippets instead ⚡ GPT-4 Processing transforms snippets into comprehensive 2000+ word articles with proper formatting 🚀 Publishing Pipeline formats content for CMS with SEO metadata and publishes automatically 📱 Notification System sends detailed Slack updates with article metrics 📈 Activity Logging tracks all published content to prevent future duplicates 🔧 Setup Requirements 📋 Prerequisites Google Custom Search API key and Search Engine ID OpenAI GPT-4 API access Google account for tracking spreadsheet Slack workspace for notifications CMS or website with API endpoint for publishing 🛠️ Step-by-Step Setup Step 1: 🔎 Google Custom Search Configuration Go to Google Custom Search Engine Create a new search engine Configure to search the entire web Copy your Search Engine ID (cx parameter) Get your API key from Google Cloud Console Step 2: 📊 Google Sheets Template Setup Create a Google Sheet with these required columns: Column A:** timestamp - ISO date format (YYYY-MM-DD HH:MM:SS) Column B:** query - The search query used Column C:** title - Published article title Column D:** url - Published article URL Column E:** status - Publication status (success/failed) Column F:** word_count - Final article word count Template URL: Copy this Google Sheets template Step 3: 🔑 Credential Configuration Set up the following credentials in n8n: 📊 Google Sheets API - OAuth2 connection to your Google account 🤖 OpenAI API - Your GPT-4 API key 📱 Slack Webhook - Webhook URL for your notification channel 🔍 Custom Search API - Your Google Custom Search API key Step 4: ⚙️ Workflow Customization Modify these key parameters to fit your needs: 🎯 Search Topic:** Edit the AI agent prompt to focus on your industry ⏰ Publishing Schedule:** Adjust the cron trigger (default: every 8 hours) 📝 Article Length:** Modify GPT-4 prompt for different word counts 🌐 CMS Endpoint:** Update the publishing node with your website's API 🎨 Customization Options 🎯 Content Targeting Modify the AI agent's search query generation to focus on specific industries Adjust date restrictions (currently set to last 7 days) Change the number of search results processed per run ✍️ Article Style Customize GPT-4 prompts for different writing styles (formal, casual, technical) Adjust article length requirements Modify SEO optimization parameters 📡 Publishing Channels Add additional CMS endpoints for multi-site publishing Configure different notification channels (Discord, Teams, etc.) Set up social media auto-posting integration 💡 Use Cases 📰 Automated news websites 📝 Industry blog content generation 🔍 SEO content pipeline automation 📊 News aggregation and republishing 📈 Content marketing automation 🛠️ Technical Notes Workflow includes error handling for anti-bot protection Duplicate prevention through Google Sheets tracking Rate limiting considerations for API usage Automatic retry logic for failed requests 🆘 Support For setup assistance or customization help, refer to the workflow's internal documentation nodes or contact the template creator.
by Aleksey Panov
Perplexity API Module This reusable workflow allows you to interact with the Perplexity API using the sonar or sonar-pro models. It is designed to be triggered from other workflows and accepts dynamic prompts via input parameters. Features 🧱 Modular: Triggered using Execute Workflow from any other workflow 📥 Inputs: SystemPrompt: Set your system-level instruction for the LLM UserPrompt: The main user prompt for the conversation 🧠 Uses Perplexity’s chat/completions endpoint 🔐 Built with API authentication in mind (Bearer token or header auth) 🔁 Easily extendable for any model in the Perplexity suite Models supported sonar sonar-pro See full model list and capabilities Usage Set up your credentials in n8n under HTTP Bearer or Header Auth. Add this workflow as a subworkflow using the “Execute Workflow” node. Pass the desired SystemPrompt and UserPrompt as input variables. Receive the model response in return. Notes This template is inactive by default and safe to import. Includes sticky notes with API references and model info.
by DataMinex
Transform property searches into personalized experiences! This powerful automation delivers dream home matches straight to clients' inboxes with professional CSV reports - all from a simple web form. 🚀 What this workflow does Create a complete real estate search experience that works 24/7: ✨ Smart Web Form - Beautiful property search form captures client preferences 🧠 Dynamic SQL Builder - Intelligently creates optimized queries from user input ⚡ Lightning Database Search - Scans 1000+ properties in milliseconds 📊 Professional CSV Export - Excel-ready reports with complete property details 📧 Automated Email Delivery - Personalized emails with property previews and attachments 🎯 Perfect for: Real Estate Agents** - Generate leads and impress clients with instant service Property Managers** - Automate tenant matching and recommendations Brokerages** - Provide 24/7 self-service property discovery Developers** - Showcase available properties with professional automation 💡 Why this workflow is a game-changer > "From property search to professional report delivery in under 30 seconds!" ⚡ Instant Results: Zero wait time for property matches 🎨 Professional Output: Beautiful emails that showcase your expertise 📱 Mobile Optimized: Works flawlessly on all devices 🧠 Smart Filtering: Only searches criteria clients actually specify 📈 Infinitely Scalable: Handles unlimited searches simultaneously 📊 Real Estate Data Source Built on authentic US market data from the Github: 🏘️ 1000+ Real Properties across all US states 💰 Actual Market Prices from legitimate listings 🏠 Complete Property Details (bedrooms, bathrooms, square footage, lot size) 📍 Verified Locations with accurate cities, states, and ZIP codes 🏢 Broker Information for authentic real estate context 🛠️ Quick Setup Guide Prerequisites Checklist ✅ [ ] SQL Server database (MySQL/PostgreSQL also supported) [ ] Gmail account for automated emails [ ] n8n instance (cloud or self-hosted) [ ] 20 minutes setup time Step 1: Import Real Estate Data 📥 🌟 Download the data 💾 Download CSV file (1000+ properties included) 🗄️ Create SQL Server table with this exact schema: CREATE TABLE [REALTOR].[dbo].[realtor_usa_price] ( brokered_by BIGINT, status NVARCHAR(50), price DECIMAL(12,2), bed INT, bath DECIMAL(3,1), acre_lot DECIMAL(10,8), street BIGINT, city NVARCHAR(100), state NVARCHAR(50), zip_code INT, house_size INT, prev_sold_date NVARCHAR(50) ); 📊 Import your CSV data into this table Step 2: Configure Database Connection 🔗 🔐 Set up Microsoft SQL Server credentials in n8n ✅ Test connection to ensure everything works 🎯 Workflow is pre-configured for the table structure above Step 3: Gmail Setup (The Magic Touch) 📧 🌐 Visit Google Cloud Console 🆕 Create new project (or use existing) 🔓 Enable Gmail API in API Library 🔑 Create OAuth2 credentials (Web Application) ⚙️ Add your n8n callback URL to authorized redirects 🔗 Configure Gmail OAuth2 credentials in n8n ✨ Authorize your Google account Step 4: Launch Your Property Search Portal 🚀 📋 Import this workflow template (form is pre-configured) 🌍 Copy your webhook URL from the Property Search Form node 🔍 Test with a sample property search 📨 Check email delivery with CSV attachment 🎉 Go live and start impressing clients! 🎨 Customization Playground 🏷️ Personalize Your Brand // Customize email subjects in the Gmail node "🏠 Exclusive Properties Curated Just for You - ${results.length} Perfect Matches!" "✨ Your Dream Home Portfolio - Handpicked by Our Experts" "🎯 Hot Market Alert - ${results.length} Premium Properties Inside!" 🔧 Advanced Enhancements 🎨 HTML Email Templates**: Create stunning visual emails with property images 📊 Analytics Dashboard**: Track popular searches and user engagement 🔔 Smart Alerts**: Set up automated price drop notifications 📱 Mobile Integration**: Connect to React Native or Flutter apps 🤖 AI Descriptions**: Add ChatGPT for compelling property descriptions 🌍 Multi-Database Flexibility // Easy database switching // MySQL: Replace Microsoft SQL node → MySQL node // PostgreSQL: Swap for PostgreSQL node // MongoDB: Use MongoDB node with JSON queries // Even CSV files: Use CSV reading nodes for smaller datasets 🚀 Advanced Features & Extensions 🔥 Pro Tips for Power Users 🔄 Bulk Processing**: Handle multiple searches simultaneously 💾 Smart Caching**: Store popular searches for lightning-fast results 📈 Lead Scoring**: Track which properties generate most interest 📅 Follow-up Automation**: Schedule nurturing email sequences 🎯 Integration Possibilities 🏢 CRM Connection**: Auto-add qualified leads to your CRM 📅 Calendar Integration**: Add property viewing scheduling 📊 Price Monitoring**: Track market trends and price changes 📱 Social Media**: Auto-share featured properties to social platforms 💬 Chat Integration**: Connect to WhatsApp or SMS for instant alerts 🔗 Expand Your Real Estate Automation 🌟 Related Workflow Ideas 🤖 AI Property Valuation - Add machine learning for price predictions 📊 Market Analysis Reports - Generate comprehensive market insights 📱 SMS Property Alerts - Instant text notifications for hot properties 🏢 Commercial Property Search - Adapt for office and retail spaces 💹 Investment ROI Calculator - Add financial analysis for investors 🏘️ Neighborhood Analytics - Include school ratings and demographics 🛠️ Technical Extensions 📷 Image Processing: Auto-resize and optimize property photos 🗺️ Map Integration: Add interactive property location maps 📱 Progressive Web App: Create mobile app experience 🔔 Push Notifications: Real-time alerts for saved searches 🚀 Get Started Now Import this workflow template Configure your database and Gmail Customize branding and messaging Launch your professional property search portal Watch client satisfaction soar!
by Growth AI
AI-powered alt text generation from Google Sheets to WordPress media Who's it for WordPress site owners, content managers, and accessibility advocates who need to efficiently add alt text descriptions to multiple images for better SEO and web accessibility compliance. What it does This workflow automates the process of generating and updating alt text for WordPress media files using AI analysis. It reads image URLs from a Google Sheet, analyzes each image with Claude AI to generate accessibility-compliant descriptions, updates the sheet with the generated alt text, and automatically applies the descriptions to the corresponding WordPress media files. The workflow includes error handling to skip unsupported media formats and continue processing. How it works Input: Provide a Google Sheets URL containing image URLs and WordPress media IDs Authentication: Retrieves WordPress credentials from a separate sheet and generates Base64 authentication Processing: Loops through each image URL in the sheet AI Analysis: Claude AI analyzes each image and generates concise, accessible alt text (max 125 characters) Error Handling: Automatically skips unsupported media formats and continues with the next item Update Sheet: Writes the generated alt text back to the Google Sheet WordPress Update: Updates the WordPress media library with the new alt text via REST API Requirements Google Sheets with image URLs and WordPress media IDs WordPress site with Application Passwords enabled Claude AI (Anthropic) API credentials WordPress admin credentials stored in Google Sheets Export Media URLs WordPress plugin for generating the media list How to set up Step 1: Export your WordPress media URLs Install the "Export Media URLs" plugin on your WordPress site Go to the plugin settings and check both ID and URL columns for export (these are mandatory for the workflow) Export your media list to get the required data Step 2: Configure WordPress Application Passwords Go to WordPress Admin → Users → Your Profile Scroll down to "Application Passwords" section Enter application name (e.g., "n8n API") Click "Add New Application Password" Copy the generated password immediately (it won't be shown again) Step 3: Set up Google Sheets Duplicate this Google Sheets template to get the correct structure. The template includes two sheets: Sheet 1: "Export media" - Paste your exported media data with columns: ID (WordPress media ID) URL (image URL) Alt text (will be populated by the workflow) Sheet 2: "Infos client" - Add your WordPress credentials: Admin Name: Your WordPress username KEY: The application password you generated Domaine: Your site URL without https:// (format: "example.com") Step 4: Configure API credentials Add your Anthropic API credentials to the Claude node Connect your Google Sheets account to the Google Sheets nodes How to customize Language: The Claude prompt is in French - modify it in the "Analyze image" node for other languages Alt text length: Adjust the 125-character limit in the Claude prompt Batch processing: Change the batch size in the Split in Batches node Error handling: The workflow automatically handles unsupported formats, but you can modify the error handling logic Authentication: Customize for different WordPress authentication methods This workflow is perfect for managing accessibility compliance across large WordPress media libraries while maintaining consistent, AI-generated descriptions. It's built to be resilient and will continue processing even when encountering unsupported media formats.
by Yusuke
🧠 Overview Generate empathetic, professional reply drafts for customer or user messages. The workflow detects sentiment, tone, and risk level, drafts a concise response, sanitizes PII/links/emojis, and auto-escalates risky or low-confidence cases to human review. ⚙️ How It Works Input — Manual Test or Webhook Trigger AI Agent (Empathy) — returns { sentiment, tone, reply, confidence, needs_handover } Post-Process & Sanitize — removes URLs/hashtags, masks PII, caps length Risk & Handover Rules — checks confidence threshold, risk words, and negativity Routing — auto-send safe replies or flag to Needs Review 🧩 Setup Instructions (3–5 min) Open Set Config1 and adjust: MAX_LEN (default 600) ADD_FOLLOWUP_QUESTION (true/false) FORMALITY (auto | casual | polite) EMOJI_ALLOWED (true/false), BLOCK_LINKS (true/false) RISK_WORDS (e.g., refund, lawsuit, self-harm) Connect Anthropic credential to Anthropic Chat Model (Optional) Replace Manual Trigger with Webhook Trigger for real-time use > Tip: If you need to show literal angle brackets in messages, use backticks like `<example>` (no HTML entities needed). 📚 Use Cases 1) SaaS Billing Complaints Input:** “I was billed after canceling. This is unacceptable.” Output:** Calm, apologetic reply with refund steps; escalates if refund is in RISK_WORDS or confidence < 0.45. 2) Product Bug Reports Input:** “Upload fails on large files since yesterday.” Output:** Acknowledges impact, requests logs, offers workaround; routes to auto-send if low risk and high confidence. 3) Delivery/Logistics Delays Input:** “My order is late again. Should I file a complaint?” Output:** Empathetic apology, ETA guidance, partial credit policy note; escalates if language indicates legal action. 4) Community Moderation / Abuse Input:** “Support is useless—you’re all scammers.” Output:** De-escalating, policy-aligned response; auto-flags due to negative sentiment + risk keyword match. 5) Safety / Self-harm Mentions Input:** “I feel like hurting myself if this isn’t fixed.” Output:* *Immediate escalation**, inserts approved resources; never auto-sends. 🚨 Auto-Escalation Rules (defaults) Negative** sentiment Message matches any RISK_WORDS confidence < 0.45 Mentions of legal, harassment, or self-harm context 🧪 Notes & Best Practices 🔐 No hardcoded API keys — use n8n Credentials 🧭 Tune thresholds and RISK_WORDS to your org policy 🧩 Works on self-hosted or cloud n8n ✅ Treat outputs as drafts; ship after human/policy review 🔗 Resources GitHub (template JSON):** https://github.com/yskmtb0714/n8n-workflows/blob/main/empathy-reply-assistant.json