by Dr. Firas
Auto-Publish Social Videos to 9 Platforms via Google Sheets and Blotato Who is this workflow for? This workflow is ideal for marketers, content creators, virtual assistants, and automation specialists managing multi-platform video content. It’s especially useful for teams who want to centralize publishing via a spreadsheet and automate social distribution in one shot. What problem does this workflow solve? Manually posting videos to multiple social platforms is tedious and time-consuming. This workflow allows you to streamline video distribution using Blotato’s API — no more switching between platforms or re-uploading the same video multiple times. What this workflow does This automation reads video metadata (URL, caption, title) from a Google Sheet, uploads the video to Blotato, and automatically publishes it to Instagram, YouTube, TikTok, Facebook, LinkedIn, Threads, Twitter (X), Pinterest, and Bluesky. It also updates the sheet to reflect the publishing status (STATUS = DONE), ensuring that your data remains clean and trackable. Setup Set up your Google Sheet with the required columns: PROMPT, DESCRIPTION, URL VIDEO, Titre, row_number, and STATUS. Add your Blotato API key in the headers of the Upload Video and Post to X nodes. Replace the platform-specific IDs in the Assign Social Media IDs node (Instagram ID, Facebook Page ID, etc.). Set the schedule in the Schedule Trigger node to define when the publishing happens. > ⚠️ Disclaimer: This workflow uses Community Nodes. These are only available on self-hosted n8n instances. How to customize this workflow Add logic to skip rows already marked as DONE. Expand to more platforms supported by Blotato. Use a webhook or Telegram trigger instead of the scheduler for more interactivity. Modify content per platform if needed (caption formatting, hashtags, etc.). 📄 Documentation: Notion Guide Demo Video 🎥 Watch the full tutorial here: YouTube Demo
by Yang
Workflow Description This workflow helps content creators automatically repurpose YouTube videos into SEO-friendly blog posts. It extracts the video transcript, uses AI to generate a full blog post with a relevant image, and sends the complete package via email, ready for publication. Prerequisites/Requirements This workflow relies on external AI services. You will need: OpenAI Account: Used for generating the blog post text (specifically mentioned using GPT-4o in the workflow notes). Credentials: Requires an API key from OpenAI. Cost: OpenAI API usage is typically paid based on the amount of text processed (tokens). Check OpenAI's current pricing. Setup: Sign up at OpenAI and obtain your API key. Dumpling AI Account: Used for retrieving YouTube video transcript and generating the blog post image. Credentials: Requires an API key from Dumpling AI. Cost: Dumpling AI offers 250 free credits to start with and different plans for different levels of usage. Check the pricing page for more details. Setup: Sign up at Dumpling AI and obtain your API key/credentials. Email Account: Credentials for the email service (e.g., Gmail) used to send the final result. How it works Input Video Details: You provide the YouTube video URL and your email address. Get Transcript: The workflow fetches the transcript of the specified YouTube video. Generate Content: An AI model crafts a blog post (title, description, body) based on the transcript. Create Image: Another AI model generates a suitable image for the blog post. Format & Package: The blog post is converted to HTML, and the image is prepared for sending. Email Result: The final HTML blog post and image are emailed to you. Set up steps Configure Variables: Enter the specific YouTube video URL and the recipient email address in the "Set Variables" node. Connect Credentials: Add your credentials for the services used (e.g., OpenAI for text generation, Dumpling AI for YouTube Transcript and AI image generation service). Connect Email Credentials: Authenticate your Gmail account (or chosen email provider) to allow the workflow to send the email. Take it to the next level Direct Publishing:** Instead of emailing the result, connect directly to your CMS (like WordPress, Ghost, Webflow) to automatically create a draft or publish the blog post. AI Agent Integration:** Replace the single "Generate Blog Post" step with an AI Agent for more sophisticated content generation, potentially researching topics or structuring the post section by section based on the transcript. Social Media Snippets:** Add steps to generate companion social media posts (e.g., for Twitter, LinkedIn) summarizing the blog post. Batch Processing:** Modify the trigger to read multiple YouTube URLs from a spreadsheet or database to convert videos in bulk. Enhanced SEO:** Refine the AI prompts to specifically target keywords or incorporate SEO best practices more deeply into the generated content. Multiple Image Options:** Generate several image variations and include them in the email or draft post for selection.
by Jimleuk
This n8n template reviews and audits recently active Google Drive files and reports on files with excessively open permissions. This shows how you can automate simple compliance tasks for access control management. File Sharing Permissions are routinely abused when access needs and scopes expand to many colleagues, clients and users. Often, granting excessively open permissions means you can get back to work rather than deal with numerous access request notifications. Whilst sometimes justified, the problem is that the permissions are rarely reverted to a safer setting at a later date when it is no longer needed. This template serves to improve your security posture by giving frequent reminders of these open files so that they can be actioned and not forgotten about. See example Audit Report here: https://docs.google.com/spreadsheets/d/1V2aiLhp3_nH7EBniMn7D0kFHg7-A5NjpDZXMhb4F5UI/edit?gid=503992967 How it works A scheduled trigger runs everyday to generate a new audit report. A new sheet is created in a designated Google Sheets document to store the day's results. The Google Drive node is used with Advanced Search params to fetch recently modified files for the user with each file result containing the current permission settings. The results are filtered for those with publicly accessible "anyone with link" and sharing with external users via domain. The results are then manipulated into rows so that we can append them to the Sheet we created earlier. The audit Google Sheet is updated with the results and an audit report is sent to the user to action. How to use Set the scheduled trigger to a more appropriate interval which works for you or your organisation. Consider using allowlists for organisations you frequently share with to reduce the number of false positives. The results can be forwarded to other security or analytical products as required. Requirements Google Drive for Document Management Google Sheet for Reports and Data Collection Gmail to Email Reports Customising the workflow Not using Google? Apply the same approach using Microsoft Sharepoint or Dropbox. If your security policies require it, you could automate fixing the file permissions as a proactive action instead and notify the user later.
by Ifeoluwa Ajetomobi
This workflow helps you stay updated with daily launches on Product Hunt. It automatically fetches product details (name, tagline, description, and website), checks if the website redirects to another URL, and logs the final information into a Google Sheet. Perfect for indie hackers, product managers, content curators, and anyone tracking daily launches. How It Works Schedule Trigger – Runs the workflow daily. Set Date – Captures today’s date in ISO format for filtering Product Hunt posts. HTTP Request (Product Hunt API) – Retrieves Product Hunt posts for the day using GraphQL. Extract Product Info (Code Node) – Parses the response to pull key details: Name Tagline Description Website URL HTTP Request (URL Check) – Follows each website URL to detect if it redirects. Merge Data – Combines product info with the final destination URL. Google Sheets Node – Appends all processed product info to your sheet. Pre-conditions A valid Product Hunt API token A Google account with access to Google Sheets A Google Sheet already created with the correct columns (see below) Connected Google Sheets and HTTP credentials in n8n Google Sheets Setup Your spreadsheet should include the following columns (in order): Name Tagline Description Original URL Final URL (after redirect) Ensure your Google Sheets node uses the correct Spreadsheet ID and Sheet Name. Setup Instructions Product Hunt API Auth: Replace {{YOUR_PRODUCT_HUNT_API_KEY}} in the HTTP Request headers: { "Authorization": "Bearer {{YOUR_PRODUCT_HUNT_API_KEY}}" } Google Sheets Node: Connect your Google account. Insert your Spreadsheet ID in the settings. Specify the sheet name (e.g., Daily Launches). Use the “Append” operation and map the 5 data fields accordingly. Notes Only fetches the first 10 posts for the day (can be extended). Consider adding Slack, Discord, or Email nodes to notify you of new entries. Useful for building launch databases, research, or content inspiration.
by Yang
Who is this for? This workflow is built for marketers, sales teams, agencies, virtual assistants, and anyone who regularly researches or contacts local businesses. It's ideal for building lead lists, tracking competitors, or creating location-specific outreach campaigns. What problem is this workflow solving? Instead of manually searching Google Maps and copying business info into spreadsheets, this automation pulls structured business data (e.g. restaurants, gyms, service providers) and logs it directly into Google Sheets. It saves hours of work and ensures cleaner, more usable data. What this workflow does The workflow takes a Google Maps search query (like "best restaurants in New York") and sends it to Dumpling AI. It returns a list of places including their name, address, website, phone number, rating, and more. Each result is split into a row and automatically added to a Google Sheet. Setup Dumpling AI Sign up at Dumpling AI Generate your API key In the HTTP Request node, select Header Auth and paste your key in the Authorization field Google Sheets Create a sheet with tab name Leads Add the following column headers to row 1: Name, Address, Phone number, Website, Rating, Price Level, Type, Booking Link, Position Connect your Google Sheets account and link this sheet in the node Customize the Query In the HTTP node, replace the query string (e.g., "best+restaurants+in+New+York") with your own search term Run It Use the manual trigger to test Optionally swap in a Schedule or Webhook node to run it automatically How to customize this workflow to your needs Change the search query to target different cities or business types Use filters to only save leads with a minimum rating or price level Add GPT to summarize listings or qualify leads Swap Google Sheets for Airtable or a CRM system for deeper integration
by n8n Team
This workflow automatically syncs your Zendesk tickets to your HubSpot contacts. Every 5 minutes, your Zendesk account collects all the new or updated tickets and syncs them accordingly, with your HubSpot contacts database. Prerequisites Zendesk account and Zendesk credentials HubSpot account and HubSpot credentials How it works Cron node triggers the workflow every 5 minutes. Function Item node checks all the tickets received after the last execution timestamp. Zendesk node collects all tickets updated after last execution. Zendesk node collects the user data of ticket requester. Set node collects the contact`s email, name and externalID. Merge by key node combines two inputs, ticket data and ticket requester data. If node splits the workflow conditionally, based on data received. If the data corresponds to a ticket that already exists, HubSpot node will update the ticket. If the data does not correspond to a ticket, HubSpot node creates/updates the contact. Zendesk node updates the external Id in Zendesk for the said contact. HubSpot node creates a new ticket. Zendesk node updates the ticket with the external Id. The Function Item node sets the new last execution timestamp.
by Jimleuk
This n8n demonstrates how to build a simple Youtube MCP server to look up videos on Youtube and download their transcripts for research purposes. Youtube videos are a great source of new and updated information on a variety of cutting edge developments but they''re are not always simple to understand and lengthy videos may take too much time. Using this MCP server, you extract and feed their transcripts for your AI agents which then allows it to breakdown the content into manageble learnings and insights. How it works A MCP server trigger is used and connected to 3 custom workflow tools: Youtube Search, Youtube Transcripts and Usage Reports. Both Youtube tools use an external scraping service called APIFY.com. This is my preference as it's a much simpler interface and there are no rate limits. The Youtube Search fetches 10 results based on the user's query. The Youtube Transcripts downloads the subtitles from one or more given URL. The usage reports pulls in your monthly APIFY.com monthly spending and limits as a way to check your account. How to use This Apify Youtube MCP server allows any compatible MCP client to research YouTube videos for any desired topic. An Apify account is required however to connect and use the service. Connect your MCP client by following the n8n guidelines here - https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger/#integrating-with-claude-desktop Alternatively, connect any n8n AI agent with the MCP client tool. Try the following queries in your MCP client: "what is MCP?" "How can I use MCP in n8n?" "How can I use Apify's official MCP server?" Requirements APIFY.com for Youtube Scraping. This is a paid service but there is a $5 free tier which is ample for this template. MCP Client or Agent for usage such as Claude Desktop - https://claude.ai/download Customising this workflow Add as many APIFY.com actors as required for your use-case or users. Consider using Apify's official MCP server for 4000+ available tools. Remember to set the MCP server to require credentials before going to production and sharing this MCP server with others!
by Davide
This Workflow streamlines the process of publishing posts (image or video) to multiple social media platforms using a unified form and a third-party API service called Upload-Post. The automation starts with a form trigger, allowing users to submit content (text and media) through a simple frontend interface. Users select the platform (Instagram, LinkedIn, Facebook, X, TikTok, Threads), choose the profile name, write a caption, and upload a photo or video. How It Works Automates cross-platform social media posting via Upload-Post, handling both images (JPEG) and videos (MP4). Here’s the process: Trigger**: A form submission captures user inputs: Platform (Instagram, LinkedIn, Facebook, X, TikTok, Threads). Account (pre-configured profile name). Caption and file (image/video). Optional Facebook Page ID for targeted posting. Routing**: The "Video or Photo?" Switch node checks the file’s MIME type: Image: Routes to the "Post photo" HTTP node (uploads via upload_photos API). Video: Routes to the "Post video" HTTP node (uploads via upload API). API Integration**: Both nodes send data to Upload-Post.com’s API, including: Caption, account name, platform, and file binary. Facebook ID (if provided). Success/Failure Handling**: The "Result Photo/Video" nodes parse the API response. Setup Steps Prerequisites: Upload-Post.com API Key**: Get it from the API Keys dashboard. Free tier allows 10 uploads/month. Configuration: API Authentication: In the HTTP Request nodes (Post photo/Post video), set the Authorization header: Name: Authorization Value: Apikey YOUR_API_KEY_HERE. Form Customization: Adjust the "On form submission" node to: Add/remove platforms (e.g., YouTube when approved). Modify file type restrictions (default: .jpg, .mp4). Account Mapping: Ensure the "Account" field matches profiles configured in Upload-Post.com (e.g., test1, test2). Facebook Page Integration: Optional: Add a Facebook Page ID field for page-specific posts. Testing: Submit test forms with images/videos. Verify API responses and success/failure messages. Optional Enhancements: Add error logging (e.g., save failed attempts to a database). Extend to YouTube once API support is confirmed. Key Features: Multi-Platform**: Post to 6+ social networks simultaneously. User-Friendly**: Simple form interface for non-technical users. Error Handling**: Clear feedback for success/failure cases. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by Jimleuk
This n8n demonstrates how any organisation can quickly and easily build and offer MCP servers to their customers or internal staff to improve productivity. This MCP example uses PayCaptain.com as an example and shows how to create an MCP server which can search for and update employee data. How it works A MCP server trigger is used and connected to 3 custom workflow tools: Search Employee, Get Employee by ID and Update Employee. Each tool makes calls to the PayCaptain API to perform their respective tasks. Extra care is performed to strip out sensitive data and ensure we're not sharing too much. The Update Employee too also guards against updating fields which would preferably remain readonly. When you control the MCP server, you can determine behaviour of the tool. Finally, a Google Sheet node is used to log all operations for later audit. This will add a tiny bit of latency but recommended if sensitive data is being accessed. How to use This MCP server allows any compatible MCP client to manage their PayCaptain employee database. You will need to have a PayCaptain account and developer key to use it. Connect your MCP client by following the n8n guidelines here - https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger/#integrating-with-claude-desktop Try the following queries in your MCP client: "When did Sarah start here employment at the company?" "Does Jack work Wednesdays or Fridays?" "Please update Tracy's NI number to ABCD123456" Requirements PayCaptain Account and Developer Key. Google Sheets to log actions for later audit. MCP Client or Agent for usage such as Claude Desktop - https://claude.ai/download Customising this workflow Add or remove employee attributes as required for your user case. If Google Sheets is too slow, consider an API call to a faster service to log calls to the MCP server. Remember to set the MCP server to require credentials before going to production and sharing this MCP server with others!
by Mykolas Bartkus
What This Workflow Does This n8n workflow reads backlinks from a Google Sheet, sends each one to the DataForSEO On-Page API, and checks: Whether the backlink is still live on the target page Whether it's dofollow or nofollow Whether it's missing (i.e., lost) The result is then written back to the same Google Sheet under a Status column. Your result will look like this: Step-by-Step Setup Instructions Add your DataForSEO and Google Sheets credentials in n8n Make sure your Google Sheet has these columns: Backlink URL, Landing page, and Status Click the Test Workflow button to check a batch of backlinks Workflow Breakdown Trigger: Manual test start Read Data: Pulls backlink URLs and target pages from Google Sheets Format URLs: Extracts domain from URL Send POST Request to DataForSEO: Triggers a crawl on the backlink URL Wait 20 seconds: Allows crawl to finish Fetch Link Results: Retrieves backlink data from DataForSEO Validate Backlink: Checks if the backlink is live, and whether it’s dofollow Update Google Sheets: Logs the status as Live, Lost, or Lost (Nofollow)
by Amjid Ali
Automate Digital Delivery After PayPal Purchase Using n8n A Complete Step-by-Step Guide to Seamless Template Delivery Built by Amjid Ali – SyncBricks Deliver personalized files instantly after PayPal transactions using n8n – without writing a single backend line. 🚀 What This n8n Workflow Does This automation template helps you automatically deliver a digital product (such as an n8n template or JSON file) to customers who pay via PayPal — within seconds. You can: Automatically extract customer info Identify what was purchased Send a clean, branded email with the product file Promote your other courses, books, and tools 📦 Use Case Example Product: AI-Powered Social Media Content Generator & Publisher When a customer buys this product through PayPal, this automation: Listens for a successful payment event Fetches order details via API Sends an HTML email with the template attached Promotes your other offerings with embedded links 🔧 Prerequisites You’ll need: An n8n instance (self-hosted or n8n Cloud) A PayPal developer account PayPal OAuth2 credentials configured in n8n Your product hosted as a downloadable .json file (Oracle, Dropbox, GitHub, etc.) SMTP email credentials in n8n 🧠 Step-by-Step Setup 1. Webhook Trigger Node: Webhook Listens for a POST request from PayPal’s webhook for PAYMENT.CAPTURE.COMPLETED events. 📌 Add the webhook to your PayPal Developer App > Webhooks. 2. Wait Node: Wait Adds a brief delay to ensure the payment is completely processed before continuing. 3. Filter Event Type Node: Switch Processes only when the event is PAYMENT.CAPTURE.COMPLETED. 4. Fetch Order Details Node: HTTP Request Retrieves the order information from PayPal's Orders API. URL format: https://api.paypal.com/v2/checkout/orders/{{ order_id }} 5. Extract Email & Product Info Node: Set Extracts first name, last name, email address, and the purchased item name. 6. Identify Product Purchased Node: Switch Checks if the product is “AI-Powered Social Media Content Generator & Publisher”. 7. Download Workflow File Node: HTTP Request Fetches the hosted workflow JSON from object storage (Oracle in this case). 8. Convert to Downloadable File Node: Code Converts the JSON content into a binary file and attaches it. 9. Send Custom Email Node: Send Email Sends a rich HTML email to the buyer with: Their name The file attachment Product name Helpful resource links: 📘 Mastering n8n Course on Udemy 📖 Step-by-Step Guide (n8n Book) 🎓 n8n Video Tutorials (Free Course) ☁️ Sign up for n8n Cloud – Use code AMJID10 🎥 YouTube Video Walkthrough 📚 Additional Learning Resources 🚀 My Full Automation Suite Explore more and master n8n with these resources: 🎓 Mastering n8n (Full Udemy Course) 📕 Get Your Step-by-Step Guide (n8n Book) 🎥 Get Step-by-Step Tutorials (Video Course) ☁️ Sign up for n8n Cloud 💡 Templates, Tools, and More 📺 YouTube Channel – SyncBricks 🙋 Need Help or Customization? Reach out! Email: amjid@amjidali.com LinkedIn: linkedin.com/in/amjidali Website: syncbricks.com
by Xavier
This workflow creates nested Google Drive folders from a path string (like Projects/Clients/Reports). It automatically handles the necessary folder lookups and creation steps required by Google Drive, then outputs the final folder's ID for immediate use. How it works This workflow streamlines the creation of nested folders in Google Drive: Input: Provide a root_folder_id and a path (e.g., Projects/Clients/Reports) as input. Path Parsing: The workflow splits the path into individual folder names (based on the / separator) Iterative Check & Create: Loops through each part of your path: Searches within the current parent folder (starting with the root_folder_id) for a subfolder matching the name. If found: Retrieves the existing folder's ID to use as the parent for the next iteration. If not found: Creates a new folder with that name inside the current parent folder and uses the new folder's ID as the parent for the next iteration. Output: Returns the Google Drive Folder ID of the very last folder in the specified path (e.g., the ID for Reports in the example above). This ID can then be directly used in subsequent n8n nodes to upload files, create documents, or perform other actions within that specific folder. Set up steps Setting up this workflow requires configuring the connection to Google Drive and knowing where to start creating folders: Connect Google Drive Account: Ensure you have a Google Drive credential configured in your n8n instance. Then link your credentials in the workflow: there are 2 Google Drive nodes that will need to be updated. Identify Starting Folder ID: Determine the Google Drive Folder ID where your nested structure should begin. You can either use the root of your Google Drive or a specific folder: To use the root of Google Drive, simply set root_folder_id to root (also called "My Drive" in the UI) To use a specific folder, open the folder in a webbrowser and look at the URL. The folder ID will be in the last part of the URL: https://drive.google.com/drive/folders/THIS_IS_THE_FOLDER_ID. Prepare Inputs for Execution: When running the workflow (or triggering it), you will need to provide: google_drive_folder_id -> this is the root folder ID you identified in step 2. desired_path -> This is the path you want to create (e.g., Projects/Clients/Reports). Here's an example of how you can call this workflow in your other workflows: