by Joseph
📄 Google Script Workflow: Upload File from URL to Google Drive (via n8n) 🔧 Purpose: This lightweight Google Apps Script acts as a server endpoint that receives a file URL (from n8n), downloads the file, uploads it to your specified Google Drive folder, and responds with the file’s metadata (like Drive file ID and URL). This is useful for large video/audio files that n8n cannot handle directly via HTTP Download nodes. 🚀 Setup Steps: 1. Create a New Script Project Go to https://script.google.com Click “New Project” Rename the project to something like: DriveUploader 2. Paste the Script Code Replace the default Code.gs content with the following (your custom script): function doPost(e) { const SECRET_KEY = 'your-strong-secret-here'; // Set your secret key here try { const data = JSON.parse(e.postData.contents); // 🔒 Check for correct secret key if (!data.secret || data.secret !== SECRET_KEY) { return ContentService.createTextOutput("Unauthorized") .setMimeType(ContentService.MimeType.TEXT); } const videoUrl = data.videoUrl; const folderId = 'YOUR_FOLDER_ID_HERE'; // Replace with your target folder ID const folder = DriveApp.getFolderById(folderId); const response = UrlFetchApp.fetch(videoUrl); const blob = response.getBlob(); const file = folder.createFile(blob); file.setName('uploaded_video.mp4'); // You can customize the name return ContentService.createTextOutput(file.getUrl()) .setMimeType(ContentService.MimeType.TEXT); } catch (err) { return ContentService.createTextOutput("Error: " + err.message) .setMimeType(ContentService.MimeType.TEXT); } } 3. Generate & Set Up Secret Key To allow authorized post requests to your script only, we need to generate a secret key from aany reliable key generator. You can head over to acte, click generate and copy the "Encryption key 256". Paste it in the 'your-strong-secret-here' placeholder in your script then click save const SECRET_KEY = 'your-strong-secret-here'; // Set your secret key here; 4. Replace Folder ID in Code Open the target Drive folder in your browser The folder ID is the part of the URL after /folders/ Example: https://drive.google.com/drive/u/0/folders/1Xabc12345678defGHIJklmn Paste that ID in the script: var folderId = "1Xabc12345678defGHIJklmn"; 5. Set Up Deployment as Web App Click “Deploy” > “Manage Deployments” > “New Deployment” Under Select type, choose Web app Description: Upload from URL to Drive Execute as: Me Who has access: Anyone Click Deploy Authorize the script when prompted Copy the Web App URL 📤 How to Use in n8n 1. HTTP Request Node Method: POST URL: (your web app URL) Secret Key: (Secret Key set in script) Body Content Type: JSON Paste code: { "videoUrl": "https://example.com/path/to/your.mp4", "secret": "your-strong-secret-here" } videoUrl: The file download URL secret: The generated and set up secret key 2. Rename Node A simple drive update node to rename the file using the file drive url returned from the script.
by Matthieu
Search LinkedIn companies and add them to Airtable CRM Who is this for? This template is ideal for sales teams, business development professionals, and marketers looking to build a robust prospect database without manual LinkedIn research. Perfect for agencies, consultants, and B2B companies targeting specific business profiles. What problem does this workflow solve? Manually researching companies on LinkedIn and adding them to your CRM is time-consuming and error-prone. This automation eliminates the tedious process of finding, qualifying, and importing prospects into your database. What this workflow does This workflow automatically searches for companies on LinkedIn based on your criteria (keywords, size, location), retrieves detailed information about each company, filters them based on quality indicators (follower count and website availability), and adds new companies to your Airtable CRM while preventing duplicates. Setup Create a Ghost Genius API account and get your API key Configure HTTP Request nodes with Header Auth credentials (Name: "Authorization", Value: "Bearer your_api_key") Create an Airtable base named "CRM" with columns: name, website, LinkedIn, id, etc. Set up your Airtable credentials following n8n documentation Add your company search selection criteria to the “Set Variables” node. How to customize this workflow Modify search parameters in the "Set Variables" node to target different industries, locations, or company sizes Adjust the follower count threshold in the "Filter Valid Companies" node based on your qualification criteria Customize the Airtable fields mapping in the "Add Company to CRM" node to match your database structure Add notification nodes (Slack, Email) to alert you when new companies are added
by Humble Turtle
Manage Jira Issues with Natural Language via Telegram and GPT-4o Overview The Jira Agent is an AI-powered assistant that allows users to interact with Jira directly through messaging platform Telegram. It leverages OpenAI's GPT-4o model to interpret natural language commands and perform various Jira-related actions. On Telegram, it enables users to create Jira stories by triggering a guided form when prompted with "create story." Additionally, it provides more extensive functionality, including creating, updating, searching, and transitioning Jira issues through natural language commands. How it works Normal interaction Using messages as "Please give all my issues". Standardized process of creating stories: Message: "create story" Open the Form that Telegram responds back to you Fill in the essential story information in the form The story automatically gets created in your backlog. Required Connections To use the Jira Agent effectively, users need access to: A Telegram account, Telegram setup involves deploying the bot and starting a chat; story creation is triggered with a simple text command. A connected Jira workspace Permissions to create and modify Jira issue Access to GPT-4o API-key Detailed configuration instructions are provided in the workflow Setup Time <15 minutes Customising this workflow Try adding more details to the form for more complete Jira ticket creation. Try connecting a Google Calendar node to plan your work
by simonscrapes
Use Case Automate image replacement in Google Docs: You need to update document images dynamically You want to create multiple versions of a template with different images You need to batch process document images from a URL database You want to generate shareable documents with custom images What this Workflow Does The workflow automates image replacement in Google Docs: Accepts image URLs from your database Finds and replaces images in template documents Creates new document copies with updated images Optionally converts to PDF and makes documents shareable Setup Connect your image URL database (column name must be "url") Set up Google Docs OAuth 2 API credentials Optional: Create a template document in Google Drive with placeholder images Optional: Configure Google Drive authentication for additional features How to Adjust it to Your Needs Remove template copying for single document processing Adjust image ID selection for documents with multiple images Configure sharing settings and download formats Customize file naming and storage location More templates and n8n workflows >>> @simonscrapes
by HoangSP
Name: AI-Powered Research Agent using Perplexity Sonar Description: This workflow acts as an AI-powered research assistant using the Perplexity Sonar model. When triggered by another workflow, it sends a user-defined prompt to the Perplexity API to retrieve up-to-date search results. The response is then parsed into a clean format for downstream processing. How it Works: Trigger: Activated from another workflow via Execute Workflow Trigger. Prompt Setup: Sets a system role message and user query dynamically. API Call: Sends a POST request to Perplexity's /chat/completions endpoint with your credentials. Response Handling: Extracts the message content from the API response. Output: Returns the result, ready for display or further processing. Requirements: A Perplexity AI API Key Set up authentication via Header Auth with Bearer token Ensure your account allows outbound HTTP requests in n8n Customization Tips: Modify the system prompt to suit your research domain Chain this workflow with other automation like blog creation, summaries, etc. Replace the output handling logic to fit into Google Sheets, Notion, or Telegram
by Lucas Peyrin
How it works This template is an interactive, hands-on tutorial designed to demystify what an API is and how it works, right inside your n8n canvas. It uses a simple restaurant analogy to explain the core concepts: You* are the "Client" (an *HTTP Request** node). The Kitchen is the "Server" (a Webhook node). The API is the Menu and the Waiter—the set of rules for how you can ask for things and get a response. The workflow is a series of self-contained lessons. Each lesson pairs an HTTP Request node (the customer placing an order) with a Webhook node (the kitchen receiving and responding to the order) to demonstrate a key concept: The Basics: Making a simple GET request to a URL. Customizing: Using Query Parameters to filter or modify your request. Sending Data: Using the POST method and a Body to send information to the server. Identification: Using Headers and simple Authentication to prove who you are. Handling Delays: Understanding how Timeouts prevent your workflow from getting stuck. Set up steps Setup time: < 1 minute This workflow is a self-contained tutorial and requires no external services or credentials. You may want to check the Base URL. Click "Execute Workflow" to run the entire tutorial. Follow the flow from top to bottom, exploring each "Lesson". For each lesson, click on the HTTP Request node and its corresponding Webhook node to see how they are configured and what they do. Read the sticky notes next to each lesson—they contain the core explanations! That's it! Explore and have fun learning the fundamentals of APIs in an interactive way.
by Jaber Zare
Who is this for? This workflow is for DevOps engineers, system administrators, and Docker users who want to automate the process of checking for updates, verifying them, and applying updates to their Docker-based deployment in a controlled manner. For example, this workflow is used to update the n8n Docker image. What does this workflow do? Fetches the latest Docker image version from GitHub. Compares it with the currently running version on the server. Sends a Telegram message requesting confirmation if an update is available. If confirmed, pulls the latest n8n Docker image, updates the container, and restarts it. Sends a Telegram message confirming the update is completed. Schedules automatic checks, Uses a cron trigger in n8n to check for updates at regular intervals. Setup Ensure n8n is installed and running in a Docker container. Create a Telegram bot using BotFather. Set up Telegram credentials. Set up SSH credentials (ensure the SSH user has sudo access). Obtain the bot token and chat ID. Set the Default variable node telegram-id (You can find it by messaging @get_id_bot). n8n-container-name (Specify the name of the n8n container.) working-directory (The directory where your docker-compose.yml is). You can use a manual trigger or a schedule trigger to update (for n8n, I use Cron every 3 days to check for a new version). How to customize this workflow Change the update mechanism: Modify the Docker commands if using a different container runtime or orchestration tool. Modify the confirmation flow: Add extra validation steps, such as checking for breaking changes before updating. Use a different notification method: Replace Telegram with Slack, email, or another notification service.
by Sweenu
Who is this template for? You are in the bad habit of always checking your feed to see if there are new videos? This workflow will help you get rid of this habit by delivering an email notification for each new video posted from the channels you are subscribed to. No need to check your feed again: no email = no new video. Example email How it works Every hour (by default), we: Fetch all your YouTube subscriptions from the YouTube Data v3 API. Get a list of the latest videos of each channel through RSS (we don't use YouTube's API for this step as it would put us over the daily quota). Send you a simple yet beautiful email for each new video that was published since the last run of the workflow. To go to the video, simply click on the thumbnail. Caveats Because of the way this workflow is implemented, if your n8n instance stops, you will not get emails for the videos you missed when your instance is back online. The situation could be improved if n8n gave us an easy way to access the last successful execution's timestamp. Set up instructions Complete the Set up credentials step when you first open the workflow. You'll need YouTube OAuth2 API and SMTP credentials. In the Send an email for each new video step, set the email address from which the email will be sent (an email address that your SMTP credentials allow sending from) and the email address to which you are going to send the email to (can be the same). Optional steps From the Schedule Trigger step, you can change the check frequency (default: every hour). If there are channels that you do not want notifications from, you can add their channel ID to the list in the Filter out channels step. To get a channel's ID, go to its main page, click on the description, then "Share channel" and finally "Copy channel ID". By default, shorts are excluded. But if you want them, simply remove the Filter out shorts step from the workflow. Template was created in n8n v1.84.0
by David Olusola
Learn Customer Onboarding Automation with n8n ✅ How It Works This smart onboarding automation handles new customer signups by: Receiving signup data via webhook Validating required customer info Creating a contact in HubSpot CRM Sending a personalized welcome email Delivering onboarding documents after 2 hours Sending a personal check-in email after 1 day Sending a Week 1 success guide after 3 days Updating CRM status and notifying the team at each milestone It’s designed for professional onboarding, with built-in timing, CRM integration, and smart notifications to improve engagement and retention. 🛠️ Setup Steps Create Webhook Add a Webhook node in n8n with POST method — this triggers when a new customer signs up. Validate Customer Data Add an IF node to check if email and customerName are present. Create CRM Contact Use a HubSpot node to create a new contact, map fields (e.g., split name into first/last). Send Notifications Add a Telegram or Slack node to alert your team instantly. Send Welcome Email Use an Email Send node for a warm welcome, customized with customer details. Wait 2 Hours Add a Wait node to delay next steps and avoid overwhelming the customer. Send Onboarding Documents Use another Email Send node to deliver helpful PDFs or guides. Wait 1 Day & Send Check-in Another Wait node, followed by a personal check-in email using the customer’s name. Wait 2 More Days & Send Success Guide Deliver Week 1 content via email to reinforce engagement. Update CRM & Notify Team Use HubSpot to update status and Telegram/Slack to notify your team of completion.
by Jan Willem Altink
This workflow provides a secure API endpoint to remotely trigger other n8n workflows with custom data and to retrieve information about your existing workflows. It's perfect for users who want to integrate n8n into external systems or programmatically manage their automations. example usage: I use this workflow in a Raycast extension i have build, to execute n8n workflows from within Raycast: see Github ++How it works++ Receives API Calls: A webhook listens for incoming HTTP requests (e.g., POST to trigger, GET to retrieve info). Triggers Workflows: If the request is to trigger a workflow, it dynamically identifies the target workflow ID (from query parameters) and any input data (from the request body), then executes that workflow. This means you can control any of your workflows without modifying this manager template. Retrieves Workflow Info: Similarly, if the request is to get information, it dynamically uses query parameters (workflowId, mode, includedWorkflows) to fetch details about one or more n8n workflows (e.g., specific, all, active, inactive; full or summarized data). Responds: Sends back a JSON response indicating success/failure or the requested workflow data. ++Set it up++ Configure Webhook Security: Set up "Header Auth" credentials for the main Webhook node. This is the API key your external services will use. Add n8n API Credentials: For the nodes that fetch workflow information (like "Get specific workflowid", "get all active workflows", etc.), connect your n8n API credentials. This allows the workflow to query your n8n instance. Note Your Webhook URL: Once active, n8n provides a production URL for the webhook (path: workflow-manager). Use this URL to make API calls. Understand API Parameters: To trigger: Use ?workflowId=[ID_OF_WORKFLOW_TO_RUN] and send JSON data in the request body. To get info: Use parameters like ?workflowId=[ID], ?includedWorkflows=[all/active/inactive], and ?mode=[full/summary].
by Aitor | 1Node
Stay ahead of the curve and keep your followers informed—automatically. This n8n workflow uses Perplexity AI to generate insightful answers to scheduled queries, then auto-posts the responses directly to X (Twitter). ⚙️ What this workflow does Scheduled Trigger – Runs at set times (daily, hourly, etc.). searchQuery – Define what kind of trending or relevant insight you want (e.g. “latest AI trends”). set API Key – Securely insert your Perplexity API key. Perplexity API Call – Fetches a short, insightful response to your query. Post to X – Automatically publishes the result as a tweet. 🧩 Requirements An n8n account (self-hosted or cloud) A Perplexity API key A connected X (Twitter) account via n8n’s credentials ✅ Setup Steps Add this workflow into your n8n account. Edit the searchQuery node with a topic (e.g. “What’s new in ecommerce automation?”). Paste your Perplexity API key into the set API key node. Connect your X (Twitter) account in the final node. Adjust the schedule timing to suit your content frequency. 💡 Ideas to Improve 💬 Add a formatting step to shorten or hashtag the response. 📊 Pull multiple trending questions and auto-schedule posts. 🔁 Loop responses to queue a full week of content. 🌐 Translate content before posting to reach a global audience. 🆘 Need help? Feel free to contact us at 1 Node. Get instant access to a library of free resources we created.
by Jakkrapat Ampring
Description This workflow automatically generates personalized certificates in Google Slides and emails them to respondents only if they meet a minimum score threshold, using data submitted via Google Forms (stored in Google Sheets). Ideal for: Online courses Quizzes and workshops Event participation certificates Sheet Requirements Your connected Google Sheet (from the Google Form) must contain: Full Name – The name to appear on the certificate. Email – Recipient’s email address. Score – The test/quiz score used for threshold logic. Setup Instructions Connect Google Sheets – Make sure your Form responses are linked to a Sheet with the columns mentioned above. Set Score Threshold – Modify the If node to your desired minimum score (e.g., >= 80). Customize Certificate Template – Use a Google Slides file with text placeholders like {{Full Name}}. Connect Gmail & Google Drive – For sending emails and saving generated certificates. Update File IDs – Replace any placeholder Slide and Drive file IDs with your own. Services Used Google Sheets (Form responses) Google Slides (Certificate template) Google Drive (Storage) Gmail (Email delivery) Troubleshooting Issue: "Cannot read property 'Score'" → Ensure your column names match exactly (Score, Full Name, etc.). Slides not replacing placeholders → Double-check placeholder format ({{Full Name}}) and capitalization. Emails not sending → Verify Gmail authentication and make sure the If node is correctly filtering results.