by n8n Team
This workflow creates a new item in a Monday.com board when a new contact is created in Mautic. Additional fields can be added to the workflow to send more data to Monday.com. Prerequisites Monday account and Monday credentials. Mautic account and Mautic credentials. How it works When a new contact is created in Mautic, the workflow creates a new item in the Monday.com board. By default the workflow will send the contact's email address to Monday.com and name the item after the contact's first and last name. Setup This workflow requires that you set up a Monday.com board. To do so, follow the steps below: In Monday.com, create a new item board. In the board, add the following columns: Email (with type "Email") Any other fields you require to the board. If more columns are created, you will need to find out what their ID's are by turning on developer mode as explained in this Monday article. With these new IDs, you can add them to the Create item Monday.com node, this is explained further in the workflow as a sticky note.
by Gregor
Awork currently does not support a check for open subtasks or open dependencies when setting a task status to done. This workflow offers you a simple workaround to add this functionality to Awork and notifies users when triggered. Multiple configuration options available. How it works Triggered via Awork Webhook call on status change of tasks If task is marked as done, subtasks and/or dependent tasks are checked for their status If unfinished tasks are found, a status rollback to previous status is performed and user gets notified Set up steps Add webhook call to Awork Configure Awork API credentials Set up workflow configuration via setup node, e.g. user notification text, restrict to subtasks/dependency checks etc.
by HoChien Chang
How it works This workflow automates the backup of all your n8n workflows to a specified Google Drive folder. It operates in two main phases: Orchestration (Scheduled Task): The workflow is initiated by a Schedule Trigger (e.g., daily at 1:30 AM by default). It then uses an n8n API Node to fetch a list of all existing workflows in your n8n instance. A Loop Over Items node processes each fetched workflow individually. For every workflow in the list, an Execute Workflow node calls the "worker" part of this same workflow, passing the individual workflow's data. Individual Workflow Backup (Worker Task): This part is triggered by the When Executed by Another Workflow node (called by the orchestrator part). It first retrieves the passed workflow data. A Parameters node defines the target Google Drive directory. The Get Google Drive File Data node searches the specified Google Drive folder to see if a backup file for the current workflow (named as WorkflowName_WorkflowID.json) already exists. An IF Node (ifDriveEmpty) checks the result: If a backup file exists, the workflow data is converted to a binary JSON file using a Code Node, and then the existing file on Google Drive is updated (Backup to Google Drive2). If a backup file does not exist, the workflow data is first formatted as JSON, converted to a binary JSON file using another Code Node, and then uploaded as a new file to Google Drive (Backup to Google Drive4). If any Google Drive upload/update operation fails, a Failure Email is sent. After the loop in the orchestration phase completes (all workflows processed), a Limit node ensures only one signal proceeds to send a Success Email and a Discord message indicating the overall backup process was completed. Setup Clone Workflow: Clone this workflow into your n8n environment. Credentials: n8n API: In the "Get all n8n Workflows" node, select or create n8n API credentials. This allows the workflow to list all your other workflows. Google Drive: In the "getDriveFileData", "Backup to Google Drive2", and "Backup to Google Drive4" nodes, select or create your Google Drive OAuth2 API credentials. Gmail: In the "successEmail" and "failureEmail" nodes, select or create your Gmail credentials. Discord (Optional): If you wish to use Discord notifications, configure your Discord Bot API credentials in the "Discord" node. Configuration: Schedule: Open the "Schedule Trigger" node and adjust the trigger interval (e.g., time of day) as needed. Google Drive Folder: Open the "Parameters" node (connected after "Workflow Data"). Edit the directory value to the full URL of the Google Drive folder where you want to store your backups (e.g., https://drive.google.com/drive/folders/YOUR_FOLDER_ID). Email Recipients: Open the "successEmail" and "failureEmail" nodes and update the "Send To" field with your desired recipient email address(es). Discord Channel (Optional): If using Discord, open the "Discord" node and set the "Channel ID" for notifications. Sub-Workflow ID: The "Execute Workflow" node is pre-configured to call this workflow itself using its ID. If you import this workflow and its ID changes, you may need to update the workflowId in the "Execute Workflow" node to the new ID of this imported workflow. However, n8n usually handles this if it's self-referential within the same imported workflow. How to use Activate: After completing the setup steps, activate the workflow. It will automatically run according to the defined schedule. Manual Execution: You can also manually trigger the workflow by clicking the "Execute Workflow" play button on the "Schedule Trigger" node to perform an immediate backup of all workflows. Check Backups: Your n8n workflows will be saved as .json files (named WorkflowName_WorkflowID.json) in the Google Drive folder you specified in the "Parameters" node. Notifications: You will receive an email (and optionally a Discord message) upon successful completion of the entire backup process, or individual failure emails if a specific workflow backup to Google Drive fails. Author & Credits Creator:** Hochien Chang YouTube Channel (Chinese):** HC AI說人話 YouTube Channel (English):** HC HumanizeAI Original Explanation Video:** https://youtu.be/PA15H5qunC0 Based on:** n8n Workflow Backup to Google Drive
by Joseph
Note: Now includes an Apify alternative for Rapid API (Some users can't create new accounts on Rapid API, so I have added an alternative for you. But immediately you are able to get access to Rapid API, please use that option, it returns more detailed data). *Scroll to bottom for APify setup guide* This n8n workflow automates LinkedIn lead generation, enrichment, and activity analysis using Apollo.io, RapidAPI, Google Sheets and Mail.so. Perfect for sales teams, founders, B2B marketers, and cold outreach pros who want personalized lead insights to drive better conversion rates. ⚙️ How This Workflow Works The workflow is broken down into several key steps, each designed to help you build and enrich a valuable list of LinkedIn leads: 1. 🔑 Lead Discovery (Keyword Search via Apollo) Pulls leads using Apollo.io's API based on keywords, industries, or job titles. Saves lead name, title, company, and LinkedIn URL to your Google Sheet. You can replace the trigger node from the form node to a webhook, whatsapp, telegram, etc, any way for you to send over your query variables over to initiate the workflow. 2. 🧠 Username Extraction (from LinkedIn URL) Extracts the LinkedIn username from profile URLs using a simple script node. This is required for further enrichment via RapidAPI. 3. ✉️ Email Lookup (via Apollo User ID) Uses the Apollo User ID to retrieve the lead’s verified work email. Ensures high-quality leads with reliable contact info. To double check that the email is currently valid, we use the mail.so api and filter out emails that fail deliverability and mx-record check. We don't wanna risk sending emails to no longer existent addresses, right? 4. 🧾 Profile Summary Enrichment (via RapidAPI) Queries the LinkedIn Data API to fetch a lead’s profile summary/bio. Gives you a deeper understanding of their background and expertise. 5. 📰 Recent Activity Collection (Posts & Reposts) Retrieves recent posts or reposts from each lead’s profile. Great for tailoring outreach with reference to what they’re currently talking about. 6. 🗂️ Leads Database Update All enriched data is written to the same Google Sheet. New columns are filled in without overwriting existing data. ✅ Smart Retry & Row Status Logic Every subworkflow includes a fail-safe mechanism to ensure: ✅ Each row has status columns (e.g., done, failed, pending). 🕒 A scheduled retry workflow resets failed rows to pending after 2 weeks (customizable). 💬 This gives failed enrichments another chance to be processed later, reducing data loss. 📋 Google Sheets Setup Template 1: Apollo Leads Scraping & Enrichment Template 2: Enriched Leads Database Make a copy to your Drive and use. Columns will be filled as each subworkflow runs (email, summary, interests, etc.) 🔐 Required API Keys To use this workflow, you’ll need the following credentials: 🧩 Apollo.io Sign up and get your key here: Apollo.io API Keys ⚠️ Important: Toggle the “Master API Key” option to ON when generating your key. This ensures the same key can be used for all Apollo endpoints in this workflow. 🌐 RapidAPI (LinkedIn Data API) Subscribe to the API here: LinkedIn Data API on RapidAPI Use the key in the x-rapidapi-key header in the relevant nodes. ✉️ Mail.so Sign up and get your key here: Mail.so API > 💡 For both APIs, set up the credentials in n8n as “Generic Credential” types. This way, you won’t need to reconfigure the headers in each node. 🛠️ Customization Options Modify the Apollo filters (location, industry, seniority) to target your ideal customers. Change retry interval in the scheduler (e.g., weekly instead of 2 weeks). Connect the database to your email campaign tool like Mailchimp or Instantly.ai. Replace the AI nodes with your desired AI agents and customize the system messages further to get desired results. 🆕 Apify Update Guide To use this workflow, you’ll need the following credentials: Login to Apify, then open this link; https://console.apify.com/actors/2SyF0bVxmgGr8IVCZ/ Click on integrations and scroll down to API Solutions and select "Use API endpoints". Scroll to "Run Actor synchronously and get dataset items" and copy the actor endpoint url then paste it in the placeholder inside the http node of Apify alternative flow "apify-actor-endpoint". That's it, you are set to go. I am available for custom n8n workflows, if you like my work, please get in touch with me on email at joseph@uppfy.com
by Tiberiu S - Makeitfuture.com
This workflow will allow you to use OpenAI Assistant API together with a chatting platform. This version is configured to work with Hubspot, however, the Hubspot modules can be replaced by other platform and it will work similarly. Prerequisites: Create a Hubspot Chat (Live chat available on free plan) or Chatflow (paid hubspot only) and configure it to send all replies toward an n8n webhook (you need to create a custom app for that. I will create a separate article on how to do it, meanwhile, feel free to message me if you need support. Setup: Create a OpenAI Assistant, define its functionality and functions Update the Hubspot modules with the Hubspot API Key Update the OpenAI modules with OpenAI API Key Create an Airtable or any other database where you keep a reference between the thread id in Hubspot and Assistant API If you need help deploying this solution don't hesitate to email me or schedule a call here.
by KlickTipp
Community Node Disclaimer: This workflow uses KlickTipp community nodes. How It Works: Facebook Lead Ads to KlickTipp Integration: This workflow automatically transfers lead information submitted via Facebook Lead Ads into KlickTipp. It is ideal for automating course registrations or similar campaigns, enabling targeted email sequences based on user input. Data Handling: Lead data from Facebook is received via webhook, matched to KlickTipp’s custom fields, and the contact is tagged for segmentation and automation. Key Features Webhook Trigger for Facebook Lead Ads: Captures new lead form submissions from Facebook, including: Name Email address Chosen course Preferred payment method Optional comments Data Mapping & Validation: Maps Facebook field values to pre-defined custom fields in KlickTipp Subscriber Management in KlickTipp: Adds or updates leads as subscribers in KlickTipp Includes mapping to custom fields such as: Facebook_Leads_Ads_Kursauswahl Facebook_Leads_Ads_Zahlungsweise Facebook_Leads_Ads_Kommentar Assigns relevant tags for automated campaign triggers Setup Instructions 1. Prepare KlickTipp Custom Fields: Before using the workflow, create the following custom fields in KlickTipp under → Contacts → Custom fields: | Name | Datentyp | | - | - | | Facebook_Leads_Ads_Kommentar | Zeile | | Facebook_Leads_Ads_Kursauswahl | Zeile | | Facebook_Leads_Ads_Zahlungsweise | Zeile | 2. Facebook Lead Ads Setup: Create a lead form under Facebook Ads Manager Include custom fields for course interest, payment preference, and comments 3. Set Up Facebook Webhook in n8n: Use the Facebook Lead Ads node to create a webhook Authenticate your Facebook account Choose the Page and corresponding lead form Save and activate the webhook 4. Map Data to KlickTipp Fields: Open the KlickTipp node to Authenticate with your credentials (username&password) Map the fields from the Facebook webhook to the according custom fields in KlickTipp. Testing & Deployment Run a Test: Use Meta’s testing tool to generate a test lead Run the n8n workflow once manually Note: Facebook test email (e.g., test@fb.com) is invalid—expect an error in KlickTipp during testing. You can pin the output of the node and manipulate the address to a valid test-address. Workflow Logic Webhook Trigger from Facebook: Initiates workflow upon new lead form submission Add or Update Contact in KlickTipp: Submits mapped data into your KlickTipp account Benefits Automated Lead Management: No manual data transfers needed—new Facebook leads are instantly pushed to KlickTipp. Personalized Campaigns: Segment leads based on selected course or payment method for targeted follow-up emails. Notes: Customization: Adjust field mappings in the KlickTipp node based on your lead form structure. Ensure all required fields (email, opt-in, etc.) are mapped correctly. Resources: Use the Meta Lead Ads Testing Tool to simulate lead submissions during setup. Look into our knowledgebase article Send Facebook Leads to KlickTipp with Make or n8n to learn more. Use KlickTipp Community Node in n8n Automate Workflows: KlickTipp Integration in n8n
by Edisson Garcia
🚀 Message-Batching Buffer Workflow (n8n) This workflow implements a lightweight message-batching buffer using Redis for temporary storage and a JavaScript consolidation function to merge messages. It collects incoming user messages per session, waits for a configurable inactivity window or batch size threshold, consolidates buffered messages via custom code, then clears the buffer and returns the combined response—all without external LLM calls. 🔑 Key Features Redis-backed buffer** queues incoming messages per context_id. Centralized Config Parameters** node to adjust thresholds and timeouts in one place. Dynamic wait time** based on message length (configurable minWords, waitLong, waitShort). Batch trigger** fires on inactivity timeout or when buffer_count ≥ batchThreshold. Zero-cost consolidation** via built-in JavaScript Function (consolidate buffer)—no GPT-4 or external API required. ⚙️ Setup Instructions Extract Session & Message Trigger: When chat message received (webhook) or When clicking ‘Test workflow’ (manual). Map inputs: set variables context_id and message into a Set node named Mock input data (for testing) or a proper mapping node in production. Config Parameters Add a Set node Config Parameters with: minWords: 3 # Word threshold waitLong: 10 # Timeout (s) for long messages waitShort: 20 # Timeout (s) for short messages batchThreshold: 3 # Messages to trigger batch early All downstream nodes reference these JSON values dynamically. Determine Wait Time Node: get wait seconds (Code) JS code: const msg = $json.message || ''; const wordCount = msg.split(/\s+/).filter(w => w).length; const { minWords, waitLong, waitShort } = items[0].json; const waitSeconds = wordCount < minWords ? waitShort : waitLong; return [{ json: { context_id: $json.context_id, message: msg, waitSeconds } }]; Buffer Message in Redis Buffer messages: LPUSH buffer_in:{{$json.context_id}} with payload {text, timestamp}. Set buffer\_count increment: INCR buffer_count:{{$json.context_id}} with TTL {{$json.waitSeconds + 60}}. Set last\_seen: record last_seen:{{$json.context_id}} timestamp with same TTL. Check & Set Waiting Flag Get waiting\_reply: if null, Set waiting\_reply to true with TTL {{$json.waitSeconds}}; else exit. Wait for Inactivity WaitSeconds (webhook): pauses for {{$json.waitSeconds}} seconds before batch evaluation. Check Batch Trigger Get last\_seen and Get buffer\_count. IF (now - last_seen) ≥ waitSeconds * 1000 OR buffer_count ≥ batchThreshold, proceed; else use Wait node to retry. Consolidate Buffer consolidate buffer (Code): const j = items[0].json; const raw = Array.isArray(j.buffer) ? j.buffer : []; const buffer = raw.map(x => { try { return typeof x === 'string' ? JSON.parse(x) : x; } catch { return null; } }).filter(Boolean); buffer.sort((a, b) => new Date(a.timestamp) - new Date(b.timestamp)); const texts = buffer.map(e => e.text?.trim()).filter(Boolean); const unique = [...new Set(texts)]; const message = unique.join(' '); return [{ json: { context_id: j.context_id, message } }]; Cleanup & Respond Delete Redis keys: buffer_in, buffer_count, waiting_reply, last_seen (for the context_id). Return consolidated message to the user via your chat integration. 🛠 Customization Guidance Adjust thresholds* by editing the *Config Parameters** node. Change concatenation** (e.g., line breaks) by modifying the join separator in the consolidation code. Add filters** (e.g., ignore empty or system messages) inside the consolidation Function. Monitor performance**: for very high volume, consider sharding Redis keys by date or user segments. © 2025 Innovatex • Automation & AI Solutions • innovatexiot.carrd.co • LinkedIn
by David Ashby
Complete MCP server exposing 1 Buy Marketing API operations to AI agents. ⚡ Quick Setup Need help? Want access to more workflows and even live Q&A sessions with a top verified n8n creator.. All 100% free? Join the community Import this workflow into your n8n instance Credentials Add Buy Marketing API credentials Activate the workflow to start your MCP server Copy the webhook URL from the MCP trigger node Connect AI agents using the MCP URL 🔧 How it Works This workflow converts the Buy Marketing API into an MCP-compatible interface for AI agents. • MCP Trigger: Serves as your server endpoint for AI agent requests • HTTP Request Nodes: Handle API calls to https://api.ebay.com/buy/marketing/v1_beta • AI Expressions: Automatically populate parameters via $fromAI() placeholders • Native Integration: Returns responses directly to the AI agent 📋 Available Operations (1 total) 🔧 Merchandised_Product (1 endpoints) • GET /merchandised_product: Fetch Merchandised Products 🤖 AI Integration Parameter Handling: AI agents automatically provide values for: • Path parameters and identifiers • Query parameters and filters • Request body data • Headers and authentication Response Format: Native Buy Marketing API responses with full data structure Error Handling: Built-in n8n HTTP request error management 💡 Usage Examples Connect this MCP server to any AI agent or workflow: • Claude Desktop: Add MCP server URL to configuration • Cursor: Add MCP server SSE URL to configuration • Custom AI Apps: Use MCP URL as tool endpoint • API Integration: Direct HTTP calls to MCP endpoints ✨ Benefits • Zero Setup: No parameter mapping or configuration needed • AI-Ready: Built-in $fromAI() expressions for all parameters • Production Ready: Native n8n HTTP request handling and logging • Extensible: Easily modify or add custom logic > 🆓 Free for community use! Ready to deploy in under 2 minutes.
by Harsh Maniya
✨ Automate Daily Hindu Festival Posts on X (Twitter) with AI 🐦 This workflow automates the entire process of creating and publishing culturally rich social media content about Hindu festivals. It starts by building a comprehensive festival calendar for the year in a Google Sheet, then runs daily to post engaging, bilingual updates on X (formerly Twitter). 🗓️ The workflow uses a sophisticated dual-AI system: Google Gemini acts as a content generator creating multiple post options ✍️, while OpenAI's GPT-4o Mini acts as a discerning social media manager, selecting the very best post for publication. 🧠 This ensures your content is not only automated but also high-quality and optimized for engagement. How it works ⚙️ This workflow operates in two distinct stages: Part 1: Data Population (One-Time Manual Run) 🔍 Fetch Festival Data: Manually trigger the workflow to scrape a list of 2025 Hindu festivals from a public calendar using the Jina AI Reader API. ✨ Enrich with AI: For each festival, a Google Gemini model researches and extracts key details: The festival's name in Hindi. A concise description of its significance in English. A Hindi translation of the description. 📝 Store in Google Sheets: The enriched data for the entire year is then systematically organized and saved in a designated Google Sheet, creating a content calendar. Part 2: Daily Automated Posting ⏰ Daily Trigger: A Schedule Trigger node activates the workflow every morning at 8 AM. ✔️ Check for Festivals: The workflow gets today's date and checks the Google Sheet to see if there is a corresponding festival. 🎨 Generate Post Options: If a festival is scheduled for the day, Google Gemini generates three distinct and engaging post options for X. Each post is crafted to be concise, use a mix of English and Hindi, and include relevant emojis and hashtags. 🏆 Select the Best Post: OpenAI's GPT-4o Mini then evaluates the three generated posts based on criteria like clarity, engagement potential, and effective use of language. It selects the single most impactful post. 🚀 Publish to X: The winning post is automatically published to your connected X account. Features ⭐ 🤖 Fully Automated Content Pipeline: From data collection to final publication, no manual intervention is needed after the initial setup. 🧠 Dual-AI System: Leverages Google Gemini for creative generation and OpenAI GPT-4o Mini for critical selection, ensuring high-quality output. 🗣️ Bilingual Content: Creates posts that blend English and Hindi to enhance cultural connection and broaden audience reach. 🎯 Dynamic and Contextual: Posts are automatically tailored to the specific festival of the day. 🗓️ Centralized Content Calendar: Uses Google Sheets as a reliable, easy-to-manage database for your yearly social media plan. Prerequisites 🛠️ Before you can use this workflow, you will need to: Have an n8n instance set up. Create a new, empty Google Sheet. Obtain credentials for the following services: Jina AI: Get a free Bearer Token from the Jina AI API page. Google: Set up Google credentials (OAuth2) for the Google Sheets and Google Gemini nodes. OpenAI: Get an API key from your OpenAI Platform dashboard. X (Twitter): Set up X credentials (OAuth2) to allow n8n to post on your behalf. How to use this template 🚀 🔑 Set up Credentials: In n8n, go to the "Credentials" section and add new credentials for Jina AI, Google (for both Sheets and Gemini), OpenAI, and X using the API keys and tokens you obtained. 📊 Configure the Google Sheet: Create a new Google Sheet. In the first row, create the following headers exactly as written: Name of the Festival Date English Description (Note the trailing space) Hindi Description Open the "Add all Rows at once" and "Fetch Data of Matched Date" nodes in the workflow and connect them to your Google account and select the Sheet you just created. ▶️ Populate the Data (Manual Step): Click the "Execute workflow" button on the When clicking ‘Execute workflow’ node. This will run the first part of the workflow, filling your Google Sheet with festival data for 2025. This only needs to be done once. ✅ Activate the Workflow: Save the workflow and then activate it using the toggle at the top right of the n8n canvas. The workflow will now run automatically every day to post about the day's festival. Extending the Workflow 💡 🖼️ Add Image Generation: Integrate a node like DALL-E or Midjourney to generate a unique image for each festival and include it in the tweet. 🌐 Cross-Platform Posting: Duplicate the final "Post to X" node and adapt it to post on other platforms like Facebook, LinkedIn, or Telegram. 🎨 Change the Tone: Modify the prompts in the "Generate Posts" and "Select Best Post" nodes to change the style of your social media content—make it more formal, humorous, or poetic. 📅 Use a Different Year: Update the URL in the "Get Festival Data" node to fetch data for a different year. The current URL is https://r.jina.ai/https://www.calendarlabs.com/2025-hindu-calendar.
by Usman Liaqat
Description: This n8n workflow helps you capture Slack messages via a webhook and download attached media files (like images, documents, or videos) directly from those messages. How it works: Slack Trigger (Webhook) – Listens for new messages in a Slack channel where the app is added. HTTP Request – Uses the file's private download URL to retrieve the media securely. Use cases: Download files shared by team members in a Slack channel. Capture and process media from specific project or support channels. Prepare media for later processing, archiving, or review. Requirements: Slack app with appropriate permissions (files:read, channels:history, etc.). Slack webhook set up to listen to channel messages. - Authenticated HTTP request to handle private Slack file URLs. This template is ideal for users who want full control over file handling triggered by real-time Slack messages.
by Joseph LePage
This workflow creates an automated system for monitoring and receiving notifications about new videos from your favorite YouTube channels through RSS feeds, with customizable email and Telegram notifications. 🌟 Key Features 📡 RSS Feed Management Accepts custom YouTube channel IDs or uses default channels Automatically creates RSS feeds for each YouTube channel Monitors channels for new video uploads Labels and filters recent videos within a 3-day window (change this as required) 📨 Multi-Channel Notification System Sends Telegram notifications with video thumbnails and links Delivers customized email notifications in two formats: Individual emails for each new video Single digest email containing all new videos ⚙️ Content Processing Fetches detailed video information using YouTube API Creates responsive HTML email templates with video previews Includes video thumbnails, titles, descriptions, and direct links Maintains professional formatting across different email clients 🛠️ Setup Requirements 🔑 API Configuration YouTube Data API credentials Gmail account for sending notifications Telegram bot token and chat ID OpenAI API key for content processing 📋 Channel Management Add YouTube channel IDs through form input Configure default channel list Set notification preferences Adjust monitoring schedule This workflow is perfect for content creators, marketers, or anyone wanting to stay updated with their favorite YouTube channels through automated, professionally formatted notifications delivered via email and Telegram.
by JPres
👥 Who Is This For? Content creators, marketing teams, and channel managers who need to streamline video publishing with optimized metadata and scheduled releases across multiple videos. 🛠 What Problem Does This Solve? Manual YouTube video publishing is time-consuming and often results in inconsistent descriptions, tags, and scheduling. This workflow fully automates: Extracting video transcripts via Apify for metadata generation Creating SEO-optimized descriptions and tags for each video Setting videos to private during initial upload (critical for scheduling) Implementing scheduled publishing at strategic times Maintaining consistent branding and formatting across all content 🔄 Node-by-Node Breakdown | Step | Node Purpose | |------|--------------| | 1 | Every Day (Scheduler) | Trigger workflow on a regular schedule | | 2 | Get Videos to Harmonize | Retrieve videos requiring metadata enhancement | | 3 | Get Video IDs (Unpublished) | Filter for videos that need publishing | | 4 | Loop over Video IDs | Process each video individually | | 5 | Get Video Data | Retrieve metadata for the current video | | 6 | Loop over Videos with Parameter IS | Set parameters for processing | | 7 | Set Videos to Private | Ensure videos are private (required for scheduling) | | 8 | Apify: Get Transcript | Extract video transcript via Apify | | 9 | Fetch Latest Videos | Get most recent channel content | | 10 | Loop Over Items | Process each video item | | 11 | Generate Description, Tags, etc. | Create optimized metadata from transcript | | 12 | AP Clean ID | Format identifiers | | 13 | Retrieve Generated Data | Collect the enhanced metadata | | 14 | Adjust Transcript Format | Format transcript for better processing | | 15 | Update Video's Metadata | Apply generated description and tags to video | ⚙️ Pre-conditions / Requirements n8n with YouTube API credentials configured Apify account with API access for transcript extraction YouTube channel with upload permissions Master templates for description formatting Videos must be initially set to private for scheduling to work ⚙️ Setup Instructions Import this workflow into your n8n instance. Configure YouTube API credentials with proper channel access. Set up Apify integration with appropriate actor for transcript extraction. Define scheduling parameters in the Every Day node. Configure description templates with placeholders for dynamic content. Set default tags and customize tag generation rules. Test with a single video before batch processing. 🎨 How to Customize Adjust prompt templates for description generation to match your brand voice. Modify tag selection algorithms based on your channel's SEO strategy. Create multiple publishing schedules for different content categories. Integrate with analytics tools to optimize publishing times. Add notification nodes to alert when videos are successfully scheduled. ⚠️ Important Notes Videos MUST be uploaded as private initially - the Publish At logic only works for private videos that haven't been published before. Publishing schedules require videos to remain private until their scheduled time. Transcript quality affects metadata generation results. Consider YouTube API quotas when scheduling large batches of videos. 🔐 Security and Privacy API credentials are stored securely within n8n. Transcripts are processed temporarily and not stored permanently. Webhook URLs should be protected to prevent unauthorized triggering. Access to the workflow should be limited to authorized team members only.