by Jimleuk
This n8n template demonstrates how to calculate the evaluation metric "Correctness" which in this scenario, measures the compares and classifies the agent's response against a set of ground truths. The scoring approach is adapted from the open-source evaluations project RAGAS and you can see the source here https://github.com/explodinggradients/ragas/blob/main/ragas/src/ragas/metrics/_answer_correctness.py How it works This evaluation works best where the agent's response is allowed to be more verbose and conversational. For our scoring, we classify the agent's response into 3 buckets: True Positive (in answer and ground truth), False Positive (in answer but not ground truth) and False Negative (not in answer but in ground truth). We also calculate an average similarity score on the agent's response against all ground truths. The classification and the similarity score is then averaged to give the final score. A high score indicates the agent is accurate whereas a low score could indicate the agent has incorrect training data or is not providing a comprehensive enough answer. Requirements n8n version 1.94+ Check out this Google Sheet for a sample data https://docs.google.com/spreadsheets/d/1YOnu2JJjlxd787AuYcg-wKbkjyjyZFgASYVV0jsij5Y/edit?usp=sharing
by hana
How it works Fetch transaction notification emails (including attachments) Clean up data Let AI (Basic LLM Chain node) generate bookkeeping item Send to Google sheet Details The example fetch email from Gmail lables, suggested using filters to automatically orgianize email into the labels Data will send to "raw data" sheet Example google sheet: https://docs.google.com/spreadsheets/d/1_IhdHj8bxtsfH2MRqKuU2LzJuzm4DaeKSw46eFcyYts/edit?gid=1617968863#gid=1617968863
by Marcel Claus-Ahrens
Instructions This automation streamlines the process of collecting user information using a Form Node, enabling individuals to join a waitlist managed via Google Sheets. It also generates a verification code, prompting users to input this code in the Second Form Step. If the code is _nvalid, the workflow keeps the user in a verification loop until a valid code is entered. Once a valid code is provided, the workflow proceeds to the final step, where additional information can be collected. All entered data and intermediate states are securely stored in the Google Sheet. Structure of the GoogleSheet Firstname | Lastname | Email | Company | Verification-Code | Verified | Intended Use Marcel | Claus-Ahrens | foo[at]bar| foobar | abc123 | TRUE | Just testing Setup Set Up a Google Sheet: Create a Google Sheet with the specified columns, or customize them to suit your needs. Verify the "Send Mail" Node: Ensure your "Send Mail" node is functional, or replace it with another email-sending node. Customize Texts and Fields: Update email content, form texts, and form fields to align with your specific use case. Done! Enjoy the workflow! ❤️ let the workf low — Workflow Automation & Development
by Eric Mooney
Usecase: When a new service ticket is created in Taiga, it's often unclear whether it contains sufficient details to begin work. This workflow automates the triage process by: Using an AI model to extract key information from the ticket description. Automatically assigning values for: Type (Bug, Enhancement, Onboarding, Question) Severity (Wishlist, Minor, Normal, Important, Critical) Priority (Low, Normal, High) Status (New, Needs More Info, etc.) Detecting missing critical data and blocking the ticket if incomplete. Setup instructions here: https://github.com/emooney/Service_Ticket_Triage_Helper
by Kumar Shivam
🧠 AI Blog Generator for Shopify Products using GPT-4o The AI Blog Generator is an advanced automation workflow powered by n8n, integrating GPT-4o and Google Sheets to generate SEO-rich blog articles for Shopify products. It automates the entire process — from pulling product data, analyzing images for nutritional information, to producing structured HTML content ready for publishing — with zero manual writing. 💡 Key Advantages 🔗 Shopify Product Sync** Automatically pulls product data (title, description, images, etc.) via Shopify API. 🤖 AI-Powered Nutrition Extraction** Uses GPT-4o to intelligently analyze product images and extract nutritional information. ✍️ SEO Blog Generation** GPT-4o generates blog titles, meta descriptions, and complete articles using both product metadata and extracted nutritional info. 🗂️ Structured Content Output** Produces well-formatted HTML with headers, bullet points, and nutrition tables for seamless Shopify blog integration. 📄 Google Sheets Integration** Tracks blog creation, manages retries, and prevents duplicate publishing using a centralized Google Sheet. 📤 Shopify Blog API Integration** Publishes the generated blog to Shopify using a two-step blog + article API call. ⚙️ How It Works Manual Trigger Initiate the process using a test trigger or a scheduler. Fetch Products from Shopify Retrieves all product details including descriptions and images. Extract Product Images Splits and processes each image individually. OCR + Nutrition AI GPT-4o reads nutrition facts from product images. Skips items without valid info. Check Existing Logs References a Google Sheet to avoid duplicates and determine retry status. AI Blog Generation Creates a blog with headings, bullet points, intro, and a nutrition table. Shopify Blog + Article Posting Uses the Shopify API to publish the blog and its content. Update Google Sheet Logs the blog URL, HTML content, errors, and status for future reference. 🛠️ Setup Steps Shopify Node**: Connects to your Shopify store and fetches product data. Split Out Node**: Divides product images for individual OCR processing. OpenAI Node**: Uses GPT-4o to extract nutrition data from images. If Node**: Filters for entries with valid nutrition information. Edit Fields Node**: Formats the product data for AI processing. AI Agent Node**: Generates SEO blog content. Google Sheets Nodes**: Reads and updates blog creation status. HTTP Request Nodes**: Posts the blog and article via Shopify’s API. 🔐 Credentials Required Shopify Access Token** – For retrieving product data and posting blogs OpenAI API Key** – For GPT-4o-based AI generation and image processing Google Sheets OAuth** – For accessing the log sheet 👤 Ideal For Ecommerce teams looking to automate content for hundreds of products Shopify store owners aiming to boost organic traffic through blogging Marketing teams building scalable, AI-driven content workflows 💬 Bonus Tip The workflow is modular. You can easily extend it with internal linking, language translation, or even social media sharing — all within the same n8n flow.
by lin@davoy.tech
The YogiAI workflow automates sending daily yoga pose reminders and related information via Line Push Messages . This automation leverages data from a Google Sheets database containing yoga pose details such as names, image URLs, and links to ensure users receive personalized and engaging content every day. Purpose Provide users with daily yoga pose suggestions tailored to their practice. Deliver visually appealing and informative content through Line's Flex Messages, including images and clickable links. Log user interactions and preferences back into Google Sheets to refine future recommendations. Key Features Automated Daily Reminders : Sends a curated list of yoga poses at a scheduled time (21:30 Bangkok time). Dynamic Content Generation : Uses AI to rewrite and format messages in a user-friendly manner, complete with emojis and clear instructions. Integration with Google Sheets : Pulls data from a predefined Google Sheet and logs interactions for continuous improvement. Customizable Messaging : Ensures JSON outputs are properly formatted for Line’s Flex Message API, allowing for interactive and visually rich content. Data Source Google Sheets Structure The workflow relies on a Google Sheet structured as follows: PoseName : The name of the yoga pose. uri : The image URL representing the pose. url : A clickable link directing users to more information about the pose. Sample Data Layout Supine Angle https://example.com/SupineAngle-tn146.png https://example.com/pose/SupineAngle Warrior II https://example.com/WarriorII-tn146.png https://example.com/pose/WarriorII *Note : Ensure that you update the Google Sheet with your own data. Refer to this sample sheet for reference. * Scheduled Trigger The workflow is triggered daily at 21:30 (9:30 PM) Bangkok Time (Asia/Bangkok) . This ensures timely delivery of reminders to users, keeping them engaged with their yoga practice. Workflow Process Data Retrieval Node: Get PoseName Fetches yoga pose details from the specified range in the Google Sheet. Content Generation Node: WritePosesToday Utilizes Azure OpenAI to craft user-friendly text, complete with emojis and clear instructions. Node: RewritePosesToday Formats the AI-generated text specifically for Line messaging, ensuring compatibility and visual appeal. JSON Formatting Node: WriteJSONflex Generates JSON structures required for Line’s Flex Messages, enabling carousel displays of yoga pose images and links. Node: Fix JSON Ensures all JSON outputs are correctly formatted before being sent via Line. Message Delivery Node: Line Push with Flex Bubble Sends the final message, including both text and Flex Message carousels, directly to users via Line Push Messages. Logging Interactions Nodes: YogaLog & YogaLog2 Logs each interaction back into Google Sheets to track which poses were sent and how often they appear, refining future recommendations. Setup Prerequisites Google Sheets Account : Set up a Google Sheet with the required structure and populate it with your yoga pose data. Line Developer Account : Create a Line channel to obtain necessary credentials for sending push messages. Azure OpenAI Account : Configure access to Azure OpenAI services for generating and formatting content. Intended Audience This workflow is ideal for: Yoga Instructors : Seeking to engage students with daily pose suggestions. Fitness Enthusiasts : Looking to maintain consistency in their yoga practice. Content Creators : Interested in automating personalized and visually appealing content distribution.
by Jez
Summary This n8n workflow implements an AI-powered "Local Event Finder" agent. It takes user criteria (like event type, city, date, and interests), uses a suite of search tools (Brave Web Search, Brave Local Search, Google Gemini Search) and a web scraper (Jina AI) to find relevant events, and returns formatted details. The entire agent is exposed as a single, easy-to-use MCP (Multi-Capability Peer) tool, making it simple to integrate into other workflows or applications. This template cleverly combines the MCP server endpoint and the AI agent logic into a single n8n workflow file for ease of import and management. Key Features Intelligent Multi-Tool Search:** Dynamically utilizes web search, precise local search, and advanced Gemini semantic search to find events. Detailed Information via Web Scraping:** Employs Jina AI to extract comprehensive details directly from event web pages. Simplified MCP Tool Exposure:** Makes the complex event-finding logic available as a single, callable tool for other MCP-compatible clients (e.g., Roo Code, Cline, other n8n workflows). Customizable AI Behavior:** The core AI agent's behavior, tool usage strategy, and output formatting can be tailored by modifying its System Prompt. Modular Design:** Uses distinct nodes for LLM, memory, and each external tool, allowing for easier modification or extension. Benefits Simplifies Client-Side Integration:** Offloads the complexity of event searching and data extraction from client applications. Provides Richer Event Data:** Goes beyond simple search links to extract and format key event details. Flexible & Adaptable:** Can be adjusted to various event search needs and can incorporate new tools or data sources. Efficient Processing:** Leverages specialized tools for different aspects of the search process. Nodes Used MCP Trigger Tool Workflow Execute Workflow Trigger AI Agent Google Gemini Chat Model (ChatGoogleGenerativeAI) Simple Memory (Window Buffer Memory) MCP Client (for Brave Search tools via Smithery) Google Gemini Search Tool Jina AI Tool Prerequisites An active n8n instance. Google AI API Key:** For the Gemini LLM (Google Gemini Chat Model node) and the Google Gemini Search Tool. Ensure your key is enabled for these services. Jina AI API Key:** For the jina_ai_web_page_scraper node. A free tier is often available. Access to a Brave Search MCP Provider (Optional but Recommended):** This template uses MCP Client nodes configured for Brave Search via a provider like Smithery. You'll need an account/API key for your chosen Brave Search MCP provider to configure the smithery brave search credential. Alternatively, you could adapt these to call Brave Search API directly if you manage your own access, or replace them with other search tools. Setup Instructions Import Workflow: Download the JSON file for this template and import it into your n8n instance. Configure Credentials: Google Gemini LLM: Locate the Google Gemini Chat Model node. Select or create a "Google Gemini API" credential (named Google Gemini Context7 in the template) using your Google AI API Key. Google Gemini Search Tool: Locate the google_gemini_event_search node. Select or create a "Gemini API" credential (named Gemini Credentials account in the template) using your Google AI API Key (ensure it's enabled for Search/Vertex AI). Jina AI Web Scraper: Locate the jina_ai_web_page_scraper node. Select or create a "Jina AI API" credential (named Jina AI account in the template) using your Jina AI API Key. Brave Search (via MCP): You'll need an MCP Client HTTP API credential to connect to your Brave Search MCP provider (e.g., Smithery). Create a new "MCP Client HTTP API" credential in n8n. Name it, for example, smithery brave search. Configure it with the Base URL and any required authentication (e.g., API key in headers) for your Brave Search MCP provider. Locate the brave_web_search and brave_local_search MCP Client nodes in the workflow. Assign the smithery brave search (or your named credential) to both of these nodes. Activate Workflow: Ensure the workflow is active. Note MCP Trigger Path: Locate the local_event_finder (MCP Trigger) node. The Path field (e.g., 0ca88864-ec0a-4c27-a7ec-e28c5a900697) combined with your n8n webhook base URL forms the endpoint for client calls. Example Endpoint: YOUR_N8N_INSTANCE_URL/webhooks/PATH-TO-MCP-SERVER Customization AI Behavior:** Modify the "System Message" parameter within the event_finder_agent node to change the AI's persona, its strategy for using tools, or the desired output format. LLM Model:** Swap the Google Gemini Chat Model node with another compatible LLM node (e.g., OpenAI Chat Model) if desired. You'll need to adjust credentials and potentially the system prompt. Tools:** Add, remove, or replace tool nodes (e.g., use a different search provider, add a weather API tool) and update the event_finder_agent's system prompt and tool configuration accordingly. Scraping Depth:** Be mindful of the jina_ai_web_page_scraper's usage due to potential timeouts. The system prompt already guides the LLM on this, but you can adjust its usage instructions.
by Automate With Marc
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Automate your entire video content creation pipeline with this AI-powered, no-code workflow built in n8n. Watch Step-by-step video guide here: https://www.youtube.com/watch?v=x7nHpcggpX8&t=5s This template connects a suite of smart tools to help you generate scroll-stopping short video ideas based on daily trending topics and auto-deliver them via email—ready for production in Veo 3. 🔧 How it works: Scheduled Trigger (Daily) Kicks off the process each day at your chosen time. Tavily Agent (Web Search) Searches the latest trends, viral moments, or market news based on your e-commerce brand (e.g. “Sally’s Closet”). OpenAI GPT-4 Agent (Creative Brainstorming) Generates high-conversion marketing video ideas based on your brand’s tone and what’s trending. Prompt Formatter for Veo 3 Converts the idea into a cinematic-style prompt, optimized for Veo’s video generation engine (via FAL API). Send via Gmail The final Veo 3 prompt is emailed to you or your creative team for immediate use or manual refinement. Watch full step-by-step Tutorial Build Video: https://youtu.be/x7nHpcggpX8 🧠 Use Cases: E-commerce brands that need fresh daily content Marketing teams looking to automate creative ideation Solopreneurs building a lean video production engine Anyone experimenting with Veo 3 prompt-based storytelling 🛠️ Tools used: n8n Scheduled Trigger Tavily Node (for real-time web search) Langchain Agent (GPT-4 via OpenAI) FAL API (Veo 3 prompt delivery) Gmail Node (send final output) ⚡️ Ready-to-use. Fully editable. Zero coding required. 💡 Pro Tip: You can hook this up with the Veo 3 generation API (FAL) to complete the automation end-to-end!
by Adam Janes
This workflow gives you the ability to reply to a long email with a voice note, rather than having to type everything out. ChatGPT will format your audio response and create an email draft for you. How it works When a new email arrives in your inbox, the workflow checks if it needs a response, and it it does, it sends a message to you on Telegram via a VoiceEmailer bot. When you reply to that message with an audio message, the second part of this workflow is triggered. It checks if the message is in the right format, transcribes the audio, and creates a draft response that shows up in the same email thread. Set up steps Add your credentials for Gmail and OpenAI Create an Telegram bot following the instructions here. Connect your telegram credentials so the workflow will use your bot. Turn on the workflow, and message the bot from your telegram. Find the Chat ID from the Executions tab of your workflow, and enter it in as a variable.
by Floyd Mahou
🔍 How it works This workflow turns WhatsApp into a smart email command center using AI. Users can speak or type instructions like: "Send a follow-up to Claire” "Write a draft email to Claire to confirm tomorrow’s meeting at 5 PM” "What is the name of Claire's firm?” The agent transcribes voice notes, extracts intent with GPT, interacts with Gmail (send, draft, search), and replies with a confirmation via WhatsApp — either as text or a voice message. ⚙️ Key Modules Used WhatsApp Business Webhook (Meta) OpenAI Whisper (voice transcription) GPT (intent + content generation) Gmail (search, draft, send) Airtable (contact lookup + memory logging) 🧠 Memory Layer (Optional) The agent logs key fields in Airtable: Recipient email Company / job title And more... This creates a lightweight "gut memory” so the agent feels context-aware. 🗺️ Setup Steps Connect WhatsApp Business API (via Meta Developer Console) Add OpenAI and Gmail credentials in n8n Link your Airtable base for contacts and logging 🧩 Best Use Cases Hands-free email reply while commuting Fast Gmail access for busy consultants / solopreneurs Custom business agents for service-based professionals ⏱️ Estimated Setup Time 30–60 minutes ✅ Requirements WhatsApp Business Cloud access OpenAI API Key Gmail or Google Workspace Airtable account (free plan OK) n8n instance (cloud or self-hosted with HTTPS)
by Incrementors
Google Maps Business Phone No Scraper with Bright Data & Sheets Overview This n8n workflow automates the process of scraping business phone numbers and information from Google Maps using the Bright Data API and saves the results to Google Sheets. Workflow Components 1. Form Trigger - Submit Location and Keywords Type: Form Trigger Purpose: Start the workflow when a form is submitted Fields: Location (required) Keywords (required) Configuration: Form Title: "GMB" Webhook ID: 8b72dcdf-25a1-4b63-bb44-f918f7095d5d 2. Bright Data API - Request Business Data Type: HTTP Request Purpose: Sends scraping request to Bright Data API Method: POST URL: https://api.brightdata.com/datasets/v3/trigger Query Parameters: dataset_id: gd_m8ebnr0q2qlklc02fz include_errors: true type: discover_new discover_by: location limit_per_input: 2 Headers: Authorization: Bearer BRIGHT_DATA_API_KEY Request Body: { "input": [ { "country": "{{ $json.Location }}", "keyword": "{{ $json.keywords }}", "lat": "" } ], "custom_output_fields": [ "url", "country", "name", "address", "description", "open_hours", "reviews_count", "rating", "reviews", "services_provided", "open_website", "phone_number", "permanently_closed", "photos_and_videos", "people_also_search" ] } 3. Check Scraping Status Type: HTTP Request Purpose: Check if data scraping is completed Method: GET URL: https://api.brightdata.com/datasets/v3/progress/{{ $json.snapshot_id }} Query Parameters: format: json Headers: Authorization: Bearer BRIGHT_DATA_API_KEY 4. Check If Status Ready Type: Conditional (IF) Purpose: Determine if scraping is ready or needs to wait Condition: {{ $json.status }} equals "ready" 5. Wait Before Retry Type: Wait Purpose: Pause 1 minute before checking status again Duration: 1 minute Webhook ID: 7047efad-de41-4608-b95c-d3e0203ef620 6. Check Records Exist Type: Conditional (IF) Purpose: Proceed only if business records are found Condition: {{ $json.records }} not equals 0 7. Fetch Business Data Type: HTTP Request Purpose: Get business information including phone numbers Method: GET URL: https://api.brightdata.com/datasets/v3/snapshot/{{ $json.snapshot_id }} Query Parameters: format: json Headers: Authorization: Bearer BRIGHT_DATA_API_KEY 8. Save to Google Sheets Type: Google Sheets Purpose: Store business data in Google Sheets Operation: Append Document ID: YOUR_GOOGLE_SHEET_ID Sheet Name: GMB Column Mapping: Name:** {{ $json.name }} Address:** {{ $json.address }} Rating:** {{ $json.rating }} Phone Number:** {{ $json.phone_number }} URL:** {{ $json.url }} Workflow Flow Start: User submits form with location and keywords Request: Send scraping request to Bright Data API Monitor: Check scraping status periodically Wait Loop: If not ready, wait 1 minute and check again Validate: Ensure records exist before proceeding Fetch: Retrieve the scraped business data Save: Store results in Google Sheets Setup Requirements API Keys & Credentials Bright Data API Key:** Replace BRIGHT_DATA_API_KEY with your actual API key Google Sheets OAuth2:** Configure with your Google Sheets credential ID Google Sheet ID:** Replace YOUR_GOOGLE_SHEET_ID with your actual sheet ID Google Sheets Setup Create a Google Sheet with a tab named "GMB" Ensure the following columns exist: Name Address Rating Phone Number URL Workflow Status Active:** No (currently inactive) Execution Order:** v1 Version ID:** 0bed9bf1-00a3-4eb6-bf7c-cf07bee006a2 Workflow ID:** Hm7iTSgpu2of6gz4 Notes The workflow includes a retry mechanism with 1-minute waits Data validation ensures only successful scrapes are processed All business information is automatically saved to Google Sheets The form trigger allows easy initiation of scraping jobs For any questions or support, please contact: info@incrementors.com or fill out this form: https://www.incrementors.com/contact-us/
by David Ashby
Complete MCP server exposing all ProfitWell Tool operations to AI agents. Zero configuration needed - all 2 operations pre-built. ⚡ Quick Setup Need help? Want access to more workflows and even live Q&A sessions with a top verified n8n creator.. All 100% free? Join the community Import this workflow into your n8n instance Activate the workflow to start your MCP server Copy the webhook URL from the MCP trigger node Connect AI agents using the MCP URL 🔧 How it Works • MCP Trigger: Serves as your server endpoint for AI agent requests • Tool Nodes: Pre-configured for every ProfitWell Tool operation • AI Expressions: Automatically populate parameters via $fromAI() placeholders • Native Integration: Uses official n8n ProfitWell Tool tool with full error handling 📋 Available Operations (2 total) Every possible ProfitWell Tool operation is included: 🔧 Company (1 operations) • Get settings for your company 🔧 Metric (1 operations) • Get a metric 🤖 AI Integration Parameter Handling: AI agents automatically provide values for: • Resource IDs and identifiers • Search queries and filters • Content and data payloads • Configuration options Response Format: Native ProfitWell Tool API responses with full data structure Error Handling: Built-in n8n error management and retry logic 💡 Usage Examples Connect this MCP server to any AI agent or workflow: • Claude Desktop: Add MCP server URL to configuration • Custom AI Apps: Use MCP URL as tool endpoint • Other n8n Workflows: Call MCP tools from any workflow • API Integration: Direct HTTP calls to MCP endpoints ✨ Benefits • Complete Coverage: Every ProfitWell Tool operation available • Zero Setup: No parameter mapping or configuration needed • AI-Ready: Built-in $fromAI() expressions for all parameters • Production Ready: Native n8n error handling and logging • Extensible: Easily modify or add custom logic > 🆓 Free for community use! Ready to deploy in under 2 minutes.