by Jimleuk
This n8n workflow shows how using multimodal LLMs with AI vision can tackle tricky image validation tasks which are near impossible to achieve with code and often impractical to be done by humans at scale. You may need image validation when users submitted photos or images are required to meet certain criteria before being accepted. A wine review website may require users only submit photos of wine with labels, a bank may require account holders to submit scanned documents for verification etc. In this demonstration, our scenario will be to analyse a set of portraits to verify if they meet the criteria for valid passport photos according to the UK government website (https://www.gov.uk/photos-for-passports). How it works Our set of portaits are jpg files downloaded from our Google Drive using the Google Drive node. Each image is resized using the Edit Image node to ensure a balance between resolution and processing speed. Using the Basic LLM node, we'll define a "user message" option with the type of binary (data). This will allow us to pass our portrait to the LLM as an input. With our prompt containing the criteria pulled off the passport photo requirements webpage, the LLM is able to validate the photo does or doesn't meet its criteria. A structured output parser is used to structure the LLM's response to a JSON object which has the "is_valid" boolean property. This can be useful to further extend the workflow. Requirements Google Gemini API key Google Drive account Customising this workflow Not using Gemini? n8n's LLM node works with any compatible multimodal LLM so feel free to swap Gemini out for OpenAI's GPT4o or Antrophic's Claude Sonnet. Don't need to validate portraits? Try other use cases such as document classification, security footage analysis, people tagging in photos and more.
by Yar Malik (Asfandyar)
How it works Trigger: Listens for an incoming chat message Copy Assistant: Feeds the message (plus memory) into an OpenAI Chat Model and exposes two “tools” Cold Email Writer Tool Sales Letter Tool• Tool execution: Depending on the user’s intent, the appropriate tool generates the copy • Save output: Writes the generated email or sales letter into your target document via the Update a document node Set up steps • Configure your OpenAI Chat Model credentials in n8n (no hard-coded keys!) • Add and authenticate the Simple Memory credential (to keep context across messages) • Create Google Docs (or MS Word) credentials for the Update a document node • Ensure your Chat trigger is pointing at your incoming-message endpoint • Mandatory: Drop sticky-note annotations on each tool node explaining where to enter API keys and how to tweak prompts Once everything’s wired up, send a test chat message like “Write me a cold email for a fintech startup” and watch the workflow spin up a polished draft in your document. How to use Import the workflow JSON into n8n. Configure your Chat trigger (webhook or form) to receive incoming messages. Send a chat prompt like: “Write me a cold email for a B2B SaaS offering.” The “Copy Assistant” custom GPT picks the right tool (Cold Email or Sales Letter). Generated copy is written directly into your linked Google Doc or Word document. Requirements OpenAI API Key (with Chat Completions & Custom GPTs enabled) Custom Assistant created in your ChatGPT dashboard (Assistant ID pasted into the Chat Model node) n8n instance (Cloud or self-hosted) with credentials set up for: Simple Memory (to persist context) Google Docs or Microsoft Word (for document output) Customising this workflow Tweak system and user prompts inside the Copy Assistant node to fit your brand voice. Swap in Slack, Teams or email nodes instead of a document writer to deliver copy where you need it. Add or remove tools (e.g., “Follow-up Email Writer”) by duplicating the existing tool pattern. Use sticky-note annotations on every node to explain where to enter API keys, Assistant IDs, or prompt tweaks.
by lin@davoy.tech
This workflow template, "Daily Gratitude Reminder Bot for LINE," is designed to help users cultivate a habit of gratitude by sending personalized, AI-generated reminders every evening at 9:00 PM. Using Azure OpenAI , the bot generates varied and engaging messages to prompt users to reflect on the positive aspects of their day. The reminders are then sent directly to users via the LINE messaging platform , ensuring a seamless and impactful experience. Whether you're a developer, counselor, or business owner, this template offers a customizable and scalable solution for promoting mental wellness and fostering a culture of gratitude. profile Qwen2.5-Max 2:56 pm Here’s a polished and detailed description for your "Daily Gratitude Reminder Bot for LINE" template, following the submission guidelines provided. This description is structured to meet all the requirements, including SEO optimization, clarity, and user convenience. Daily Gratitude Reminder Bot for LINE This workflow template, "Daily Gratitude Reminder Bot for LINE," is designed to help users cultivate a habit of gratitude by sending personalized, AI-generated reminders every evening at 9:00 PM. Using Azure OpenAI , the bot generates varied and engaging messages to prompt users to reflect on the positive aspects of their day. The reminders are then sent directly to users via the LINE messaging platform , ensuring a seamless and impactful experience. Whether you're a developer, counselor, or business owner, this template offers a customizable and scalable solution for promoting mental wellness and fostering a culture of gratitude. Who Is This Template For? Developers who want to integrate AI-powered workflows into messaging platforms like LINE. Counselors & Therapists looking to encourage mindfulness and emotional well-being among their clients. Businesses & Organizations focused on employee wellness or customer engagement through positive reinforcement. Educators & Nonprofits seeking tools to promote mental health awareness and self-care practices. What Problem Does This Workflow Solve? Gratitude journaling has been proven to improve mental health, reduce stress, and increase overall happiness. However, many people struggle to maintain the habit due to busy schedules or forgetfulness. This workflow solves that problem by automating daily reminders to reflect on positive experiences, making it easier for users to build and sustain a gratitude practice. What This Workflow Does Scheduled Trigger: The workflow is triggered every evening at 9:00 PM using a schedule node. AI-Powered Message Generation: An Azure OpenAI Chat Model generates a unique and engaging reminder message with a temperature setting of 0.9 to ensure variety and creativity. Message Formatting: The generated message is reformatted to comply with the LINE Push API requirements, ensuring smooth delivery. Push Notification via LINE: The formatted message is sent to the user via the LINE Push API , delivering the reminder directly to their chat. Setup Guide Pre-Requisites Access to an Azure OpenAI account with credentials. A LINE Developers Console account with access to the Push API. Basic knowledge of n8n workflows and JSON formatting. How to Customize This Workflow to Your Needs Change the Time: Adjust the schedule trigger to send reminders at a different time. Modify the Prompt: Edit the AI model's input prompt to generate messages tailored to your audience (e.g., focus on work achievements or personal growth). Expand Recipients: Update the LINE Push API node to send reminders to multiple users or groups. Integrate Additional Features: Add nodes to log user responses or track engagement metrics. Why Use This Template? Promotes Mental Wellness: Encourages users to reflect on positive experiences, improving emotional well-being. Highly Customizable: Easily adapt the workflow to suit different audiences and use cases. Scalable: Send reminders to one user or thousands, making it suitable for both personal and organizational use. AI-Powered Creativity: Avoid repetitive messages by leveraging AI to generate fresh and engaging content.
by Sleak
Who is this template for? This workflow template is designed for business owners and HR professionals to automatically detect and structure unstructured job applications received through email. Additionally, other email categories can be added, each with it's own workflow. How it works Every time a new email is received, an OpenAI model classifies it into a predefined category by analyzing the plain text of the email and the extracted content from the attachment. If the email is classified as a job application, an OpenAI model uses the email’s plain text and extracted attachment content to populate predefined fields such as age and study. A relevant additional step would be to directly push the applicant and their structured job application into a CRM or ATS like Hubspot or Recruitee. Set up steps Configure your IMAP credentials to connect your email account. Use this n8n documentation page for quickstart guides for common email providers. Connect your OpenAI account in the 'Classify email' node. And add or remove any category for classification in this node. Make sure the description is clear and concise. Connect your OpenAI account in the 'Extract variables - email & attachment' node. And add or remove any predefined fields that should be populated for job applications in this node. Make sure the description is clear and concise.
by WeblineIndia
Automate Telegram Chat Responses Using Google Gemini By WeblineIndia* ⚡ TL;DR (Quick Steps) Create a Telegram bot using @BotFather and copy the API Token. Obtain Google Gemini API Key via Google Cloud. Set up the n8n workflow: Trigger: Telegram message received. AI Model: Google Gemini generates response. Output: AI reply sent back to user via Telegram. Customize the system prompt, model, or message handling to suit your use case. 🧠 Description This n8n workflow enables seamless automation of real-time chat replies in Telegram by integrating with Google Gemini's Chat Model. Every time a user sends a message to your Telegram bot, the workflow routes it through the Gemini AI, which analyzes and crafts a professional response. This reply is then automatically delivered back to the user. The setup acts as a lightweight but powerful chatbot system — ideal for businesses, customer service, or even personal productivity bots. You can easily modify its tone, intelligence level, or logging mechanisms to cater to specific domains such as sales, tech support, or general Q&A. 🎯 Purpose of the Workflow The primary goal of this workflow is to automate intelligent, context-aware chat responses in Telegram using a robust AI model. It eliminates manual reply handling, enhances user engagement, and ensures 24/7 interaction capabilities — all through a no-code or low-code setup using n8n. 🛠️ Steps to Configure and Use ✅ Pre-Conditions / Requirements Telegram Bot Token**: Get it from @BotFather. Google Gemini API Key**: Available via Google Cloud PaLM/Gemini API access. n8n Instance**: Hosted or local instance with required nodes installed (Telegram, Basic LLM Chain, and Google Gemini support). 🔧 Setup Instructions Step 1: Telegram Trigger – Listen for Incoming Messages Add Telegram Trigger node. Select Trigger On: Message. Authenticate using your Telegram Bot Token. This will capture incoming messages from any user interacting with your bot. Step 2: Google Gemini AI – Generate a Smart Reply Add the Basic LLM Chain node. Connect the input message ({{$json.message.text}}) from the Telegram Trigger. System Prompt: > "You are an AI assistant. Reply to the following user message professionally:" Choose Google Gemini Chat Model (models/gemini-1.5-pro). Connect this node to receive the text input and pass it to Gemini for processing. Step 3: Telegram Reply – Send the AI Response Add a Telegram node (Operation: Send Message). Set Chat ID dynamically from the Telegram Trigger node. Input the generated message from the Gemini output. Enable Parse Mode as HTML for rich formatting. Final Step: Link All Nodes Receive Telegram Message → Generate AI Response → Send Telegram Reply. > Tip: Test the workflow by sending a message to your Telegram bot and ensure you receive an AI-generated reply. 🧩 Customization Guidance ✏️ Modify the AI tone by updating the system prompt. 🤖 Use other AI models (e.g., OpenAI GPT-4o). 🔍 Add filters to respond differently based on specific keywords. 📊 Extend the workflow to store chats in Google Sheets, Airtable, or databases for audit or analytics. 🌐 Multi-language support: Add translation layers before and after AI processing. 🛠️ Troubleshooting Guide No message received?** Check if your Telegram bot is active and webhook is working. AI not responding?** Validate your Google Gemini API key and usage quota. Wrong replies?** Refine the system prompt or validate message routing. Formatting issues?** Ensure Parse Mode is correctly set to HTML. 💡 Use Case Examples Customer Service Chatbot** for product queries. Educational Bots** for answering user questions on a topic. Mental Health Companion** that gives supportive replies. Event-based Announcers** or automatic responders during off-hours. > And many more! This workflow can be easily extended to support advanced use cases with just a few additional nodes. 👨💻 About the Creator This workflow is developed by WeblineIndia, a trusted provider of AI development services and process automation solutions. If you're looking to build or customize intelligent workflows like this, we invite you to get in touch with our team. We also offer specialized Python development and AI developer hiring services to supercharge your automation needs.
by Eduardo Hales
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. How it works This workflow is a simple AI Agent that connects to Langfuse so send tracing data to help monitor LLM interactions. The main idea is to create a custom LLM model that allows the configuration of callbacks, which are used by langchain to connect applications such Langfuse. This is achieves by using the "langchain code" node: Connects a LLM model sub-node to obtain the model variables (model name, temp and provider) - Creates a generic langchain initChatModel with the model parameters. Return the LLM to be used by the AI Agent node. 📋 Prerequisites Langfuse instance (cloud or self-hosted) with API credentials LLM API key (Gemini, OpenAI, Anthropic, etc.) n8n >= 1.98.0 (required for LangChain code node support in AI Agent) ⚙️ Setup Add these to your n8n instance: Langfuse configuration LANGFUSE_SECRET_KEY=your_secret_key LANGFUSE_PUBLIC_KEY=your_public_key LANGFUSE_BASEURL=https://cloud.langfuse.com # or your self-hosted URL LLM API key (example for Gemini) GOOGLE_API_KEY=your_api_key Alternative: Configure these directly in the LangChain code node if you prefer not to use environment variables Import the workflow JSON Connect your preferred LLM model node Send a test message to verify tracing appears in Langfuse
by Akram Kadri
Who is this for? This workflow is designed for YouTubers who want to update their video descriptions in bulk without manually editing each one. It's especially useful for creators who include a standard set of links in their descriptions and need to insert a new link between existing ones across multiple videos. What problem does this workflow solve? Manually updating video descriptions for multiple videos can be tedious and time-consuming. If you have a section in your video descriptions that contains important links, adding a new one in a specific position (e.g., between two existing links) can be a challenge. This workflow automates that process, allowing you to insert a specific string between two predefined rows in all of your video descriptions at once. What this workflow does Fetches all videos from your YouTube channel. Iterates through each video to retrieve its existing description. Identifies two predefined rows in the description. Inserts a new row between the two specified rows. Updates the video description with the modified text. Setup Connect your YouTube account to n8n and grant necessary permissions. Define your variables in the "Set String to Insert" node: rowBefore: The existing row after which the new row will be inserted. rowToInsert: The new text or link to insert. rowAfter: The existing row before which the new row will be inserted. Run the workflow using the manual trigger. Review the updated descriptions to ensure accuracy. How to customize this workflow to your needs Change the insertion criteria** by modifying the rowBefore and rowAfter values. Insert multiple rows** by adjusting the JavaScript code in the Code node. Extend the workflow** by adding conditions (e.g., only updating descriptions of videos with certain tags). Filter specific** videos instead of updating all by modifying the "Get All Videos" node. This workflow ensures that all your YouTube descriptions stay updated and consistent with minimal effort.
by Luke
Built this for a dedicated Slack outage-notifications channel — works well on both desktop and mobile. This is for: IT Administrators & small MSPs looking to streamline M365 alerts from one or multiple mailboxes into a single or specific Slack channels IT Admins who prefer ChatOps over management-by-email What does it do Scans for M365 outage alerts emails (every 1 min) Checks if it impacts a specific user region (if the alert calls it out, countries have to be manually set) Summarizes the incident using OpenAI o4-mini (cheap model - or you can swap for local Ollama) Sends a Slack Block to your outage channel with incident link (can be extended) Deletes the original alert email after successful delivery Credentials Outlook: Create an Outlook credential (OAuth2.0) to point to the mailbox (regular or shared) where M365 service alerts will be received Slack: Create a Slack bot credential with access to the slack channel you want updates posted to OpenAI: Create a OpenAI credential that has access to the GPT-4O-MINI model. Recommend you use projects in OpenAI so that you may set a per-project-budget and not impact other projects. Review this OpenAI documentation for more info on managing Projects in the API portal. Expect this to consume no more than 1-2 cents per month on average. Setup Download & import the workflow Modify the first Outlook block (Check for 365 Service Alert) to use the Outlook credential Modify the OpenAI block's system prompt to call out the countries your users reside in ie. "- Assume the organization has users primarily in the U.S. and Australia. If those regions are affected, state: "Your users may have been affected." Otherwise, add: "No impact expected for your user base."" ← swap U.S. & Australia for desired countries Modify the Slack block (Post outage to Slack) to specify the channel updates will be posted to Sample Slack Output Workflow Diagram
by Anton Vanhoucke
This workflow converts Notion pages to markdown, and then converts that markdown back to Notion blocks. It will triple the content of the last updated page it finds. This is useless by itself, but you can copy-paste from this workflow to create your own. Prerequisites A notion account with some pages or databases Setup instructions Create a notion credential and share some pages as described here: https://docs.n8n.io/integrations/builtin/credentials/notion/ How it works The HTTP Request gets notion child blocks from a page, because the default n8n block only gets plain text and no links. The first code block converts it to markdown. The second code block converts it back to Notion blocks The last HTTP block appends everything to the original Notion page, essentially duplicating it for the purpose of demoing the script. I hope in the future we get official n8n blocks that extract markdown, or use markdown to write to Notion. There is community block that also does this, but this template is easier: you can simply copy-paste the blocks from this workflow.
by Praveena
Idea The idea for app came since I wanted to build a unique gift for my niece because she gets excited for her birthday (which Im going to miss this year). The web app has a simple countdown (in html and JS) but more importantly, there is an AI agent that will answer some specific questions and know her preferences. How it works The questions from app are sent via web hook to N8N which has pulls preferences file (about her likes, dislikes, personality) from postgre and AI Agent that will answer questions/respond. The current status is stored back in postgre (especially about status of cat and universe happenings) before responding back. Features Integrated AI chatbot via N8N webhook Persistent conversation history Minimizable chat interface Fallback support for offline testing Features: -- Wheres Mittens - This is a query to track her lost cat in multiverse. -- Multiverse updates with recent update stored Pre Requisites Postgre SQL database is available. Alternatively, use any other database but change the N8N nodes. LLM Api Key. Step by Step Instructions Export this N8N Workflow. Modify LLM API Key, I used openAI, 4.1 For web app scofflding,you will need Node, HTML and Javascript. I've created a mini version using Node and JS with web app and N8N connection settings here: <https://github.com/productiser/FiBirthdayAgent> PostgreSQL Database Script (1 table for memory and context storage): CREATE TABLE fifi_world_context ( id TEXT PRIMARY KEY, -- e.g., 'agent_fifi' cat_location TEXT, -- e.g., "Bubble Nebula" cat_activity TEXT, -- e.g., "Playing laser tag with moon mice" fifi_preferences JSONB, -- e.g., likes/dislikes/foods/shows world_history TEXT, -- Summary of narrative events last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 5.Modify system prompt as per your needs. Built With N8N Self hosted Self hosted web app Hosted on Vercel Total spend = <£1 (AI costs only) Total Time = <1 day Support Watch this video for web app overview and how it looks. <https://youtu.be/e7PlrTdvwoM> Contact me on info@pankstr.com/ superllmuser@gmail.com for any queries Hope you enjoy!!
by Greg Evseev
This n8n workflow template allows you to upload a photo to a SharePoint folder using the Microsoft Graph API. The workflow includes steps for authentication, retrieving a photo for testing purposes, setting the destination folder and file name, and uploading the photo. Who is this for? This workflow is ideal for users who need to automate the process of uploading images to SharePoint. It is particularly useful for developers, IT administrators, and anyone managing digital assets within a SharePoint environment. What problem is this workflow solving? / Use Case This workflow addresses the need to automate the uploading of photos to a specific SharePoint folder. By using the Microsoft Graph API, it ensures secure and efficient file management, reducing manual effort and potential errors. What this workflow does Trigger the Workflow: The workflow starts when the user clicks the 'Test workflow' button. Set Configuration: Sensitive data such as TENANT_ID, CLIENT_ID, and CLIENT_SECRET are set. Authentication: Obtains an access token from Microsoft Graph API using the provided credentials. Get Photo: Retrieves a sample photo from a URL for testing purposes. Set Destination: Sets the target folder and file name for the photo upload. Upload Photo: Uploads the photo to the specified SharePoint folder using the Microsoft Graph API. Setup Prerequisites Create an Application User: Follow this guide to create an application user. Set Permissions: Ensure the following permissions are set: Sites.ReadWrite.All: For SharePoint site access. Files.ReadWrite.All: For file upload operations. Authentication For successful authentication, provide the following: TENANT_ID CLIENT_ID CLIENT_SECRET Note: For demonstration purposes, these values are stored in a 'Set' node. In a production environment, ensure the safety of such data using credentials, secure vaults, or other safe methods. Set Destination The destination is defined by two parameters: TARGET_FOLDER: The folder path in SharePoint where the photo will be uploaded. FILE_NAME: The name of the file to be uploaded. Example: Desired file location: https://contoso.sharepoint.com/uploads/pictures from n8n/example.jpg Set the following: TARGET_FOLDER = /uploads/pictures from n8n FILE_NAME = example.jpg How to Customize This Workflow to Your Needs Update Sensitive Data: Replace the placeholder values for TENANT_ID, CLIENT_ID, and CLIENT_SECRET with your actual credentials. Change Destination: Modify the TARGET_FOLDER and FILE_NAME parameters to match your desired upload location and file name. Test with Different Photos: Update the URL in the 'Get Photo' node to test with different images. Sticky Notes Workflow Overview This sticky note explains the overall purpose and dependencies of the workflow. Authentication Details This sticky note provides details on the authentication process and the importance of securing sensitive data. Set Destination Details This sticky note explains how to set the destination folder and file name for the photo upload. By following these guidelines, you can easily customize and use this workflow to automate photo uploads to SharePoint using the Microsoft Graph API.
by Airtop
Monitor X for Relevant Posts Use Case This automation monitors X (formerly Twitter) search pages in real time and extracts high-signal posts that match your categories of interest. It’s ideal for community engagement, lead discovery, thought leadership tracking, or competitive analysis. What This Automation Does Given a search URL and a list of categories, it: Logs into X using Airtop Opens the specified search URL Scrolls through the results Extracts up to 10 valid, English-language posts Filters and classifies each post by category (or marks as [NA] if unrelated) Returns the structured results as JSON Input parameters: airtop_profile** — An Airtop browser profile authenticated on X x_url** — X search URL (e.g., https://x.com/search?q=ai agents&f=live) relevant_categories** — Text-based list of categories to classify posts (e.g., "Web automation use cases", "Thought leadership") Output: A JSON array of posts, each with: writer time text url category How It Works Trigger: This workflow is triggered by another workflow (e.g., a community engagement pipeline). Input Setup: Accepts the Airtop profile, search URL, and categories to use for classification. Session: Starts a browser session using the Airtop profile. Window Navigation: Opens the provided X search URL. Extraction: Scrapes up to 10 posts with /status/ in the URL and text in English. Classification: Each post is labeled with a category if relevant, or [NA] otherwise. Filtering: Discards [NA] posts. Output: Returns the list of classified posts. Setup Requirements Airtop profile with an active X login. Airtop API key connected in n8n. List of category definitions to guide post classification (used in prompt). Next Steps Feed into Engagement Workflows**: Pass the results to workflows that reply, retweet, or track posts. Use in Slack Alerts**: Push classified posts into Slack channels for review and reaction. Customize Classifier**: Refine the categorization logic to include sentiment or company mentions. Read more about Monitoring X for Relevant Posts