by Davide
The Agent Decisioner is a dynamic, AI-powered routing system that automatically selects the most appropriate large language model (LLM) to respond to a user's query based on the query’s content and purpose. This workflow ensures dynamic, optimized AI responses by intelligently routing queries to the best-suited model. Advantages 🔁 Automatic Model Routing:** Automatically selects the best model for the job, improving efficiency and relevance of responses. 🎯 Optimized Use of Resources:** Avoids overuse of expensive models like GPT-4 by routing simpler queries to lightweight models. 📚 Model-Aware Reasoning:** Uses detailed metadata about model capabilities (e.g., reasoning, coding, web search) for intelligent selection. 📥 Modular and Extendable:** Easy to integrate with other tools or expand by adding more models or custom decision logic. 👨💻 Ideal for RAG and Multi-Agent Systems:** Can serve as the brain behind more complex agent frameworks or Retrieval-Augmented Generation pipelines. How It Works Chat Trigger: The workflow starts when a user sends a message, triggering the Routing Agent. Model Selection: The AI Agent analyzes the query and selects the best-suited model from the available options (e.g., Claude 3.7 Sonnet for coding, Perplexity/Sonar for web searches, GPT-4o Mini for reasoning). Structured Output: The agent returns a JSON response with the user’s prompt and the chosen model. Execution: The selected model processes the query and generates a response, ensuring optimal performance for the task. Set Up Steps Configure Nodes: Chat Trigger: Set up the webhook to receive user messages. Routing Agent (AI Agent): Define the system message with model strengths and JSON output rules. OpenRouter Chat Model: Connect to OpenRouter for model access. Structured Output Parser: Ensure it validates the JSON response format (prompt + model). Execution Agent (AI Agent1): Configure it to forward the prompt to the selected model. Connect Nodes: Link the Chat Trigger to the Routing Agent. Connect the OpenRouter Chat Model and Output Parser to the Routing Agent. Route the parsed JSON to the Execution Agent, which uses the chosen model via OpenRouter Chat Model1. Credentials: Ensure OpenRouter API credentials are correctly set for both chat model nodes. Test & Deploy: Activate the workflow and test with sample queries to verify model selection logic. Adjust the routing rules if needed for better accuracy. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by Automate With Marc
🤖 Grok-4 Customer Support Agent with Document-Based Intelligence Template [RAG] This workflow creates a smart, AI-powered customer support agent using Grok-4 that can answer questions based on a preloaded Google Doc knowledge base. It listens for incoming customer queries via Telegram, then uses Grok-4’s language reasoning + memory features to generate helpful responses pulled directly from the doc. Watch the Step-by-Step Tutorial of this Workflow: https://www.youtube.com/watch?v=OXzsh-Ba-8Y&t=2s It’s perfect for solopreneurs, startups, or businesses that want to: Automate first-level support Build a Telegram-based knowledge agent Answer FAQs using internal docs (like manuals, policies, product details) 🔍 How It Works: Telegram Trigger – Listens for incoming messages from users Google Docs Tool – Retrieves a specified doc to serve as the knowledge base Grok-4 AI Agent – Uses xAI’s latest LLM with built-in memory and the document as a tool Memory Buffer – Keeps track of ongoing context in the conversation Telegram Reply – Sends the final response back to the customer 🧠 Tools & Integrations Used: xAI Grok-4 Model (via Langchain-compatible node) Google Docs Tool (as a reference knowledge base) Telegram Bot API (chat interface) n8n Agent Framework (for chaining memory, model, and tools) 💡 Use Cases: AI-powered FAQ assistant for your product Internal HR bot answering company policy questions Support assistant trained on onboarding documents or technical manuals Private support bot for VIP groups on Telegram
by scrapeless official
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Brief Overview This automation template helps you track the latest job listings from the Y Combinator Jobs page. By using Scrapeless to scrape job listings, n8n to orchestrate the workflow, and Google Sheets to store the results, you can build a zero-code job tracking solution that runs automatically every 6 hours. How It Works Trigger on a Schedule: Every 6 hours, the workflow kicks off automatically. Scrape Job Listings: Scrapeless crawls the Y Combinator Jobs page and returns structured Markdown data. Extract & Parse Content: JavaScript nodes process the Markdown to extract job titles and links. Flatten Data: Each job becomes a single row with its title and link. Save to Google Sheets: New job listings are appended to your Google Sheet for easy viewing and sharing. Features No-code, automated job listing scraper. Scrapes and structures the latest Y Combinator job posts. Saves data directly to Google Sheets. Easy to schedule and run without manual effort. Extensible: Add Telegram, Slack, or email notifications easily in n8n. Requirements Scrapeless API Key: Scrapeless Service request credentials. Log in to the Scrapeless Dashboard Then click "Setting" on the left -> select "API Key Management" -> click "Create API Key". Finally, click the API Key you created to copy it. n8n Instance: Self-hosted or n8n.cloud account. Google Account: For Google Sheets API access. Target Site: This template is designed for the Y Combinator Jobs page but can be modified for other job boards. Installation Deploy n8n on your preferred platform. Import this workflow JSON file into your n8n workspace. Create and add your Scrapeless API Key in n8n’s credential manager. Connect your Google Sheets account in n8n. Update the target Google Sheet document URL and sheet name. Usage This automated job finder agent is ideal for: | Industry / Role | Use Case | |-------------------------------|--------------------------------------------------------------------------------------------| | Job Seekers | Automatically track newly posted startup jobs without manually visiting job boards. | | Recruitment Agencies | Monitor YC job postings and build a candidate-job matching system. | | Startup Founders / CTOs | Stay aware of which startups are hiring, for networking and market insights. | | Tech Media & Bloggers | Aggregate new job listings for newsletters, blogs, or social media sharing. | | HR & Talent Acquisition Teams | Monitor competitors’ hiring activity. | | Automation Enthusiasts | Example use case for learning web scraping + automation + data storage. | Output
by Don Jayamaha Jr
Get real-time cryptocurrency prices directly in Telegram! This workflow integrates CoinMarketCap API with Telegram, allowing users to request live crypto prices simply by sending a message to the bot. Ideal for crypto traders, analysts, and enthusiasts who need quick and easy access to market data. How It Works A Telegram bot listens for user input (e.g., "BTC" for Bitcoin). The workflow sends a request to the CoinMarketCap API to fetch the latest price. The response is processed using an AI-powered language model (GPT-4o-mini) for structured messaging. The workflow logs session data using a memory buffer for better response tracking. The latest price is sent back to the user via Telegram. Set Up Steps Create a Telegram Bot Use @BotFather on Telegram to create a bot and obtain an API token. Get a CoinMarketCap API Key Sign up at CoinMarketCap and retrieve your API key. Configure API Credentials in n8n Add the CoinMarketCap API key under HTTP Header Auth. Add your Telegram bot token under Telegram API credentials. Deploy and Test Send a message (e.g., "BTC") to your Telegram bot and receive live price updates instantly! Automate your crypto price tracking today with this powerful Telegram bot!
by Yaron Been
Openai Clip Image Generator Description Official CLIP models, generate CLIP (clip-vit-large-patch14) text & image embeddings Overview This n8n workflow integrates with the Replicate API to use the openai/clip model. This powerful AI model can generate high-quality image content based on your inputs. Features Easy integration with Replicate API Automated status checking and result retrieval Support for all model parameters Error handling and retry logic Clean output formatting Parameters Optional Parameters text** (string, default: None): Input text to encode image** (string, default: None): Input image to encode How to Use Set up your Replicate API key in the workflow Configure the required parameters for your use case Run the workflow to generate image content Access the generated output from the final node API Reference Model: openai/clip API Endpoint: https://api.replicate.com/v1/predictions Requirements Replicate API key n8n instance Basic understanding of image generation parameters
by Akhil Varma Gadiraju
Automated Daily Outlook Calendar Meeting Digest Overall Goal This workflow automatically runs at a scheduled time (daily at 8 AM by default), calculates the current day's date range, fetches all calendar events from a specified Microsoft Outlook account for that day, formats these events into a user-friendly HTML email, and then sends this digest to a designated email address. How it Works (Step-by-Step Breakdown): Node: Schedule Trigger (Schedule Trigger Node) Type:** n8n-nodes-base.scheduleTrigger Purpose:** Automatically starts the workflow at a predefined time. Configuration:** Rule > Interval > Trigger At Hour: 8 (Triggers every day at 8:00 AM according to the n8n server's timezone) Output:** Triggers the workflow execution at the scheduled time. Node: Code (Code Node) Type:** n8n-nodes-base.code Purpose:** Dynamically calculates the start and end timestamps for "today," based on when the workflow is triggered. Configuration (JS Code):** Gets the current date and time (workflow runtime). Sets today to beginning of current day (00:00:00). Sets tomorrow to beginning of next day (00:00:00). Converts these to ISO string format (e.g., 2023-10-27T00:00:00Z). Output:** JSON object with today and tomorrow ISO date strings. Node: Microsoft Outlook (Microsoft Outlook Node) Type:** n8n-nodes-base.microsoftOutlook Purpose:** Fetch calendar events from Outlook within the calculated date range. Configuration:** Resource: Event Filters (Custom): start/dateTime ge '{{$json.today}}' and start/dateTime lt '{{$json.tomorrow}}' (OData filter to fetch events starting on or after today and before tomorrow, i.e., all today's events.) Output:** List of event objects from Outlook. Node: Edit Fields (Set Node) Type:** n8n-nodes-base.set Purpose:** Transform and simplify the event data structure from Outlook. Configuration:** Maps fields from Outlook event to new field names: id subject description (from bodyPreview) meeting_start meeting_end attendees meeting_organizer meeting_organizer_email meeting_link Output:** List of JSON objects with simplified meeting details. Node: Generate HTML (Code Node) Type:** n8n-nodes-base.code Purpose:** Generate a single HTML email body summarizing all meetings and create the email subject line. Configuration (JS Code):** Processes all meeting items from "Edit Fields" node. Defines generateMeetingReminderEmail function to format each meeting into an HTML "card." Escapes HTML special characters, formats times, attendees, etc. Concatenates all cards into a full HTML document. Generates subject line (e.g., "🗓️ Your Meetings Today – Friday, Oct 27"). Output:** JSON object with: { "subject": "email subject string", "html": "generated HTML content string" } Node: Send Email (Email Send Node) Type:** n8n-nodes-base.emailSend Purpose:** Send the generated HTML digest email to the designated recipient. Configuration:** From Email: test@gmail.com To Email: akhilgadiraju@gmail.com Subject: {{ $json.subject }} (dynamic from Generate HTML node) HTML: {{ $json.html }} (dynamic from Generate HTML node) Output:** Email sending status. Sticky Notes Update Time:** Near "Schedule Trigger" node; configure trigger time as needed. Update Email Details:** Near "Send Email" node; change sender and receiver email addresses. How to Customize It Schedule (Schedule Trigger node):** Modify the trigger hour, minutes, or days of week to change when the workflow runs. Date Range (Code node):** Adjust JS to change date range (e.g., next business day, upcoming week). Outlook Calendar (Microsoft Outlook node):** Specify Calendar ID or refine OData filters for event selection. Event Details (Edit Fields node):** Add/remove/modify event fields extracted. Email Appearance and Content (Generate HTML node):** Change CSS styling, meeting details, or subject line logic. No Meetings Scenario:** Use an "If" node after "Edit Fields" to handle no-meeting days (e.g., send "No meetings today!" email or skip email). Email Recipients (Send Email node):** Update "From" and "To" emails; multiple recipients separated by commas. Error Handling Use "Error Trigger" nodes to catch and handle failures (Outlook API, SMTP errors). Send alerts or log errors accordingly. Use Cases Automated Daily Personal Meeting Briefing:** Get daily email summaries of your meetings. Automated Team Meeting Digest:** Send daily team calendar digest emails. Proactive Daily Planning:** Automatically stay informed of your day’s schedule. Required Credentials Add these credentials in your n8n instance under Credentials: Microsoft Outlook (OAuth2 API):** Used by: "Microsoft Outlook" node Credential Name in Workflow: Outlook (ID: JcYqVJwcwZIhB8oy) Requires OAuth2 with Calendars.Read permission. SMTP:** Used by: "Send Email" node Credential Name in Workflow: SMTP account (ID: vCexcphurglwGBfk) Requires SMTP server details (host, port, username, password). Ensure these credentials are configured correctly with required permissions. Activate the workflow for scheduled execution. Made with ❤️ using n8n by Akhil.
by Matheus Weckwerth
Flow Start: The flow starts upon receiving an HTTP GET call. Webhook: Receives the HTTP GET call and triggers the flow. Database: Connects to the database (Customer Datastore) to retrieve all necessary information (getAllPeople). Data Processing: Variable Insertion: The retrieved data is inserted into a variable. Variable Aggregation: The variables are aggregated and prepared for use in FlutterFlow. Webhook Response: Sends the response back through the Webhook with the processed data ready for use in FlutterFlow.
by Emmanuel Bernard
🎉 Do you want to master AI automation, so you can save time and build cool stuff? I’ve created a welcoming Skool community for non-technical yet resourceful learners. 👉🏻 Join the AI Atelier 👈🏻 This workflow provides an API endpoint to generate speech from text using Elevenlabs.io, a popular text-to-speech service. Step 1: Configure Custom Credentials in n8n To set up your credentials in n8n, create a new custom authentication entry with the following JSON structure: { "headers": { "xi-api-key": "your-elevenlabs-api-key" } } Replace "your-elevenlabs-api-key" with your actual Elevenlabs API key. Step 2: Send a POST Request to the Webhook Send a POST request to the workflow's webhook endpoint with these two parameters: voice_id: The ID of the voice from Elevenlabs that you want to use. text: The text you want to convert to speech. This workflow has been a significant time-saver in my video production tasks. I hope it proves just as useful to you! Happy automating! The n8Ninja
by Praveena
What is Elderwatch Elder Watch is a simple system that checks daily vitals — like heart rate, oxygen, and walking symmetry — using data from an iPhone or Apple Watch. If something looks off — say oxygen drops or heart rate spikes — it flags that as “attention required.” And depending on that status, it can either: Email a daily report to a caregiver Or if there’s an alert — trigger a phone call via Twilio Why do we need this Elder Watch can help older people living alone for children or care givers to keey an eye on without obsessively checking apps. It’s useful for clinics that run home-care programs. Requirements Self hosted or cloud N8N Apple health vis iphone/watch Twilio VOIP phone number (to place a call) Workflows Core workflow for getting health data, processing and making a phone call. Twilio workflow to invoke Calls API to place an outbound voice call. twilio workflow { "name": "Twilio Bridge Caller copy", "nodes": [ { "parameters": { "httpMethod": "POST", "path": "twilio-call", "responseMode": "responseNode", "options": {} }, "type": "n8n-nodes-base.webhook", "typeVersion": 2, "position": [ 0, 0 ], "id": "ca3e6c69-3e7f-4d28-b699-4789a6fa2a6d", "name": "Webhook", "webhookId": "eb3d63df-800c-401d-931a-c6fba7d834ae" }, { "parameters": { "respondWith": "text", "responseBody": "={{ $json.body }}", "options": { "responseCode": 200, "responseHeaders": { "entries": [ { "name": "Content-Type", "value": "text/xml" } ] } } }, "type": "n8n-nodes-base.respondToWebhook", "typeVersion": 1.1, "position": [ 580, 0 ], "id": "6587b7e2-ace8-4e2b-9f4b-ed028a363c25", "name": "Respond to Webhook" }, { "parameters": { "jsCode": "const summary = $input.first().json.query.summary || 'No summary, check mail for critical health info';\n\nreturn [\n {\n json: {\n body: <Response>\n <Say voice=\"alice\">${summary}</Say>\n</Response>\n }\n }\n];\n" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 340, 0 ], "id": "0d4abf87-daf3-4533-8811-64ae61265f5d", "name": "Voice Twilio response" } ], "pinData": { "Webhook": [ { "json": { "headers": { "host": "n8n.domain.com", "user-agent": "curl/8.7.1", "content-length": "0", "accept": "/", "accept-encoding": "gzip, br" }, "params": {}, "query": { "lead": " 44711111111111" }, "body": {}, "webhookUrl": "https://n8n.domain.com/webhook/twilio-call", "executionMode": "production" } } ] }, "connections": { "Webhook": { "main": [ [ { "node": "Voice Twilio response", "type": "main", "index": 0 } ] ] }, "Voice Twilio response": { "main": [ [ { "node": "Respond to Webhook", "type": "main", "index": 0 } ] ] } }, "active": true, "settings": { "executionOrder": "v1" }, "versionId": "b58c5a12-75be-4b1d-b144-8c7251468021", "meta": { "instanceId": "8dc0e8a0878d0086b2f46ef04bb00ae07186c936d82d0f0a67563e9652996d33" }, "id": "RHaKqf8Wqt7fIuGH", "tags": [] } Samples Resources https://www.youtube.com/watch?v=HYk5_jtMlgc Questions/Support Contact me on info@pankstr.com.
by ConvertAPI
Who is this for? For developers and organizations that need to protect PDF files with the password. What problem is this workflow solving? PDF file protection problem. What this workflow does Downloads the PDF file from the web. Protects PDF file with the password. Stores the PDF file in the local file system. How to customize this workflow to your needs Open the HTTP Request node. Adjust the URL parameter (all endpoints can be found here). Add your secret to the Query Auth account parameter. Please create a ConvertAPI account to get an authentication secret. Change the password in the parameter UserPassword Optionally, additional Body Parameters can be added for the converter.
by Davide
This workflow integrates Flowise Multi-Agent Chatflows into a custom-branded n8n chatbot, enabling real-time interaction between users and AI agents powered by large language models (LLMs). Key Advantages: ✅ Easy Integration with Flowise: Uses a low-code HTTP node to send user questions to Flowise's API (/api/v1/prediction/FLOWISE_ID) and receive intelligent responses. Supports multi-agent chatflows, allowing for complex, dynamic interactions. 🎨 Customizable Chatbot UI: Includes pre-built JavaScript for embedding the n8n chatbot into any website. Provides customization options such as welcome messages, branding, placeholder text, chat modes (e.g., popup or embedded), and language support. 🔐 Secure & Configurable: Authorization via Bearer token headers for Flowise API access. Clearly marked notes in the workflow for setting environment variables like FLOWISE_URL and FLOW_ID. How It Works Chat Trigger: The workflow starts with the When chat message received node, which acts as a webhook to receive incoming chat messages from users. HTTP Request to Flowise: The received message is forwarded to the Flowise node, which sends a POST request to a Flowise API endpoint (https://FLOWISEURL/api/v1/prediction/FLOWISE_ID). The request includes the user's input as a JSON payload ({"question": "{{ $json.chatInput }}"}) and uses HTTP header authentication (e.g., Authorization: Bearer FLOWSIE_API). Response Handling: The response from Flowise is passed to the Edit Fields node, which maps the output ($json.text) for further processing or display. Set Up Steps Configure Flowise Integration: Replace FLOWISEURL and FLOWISE_ID in the HTTP Request node with your Flowise instance URL and flow ID. Ensure the Authorization header is set correctly in the credentials (e.g., Bearer FLOWSIE_API). Embed n8n Chatbot: Use the provided JavaScript snippet in the sticky notes to embed the n8n chatbot on your website. Replace YOUR_PRODUCTION_WEBHOOK_URL with the webhook URL generated by the When chat message received node. Customize the chatbot's appearance and behavior (e.g., welcome messages, language, UI elements) using the createChat configuration options. Optional Branding: Adjust the sticky note examples to include branding details, such as custom messages, colors, or metadata for the chatbot. Activate Workflow: Toggle the workflow to "Active" in n8n and test the chat functionality end-to-end. Ideal Use Cases: Embedding branded AI assistants into websites. Connecting Flowise-powered agents with customer support chatbots. Creating dynamic, smart conversational flows with LLMs via n8n automation. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by Le Thua Phu
Overview This n8n workflow automates the process of crawling a website's sitemap to extract URLs, which is particularly useful for SEO analysis, website auditing, or content monitoring. By leveraging n8n's nodes, the workflow fetches the sitemap from a specified URL, processes the XML data, and extracts individual URLs, which can then be converted into a downloadable file or integrated with tools like Google Sheets. How It Works The workflow operates in a sequential manner, utilizing a series of nodes to fetch, parse, and process sitemap data: Trigger: Initiates when the user clicks "Test workflow" (Manual Trigger node). Set URL: Defines the base domain (e.g., https://phu.io.vn/) for the sitemap (Set URL node). Crawl Sitemap: Fetches the main sitemap file (sitemap.xml) from the specified domain using an HTTP request (Crawl sitemap node). Parse XML: Converts the sitemap XML into a JSON format for easier processing (XML node). Split Sitemap: Extracts individual sitemap entries (e.g., <sitemap> tags) from the parsed data (Split Out node). Crawl Sub-Sitemap: Fetches each sub-sitemap URL listed in the main sitemap (Crawl sitemap 2 node). Parse Sub-Sitemap XML: Converts the sub-sitemap XML into JSON (XML 2 node). Split URLs: Extracts individual URLs (e.g., <url> tags) from the sub-sitemap (Split Out 2 node). Convert to File: Saves the extracted URLs into a file for download or further use (Convert to File node). This workflow supports both single sitemap files and sitemap indexes that reference multiple sub-sitemaps, ensuring comprehensive URL extraction. How to Use To implement this workflow in n8n, follow these steps: Set Up n8n: Ensure you have an active n8n instance (Cloud, npm, or self-hosted). Refer to the n8n documentation for setup instructions. Import Workflow: Copy the JSON from the provided Extract Website URLs from Sitemap.XML for SEO Analysis.json file and import it into your n8n instance via the workflow editor. Configure the Domain: In the Set URL node, update the Domain parameter with the target website's base URL (e.g., https://example.com/). Alternatively, in the Crawl sitemap node, directly paste the full sitemap URL if known (e.g., https://example.com/sitemap.xml). Test the Workflow: Click "Test workflow" to execute the Manual Trigger node. Verify that the workflow fetches the sitemap and processes the URLs correctly. Download or Integrate: The Convert to File node generates a file containing the extracted URLs. Optionally, replace this node with a Google Sheets node to append URLs to a spreadsheet. Refer to the Google Sheets node documentation for setup. Save and Activate: Save the workflow and activate it for production use if needed, using a trigger like a schedule or webhook (see Trigger Node). Requirements n8n Instance**: An active n8n instance (version 1.0 or later recommended) on n8n Cloud, npm, or self-hosted (Docker). See Choose your n8n for details. Technical Knowledge**: Basic understanding of n8n's editor UI and node configuration. Familiarity with XML sitemaps is helpful but not mandatory. Permissions**: For self-hosted setups, ensure the n8n process has network access to fetch the sitemap URL. For Docker deployments, verify permissions as outlined in the n8n v1.0 migration guide. Optional**: If integrating with Google Sheets, valid Google Sheets credentials are required (see Credentials). Timeout Configuration**: The HTTP Request nodes (Crawl sitemap and Crawl sitemap 2) have a 10-second timeout. Adjust the timeout parameter in the node settings if dealing with slow-responding servers. FAQ Q: What happens if the sitemap is large or contains many sub-sitemaps? A: The workflow handles sitemap indexes by splitting and processing each sub-sitemap individually. For very large sitemaps, ensure your n8n instance has sufficient resources (memory and CPU) to avoid performance issues. See Scaling n8n for optimization tips. Q: Can I use this workflow with a specific sitemap URL instead of a domain? A: Yes, in the Crawl sitemap node, replace the url parameter ({{ $json.Domain }}sitemap.xml) with the direct sitemap URL (e.g., https://example.com/sitemap.xml). Update the node’s notes for clarity. Q: Why am I getting a timeout error? A: The HTTP Request nodes have a default timeout of 10 seconds. If the target server is slow, increase the timeout value in the options parameter of the Crawl sitemap or Crawl sitemap 2 nodes. Q: How can I save the URLs to Google Sheets instead of a file? A: Replace the Convert to File node with a Google Sheets node. Configure it with your Google Sheets credentials and map the loc field from the Split Out 2 node to the desired spreadsheet column. Refer to the Google Sheets node documentation. Q: Is this workflow compatible with older n8n versions? A: The workflow uses nodes compatible with n8n version 1.0 and later. For older versions, check for deprecated features (e.g., MySQL support) in the n8n v1.0 migration guide. Q: Can I automate this workflow to run periodically? A: Yes, replace the Manual Trigger node with a Schedule Trigger node to run the workflow at set intervals. See Trigger Nodes for configuration details. For further assistance, consult the n8n Community Forum or submit an issue on the n8n GitHub repository. Need help customizing? Contact me for consulting and support or add me on Facebook or email.