by Parag Javale
Social Media Auto-Poster (Google Sheets → Twitter & Instagram) This workflow automatically: Pulls rows marked as Pending from a Google Sheet. Generates a formatted Instagram caption and HTML preview. Converts the HTML into an image via HCTI.io. Posts the content: As a tweet (text only) to Twitter (X). As a post (image + caption) to Instagram via the Facebook Graph API. Marks the row in Google Sheets as Posted with a timestamp. It runs every 5 hours (configurable via the Schedule Trigger). Requirements Google Sheets API Credentials** connected in n8n. HCTI.io account** (HTML → Image API). Twitter (X) OAuth1 credentials**. Facebook/Instagram Graph API** access token (for the business account/page). A Google Sheet with at least these columns: RowID Caption Desc Hashtags Status Set Status to Pending for any row you want posted. Setup Import the JSON workflow (My_workflow.json) into your n8n instance. Link all credentials (replace placeholders with your own API keys and tokens). Update the Google Sheet ID and Sheet Name inside the Get row(s) in sheet and Update Status Posted nodes. (Optional) Adjust the posting interval in the Schedule Trigger node. How It Works Trigger: Runs every 5 hours. Fetch Rows: Reads Google Sheets for rows with Status = Pending. Caption Generation: Combines Desc + Hashtags into final_caption. HTML → Image: Converts caption to a styled 1080x1080 post. Social Posting: Posts the caption to Twitter (text only). Uploads the image + caption to Instagram. Update Status: Marks the row as Posted on [timestamp]. Notes Facebook/Instagram tokens expire; refresh or use long-lived tokens. HCTI.io may require a paid plan for high volumes. Works best with a business Instagram account linked to a Facebook Page. License This workflow can be reused and adapted freely under the MIT license.
by Rosh Ragel
This workflow processes emails received in Gmail and saves detailed information about each email to a MySQL database. Before using, you need to have: Gmail credentials MySQL database credentials A table in your database with the following columns: messageId (Gmail message ID) threadId snippet sender_name (nullable) sender_email recipient_name (nullable) recipient_email subject (nullable) How it works: The Gmail Trigger listens for new emails (checked every minute). A Code Node extracts the following fields from each email: Sender's name and email Recipient's name and email The MySQL Node inserts the extracted data into your database. If an entry with the same sender email already exists, it updates the record with the new details. How to use: Make sure your database table has all required columns listed above. Select the appropriate table and configure the matching column (e.g., id) to avoid duplicates. Customizing this Workflow: You can further modify the workflow to store attachments, timestamps, labels, or any other Gmail metadata as needed.
by Audun
A reusable and production-ready n8n workflow that secures public webhooks using Bearer Token authentication and dynamic request validation. ✨ What It Does Verifies Bearer Token** Compares the Authorization header with a configured secret token. Validates Required Fields** Checks that all expected fields are present in the incoming request body. Returns Standardized JSON Responses** 401 Unauthorized if token is missing or invalid 400 Bad Request if required fields are missing 200 OK with a custom success payload 👤 Who It’s For Developers exposing n8n workflows as APIs No-code/low-code builders integrating with external forms or tools Anyone needing simple authentication and validation on incoming webhooks 💡 Why Use It 🔒 Secure: Prevents unauthorized access to your public workflows 🧼 Clean: Centralized configuration for token and required fields ⚙️ Flexible: Easy to extend and customize for any use case 🛠 Setup Instructions Configure Values in the Configuration Node Set your secret token: config.bearerToken = YOUR_TOKEN Define required request fields by key: Example: config.requiredFields.message = true; config.requiredFields.email = true; ✅ Only the keys matter – values can be anything. Plug in Your Business Logic Replace the "Add workflow nodes here" with your own logic. Customize the Success Response Edit the Create Response node to shape your success payload. 🧪 Use Cases Securing public form submissions Creating internal API endpoints Validating data from external services 📌 Use this as a base for building secure, API-style workflows in n8n. 👋 Hello! I'm Audun / xqus If my n8n workflows saved you time or sparked ideas, consider sending a little support my way. It helps me keep building cool stuff — and maybe grab a coffee ☕ along the way!
by Jimleuk
This n8n template allows you to use AI to generate logos or images which mimic visual styles of other logos or images. The model used to generate the images is Google's Imagen 3.0. With this template, users will be able to automate design and marketing tasks such as creating variants of existing designs, remixing existing assets to validate different styles and explore a range of designs which would have been otherwise too expensive and time-consming previously. How it works A form trigger is used to capture the source image to reference styles from and a prompt for the target image to generate. The source image is passed to Gemini 2.0 to be analysed and its visual style and tone extracted as a detailed description. This visual style description is then combined with the user's initial target image prompt. This final prompt is given to Imagen 3.0 to generate the images. A quick webpage is put together with the generated images to present back to the user. If the user provided an email address, a copy of this HTML page will be sent. How to use Ensure the workflow is live to share the form publicly. The source image must be accessible to your n8n instance - either a public image of the internet or within your network. For best results, select a source image which has strong visual identity as these will allow the LLM to better describe it. For your prompt, refer to the imagen prompt guide found here: https://ai.google.dev/gemini-api/docs/image-generation#imagen-prompt-guide Requirements Gemini for LLM and Imagen model. Cloudinary for image CDN. Gmail for email sending. Customising this workflow Feel free to swap any of these out for tools and services you prefer. Want to fully automate? Switch the form trigger for a webhook trigger!
by Yatharth Chauhan
How it works This workflow automates the process of handling incoming emails by: Receiving emails via IMAP. Converting the email to Markdown for better AI understanding. Summarizing the email using an AI model. Drafting a professional reply with AI, based on the summary. Requesting human approval for the AI-generated response. Sending the approved reply back to the original sender. Set up steps Estimated time: 10–20 minutes (excluding credential setup) What you’ll need: IMAP credentials for your email inbox SMTP credentials for sending emails OpenAI (or compatible) API key for AI steps Setup outline: Add your IMAP and SMTP credentials to the workflow. Connect your OpenAI (or compatible) account for AI summarization and reply generation. Deploy the workflow in n8n and activate it. Test by sending an email to your connected inbox. Note: Detailed configuration tips and explanations are included as sticky notes inside the workflow for each step.
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 Manish
This workflow helps you keep an eye on your GitHub forks, notifying you when they fall behind or pull ahead of their upstream repositories. How It Works Fetches All Your Repos: The workflow starts by grabbing a list of all repositories owned by your GitHub account. Filters for Forks: It then intelligently filters this list to identify only your forked repositories. Compares Branches: For each identified fork, it compares its default branch against the upstream repository's default branch to find out how many commits it's ahead or behind. Filters for Changes: Only forks that are either ahead or behind their upstream (i.e., not perfectly in sync) are processed further. Generates Report: A concise, well-formatted report is compiled, highlighting the status and commit differences for each relevant fork. Sends Telegram Notification: Finally, this report is sent directly to your Telegram chat, keeping you informed in real-time. Setup Steps Copy the template Update triggers ( optional ) Update the credentials Prerequisites GitHub Credentials**: You'll need to provide your GitHub personal access token for the "Get All Repositories" and "Compare Branches API Call" nodes. Telegram Bot Setup**: Configure a Telegram Bot and obtain its API token and your chat ID for the "Send Report" node. Github Owner Username**: Update the "Get All Repositories" node with the GitHub username of the repository owner whose forks you want to monitor. Explore & Fine-Tune: All detailed instructions and explanations, including how to adjust the filtering logic or output formatting, are provided in sticky notes directly within the workflow canvas.
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 Reyhan
Automatically clean up your Gmail inbox by deleting unwanted emails, validated by Gemini AI. Ideal for anyone tired of manual inbox cleanup, this workflow helps you save time while staying in control, with full transparency via Telegram alerts. How it works Scans Gmail inbox in adjustable 2-week batches Uses Gemini AI to decide if an email should be deleted or skipped Applies a label to skipped emails to avoid rechecking in future runs Deletes unwanted emails and sends a Telegram message with the AI's reasoning Also notifies on skipped emails, with explanation included Set up steps Connect your Gmail, Gemini AI, and Telegram accounts Adjust the AI baseline to control sensitivity (e.g. how strict the filtering should be) Set your batch range (default: last 2 weeks, adjustable) Define your Telegram chat/channel for notifications Note: Thanks to n8n's modular design, you can easily switch Gemini for another AI model (like OpenAI, Claude, etc.) or replace Telegram with Discord, Slack, or even email, no code changes needed, just swap the nodes.
by Jimleuk
This n8n workflow demonstrates how you can summarise and automate post-meeting actions from video transcripts fed into an AI Agent. Save time between meetings by allowing AI handle the chores of organising follow-up meetings and invites. How it works This workflow scans for the calendar for client or team meetings which were held online. * Attempts will be made to fetch any recorded transcripts which are then sent to the AI agent. The AI agent summarises and identifies if any follow-on meetings are required. If found, the Agent will use its Calendar Tool to to create the event for the time, date and place for the next meeting as well as add known attendees. Requirements Google Calendar and the ability to fetch Meeting Transcripts (There is a special OAuth permission for this action!) OpenAI account for access to the LLM. Customising the workflow This example only books follow-on meetings but could be extended to generate reports or send emails.