by Daniel Ng
Advanced n8n Error Handling: Automated Email Alerts & Global Error Workflow Configuration In any automated environment, n8n workflows, while powerful, can sometimes encounter unexpected issues or fail during execution. Without a dedicated error handling strategy, these failures might go unnoticed, leading to incomplete processes, data inconsistencies, or critical operational disruptions. Manually monitoring every workflow execution or sifting through logs for error details is inefficient and can significantly delay crucial fixes. This is where a centralized, automated error management system becomes essential to maintain reliability and quickly address any problems. The "Advanced n8n Error Handling: Automated Email Alerts & Global Error Workflow Configuration" template provides a robust solution to proactively manage and respond to errors within your n8n instance. For more powerful n8n templates, visit our website or contact us at AI Automation Pro. We help your business build custom AI workflow automation and apps. Highlight features Automated Email Notifications:** Sends detailed HTML emails via Gmail for both execution and trigger failures, ensuring you're promptly informed. Centralized Error Management:** Acts as a single, dedicated workflow to catch and process errors from multiple other n8n workflows. Proactive Global Error Handler Configuration:** A scheduled task automatically scans and updates other active n8n workflows to use this workflow as their default error handler, ensuring consistent error management. Comprehensive Error Reporting:** Notification emails are rich with information, including error messages, stack traces, the last executed node, direct links to failed executions, and detailed trigger failure context. Dynamic Email Content:** The subject line and body of the notification email are dynamically adjusted based on whether the failure was an execution error or a trigger failure. Highly Customizable:** Offers flexibility to modify email content (HTML), change the notification channel (e.g., Slack, other email providers), and adjust the logic for updating other workflows' error handlers. Scheduled Operation:** The global configuration part runs on a user-definable schedule (e.g., daily, hourly) for proactive and automated error handling setup across your n8n instance. Who is this for? This workflow is designed for n8n users and administrators who want to: Establish a resilient and centralized error handling mechanism across their n8n instance. Receive immediate and detailed email notifications for any workflow failures. Automate the process of assigning a default error handling workflow to all their active n8n workflows. Save time on manually configuring error handlers for each individual workflow and ensure comprehensive error coverage. What problem is this workflow solving? / use case In an n8n environment with multiple workflows, errors can occur without immediate visibility. This can lead to: Unnoticed failures, potentially causing data loss or incomplete automated processes. Time-consuming diagnosis of issues due to a lack of readily available, detailed error information. Inefficiency and oversight from manually setting an error workflow for every new or existing workflow. This template tackles these issues by providing a proactive error management system. It not only alerts you to failures with comprehensive details but also ensures that your other workflows are automatically configured to use this centralized handler. What this workflow does This workflow operates in two distinct yet complementary parts: 1\. Scheduled Global Error Handler Configuration: Trigger:** Initiates based on a configurable schedule (e.g., daily, hourly). Identify Self:** Retrieves its own workflow ID to use as the designated error handler. Scan Workflows:** Fetches a list of all other workflows within your n8n instance. Conditional Update Logic:** For each active workflow found, it checks if: An error workflow (errorWorkflow setting) is not currently set, OR The currently set errorWorkflow is different from this central error handling workflow. The workflow is active. Apply Default Handler:** If the above conditions are met, it automatically updates the target workflow's settings. This sets the current workflow as its default error handler, ensuring that any future errors in those workflows are routed here. The callerPolicy setting is also removed during this update. 2\. Error Notification via Email: Trigger:** Activates whenever an error occurs in any n8n workflow that has this workflow designated as its errorWorkflow. Gather Error Context:** Collects vital information about the failure, such as: The base URL of your n8n instance. Specific details of the workflow that failed (name, ID). The nature of the error: whether it's an "execution error" (occurring mid-workflow) or a "trigger failure" (occurring at the start). Format Detailed Error Message:** Constructs a comprehensive HTML email tailored to the error type: For Execution Errors: The email includes a direct link to the failed execution's page, the timestamp of the error, the name of the last node that successfully executed, the error message, and the full error stack trace. For Trigger Failures: The email includes the timestamp, operational mode, error message, error name and description, relevant context data, details about the cause (message, name, code, status), and the stack trace. Send Email Notification:** Dispatches the formatted HTML email using Gmail to a predefined recipient. The email subject line dynamically indicates the name of the failing workflow and the type of error, providing a quick overview. Setup Import Workflow: Import the JSON file into your n8n instance. Configure Credentials: n8n API Access: Locate the nodes: "N8n Get Error Handler", "N8n Get All Workflows", and "N8n Update Workflow". For each, select or create new n8n API credentials. These credentials must have permissions to read all workflows (workflows.read) and update workflows (workflows.update). Gmail Access: Locate the "Gmail Send Notification" node. Select or create new Gmail OAuth2 credentials to authorize n8n to send emails on your behalf. Set Email Recipient and Sender Details: Navigate to the "Settings" node, which is connected directly after the "Error Trigger" node. Modify the value for the Email Receiver variable to the email address where error notifications should be sent. Optionally, update the Email Sender Name variable. Configure Schedule (Optional): Select the "Schedule Trigger" node. Adjust the "Trigger Interval" (e.g., Every Day, Every Hour) according to how frequently you want the workflow to scan and update the error handler settings for other workflows in your n8n instance. Activate Workflow: Ensure this workflow is toggled to "Active". Once active, its scheduled component will begin operating, and it will be ready to process and notify on errors from other linked workflows. Manual Configuration (Optional): While this workflow automates the assignment, you can also manually set this workflow as the errorWorkflow in the settings of any critical existing workflows for immediate protection. How to customize this workflow to your needs Email Content & Formatting:** Modify the HTML content within the "HTML For Execution Error" and "HTML For Trigger Error" nodes to alter the appearance, structure, or information included in the notification emails. Alternative Notification Channels:** Replace the "Gmail Send Notification" node with a different email service node (e.g., Microsoft Outlook, SendGrid) or integrate other notification platforms like Slack, Microsoft Teams, or Discord. Remember to adjust the input data mappings for the new node. Refine Global Update Logic:** Adjust the conditions within the "If No Default Error Handler Set" node if you need more granular control over which workflows are automatically updated (e.g., filter by workflow tags, names, or explicitly exclude certain workflows). Enrich Error Data:** Insert additional nodes after the "Error Trigger" but before the "Settings" node if you need to fetch more context about the error or the workflow that failed (e.g., look up related information from a database or API). Advanced Notification Routing:** Implement more complex logic prior to sending notifications. For example, you could use a Switch node to route error alerts to different email addresses or channels based on the name of the failing workflow or the severity of the error. Handling of callerPolicy:** The "Set Data" node is configured to remove the callerPolicy setting from workflows it updates. If your workflows rely on this setting, you may need to modify or remove this part of the "Set Data" node's code. Adjust Scheduled Task:** Change the frequency or timing of the "Schedule Trigger" to better suit your operational needs for the global error handler update.
by Automate With Marc
🧠 Google Drive Upload Trigger → Pinecone Vector Upsert for Document Indexing Category: AI & LLM / Document Indexing Level: Intermediate Tags: Google Drive, Pinecone, OpenAI, Embeddings, Vector Store, LangChain, RAG 📄 What This Workflow Does This workflow watches a specific Google Drive folder and automatically uploads any newly added document to a Pinecone vector database — complete with OpenAI-generated embeddings. Perfect for setting up retrieval-augmented generation (RAG) pipelines, semantic search, or document Q&A systems. Once configured, your knowledge base stays up-to-date with zero manual effort. Watch Full Step By Stey Tutorial Video Here: https://www.youtube.com/@Automatewithmarc 🔧 How It Works 📁 Google Drive Trigger Watches a specific folder and triggers when new documents are uploaded. 🔍 Google Drive File Search & Download Finds and fetches all files in the folder. 🔄 Loop Over Each File Handles batch processing for multiple files. 📃 Document Loader Parses each file as binary and applies custom metadata like document type. ✂️ Text Splitter Breaks content into manageable chunks for embedding (e.g., 600 characters, 60 overlap). 🧠 OpenAI Embeddings Generates vector embeddings using OpenAI. 📦 Pinecone Vector Store Inserts/upserts documents into a specific Pinecone namespace for search-ready indexing. 🧠 Why This is Useful This is a production-grade setup for: Building vector search tools over internal docs Feeding up-to-date data into RAG agents or chatbots Auto-tagging and chunking files for scalable AI workflows Whether you’re indexing course outlines, SOPs, or technical docs — this automation keeps your vector store fresh and organized. 🪜 Setup Instructions Connect your Google Drive, OpenAI, and Pinecone accounts. Specify the Google Drive folder to monitor. Customize metadata, chunk size, or vector namespace as needed. Activate the workflow and drop a file into the folder — magic happens behind the scenes. 📌 Notes Works best with PDFs or text-based documents. You can swap out OpenAI with other embedding models if needed. Consider adding notifications or logging (e.g., via Slack or email) for better observability.
by Gleb D
This n8n workflow automates the discovery, enrichment, and comparative analysis of startups from the Crunchbase dataset via Bright Data, enhanced with AI, and exports structured results to Google Sheets. 🚀 What It Does Receives a keyword from the user that describes the area of interest — such as an industry, sector, technology, or trend (e.g., "AI in healthcare", "carbon capture", "edtech"). This keyword is used to filter relevant startups from the Crunchbase dataset via Bright Data. Fetches data from Bright Data's Crunchbase snapshot API. Extracts and cleans key fields from the JSON response. Sorts startups by most recent founding date. Selects the top 10 most recent companies. Sends these 10 companies to Google Gemini AI for comparative analysis. Embeds the AI-generated summary into the final export. Appends results to a Google Sheet for tracking and reporting. 🛠️ Step-by-Step Setup Get user keyword input from a form. Use 3 Bright Data requests: Start snapshot. Poll snapshot status until ready. Fetch snapshot data in JSON format. Use a Python Code node to: Parse and sort companies by founded_date. Clean and standardize data fields. Pass the top 10 companies into Gemini AI for comparative insight. Merge the AI output back with company data. Send everything to Google Sheets. 🧠 How It Works Snapshot Control: Polls every few seconds until the Bright Data snapshot is complete. Code Cleanup: Ensures consistent structure and formatting across all records. Comparative AI Analysis: Gemini compares all 10 companies at once and returns a unified analysis. Merging Output: AI analysis is merged into the first company’s record (to avoid duplication), while all 10 are exported. 📤 Google Sheet Output Each row includes: name, founded, about, num_employees, type, ipo_status, full_description, social_media_links, address, website, funding_total, num_investors, lead_investors, founders, products_and_services, monthly_visits, crunchbase_link, ai_analysis. AI comparative analysis summary (only once per batch – attached to the first company). All fields from above customizible through the python code (you can add additional ones from Bright Data output). 🔐 Required Credentials Bright Data* – Replace *YOUR_API_KEY** in 3 HTTP Request nodes. Google Gemini API** – For AI analysis. Google Sheets OAuth2** – For spreadsheet export. ⚠️ Notes AI output is shared once per batch of 10 companies, attached to the first company entry. You can configure the limit of batch size in the first "Code" node.
by ist00dent
This n8n template allows you to perform real-time currency conversions by simply sending a webhook request. By integrating with the ExchangeRate.host API, you can get up-to-date exchange rates for over 170 world currencies, making it an incredibly useful tool for financial tracking, e-commerce, international business, and personal budgeting. 🔧 How it works Receive Conversion Request Webhook: This node acts as the entry point for the workflow, listening for incoming POST requests. It's configured to expect a JSON body containing: from: The 3-letter ISO 4217 currency code for the source currency (e.g., USD, PHP). to: The 3-letter ISO 4217 currency code for the target currency (e.g., EUR, JPY). amount: The numeric value you want to convert. Important: The ExchangeRate.host API access_key is handled securely by n8n's credential system and should not be included in the webhook body or headers. Convert Currency: This node makes an HTTP GET request to the ExchangeRate.host API (api.exchangerate.host). It dynamically constructs the URL using the from, to, and amount from the webhook body. Your API access key is securely retrieved from n8n's pre-configured credentials (HTTP Query Auth type) and automatically added as a query parameter (access_key). The API then performs the conversion and returns a JSON object with the conversion details. Respond with Converted Amount: This node sends the full currency conversion result received from ExchangeRate.host back to the service that initiated the webhook. 👤 Who is it for? This workflow is ideal for: E-commerce Platforms: Display prices in local currencies on the fly for international customers. Convert incoming international payments to your local currency for accounting. Calculate shipping costs in different currencies. Financial Tracking & Budgeting Apps: Update personal or business budgets with converted values. Track expenses incurred in foreign currencies. Automate portfolio value conversion for multi-currency investments. International Business & Freelancers: Generate invoices in a client's local currency based on your preferred currency. Quickly estimate project costs or earnings in different currencies. Automate reconciliation of international transactions. Travel Planning: Convert travel expenses from one currency to another while abroad. Build simple tools to estimate costs for trips in different countries. Data Analysis & Reporting: Standardize financial data from various sources into a single currency for unified reporting. Build dashboards that display converted financial metrics. Custom Integrations: Connect to CRMs, accounting software, or internal tools to automate currency-related tasks. Build chatbots that can answer currency conversion queries. 📑 Data Structure When you trigger the webhook, send a POST request with a JSON body structured as follows: { "from": "USD", "to": "PHP", "amount": 100 } The workflow will return a JSON response similar to this (results will vary based on currencies and amount): { "date": "2025-06-03", "historical": false, "info": { "rate": 58.749501, "timestamp": 1717398188 }, "query": { "amount": 100, "from": "USD", "to": "PHP" }, "result": 5874.9501, "success": true } ⚙️ Setup Instructions Get an ExchangeRate.host Access Key: Go to https://exchangerate.host/ and sign up for a free API key. Create an n8n Credential for ExchangeRate.host: In your n8n instance, go to Credentials. Click "New Credential" and search for "HTTP Query Auth". Set the Name (e.g., ExchangeRate.host API Key). Set API Key to your ExchangeRate.host access key. Set Parameter Name to access_key. Set Parameter Position to Query. Save the credential. Import Workflow: In your n8n editor, click "Import from JSON" and paste the provided workflow JSON. Configure ExchangeRate.host API Node: Double-click the Convert Currency node. Under "Authentication", select "Generic Credential Type". Choose "HTTP Query Auth" as the Generic Auth Type. Select the credential you created (e.g., "ExchangeRate.host API Key") from the dropdown. Configure Webhook Path: Double-click the Receive Conversion Request Webhook node. In the 'Path' field, set a unique and descriptive path (e.g., /convert-currency). Activate Workflow: Save and activate the workflow. 📝 Tips This workflow is a powerful starting point. Here's how you can make it even more robust and integrated: Robust Error Handling: Add an IF node after Convert Currency to check {{ $json.success }}. If false, branch to an Error Trigger node or send an alert (e.g., Slack, Email) with {{ $json.error.info }} to notify you of API issues or invalid inputs. Include a Try/Catch block to gracefully handle network issues or malformed responses. Input Validation & Defaults: Add a Function node after the webhook to validate if from, to, and amount are present and in the correct format. If not, return a clear error message to the user. Set default from or to currencies if they are not provided in the webhook, making the API more flexible. Logging & Auditing: After a successful conversion, use a Google Sheets, Airtable, or database node (e.g., PostgreSQL, MongoDB) to log every conversion request, including the input currencies, amount, converted result, date, and possibly the calling IP (from the webhook headers). This is crucial for financial auditing and analysis. Rate Limits & Caching: If you anticipate many requests, be mindful of ExchangeRate.host's API rate limits. You can introduce a Cache node to store recent conversion results for a short period, reducing redundant API calls for common conversions. Alternatively, add a Delay node to space out requests if you're hitting limits. Format & Rounding: Use a Function node or Set node to format the result to a specific number of decimal places (e.g., {{ $json.result.toFixed(2) }}). Add currency symbols or full currency names to the output for better readability. Alerting on Significant Changes: Chain this workflow with a Cron or Schedule node to periodically fetch exchange rates for a pair you care about (e.g., USD to EUR). Use an IF node to compare the current rate with a previously stored rate. If the change exceeds a certain percentage, send an alert via Slack, Email, or Telegram to notify you of significant market shifts. Integration with Payment Gateways: For e-commerce, combine this with nodes for payment gateways (e.g., Stripe, PayPal) to automatically convert customer payments received in foreign currencies to your base currency before recording. Multi-currency Pricing for Products: Use this workflow in conjunction with your product database. When a user selects a different country/currency, trigger this webhook to dynamically convert product prices and display them instantly.
by Yaron Been
Automate expense reviews with AI-powered CFO-level analysis. This workflow monitors Airtable expense submissions, uses GPT-4 to analyze expenses like an experienced CFO, flags suspicious expenses with detailed reasoning, and maintains comprehensive audit trails in Pinecone vector database. 🚀 What It Does Smart Monitoring**: Watches Airtable for new expense submissions AI CFO Analysis**: GPT-4 applies financial expertise to review amounts, categories, and descriptions Intelligent Flagging**: Automatically identifies policy violations and suspicious patterns Audit Trail**: Stores all decisions in Pinecone for compliance and searchability Auto Updates**: Updates Airtable records with AI decisions and detailed reasoning 🎯 Perfect For Finance teams needing intelligent expense oversight CFOs wanting to automate expense policy enforcement Growing companies scaling expense management Businesses requiring compliance documentation ⚙️ Key Benefits ✅ 99% faster expense processing vs manual review ✅ CFO-level intelligence applied to every expense ✅ Complete audit trail for compliance ✅ Real-time fraud detection and policy enforcement ✅ Detailed explanations for every decision 🔧 What You Need Airtable base with expense data (template included) OpenAI API for GPT-4 analysis Pinecone account for audit trail storage Basic expense submission process 📊 Sample Results Input: $4,500 business class flight to Tokyo AI Decision: "Flagged - Amount exceeds typical travel thresholds. Requires verification against travel policies and client justification for premium travel." 🛠️ Setup & Support Quick Setup: Deploy in 60 minutes with included templates and documentation YouTube: https://www.youtube.com/@YaronBeen/videos 💼 Expert Support LinkedIn: https://www.linkedin.com/in/yaronbeen/ 📧 Direct Help Email: Yaron@nofluff.online Transform expense management from manual bottleneck to intelligent automation. Let AI handle policy compliance while your finance team focuses on strategy.
by InfraNodus
Analyze and Explore your ZenDesk Support Requests using AI-Powered Knowledge Graph This template helps you create an interactive InfraNodus knowledge graph for your ZenDesk tickets using any search criteria (e.g. after a certain date, specific status, sender, keyword) that will automatically be sent to a selected Slack channel. Here's an example of the InfraNodus graph that shows the main topics and gaps in ZenDesk support tickets: You can use the workflow to: Get an instant overview of the main topics your customers are talking about Generate business and product ideas based on the blind spots identified using the InfraNodus AI See which topics correlate to the negative / positive sentiment understanding the weak and strong sides of your product and support Receive daily notifications on the main topics your customers are talking about via Slack / Telegram / Email and other channels Perform detailed search using a password-protected web form for tickets filtered by a certain date, status, tag, sender, keyword. Use the interactive graph to explore specific topics and concepts your customers are talking about — a great way to engage with their concerns in a non-linear way, bypassing the boring tabular interface Use the graph to explore the support requests by specific segments — e.g. status, priority, sentiment, tags, urgency. Use the graph generated as an AI expert available to your AI agents in other n8n workflows via InfraNodus GraphRAG. For instance, you could connect your knowledge base to the support tickets graph and let the agent discover possible solutions to your customers' most typical problems. See an sample template here. How it works You can start this workflow manually, with a daily / weekly trigger, or via a password-protected web form, where you can provide search requests. Once started, it will perform a ZenDesk tickets search with the default or your custom criteria. Then it will use the search results to generate an InfraNodus graph (or add the new data to an existing one), and — finally — use the InfraNodus AI endpoints to generate a topical summary and a product business idea based on the blind spots identified. The results are delivered a channel of your choice. Here's a description step by step: Start the workflow (manually or on schedule) Assign values to variables (search criteria, graph name) Perform ZenDesk support tickets search Convert the data received and submit it to InfraNodus to generate a knowledge graph Generate topical summary with InfraNodus Generate a business idea with InfraNodus (you can also change the setting to generate a question instead) Send a notification via Slack / Telegram / Email or back to the webform How to use You need an InfraNodus API account and key to use this workflow. You also need a ZenDesk account. It takes about 5 minutes to set everything up. Create an InfraNodus account. Get the API key at https://infranodus.com/api-access and create a Bearer authorization key for the InfraNodus HTTP nodes. Add the authorization key to all the InfraNodus HTTP nodes in the template (Steps 3, 5, and 6). Generate a ZenDesk authorization token following the instructions in n8n's ZenDesk node (Step 3). Optionally: connect your Slack or Telegram or Gmail account to receive automated notifications with the link to the graph, once the workflow is ready (it takes about 30 seconds to run). Run it with using the form to play around with the search criteria that works best for you (you can leave everything empty at first), then choose the parameters you like and activate the Daily Trigger node to receive executive summaries to a channel of your choice. Open the graph in InfraNodus and use our customer feedback analysis guide to explore the graph and generate new insights. Requirements An InfraNodus account and API key A ZenDesk API key (Optional) — a Slack / Telegram / Gmail connection for notifications FAQ 1. What are the best use cases to try? I love to set the graph to deliver me a daily visual briefing of what's happening in my support portal. It shows me the main topics and gaps and generates product ideas based on them. Great to keep the pulse on the business. I also really like generating a graph for the past week manually, using the form, and then exploring the graph in InfraNodus directly using the customer feedback analysis workflow to: discover main topics my customers are talking about? understand the topics that have the most negative connotation for them (using the sentiment filter)? discover some support tickets that need more attention or that talk about the topics I'm personally interested in and engage with the client identify the gaps in your customers' discourse based on the blind spots — useful for generating ideas, see the graph below with a demo of how it works: 2. Why use the graph and not just AI summary? AI summary will just give you generic results. You'll see what you already know. Using the graph helps you deconstruct the discourse and get a much more nuanced understanding of the main pain points and interests of your customers. The auto-generated InfraNodus summary and business ideas have a direct explainable connection to the discourse, so you can always see where they are coming from and maintain the focus on all the topics, rather than the most prominent ones. Additionally, having an interactive graph opens a possibility to explore your customers' concerns in a more engaging way, finding the topics and concepts that are relevant to your interests or to your agents' expertise, helping you find the conversations that you'd otherwise have missed. 3. Is my customers' data safe? Absolutely. InfraNodus' terms of use and privacy policy state that the customers' data and text graphs are not used in AI training and are not offered to any third parties. Its underlying API system uses the Open API which explicitly states that data is not used for training either. So all the customers' data are private and safe. As an extra precaution, you can always delete the graphs after you analyzed them, in which case there is no trace of this data left on the servers. Customizing this workflow Check out the complete setup guide for this workflow at https://support.noduslabs.com/hc/en-us/articles/20447530961308-Zendesk-Tickets-Summarization-Sentiment-Analysis-and-Slack-Integration-with-n8n-and-InfraNodus For support with this template, please, contact https://support.noduslabs.com For more InfraNodus n8n workflows, please, see our creators page: https://n8n.io/creators/infranodus/ To learn more about InfraNodus, GraphRAG, and knowledge graph analysis: https://infranodus.com
by Milan Vasarhelyi - SmoothWork
Video Introduction Want to automate your inbox or need a custom workflow? 📞 Book a Call | 💬 DM me on Linkedin Transform your messy inbox into a calm, organized command center - in minutes - using this ready-to-use n8n automation! Tired of your Gmail looking like this? With this template, you can have this instead: What does this automation do? AI-powered categorization:** Every new email is analyzed with OpenRouter AI and sorted into categories you define (like Orders, Support, Invoices, Urgent, etc.). Instant color-coded labels:** The workflow creates and applies Gmail labels with custom colors, so you can spot important messages at a glance. Supports Gmail’s Multiple Inboxes:** Display different categories in their own sections—see what matters most right away. Flexible and customizable:** You control the categories and definitions using a simple Google Sheet. How it works – Step by Step See the full setup & demo: Copy the Template Open the n8n workflow template and click Use for free. Log in (or sign up) for n8n Cloud for the quickest start. Customize Your Categories in Google Sheets Use the provided Google Sheets template linked in the workflow notes. Go to File → Make a copy to your own Drive. Edit the categories and their definitions for your business. Example: Add categories like “Existing Order Questions,” define each one to guide the AI, and copy your Google Sheet’s URL into the workflow config node. Connect AI with OpenRouter Go to OpenRouter.ai, log in, and generate a new API key. Paste your API key into the workflow where prompted. Test and Activate the Workflow Connect your Gmail account to n8n. Hit “Test Workflow”—watch as the AI processes your latest emails and applies labels automatically. Labels will appear instantly in Gmail, and any missing ones are created by the automation. Schedule Automatic Runs Switch workflow status to Active in n8n. Set the scheduler trigger—most people use hourly, but you can use crontab.guru for custom times (like only business hours). Tips for Best Results Color Code Your Labels:** In Gmail, you can assign colors to labels—set high-priority categories (like “Customer Complaints”) to a bright color to stand out. Upgrade Your Gmail View:** Enable Multiple Inboxes in Gmail’s settings and set up sections for your key categories. Example search queries: in:inbox label:customer-complaints OR label:urgent-emails in:inbox label:existing-order-questions in:inbox label:support-requests Why Use This? Get rid of inbox chaos for good - no more lost emails or missed deadlines Fully customize the system to your business with just a Google Sheet Works with zero coding - set up in 10-15 minutes Flexible: add auto-replies, draft suggestions, and more as you grow
by Mihai Farcas
Use Case: This n8n workflow automates the process of extracting information from emails. It uses OpenAI to summarize sales emails and adds this information in Odoo. How it works: When an email is received with a certain label, it sends the email to OpenAI for summarization A sales opportunity is created in Odoo with the email subject as title and the email summary as internal note Set up steps: Configure Google Cloud credentials with Gmail access In the Gmail node, choose an email label in the filter section Configure OpenAI credentials Configure Odoo credentials
by ist00dent
This n8n template provides a simple yet powerful utility for validating if a given string input is a valid JSON format. You can use this to pre-validate data received from external sources, ensure data integrity before further processing, or provide immediate feedback to users submitting JSON strings. 🔧 How it works Webhook: This node acts as the entry point for the workflow, listening for incoming POST requests. It expects a JSON body with a single property: jsonString: The string that you want to validate as JSON. Code (JSON Validator): This node contains custom JavaScript code that attempts to parse the jsonString provided in the webhook body. If the jsonString can be successfully parsed, it means it's valid JSON, and the node returns an item with valid: true. If parsing fails, it catches the error and returns an item with valid: false and the specific error message. This logic is applied to each item passed through the node, ensuring all inputs are validated. Respond to Webhook: This node sends the validation result (either valid: true or valid: false with an error message) back to the service that initiated the webhook request. 👤 Who is it for? This workflow is ideal for: Developers & Integrators: Pre-validate JSON payloads from external systems (APIs, webhooks) before processing them in your workflows, preventing errors. Data Engineers: Ensure the integrity of JSON data before storing it in databases or data lakes. API Builders: Offer a dedicated endpoint for clients to test their JSON strings for validity. Customer Support Teams: Quickly check user-provided JSON configurations for errors. Anyone handling JSON data: A quick and easy way to programmatically check JSON string correctness without writing custom code in every application. 📑 Data Structure When you trigger the webhook, send a POST request with a JSON body structured as follows: { "jsonString": "{\"name\": \"n8n\", \"type\": \"workflow\"}" } Example of an invalid JSON string: { "jsonString": "{name: \"n8n\"}" // Missing quotes around 'name' } The workflow will return a JSON response indicating validity: For a valid JSON string: { "valid": true } For an invalid JSON string: { "valid": false, "error": "Unexpected token 'n', \"{name: \"n8n\"}\" is not valid JSON" } ⚙️ Setup Instructions Import Workflow: In your n8n editor, click "Import from JSON" and paste the provided workflow JSON. Configure Webhook Path: Double-click the Webhook node. In the 'Path' field, set a unique and descriptive path (e.g., /validate-json). Activate Workflow: Save and activate the workflow. 📝 Tips This JSON validator workflow is a solid starting point. Consider these enhancements: Enhanced Error Feedback: Upgrade: Add a Set node after the Code node to format the error message into a more user-friendly string before responding. Leverage: Make it easier for the caller to understand the issue. Logging Invalid Inputs: Upgrade: After the Code node, add an IF node to check if valid is false. If so, branch to a node that logs the invalid jsonString and error to a Google Sheet, database, or a logging service. Leverage: Track common invalid inputs for debugging or improvement. Transforming Valid JSON: Upgrade: If the JSON is valid, you could add another Function node to parse the jsonString and then operate on the parsed JSON data directly within the workflow. Leverage: Use this validator as the first step in a larger workflow that processes JSON data. Asynchronous Validation: Upgrade: For very large JSON strings or high-volume requests, consider using a separate queueing mechanism (e.g., RabbitMQ, SQS) and an asynchronous response pattern. Leverage: Prevent webhook timeouts and improve system responsiveness.
by Obsidi8n
This workflow creates a customizable form with a dynamic dropdown field that automatically updates its options from an external data source. How it works The workflow polls an external data source (Google Sheets in this example) at regular intervals New values are processed and formatted for the dropdown The form automatically updates with the new dropdown options Set up steps Configure your data source: Default setup uses Google Sheets replace with credentials for your sheet set up the update frequency Or modify to use any other data source (API, database, etc.) Adjust the form configuration: Customize the form title and description Add or modify form fields as needed The template includes the dropdown field by default Connect form submissions: Use the "Execute Workflow" node to process form submissions This template provides a foundation for creating dynamic forms that stay synchronized with your data sources, making it ideal for situations where dropdown options need to reflect current data.
by Roninimous
This n8n workflow integrates Shopify order management with Telegram, allowing you to query open orders and order details directly through Telegram chat commands. It provides an interactive way to monitor your Shopify store orders using Telegram as an interface. Key Features Telegram Trigger: Listens for messages and callback queries from your Telegram bot. Switch Node: Routes incoming Telegram messages to different flows based on message content: /orders command to fetch all open orders Callback queries starting with /order_ to fetch details of a specific order Shopify Get Orders: Retrieves all open orders from your Shopify store using your Shopify API credentials. Conditional Check (If Node): Determines if there are any open orders; branches accordingly: If orders exist, prepare an interactive Telegram message with a list of orders.1 If no orders exist, send a “No Order” message. Orders Code Node: Formats the list of open orders into a Telegram message with inline buttons. Each button corresponds to an order and sends a callback data containing the order ID. Get Order Details: When a user selects an order button, the workflow extracts the order ID from the callback data, fetches detailed order information from Shopify, and formats the order items into a readable message. Send Messages to Telegram: Sends formatted messages back to Telegram: The list of open orders with clickable buttons. Detailed information about a selected order. “No Order” notification if there are no open orders. How It Works A Telegram user sends /orders to the bot. The workflow fetches open orders from Shopify and sends a message with buttons listing each order. When a user clicks an order button, the workflow fetches and displays detailed information about that specific order in Telegram. If there are no open orders, the bot replies accordingly. Setup Instructions Create a Telegram Bot: Use @BotFather on Telegram to create a bot and get the bot token. Obtain Shopify API Credentials: Create a private app in your Shopify admin dashboard with permission to read orders. Obtain the API key and access token. Configure n8n Credentials: Add your Telegram bot token as Telegram API credentials in n8n. Add your Shopify API credentials in n8n Shopify credentials. Import the Workflow: Import this workflow into your n8n instance. Update the Telegram and Shopify credential nodes to use your credentials. Set Webhook URLs: Ensure your Telegram bot webhook is set correctly to receive messages. n8n webhook URLs should be publicly accessible. Test the Workflow: Send /orders to your Telegram bot to verify it retrieves and lists open orders. Customization Guidance Modify Commands: Update the Switch node to add more Telegram commands or change existing ones. Change Message Formats: Edit the Code nodes to customize how order lists and details appear. Expand Shopify Integration: Add nodes to handle other Shopify operations like updating orders, managing products, etc. Multi-User Support: Adapt the workflow to handle multiple Telegram chat IDs dynamically. Security and Implementation Notes The native Telegram node in n8n has limitations: it does not support sending dynamic inline keyboard arrays in JSON format, which is essential for displaying a variable number of buttons depending on how many orders are retrieved from Shopify. To overcome this, this workflow uses the HTTP Request node to call Telegram’s API directly, allowing full flexibility to send dynamic inline keyboards as JSON objects. (I will make an update once Telegram Node support dynamic inline keyboards). Security Considerations:** Always store your Telegram bot token securely in n8n credentials and never expose it in the HTTP Request node’s URL or body directly. Use environment variables or n8n credentials to inject tokens safely. Be mindful of Telegram API rate limits and add error handling in your workflow. While using HTTP Request nodes increases flexibility, it also requires careful management of request payloads and authentication, as opposed to the built-in Telegram node which abstracts much of this complexity. Benefits Quickly access Shopify order data without leaving Telegram. Interactive inline buttons improve user experience. Automated, real-time integration between Shopify and Telegram.
by Richard Uren
Create Products in Shopify from a Google Sheet This workflow creates products in your Shopify store from a google sheet. It also enables inventory tracking and sets the quantity of an inventory item at your store's default location. This is a great way to get test data into test or staging stores to try out apps, update templates or try out new designs. This Automation will only import new products. It will skip existing products if the slug matches an existing product's handle (Shopify's term for a slug). Setup Notes The Google Sheet has the following columns : title - free text description - free text company - free text category - free text status - ACTIVE, DRAFT or ARCHIVE slug - used in the product url, text with no spaces, can also use hyphen. price - sale price of the products compare_at_price - compare at price for products sku - unique code for each product stock_on_hand - quantity of this item available for purchase. Use those labels in the first row of your sheet and N8N will create one object per row with the column names as object fields. Update GraphQL nodes with your Shopify store URL 1) Replace the URL in all GraphQL nodes with the URL for your Shopify store. 2) These GraphQL requests all use the Shopify 2025-04 GraphQL Admin API.