6 templates found
Category:
Author:
Sort:

YouTube video to AI-powered auto blogging and affiliate automation

🚀 YouTube to WordPress AI-Powered Automation Transform your YouTube content into professional blog posts automatically! This n8n template seamlessly converts your YouTube videos into fully-formatted, SEO-optimized WordPress blog posts using AI-powered content generation—all without lifting a finger. --- 🎯 What This Automation Does 📺 Monitors your YouTube channel for new video uploads 🔍 Extracts key video information (title, description, URL, thumbnail) 🤖 Leverages AI to generate comprehensive blog content based on video material ✏️ Creates SEO-optimized titles, excerpts, and tags 🖼️ Formats posts beautifully with embedded videos and proper HTML structure 📝 Publishes directly to WordPress via secure API connection ⏱️ Runs on your schedule — daily, weekly, or after each new upload --- 🧑‍🏫 Step-by-Step Video Tutorial 🎥 Watch the implementation tutorial: [](https://youtu.be/IkFgllPNkCo) 📌 See the complete workflow setup and content transformation in action. --- 🌐 Useful Links 🔗 Get started with n8n Cloud: 👉 https://n8n.io/cloud/ 📘 YouTube Data API documentation: 👉 https://developers.google.com/youtube/v3 📚 WordPress REST API handbook: 👉 https://developer.wordpress.org/rest-api/ 🧠 OpenAI API documentation: 👉 https://platform.openai.com/docs/api-reference --- 🛠 Prerequisites ✅ n8n installation (self-hosted or cloud) ✅ YouTube Data API key ✅ AI provider API key (OpenAI, Google Gemini, etc.) ✅ WordPress website with REST API enabled ✅ WordPress application password for secure authentication --- 📋 Step-by-Step Implementation 1️⃣ YouTube Video Detection Youtube RSS Feedlink to fetch new video automatically Implement filtering to process only videos not yet published to WordPress 2️⃣ Content Preparation Extract essential video metadata (ID, title, description, thumbnail URL) Structure the information for AI processing and WordPress publication Format video thumbnails for use as featured images in blog posts 3️⃣ AI Content Generation Configure your preferred AI provider (OpenAI, Gemini, etc.) Create detailed prompts that instruct the AI to: Maintain your brand voice and writing style Structure content with proper headings and subheadings Creates Internal Links from existing blogposts Creators Extenal links using affilaite links and other link database. Engaging SEO frendly. Automatically monetizes by embedding social PartnerStack Links Include key points from the video Generate SEO-friendly paragraphs and conclusions 4️⃣ Content Enhancement Format the AI-generated content with proper HTML structure Add responsive embedded YouTube player Include attribution links back to original video Create custom intro and conclusion sections 5️⃣ WordPress Publishing Securely connect to WordPress via REST API Set post parameters (title, content, excerpt, categories, tags) Configure post status (publish immediately or save as draft) Add featured image using video thumbnail 6️⃣ Notification & Logging Receive email or Slack notifications when new posts are published Log workflow executions for troubleshooting Track successful publications for reporting --- 💰 Automatic Affiliate Marketing Integration Transform your blog posts into passive income generators by automatically embedding relevant affiliate links based on your video content: PartnerStack Integration Dynamically fetch relevant affiliate links from your PartnerStack account Intelligently match products to video content using AI-powered relevance scoring Automatically insert formatted affiliate links with proper disclosure notices Track performance metrics for each generated post's affiliate conversions Example setup: Connect PartnerStack API → Filter relevant products → Insert links in strategic post positions Custom Affiliate Database via Airtable Create a centralized product-keyword Airtable database: Product name and description Affiliate link with your unique ID Category and keyword triggers Commission rates and expiration dates Auto-scan blog content to identify keyword matches Insert highest-converting links based on historical performance Rotate affiliate links to test different products and placements Advanced Monetization Features Amazon Associates product matching based on video content Time-sensitive promo codes inserted for limited-time offers Geo-targeted affiliate links based on visitor location A/B testing system to optimize link placement and conversion Automated disclosure statements to maintain FTC compliance Implementation Steps Connect to your PartnerStack account via API Create an Airtable base with your affiliate product database Configure the AI to identify product-mention opportunities Add a post-processing node to insert relevant affiliate links Implement tracking parameters to measure performance This integration not only saves time manually adding affiliate links, but also increases conversion rates through intelligent product matching and optimal placement within your automatically generated blog content. > 💡 Pro Tip: Create separate tracking IDs for your automated YouTube-to-WordPress posts to measure this specific channel's performance in your affiliate dashboards. 💡 Advanced Customizations Content Templates Create specialized formatting based on video categories: Tutorial videos: Step-by-step instructions with timestamps Review videos: Pros/cons sections with ratings Interview videos: Question-answer format with speaker attribution Category & Tag Management Automatically organize your WordPress content: Assign categories based on video topics or playlists Generate tags from video keywords and descriptions Create custom taxonomies for video series Multi-Platform Distribution Extend your content reach by adding: Social media announcement posts Email newsletter inclusion Content syndication to Medium or LinkedIn --- ⚠️ Troubleshooting | Issue | Solution | |-------|----------| | AI generation timeout | Increase timeout settings or use chunked processing | | WordPress API errors | Verify application password and user permissions | | Missing video embedding | Check oEmbed settings in WordPress | | Duplicate posts | Implement content fingerprinting for detection | | Poor content quality | Refine AI prompts with better instructions | --- 🙌 Why Use This Template Content creators typically spend 2-4 hours converting each video into a quality blog post. This automation: ⏱️ Saves 10+ hours weekly for active YouTube creators 🔍 Boosts SEO performance with multi-platform content 🌐 Expands audience reach to text-preferring visitors 💰 Increases monetization opportunities across platforms 🧠 Frees creative energy for producing better videos Don't choose between video and written content—have both automatically! --- 🚀 Get Started Now Import the template → Connect your accounts → Watch your blog grow alongside your channel. 👉 AMJID ALI'S PROFILE 👉 website 👉 Explore more on youtube --- Knowledge Base: youtube-api, wordpress-automation, content-repurposing, ai-blog-generation, n8n-workflow, creator-tools, video-to-text, multi-platform-publishing

Amjid AliBy Amjid Ali
3757

Google Maps lead scraper & enrichment with AI-powered personalized outreach

⚡ Quick Setup Import this workflow into your n8n instance. Add your Apify, Google Sheets, and Firecrawl credentials. Activate the workflow to start your automated lead enrichment system. Copy the webhook URL from the MCP trigger node. Connect AI agents using the MCP URL. 🔧 How it Works This solution combines two powerful workflows to deliver fully enriched, AI-ready business leads from Google Maps: Apify Google Maps Scraper Node: Collects business data and, if enabled, enriches each lead with contact details and social profiles. Leads Missing Enrichment: Any leads without contact or social info are automatically saved to a Google Sheet. Firecrawl & Code Node Workflow: A second workflow monitors the Google Sheet, crawls each business’s website using Firecrawl, and extracts additional social media profiles or contact info using a Code node. Personalization Logic: AI-powered nodes generate tailored outreach content for each enriched lead. Native Integration: The entire process is exposed as an MCP-compatible interface, returning enriched and personalized lead data directly to the AI agent. 📋 Available Operations Business Search: Find businesses on Google Maps by location, category, or keyword. Lead Enrichment: Automatically append contact details, social profiles, and other business info using Apify and Firecrawl. Personalized Outreach Generation: Create custom messages or emails for each lead. Batch Processing: Handle multiple leads in a single request. Status & Error Reporting: Get real-time feedback on processing, enrichment, and crawling. 🤖 AI Integration Parameter Handling: AI agents automatically provide values for: Search queries (location, keywords, categories) Enrichment options (contact, social, etc.) Personalization variables (name, business type, etc.) Response Format: Returns fully enriched lead data and personalized outreach content in a structured format.

A ZBy A Z
2727

Automate RSS content with AI: summarize, notify & archive

🚀 Product Overview This n8n workflow template automates the entire lifecycle of RSS feed monitoring—perfect for tech news aggregation, content curation, and AI-powered updates. It reads RSS links from a Google Sheets file, fetches content, summarizes it using GPT, sends digest messages to Discord, and stores clean content into a Google Sheets database for future use. 🔄 How It Works ✅ 1. Scheduled RSS Fetching Triggers every 24 hours via Schedule Trigger. Reads a list of RSS feed URLs from a centralized Google Sheets file. Splits them for individual processing. 🔍 2. Feed Scanning & Filtering Loops through each RSS link and retrieves the latest entries. Filters out content older than 24 hours to avoid duplicates or outdated info. 🤖 3. AI Summarization & Messaging Aggregates filtered entries. Summarizes content using an AI Agent (OpenAI Chat Model). Sends beautifully formatted summaries directly to Discord as a message, keeping your community or team informed. 🗃️ 4. Persistent Storage Converts each item to Markdown. Writes entries to a second Google Sheets file, including a rate limiter (wait step) to avoid API limits. 💡 Why Use This Template? No-code setup: Drag, drop, and deploy in n8n. AI-powered: Smart summarization reduces content noise. Discord integration: Great for community managers, news bots, or internal updates. Database-ready: Stores everything cleanly for later analysis or republishing. 🧩 Use Cases Daily tech news digest for Discord communities. Content curation for newsletters. Competitive intelligence via targeted RSS feeds. Auto-archiving of blog or podcast updates.

VictorBy Victor
609

Food image analysis for calorie estimation with Vision AI and Telegram

Who’s it for Teams building health/fitness apps, coaches running check-ins in chat, and anyone who needs quick, structured nutrition insights from food photos—without manual logging. What it does / How it works This workflow accepts a food image (URL or Base64), uses a vision-capable LLM to infer likely ingredients and rough gram amounts, estimates per-ingredient calories, and returns a strict JSON summary with total calories and a short nutrition note. It normalizes different payloads (e.g., Telegram/LINE/Webhook) into a common format, handles transient errors with retries, and avoids hardcoded secrets by using credentials/env vars. Requirements Vision-capable LLM credentials (e.g., gpt-4o or equivalent) One input channel (Webhook, Telegram, or LINE) Environment variables for model name/temperature and optional request validation How to set up Connect your input channel and enable the Webhook (copy the test URL). Add LLM credentials and set LLMMODEL and LLMTEMPERATURE (e.g., 0.3). Turn on the workflow, send a sample payload with imageUrl, and confirm the strict JSON output. (Optional) Configure a reply node (Telegram/Slack or HTTP Response) and a logger (Google Sheets/Notion). How to customize the workflow Outputs: Add macros (protein/fat/carb) or micronutrient fields. Units: Convert portion descriptions (piece/slice) to grams with your own mapping. Languages: Toggle multilingual output (ja/en). Policies: Tighten validation (reject low-confidence parses) or add manual review steps. Security: Use signed/temporary URLs for private images; mask PII in logs. Data model (strict JSON) json { "dishName": "string", "ingredients": [{ "name": "string", "amount": 0, "calories": 0 }], "totalCalories": 0, "nutritionEvaluation": "string" } Notes Rename all nodes clearly, include sticky notes explaining the setup, and never commit real IDs, tokens, or API keys.

Toshiya MinamiBy Toshiya Minami
502

Automate employee date tracking & reminders for HR with JavaScript

HR Date Management Automation - Complete Setup Guide 🎯 How It Works This n8n workflow transforms your HR department from reactive to proactive by automatically monitoring 5 critical employee timelines and generating smart alerts before deadlines hit. Core Components Data Input → Employee information (hire dates, contracts, certifications) Date Analysis Engine → Calculates days until critical events Smart Categorization → Sorts employees by urgency level Reminder Scheduler → Creates proactive notifications Multi-Format Export → Sends alerts to your preferred systems Business Value Prevents compliance violations ($5K-50K+ in fines) Reduces HR workload (15-20 hours/month saved) Improves employee experience (no missed reviews/renewals) Provides management visibility (dashboard reporting) ----- 🚀 Quick Start Test Import the Workflow Download the Javascript_Hr.json file Open n8n and click “Import from file” Select the downloaded JSON file Click “Import” Test with Sample Data Click the “Execute Workflow” button Review the sample output in each node Check the final export data format What you’ll see: 5 sample employees with different scenarios Calculated days until contract/certification expiry Priority levels (high/medium/low) Scheduled reminders with recipient emails Export data in multiple formats ----- 🔧 Real-World Integration Setup Option 1: Google Sheets Integration (Most Popular) Step 1: Prepare Your Employee Data Create a Google Sheet with these columns: | Employee ID | Name | Email | Department | Hire Date | Contract End | Certification Expiry | Last Review | Probation End | Vacation Days | Status | Sample data format: | 1 | John Smith | john@company.com | IT | 2024-01-15 | 2025-12-31 | 2025-03-20 | 2024-06-15 | 2024-07-15 | 20 | active | Step 2: Replace Sample Data Generator Delete the “Sample Data Generator” node Add “Google Sheets” node Connect to your Google account Configure these settings: Operation: Read Document: Your employee spreadsheet Sheet: Employee data sheet Range: A1:K100 (adjust for your data size) Options: ✅ RAW data, ✅ Header row Step 3: Map Your Data Add a “Set” node after Google Sheets to standardize field names: javascript // Map your sheet columns to workflow format { "id": "{{ $json['Employee ID'] }}", "name": "{{ $json['Name'] }}", "email": "{{ $json['Email'] }}", "department": "{{ $json['Department'] }}", "hiredOn": "{{ $json['Hire Date'] }}", "contractEndDate": "{{ $json['Contract End'] }}", "certificationExpiry": "{{ $json['Certification Expiry'] }}", "lastReviewDate": "{{ $json['Last Review'] }}", "probationEndDate": "{{ $json['Probation End'] }}", "vacationDays": "{{ $json['Vacation Days'] }}", "status": "{{ $json['Status'] }}" } Option 2: HRIS Integration (BambooHR Example) Step 1: BambooHR API Setup Get your BambooHR API key from Settings > API Keys Note your company subdomain (e.g., yourcompany.bamboohr.com) Step 2: Replace Sample Data Generator Delete the “Sample Data Generator” node Add “HTTP Request” node Configure these settings: Method: GET URL: https://api.bamboohr.com/api/gateway.php/[SUBDOMAIN]/v1/employees/directory Authentication: Basic Auth Username: Your API key Password: x (leave as ‘x’) Headers: Accept: application/json Step 3: Transform BambooHR Data Add a “Code” node to transform the API response: javascript // Transform BambooHR response to workflow format const employees = []; for (const employee of $input.all()) { const emp = employee.json; employees.push({ id: emp.id, name: ${emp.firstName} ${emp.lastName}, email: emp.workEmail, department: emp.department, hiredOn: emp.hireDate, contractEndDate: emp.terminationDate || "2025-12-31", // Default if not set certificationExpiry: emp.customCertDate || "2025-12-31", lastReviewDate: emp.customReviewDate || null, probationEndDate: emp.customProbationDate || null, vacationDays: emp.paidTimeOff || 20, status: emp.employeeStatus || "active" }); } return employees.map(emp => ({ json: emp })); Option 3: CSV File Upload Step 1: Prepare CSV File Create a CSV with the same structure as the Google Sheets format. Step 2: Use CSV Parser Replace “Sample Data Generator” with “Read Binary File” node Add “CSV Parser” node Configure settings: Include Headers: Yes Delimiter: Comma Skip Empty Lines: Yes ----- 📧 Output Integration Setup Email Notifications Step 1: Add Email Node Add “Email” node after “Reminder Scheduler” Connect to your email provider (Gmail/Outlook) Step 2: Configure Email Templates javascript // Dynamic email content based on reminder type const reminder = $json; const emailTemplates = { contract_renewal: { subject: 🚨 Contract Renewal Required - ${reminder.employeeName}, body: ` Hi HR Team, ${reminder.employeeName}'s contract expires on ${reminder.dueDate}. Days remaining: ${Math.ceil((new Date(reminder.dueDate) - new Date()) / (10006060*24))} Please initiate renewal process immediately. Best regards, HR Automation System ` }, certification_renewal: { subject: 📜 Certification Renewal Reminder - ${reminder.employeeName}, body: ` Hi ${reminder.employeeName}, Your certification expires on ${reminder.dueDate}. Please renew your certification to maintain compliance. Contact HR if you need assistance. Best regards, HR Team ` } }; const template = emailTemplates[reminder.type]; return { to: reminder.recipientEmail, subject: template.subject, body: template.body }; Slack Integration Step 1: Add Slack Node Add “Slack” node after “Advanced Date Filters” Connect to your Slack workspace Step 2: Configure Channel Alerts javascript // Send summary to hr-alerts channel const summary = $json.summary; const message = ` 🏢 Daily HR Report 👥 Total Employees: ${summary.totalEmployees} 🆕 New Hires: ${summary.newHires} ⚠️ High Priority Actions: ${summary.highPriority} 📋 Contracts Expiring: ${summary.contractsExpiring} 🎓 Certifications Expiring: ${summary.certificationsExpiring} Generated: ${new Date().toLocaleDateString()} `; return { channel: 'hr-alerts', text: message }; Google Calendar Integration Step 1: Add Calendar Node Add “Google Calendar” node after “Reminder Scheduler” Connect to your Google account Step 2: Create Calendar Events javascript // Create calendar events for upcoming deadlines const reminder = $json; const eventTitles = { contract_renewal: Contract Renewal - ${reminder.employeeName}, certification_renewal: Certification Renewal - ${reminder.employeeName}, performance_review: Performance Review - ${reminder.employeeName}, probation_review: Probation Review - ${reminder.employeeName} }; return { calendarId: 'hr-calendar@yourcompany.com', summary: eventTitles[reminder.type], description: reminder.message, start: { dateTime: reminder.dueDate, timeZone: 'America/New_York' }, end: { dateTime: reminder.dueDate, timeZone: 'America/New_York' }, attendees: [ { email: 'hr@yourcompany.com' }, { email: reminder.recipientEmail } ] }; ----- 🎯 Scheduling & Automation Daily Monitoring Setup Step 1: Add Cron Trigger Replace “Manual Trigger” with “Cron” node Set schedule: 0 9 1-5 (9 AM, Monday-Friday) Configure timezone to your business hours Step 2: Error Handling Add “Error Trigger” node Connect to email notification for failures Set up retry logic for failed integrations Weekly Reports Step 1: Create Weekly Summary Add separate “Cron” trigger for weekly reports Set schedule: 0 9 1 (9 AM every Monday) Modify the filtering logic to show weekly trends ----- 🔍 Customization Options Adjust Alert Timings In the “Date Analysis & Categorization” node: javascript // Modify these values to change alert timing const isContractExpiringSoon = daysUntilContractEnd <= 90; // Change from 90 days const isCertificationExpiringSoon = daysUntilCertificationExpiry <= 60; // Change from 60 days const needsReview = daysSinceLastReview >= 365; // Change from 365 days Add Custom Employee Categories javascript // Add new categories in the analysis node const isContractor = employee.employeeType === 'contractor'; const isRemoteWorker = employee.location === 'remote'; const isHighRisk = employee.performanceRating === 'needs_improvement'; Custom Date Formats Modify the “Date Formatting & Export” node to add your preferred formats: javascript // Add custom date format const formatters = { custom: (date) => { const options = { year: 'numeric', month: 'long', day: 'numeric', weekday: 'long' }; return date.toLocaleDateString('en-US', options); } }; ----- 🎚️ Testing & Validation Step 1: Data Validation Test with 2-3 sample employees first Verify all dates are parsing correctly Check that calculations match manual calculations Step 2: Alert Testing Create test scenarios with dates 30/60/90 days out Verify emails are sent to correct recipients Test Slack notifications in a test channel Step 3: Performance Testing Test with your full employee dataset Monitor execution time (should be under 30 seconds) Check for memory usage with large datasets ----- 🆘 Troubleshooting Guide Common Issues Date Parsing Errors javascript // Add date validation in the analysis node const parseDate = (dateStr) => { const date = new Date(dateStr); if (isNaN(date.getTime())) { console.error(Invalid date: ${dateStr}); return null; } return date; }; Missing Data Fields javascript // Add data validation const validateEmployee = (employee) => { const required = ['name', 'email', 'hiredOn']; const missing = required.filter(field => !employee[field]); if (missing.length > 0) { console.error(Missing required fields for ${employee.name}: ${missing.join(', ')}); return false; } return true; }; API Rate Limits Add “Wait” nodes between API calls Implement retry logic with exponential backoff Cache API responses when possible ----- 🚀 Advanced Features Multi-Company Support javascript // Add company filtering in the analysis node const processEmployeesByCompany = (employees, companyId) => { return employees.filter(emp => emp.companyId === companyId); }; Custom Notification Rules javascript // Advanced notification logic const shouldNotify = (employee, eventType) => { const rules = { contract_renewal: employee.department !== 'intern', certificationrenewal: employee.role === 'certifiedprofessional', performance_review: employee.status === 'active' }; return rules[eventType] || false; }; Integration with Time Tracking javascript // Connect to time tracking APIs const calculateWorkingDays = (startDate, endDate) => { // Implementation for working days calculation // Excluding weekends and holidays }; ----- This workflow transforms your HR department from reactive to proactive, preventing costly compliance issues while improving employee experience. The modular design allows you to start simple and add complexity as needed.

David OlusolaBy David Olusola
399

Automatic Gmail unsubscribe detection with AI and Google Sheets contact management

Automatically detect unsubscribe replies in your outreach emails and clean your Google Sheets contact list; keeping your domain reputation and deliverability strong. --- 🎯 Who it’s for This template is designed for freelancers, lead generation specialists, and outreach managers; particularly those running email outreach campaigns for clients or personal lead-gen projects. If you send cold emails, manage multiple lead lists, or handle outreach at scale, this workflow helps you automatically manage unsubscribe requests to maintain healthy email deliverability and protect your domain reputation. --- ⚙️ How it works Trigger: The workflow starts when a new reply is received in your Gmail inbox. Intent Detection: The email text is analyzed using OpenAI to detect unsubscribe intent (“unsubscribe”, “remove me”, “opt out”, etc.). Normalization & Filtering: A Code node verifies the AI output for accuracy and ensures the result is standardized as either "unsubscribe" or "keep". Check & Update Sheets: If the contact requested removal, the workflow checks your Unsubscribe Sheet to see if they’re already listed. If not, the contact is added to the Unsubscribe Sheet and simultaneously removed from your Main Outreach Sheet. Optional Gmail Label: Adds an “Unsubscribe” tag in Gmail for quick visual tracking (optional customization). --- 🧩 Requirements To run this workflow, you’ll need: Gmail Credentials → for reading incoming replies and applying labels. Google Sheets Credentials → to manage both the “Main” and “Unsubscribe” spreadsheets. OpenAI API Key → used for detecting unsubscribe intent from message text. All credentials can be added through the n8n Credentials Manager. --- 🧠 How to Customize Polling Time: Adjust how often the Gmail Trigger checks for new replies (default: every 5 minutes). Sheets: Replace the linked Google Sheets IDs with your own. You can change sheet names and columns freely. Intent Rules: Modify the Code node to include additional unsubscribe phrases or alternate keywords. Optional Gmail Tagging: Enable or disable tagging for unsubscribed messages. Secondary Validation: Enable the second “If” check after the OpenAI node to double-confirm unsubscribe intent before moving contacts. --- 💡 Why this workflow matters By automatically managing unsubscribe requests, you: Respect recipients’ opt-out preferences Reduce spam complaints Protect your domain reputation and increase deliverability Save hours of manual list cleaning This is a must-have automation for anyone running cold email outreach, especially freelancers managing multiple client inboxes. --- 🪄 Quick Setup Tips Replace all "Gmail account" and "Google Service Account account" credential references with your actual credentials. Ensure your sheet has an EMAIL column for lookup. Test with a few mock replies before activating for production. Optional: Add a time-based trigger to run the sheet cleanup periodically.

ItunuBy Itunu
98
All templates loaded