by IvanCore
Disclaimer: This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Important distinction: This template manages Telegram Copilot's UserBots (client accounts), not Telegram Bots. UserBot vs. Bot: Key Differences 🔹 Telegram Copilot's UserBots Authenticate as real user accounts (phone number required) Can join groups/channels without "Bot" label Subject to Telegram's client API limits Require manual login (MFA supported) 🔹 Telegram Bots Use @BotFather-created tokens Limited to bot API functionality Can't initiate chats with unbidden users No phone number required This template solves the unique challenges of UserBot management through: Core Functionality 🛡️ Session Reliability Automatic crash recovery (5-step restart sequence) Persistent session monitoring (checks every 6h) Database cleanup via /clear command 📱 Multi-Device Support Manages sessions independently from mobile clients Tracks active devices via /stat command Isolates session data per credential 🔔 Smart Notifications Real-time alerts to admin chat Detailed error context with authState snapshots Success confirmations with session metadata Setup Guide Prerequisites Self-hosted n8n instance (community node required) Valid Telegram account for UserBot Telegram bot token for notifications TelePilot credentials with api_id/api_hash Configuration Steps Credential Setup Add TelePilot credentials in n8n Configure Telegram bot token in notification nodes Set admin chat ID for alerts Monitoring Customization Adjust check frequency in Schedule Trigger Modify alert thresholds in Filter nodes Configure retry logic in recovery sequence Session Management Test /start command flow Verify /stat output format Confirm notification delivery Workflow Customization Advanced Options Add secondary notification channels (Email, Slack) Implement escalating alert system Integrate with monitoring dashboards Customize recovery attempt limits Compliance Notes UserBots must comply with Telegram's Terms of Service Not intended for bulk messaging or spam Recommended for legitimate automation use cases Note: UserBots must comply with Telegram ToS. Not for spam/mass messaging. Why This Matters: UserBots enable automation scenarios impossible with regular bots (e.g., group management as normal user, reacting as human account). This workflow keeps them reliably online 24/7.
by inderjeet Bhambra
Who is this for? This workflow is designed for travel bloggers, content creators, social media managers, and anyone who wants to transform their travel photos into engaging written narratives. It's perfect for travelers looking to create compelling stories from their photo collections without spending hours crafting content manually, families wanting to document memorable trips, and digital nomads who need to produce travel content efficiently. What problem is this workflow solving? Converting travel photos into engaging stories is time-consuming and requires both creative writing skills and the ability to analyze visual content meaningfully. This workflow solves the challenge of: Transforming visual memories into compelling written narratives Organizing photos chronologically to create logical story flow Generating professional-quality travel content without writing expertise Analyzing photo content to extract meaningful themes and emotions Creating day-by-day structured narratives from unorganized photo collections Reducing the time spent on manual content creation for travel documentation What this workflow does This AI-powered photo storyteller takes your travel photos and automatically generates immersive, first-person travel narratives. The workflow: Accepts multiple photos through a webhook endpoint Uses OpenAI Vision API (GPT-4o) to analyze each photo's content, emotions, and themes Automatically organizes photos chronologically by date and timestamp Groups photos by travel days and extracts daily themes Leverages GPT-4.1 (minimum required) to craft engaging, first-person travel stories with creative day titles Generates structured narratives with sensory details, cultural observations, and emotional insights Outputs JSON formatted content ready for formatting Creates day-by-day story structure with memorable moments and reflective conclusions Setup Required Credentials: OpenAI API key configured in n8n for both Vision Analysis and Story Generation nodes Ensure you have sufficient OpenAI credits for image analysis and text generation Webhook Configuration: The workflow creates a webhook endpoint at /tripteller-upload Configure your photo upload interface to POST photos array to this endpoint Photos should be sent as base64 encoded data with filename and metadata Photo Requirements: Supported formats: Standard image formats (JPEG, PNG, etc.) Photos should include timestamp metadata for chronological organization Caution Do not upload all photos at once. Start with a small number of photos, like 5 at a time. How to customize this workflow to your needs Story Style Customization: Modify the system prompt in the "Generate Travel Story" node to adjust writing tone (nostalgic, adventurous, poetic, etc.) Customize the story structure by editing the output format requirements Add specific cultural or geographical context prompts for location-specific storytelling Photo Analysis Enhancement: Adjust the Vision Analysis node prompt to focus on specific elements (architecture, food, people, landscapes) Modify the grouping logic in the "Group Photos by Day" node for different time-based organization Add location extraction from EXIF data for geographical context Output Format Adjustment: Customize the final response structure in the "Format Final Response" node Add integration with publishing platforms (blog APIs, social media, etc.) Include additional metadata like location tags, travel duration, or trip statistics Performance Optimization: Adjust the execution timeout based on your typical photo volume Modify the parallel processing approach for large photo collections Add progress tracking for longer processing workflows
by Aitor | 1Node
This n8n workflow processes incoming Telegram messages, differentiating between text and voice messages. How it works: Message Trigger: The workflow initiates when a new message is received via the Telegram "Message Trigger" node. Switch Node: This node acts as a router. It examines the incoming message: If the message is text, it directs the flow along the "text" branch. If the message contains voice, it directs the flow along the "voice" branch. Get Audio File: For audio messages, this node downloads the audio file from Telegram. Transcribe Audio: The downloaded audio file is then sent to an "OpenAI Transcribe Recording" node, which uses OpenAI's whisper-1 speech-to-text model to convert the audio into a text transcript. Send Transcription Message: Regardless of whether the original message was text or transcribed audio, the final text content is then passed to a "Send transcription message" node. Setup Requirements: Telegram Bot Token**: You will need a Telegram bot token configured in the "Message Trigger" node to receive messages. OpenAI API Key**: An OpenAI API key is required for the "Transcribe audio" node to perform speech transcription. Additional Notes: This workflow provides a foundational step for building more complex AI-driven applications. The transcribed text or original text message can be easily piped into an AI agent (e.g., a large language model) for analysis, response generation, or interaction with other tools, extending the bot's capabilities beyond simple message reception and transcription. 👉 Need Help? Feel free to contact us at 1 Node. Get instant access to a library of free resources we created.
by Chris Carr
Avoid Asking Redundant Questions with Dynamically Generated Forms using OpenAI Target Audience This workflow has been built for those who require a form to capture as much data as possible as well as the answers to predefined questions, whilst optimising the user experience by avoiding asking redundant questions. Use Case When creating a form to capture information, it can be useful to give the user an opportunity to input a long answer to a large, open-ended question. We then want to drill down to answer specific questions that we require the answer to. When doing this, we don't want to ask duplicate questions. This particular scenario imagines an AI consultancy capturing leads. What it Does This workflow requires users to input basic information and then answer an open ended question. The specific questions on the next page will only be those that weren't answered in the open-ended question. How it Works The open-ended question (and relevant basic information) is analysed by an LLM to determine which specific questions have not been answered. Chain-of-thought reasoning is utilised and the output structure is specified with the Structured Output Parser. Those questions that have already been answered are filtered out nodes. The remaining items are then used to generate the last page of the form. Once the user has filled in the final page of the form, they are shown a form completion page. Setup Add your OpenAI credentials Go to the Get Basic Information node and click Test Step Complete the form to test the generic use case Modify the prompt in Analyse Response to fit your use case Next Steps Add additional nodes to send an email to the form owner Add a subsequent LLM call to analyse the form response - those that are qualified should be given the opportunity to book an appointment
by Sarfaraz Muhammad Sajib
📧 Email Validation Workflow Using APILayer API This n8n workflow enables users to validate email addresses in real time using the APILayer Email Verification API. It's particularly useful for preventing invalid email submissions during lead generation, user registration, or newsletter sign-ups, ultimately improving data quality and reducing bounce rates. ⚙️ Step-by-Step Setup Instructions Trigger the Workflow Manually: The workflow starts with the Manual Trigger node, allowing you to test it on demand from the n8n editor. Set Required Fields: The Set Email & Access Key node allows you to enter: email: The target email address to validate. access_key: Your personal API key from apilayer.net. Make the API Call: The HTTP Request node dynamically constructs the URL: https://apilayer.net/api/check?access_key={{ $json.access_key }}&email={{ $json.email }} It sends a GET request to the APILayer endpoint and returns a detailed response about the email's validity. (Optional): You can add additional nodes to filter, store, or react to the results depending on your needs. 🔧 How to Customize Replace the manual trigger with a webhook or schedule trigger to automate validations. Dynamically map the email and access_key values from previous nodes or external data sources. Add conditional logic to filter out invalid emails, log them into a database, or send alerts via Slack or Email. 💡 Use Case & Benefits Email validation is crucial in maintaining a clean and functional mailing list. This workflow is especially valuable in: Sign-up forms where real-time email checks prevent fake or disposable emails. CRM systems to ensure user-entered emails are valid before saving them. Marketing pipelines to minimize email bounce rates and increase campaign deliverability. Using APILayer’s trusted validation service, you can verify whether an email exists, check if it’s a role-based address (like info@ or support@), and identify disposable email services—all with a simple workflow. Keywords: email validation, n8n workflow, APILayer API, verify email, real-time email check, clean email list, reduce bounce rate, data accuracy, API integration, no-code automation
by Oneclick AI Squad
This automated n8n workflow tracks booked flight fares post-purchase using Amadeus and Skyscanner APIs to detect drops for refund or credit opportunities. It streamlines fare monitoring, updates booking statuses, and notifies users via SMS or email. Fundamental Aspects Fare Check Trigger** - Initiates the workflow Get Tracked Bookings** - Retrieves existing booking data Prepare Fare Query** - Prepares query parameters Search Current Fares** - Queries Skyscanner for current fares Analyze Fare Drops** - Identifies significant fare reductions Update Fare Tracking** - Updates fare tracking records Update Booking Status** - Updates status based on fare changes Check if Notification Needed** - Determines if alerts are required Send Fare Drop Email** - Notifies users via email Notify Slack Team** - Alerts the team via Slack Check Refund Eligible** - Assesses refund eligibility Initiate Refund Process** - Starts refund procedure if eligible Check if SMS Needed** - Decides if SMS alert is necessary Send SMS Alert** - Sends SMS notification Setup Instructions Import the workflow into n8n Configure API credentials for Amadeus and Skyscanner Run the workflow Verify notifications and refund processes Features Fare Monitoring** - Tracks and compares fares using Amadeus and Skyscanner Alert System** - Sends email and SMS notifications for fare drops Refund Management** - Checks and initiates refund processes Trend Analysis** - Analyzes fare trends for strategic decisions DB Queries Get Tracked Bookings Columns:** - booking_id, passenger_name, email, phone, flight_number, departure_date, origin, destination, airline, booking_class, original_fare, booking_date, confirmation_code, tracking_enabled, last_checked, current_lowest_fare, trend. Update Fare Tracking Columns:** - booking_id, check_date, lowest_fare, fare_source, savings_amount, savings_percentage, fare_trend, priority_level, action_recommended, refund_eligible, available_fares_json, updated_at. Update Booking Status: Columns** - last_checked, current_lowest_fare, booking_id. DB Setup: Create tables 'bookings' and 'fare_tracking' with above columns, set 'booking_id' as primary key, and ensure proper indexing for performance. Run queries after configuring DB connection in n8n with appropriate credentials. Parameters to Configure amadeus_api_key**: Amadeus API key skyscanner_api_key**: Skyscanner API key email_recipients**: List of email addresses for alerts sms_recipients**: List of phone numbers for SMS alerts slack_channel**: Slack channel for team notifications refund_threshold**: Minimum fare drop for refund eligibility
by Joey D’Anna
This workflow is a building block designed to be called from other workflows via an Execute workflow node. When called from another workflow, and given the JSON input of a "pulse" field with the ID to pull from monday, this workflow will return: The items name and ID All column data, indexable by the column name All column data, indexable by the column's ID string All board relation columns, with their data and column values All subitems, with their data and column values For example: ++Prerequisites++ A monday.com account and credential A workflow that needs to get detailed data from a monday.com row The pulse id of the monday.com row to retreive data from. ++Setup++ Import the workflow Configure all monday nodes with your credentials and save the workflow Copy the workflow ID from it's URL In a different workflow, add an Edit Fields node, to output the field "pulse", with the monday item you want to retrieve. Feed the Edit Fields node with your pulse into an Execute workflow node, and paste the workflow ID from above into it This "pulse" field will tell the workflow what pulse to retreive. This can be populated by an expression in your workflow There is an example of the Edit Fields and Execute Workflow nodes in the template
by Dr. Firas
Who Is This For This workflow is ideal for content creators, solo founders, marketers, and AI enthusiasts who want to automate the full process of blog content creation. It is especially useful for professionals in tech, AI, and automation who publish frequently and need SEO-ready content fast. What Problem Does This Workflow Solve Creating SEO-optimized blog content is time-consuming and requires consistency. Manually researching trending topics slows down the content pipeline. Formatting, publishing, and promoting across multiple platforms takes effort. This workflow automates the entire process from research to publication. What This Workflow Does Research: Uses Perplexity AI to gather up-to-date content ideas via form input. Content Generation: GPT-4 creates a short, SEO-optimized article (max 20 lines) with H1, H2 structure and meta-description. Publishing: Automatically posts the content to WordPress. Email Notification: Sends the article title and URL via Gmail. Slack Notification: Notifies a specified Slack channel when the article is live. Database Logging: Saves the article details to a Notion database. Setup Guide Prerequisites WordPress account with API access OpenAI API Key Perplexity API Key Slack Bot Token Notion integration (Database ID) Gmail API credentials (optional) Community Node Required: This workflow uses n8n-nodes-mcp, which only works on self-hosted instances of n8n. > To install: Go to Settings > Community Nodes > Install n8n-nodes-mcp Steps Import the workflow into your n8n instance Install the required community node (n8n-nodes-mcp) Set up API credentials for OpenAI, Perplexity, WordPress, Slack, Gmail, and Notion Customize the form trigger with your preferred prompt Run a test using a sample topic How to Customize This Workflow Modify the research prompt to match your niche or industry Adjust GPT-4 settings for tone, structure, or content length Customize Notion fields (e.g., add tags, categories, or labels) Add logic for generating or assigning featured images automatically
by Joey D’Anna
This template will create a nightly backup of all your n8n workflows to a Dropbox folder. Each night, the previous night's backups are moved into an "old" folder, and renamed with the date they were taken. Backups over a specified age are deleted. (this is disabled by default for safety until you manually enable and verify it with your own setup) Prerequisites Dropbox account and credentials A destination folder for backups Setup Update all dropbox nodes with your credential Edit the Schedule Trigger node with the desired time to run the backup Edit the DESTINATION FOLDER node to specify the path in dropbox to upload to. This should be a folder and include the trailing / If you want to automatically purge old backups Edit the PURGE DAYS node to specify the age to purge Enable the PURGE DAYS node, and the 3 subsequent nodes Enable the workflow to run on the specified schedule
by Nico Kowalczyk
Description: This template facilitates the transfer of a folder, along with all its files and subfolders, within a Nextcloud instance. The Nextcloud user must have access to both the source and destination folders. While Nextcloud allows folder movement, complications may arise when dealing with external storage that has rate limits. This workflow ensures the individual transfer of each file to avoid exceeding rate limits, particularly useful for setups involving external storage with rate limitations. How it works: Identify all files and subfolders within the specified source folder. Recursive search within subfolders for additional files. Replicate the folder structure in the target folder. Individually move each identified file to the corresponding location in the target folder. Set up steps: Set Nextcloud credentials for all Nextcloud nodes involved in the process. -Edit the trigger settings. Detailed instructions can be found within the respective trigger configuration. Initiate the workflow to commence the folder transfer process. Help If you need assistance with applying this template, feel free to reach out to me. You can find additional information about me and my services here. => https://nicokowalczyk.de/links I have also produced a video where I explain the workflow and provide an example. You can find this video over here. https://youtu.be/K1kmG_Q_jRk Cheers. Nico Kowalczyk
by Extruct AI
Automatic lead enrichment in Slack: monitors your Slack channel for new lead emails posted there, extracts each company’s name or domain, sends it to the Extruct API for data enrichment, then posts back a structured Slack card with company name, website, LinkedIn profile, number of employees, industry, recent news, and key contacts. Who’s it for: Sales teams, SDRs, and marketing ops who capture new lead information in Slack and want instant enrichment without leaving the channel. How it works: When a lead email is posted into your designated Slack channel, the workflow: Monitors for any new message containing a company name or domain. Extracts that company identifier. Sends it to Extruct API for research. Waits for enrichment to complete. Posts back into the same Slack thread a formatted card with: Company name Website LinkedIn profile Number of employees Industry Recent news Key contacts How to set up: Sign up for Extruct AI Copy the Extruct table ID Create & install your Slack app Configure n8n credentials & channel Activate & use Requirements: Extruct account & API token Extruct table template Slack workspace with permission to install apps
by Marvin Wu
Who is this for? This workflow is designed for n8n users and developers who need to automate the documentation process of their n8n workflows. It's particularly useful for teams looking to streamline their documentation efforts and ensure consistency across their workflow documentation. What problem is this workflow solving? / Use case The primary problem this workflow addresses is the manual and time-consuming process of creating documentation for n8n workflows. It automates the generation of concise, clear, and comprehensive documentation directly from the workflow's JSON, making it easier for both technical and non-technical users to understand what the workflow does and how it operates. What this workflow does Upon receiving a form submission with the workflow title and JSON, this workflow automatically generates documentation that includes: A brief introduction to the workflow. The trigger mechanism (webhook URLs for test and production environments, or cron schedules). Setup requirements, including necessary credentials and external dependencies. Setup Credentials Setup: Ensure you have OpenAI API credentials configured in n8n to use the GPT model for generating documentation text. Form Submission: Users must submit the form with the workflow title and JSON. The form is accessible via: Test URL: domain/form-test/{webhookId} Production URL: domain/form/{webhookId} How to customize this workflow to your needs Modify Trigger URLs**: Adjust the webhook or form URLs based on your domain and specific n8n setup. Customize Documentation Template**: Edit the OpenAI node's prompt to change the structure or details of the generated documentation. Extend Functionality**: Add nodes to integrate with other systems (e.g., automatically publishing the documentation to a wiki or sending it via email). This workflow simplifies the documentation process, making it accessible and manageable for teams of all sizes and technical abilities. By automating documentation, it ensures that all workflows are properly documented, enhancing understanding and efficiency within teams.