by vinci-king-01
Daily Report Generator with Mattermost and HubSpot This workflow automatically compiles key metrics from HubSpot (and optional internal data sources) into a concise daily summary and posts it to a designated Mattermost channel. It helps sales and marketing teams stay informed without manually pulling reports or navigating multiple dashboards. Pre-conditions/Requirements Prerequisites An n8n instance (self-hosted or n8n Cloud) HubSpot account with a Private App token Mattermost workspace with an incoming webhook enabled (Optional) Internal REST API or database endpoint for additional data Required Credentials HubSpot Private App Token** – Grants API access to Deals, Contacts, Activities, etc. Mattermost Personal Access Token** (or Incoming Webhook URL) – Permits message posting to channels n8n User Management** – Ensure the workflow has network access to HubSpot and Mattermost Specific Setup Requirements | Component | Requirement | Example/Notes | |-------------|---------------------------------------------------------|-------------------------------------------------------| | Mattermost | Create an Incoming Webhook or generate a PAT | System Console → Integrations | | HubSpot | Create a Private App → Scopes: crm.objects.deals.read | Settings → Integrations → Private Apps | | Scheduler | External cron job or n8n’s internal trigger* | curl https://n8n.yourdomain.com/webhook/daily_report | *The provided template uses a Webhook node so you can trigger it via any scheduler (e.g., crontab, Zapier, GitHub Actions). Replace with the Cron node if preferred. How it works This workflow automatically compiles key metrics from HubSpot (and optional internal data sources) into a concise daily summary and posts it to a designated Mattermost channel. It helps sales and marketing teams stay informed without manually pulling reports or navigating multiple dashboards. Key Steps: Webhook Trigger**: Waits for a daily call from an external scheduler. HubSpot Node**: Retrieves deal statistics, new contacts, and other CRM metrics. HTTP Request Node**: (Optional) Pulls supplementary data from an internal API. Merge Node**: Consolidates HubSpot and optional data sources. Code / Set Nodes**: Formats numbers, calculates KPIs, and builds a markdown message. If Node**: Guards against empty datasets or API failures. Mattermost Node**: Posts the formatted report to the chosen channel. Respond to Webhook**: Returns a JSON confirmation to the scheduler. Set up steps Setup Time: 15-20 minutes Import Template: In n8n, go to “Workflows → Import from File” and select the JSON template. Add Credentials: a. HubSpot → New credential → Paste Private App token b. Mattermost → New credential → Paste PAT or Webhook URL Configure Webhook URL: Copy the production URL of the Webhook node and add it to your external scheduler (e.g., crontab, Zapier). Adjust Query Parameters (HubSpot node): Modify filters (e.g., deal stage, create date) as needed. Edit Message Template (Code node): Update markdown formatting, include/exclude sections. Test Run: Manually execute the workflow. Verify the JSON response and Mattermost post. Activate: Toggle workflow to “Active”. Confirm your scheduler triggers it at the desired time. Node Descriptions Core Workflow Nodes: stickyNote** – Contains inline documentation and instructions. Webhook** – Primary trigger, receives the daily HTTP call. HubSpot** – Pulls deals, contacts, and engagement data. HTTP Request** – Fetches optional internal statistics (e.g., support tickets). Merge** – Combines HubSpot and HTTP results into one object. Set** – Selects and renames fields for clarity. Code** – Calculates KPIs (e.g., conversion rate) and assembles a markdown summary. If** – Checks for empty data arrays or API errors. Mattermost** – Sends the final message to a channel. Respond to Webhook** – Returns a success/failure payload to the caller. Data Flow: Webhook → HubSpot Webhook → HTTP Request HubSpot + HTTP Request → Merge → Set → Code → If → Mattermost → Respond to Webhook Customization Examples Change Report Time Range // HubSpot Node → Additional Fields { "filterGroups": [{ "filters": [{ "propertyName": "createdate", "operator": "BETWEEN", "highValue": Date.now(), "value": Date.now() - 24 * 60 * 60 * 1000 // last 24h }] }] } Format Mattermost Message with Emojis // Code Node (return statement) return [{ json: { text: :bar_chart: Daily CRM Report\n\n• New Deals: ${newDeals}\n• New Contacts: ${newContacts}\n• Win Rate: ${winRate}% } }]; Data Output Format The workflow outputs structured JSON data: { "status": "success", "date": "2024-05-23", "hubspot": { "new_deals": 12, "new_contacts": 34, "win_rate": 27.1 }, "internal": { "tickets_opened": 8, "tickets_closed": 6 }, "mattermostPostId": "abc123xyz" } Troubleshooting Common Issues 401 Unauthorized (HubSpot) – Verify Private App token and scopes. Regenerate if necessary. Message Not Posting – Ensure the Mattermost token has post:write or the webhook URL is valid. Performance Tips Cache HubSpot responses during testing to avoid hitting API limits. Reduce payload size by selecting only the fields you need in the Set node. Pro Tips: Replace the Webhook node with the Cron node for an all-in-n8n schedule. Use environment variables for tokens ({{$env.HUBSPOT_TOKEN}}) to avoid hard-coding secrets. Add a second Mattermost node to DM managers for critical alerts (e.g., low win rate). This is a community workflow template provided “as-is.” It is not officially supported by n8n GmbH. Always review and test in a development environment before deploying to production.
by Dataki
This workflow helps you generate an llms.txt file (if you're unfamiliar with it, check out this article) using a Screaming Frog export. Screaming Frog is a well-known website crawler. You can easily crawl a website. Then, export the "internal_html" section in CSV format. How It Works: A form allows you to enter: The name of the website A short description The internal_html.csv file from your Screaming Frog export Once the form is submitted, the workflow is triggered automatically, and you can download the llms.txt file directly from n8n. Downloading the File Since the last node in this workflow is "Convert to File", you will need to download the file directly from the n8n UI. However, you can easily add a node (e.g., Google Drive, OneDrive) to automatically upload the file wherever you want. AI-Powered Filtering (Optional): This workflow includes a text classifier node, which is deactivated by default. You can activate it to apply a more intelligent filter to select URLs for the llms.txt file. Consider modifying the description in the classifier node to specify the type of URLs you want to include. How to Use This Workflow Crawl the website you want to generate an llms.txt file for using Screaming Frog. Export the "internal_html" section in CSV format. In n8n, click "Test Workflow", fill in the form, and upload the internal_html.csv file. Once the workflow is complete, go to the "Export to File" node and download the output. That's it! You now have your llms.txt file! Recommended Usage: Use this workflow directly in the n8n UI by clicking 'Test Workflow' and uploading the file in the form.
by Abbas Ali
This n8n workflow automatically finds apartments for rent in Germany, filters them by your city, rent budget, and number of rooms, and applies to them via email. Each application includes: A personalized German cover letter Schufa report (fetched dynamically from Google Drive) Recent salary slips (also fetched from Google Drive) The workflow runs daily at a scheduled time, emails landlords or agencies automatically, and logs every application into a Google Sheet for tracking. How It Works Scheduled Trigger – Runs every day at 9 AM (adjustable). Fetch Listings – Uses immobilienscout24 API (or similar) to pull rental listings for your selected city. Filter Listings – Keeps only listings matching your CITY, MAX_RENT, and ROOMS settings. Fetch Documents – Retrieves your Schufa report and salary slips from Google Drive (no need for local hosting). Generate Cover Letter – Creates a personalized German-language letter per apartment. Send Email Application – Sends the email to the landlord or agent with cover letter + documents attached. Log Applications – Saves each application (title, address, rent, date) in a Google Sheet. How to Use Import the workflow JSON into n8n. Set environment variables in n8n (for security): immobilienscout24_TOKEN: Your immobilienscout24 API token immobilienscout24_LISTING_ACTOR: Actor ID for your preferred rental listing scraper (or custom) MY_EMAIL: Your sender email address (SMTP configured in n8n) SCHUFA_FILE_ID: Google Drive File ID for your Schufa PDF SALARY_FILE_ID: Google Drive File ID for your Salary Slips PDF APPLICATION_SHEET_ID: Google Sheet ID to log applications Authenticate Google Drive and Google Sheets (OAuth2 in n8n). Customize search filters in the Set Config node: CITY (e.g., Berlin) MAX_RENT (e.g., 1200) ROOMS (e.g., 2) Activate the workflow – It will run daily at the configured time and send applications automatically. Check your Google Sheet – Every application will be logged for tracking. Requirements An immobilienscout24 account (or another apartment listing API, can be substituted). A Google account (for Drive and Sheets integration). A Schufa report (PDF) uploaded to Google Drive. Recent salary slips (PDF) uploaded to Google Drive. An SMTP-configured email account for sending applications. n8n instance (self-hosted or cloud) with: Google Drive and Google Sheets credentials configured Environment variables set for tokens and file IDs A working email SMTP setup
by ConvertAPI
Who is this for? For developers and organizations that need to convert DOCX files to PDF. What problem is this workflow solving? The file format conversion problem. What this workflow does Downloads the DOCX file from the web. Converts the DOCX file to PDF. 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. Optionally, additional Body Parameters can be added for the converter.
by Oneclick AI Squad
This guide walks you through setting up an AI-driven workflow to automate flight and hotel reservation processes using a conversational travel booking system. The workflow accepts booking requests, processes them via APIs, and sends confirmations, enabling a seamless travel booking experience. What’s the Goal? Automatically accept and process booking requests for flights and hotels via HTTP POST. Use AI to understand natural language requests and route them to appropriate data processors. Search for flights and hotels using external APIs and process booking confirmations. Send confirmation emails and return structured booking data to users. Enable an automated system for efficient travel reservations. By the end, you’ll have a self-running system that handles travel bookings effortlessly. Why Does It Matter? Manual booking processes are time-consuming and prone to errors. This workflow offers: Zero Human Error**: AI ensures accurate request parsing and booking processing. Time-Saving Automation**: Automates the entire booking lifecycle, boosting efficiency. Seamless Confirmation**: Sends automated emails and responses without manual intervention. Enhanced User Experience**: Provides a conversational interface for bookings. Think of it as your reliable travel booking assistant that keeps the process smooth and efficient. How It Works Here’s the step-by-step flow of the automation: Step 1: Trigger the Workflow Webhook Trigger**: Accepts incoming booking requests via HTTP POST, initiating the workflow. Step 2: Parse the Request AI Request Parser**: Uses AI to understand natural language booking requests (e.g., flight or hotel) and extracts relevant details. Step 3: Route Booking Type Booking Type Router**: Determines whether the request is for a flight or hotel and routes it to the respective data processor. Step 4: Process Flight Data Flight Data Processor**: Handles flight-specific data and prepares it for the search API. Step 5: Search Flight API Flight Search API**: Searches for available flights based on parameters (e.g., https://api.aviationstack.com) and returns results. Step 6: Process Hotel Data Hotel Data Processor**: Handles hotel-specific data and prepares it for the search API. Step 7: Search Hotel API Hotel Search API**: Searches for available hotels based on parameters (e.g., https://api.booking.com) and returns results. Step 8: Process Flight Booking Flight Booking Processor**: Processes flight bookings and generates confirmation details. Step 9: Process Hotel Booking Hotel Booking Processor**: Processes hotel bookings and generates confirmation details. Step 10: Generate Confirmation Message Confirmation Message Generator**: Creates structured confirmation messages for the user. Step 11: Send Confirmation Email Send Confirmation Email**: Sends booking confirmation via email to the user. Step 12: Send Response Send Response**: Returns structured booking data to the user, completing the workflow. How to Use the Workflow? Importing the workflow in n8n is a straightforward process. Follow these steps to import the Conversational Travel Booker workflow: Download the Workflow: Obtain the workflow file (e.g., JSON export from n8n). Open n8n: Log in to your n8n instance. Import Workflow: Navigate to the workflows section, click "Import," and upload the workflow file. Configure Nodes: Adjust settings (e.g., API keys, webhook URLs) as needed. Execute Workflow: Test and activate the workflow to start processing bookings. Requirements n8n account and instance setup. Access to flight and hotel search APIs (e.g., Aviationstack, Booking.com). Email service integration for sending confirmations. Webhook URL for receiving booking requests. Customizing this Workflow Modify the AI Request Parser to handle additional languages or booking types. Update API endpoints in Flight Search API and Hotel Search API nodes to match your preferred providers. Adjust the Send Confirmation Email node to include custom email templates or additional recipients. Schedule the Webhook Trigger to align with your business hours or demand peaks.
by ConvertAPI
Who is this for? For developers and organizations that need to convert PPTX files to PDF. What problem is this workflow solving? The file format conversion problem. What this workflow does Downloads the PPTX file from the web. Converts the PPTX file to PDF. 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. Optionally, additional Body Parameters can be added for the converter.
by Harshil Agrawal
This workflow allows you to send position updates of the ISS every minute to a topic in MQTT using the MQTT node. Cron node: The Cron node will trigger the workflow every minute. HTTP Request node: This node will make a GET request to the API https://api.wheretheiss.at/v1/satellites/25544/positions to fetch the position of the ISS. This information gets passed on to the next node in the workflow. Set node: We will use the Set node to ensure that only the data that we set in this node gets passed on to the next nodes in the workflow. AWS SQS: This node will send the data from the previous node to the iss-position topic. If you have created a topic with a different one, you can use that topic instead.
by Alex Halfborg
BACKGROUND Malaysia's Inland Revenue (LHDN) provides an API to get the tax id number for a business entity, based on a given Business Registration number (BRN or SSM), or NRIC (MyKad). PROBLEM However, the API only allows one search at a time. SOLUTION This free workflow lets you do a batch search to get TIN for multiple SSM or NRIC. This is useful if you need to prepare your internal DB for e-invoicing PRE-REQUISITES 1) Get your connection client id and client secret from myhasil.gov.my website 2) Prepare your Google Sheet containing a list of SSM and NRIC you want to get the TIN 3) Create N8N credential to connect to your google sheet above SUPPORT Questions? Ask alex at halfborg dot com
by Nazmy
Bearer Token Validation This n8n template helps you manage and validate tokens easily using: n8n as your backend workflow engine Airtable as your lightweight token store 🚀 What It Does Stores user tokens securely in Airtable with expiry or usage metadata. Validates incoming tokens in your workflows (e.g., webhook APIs). Rejects invalid or expired tokens automatically for security. Can be extended to generate, rotate, or revoke tokens for user management. How It Works Webhook node receives requests with a Bearer header. Airtable Query looks up the provided token. Validation Logic (Code node): Checks if the token exists. Verifies expiry or usage limits if configured. Returns success if valid, or error if error with describing the issue. Note: This is the simplest way to do auth, just for simplification Why Use This No need for a full backend to manage secure token validation. Clean, modular, and ready for your SaaS workflows. Enjoy building secure automations with n8n + Airtable! 🚀 Built by: Nazmy
by Meak
Google Maps Email Scraper System Most lead generation tools charge $2–$5 per lead and lock you into expensive subscriptions. This workflow lets you scrape unlimited business emails from Google Maps for free — no paid APIs required. Benefits Zero API costs – scrape data directly from Google Maps Unlimited leads – extract thousands of emails per day Geographic targeting – search by city, region, or business type Complete automation – from search to clean email list Built-in data cleaning – removes duplicates & invalid entries How It Works Reads search queries from a Google Sheet (e.g., "Calgary dentist") Sends HTTP requests to Google Maps and scrapes business listings Extracts website URLs with custom JavaScript regex Visits each site, scrapes HTML, and finds email addresses Cleans and validates data Exports organized lead list back to Google Sheets Who Is This For B2B sales teams generating leads for outreach Marketing agencies building client lead databases Local businesses researching competitors & partners Real estate professionals analyzing target neighborhoods Franchise developers scouting new markets Setup Create a Google Sheet with two tabs: “searches” & “emails” Add search queries to the “searches” tab (one per row) Connect Google Sheets OAuth credentials in n8n Configure HTTP request nodes with SSL ignore enabled Add custom JavaScript regex code for URL and email extraction ROI & Monetization $0 per lead vs. $2–$5 from paid tools Generate 1,000+ leads per day without hitting API limits Sell lead lists or offer as a $500–$2,000 per niche/location service Perfect upsell for agencies offering outreach or local SEO Strategy Insights In the YouTube walkthrough, I show how to: Write custom JavaScript + regex for clean URL extraction Build a robust loop system with error handling & rate limiting Avoid IP blocking with batching & delays Sell lead generation as a high-margin recurring service Automate outreach to monetize the leads you scrape Check Out My Channel For more advanced AI automation systems that generate real business results, check out my YouTube channel where I share the exact strategies I use to build automation agencies, sell high-value services, and scale to $20k+ monthly revenue.
by Ramdoni
Quick Overview This workflow accepts purchase order PDFs or images via Telegram, extracts text using PDF parsing or Tesseract OCR, uses Google Gemini to convert the text into structured JSON, validates key fields, and appends the results to a Microsoft Excel table in OneDrive, then notifies the sender. How it works Triggers when a new Telegram message arrives with a document or photo attachment. Detects whether the attachment is a PDF or an image and immediately replies in Telegram that processing has started (or sends an invalid-file message if unsupported). Downloads the file from Telegram and extracts text using built-in PDF text extraction for PDFs or Tesseract OCR for images. Cleans the extracted text and sends it to Google Gemini with instructions to return purchase order fields and line items as valid JSON. Parses the Gemini response into JSON and validates that the PO number exists and the total amount is numeric. If valid, formats the data for a Microsoft Excel table, appends it to the selected workbook/table in OneDrive, and sends a success message in Telegram. If invalid, sends a Telegram message listing the validation errors. Setup Connect your Telegram Bot credential and start a chat with the bot so it can receive PDFs/images and reply to your chat. Add a Google Gemini (PaLM) API credential and ensure the model ID in the prompt node matches an available Gemini model in your account. Connect Microsoft Excel OAuth2 credentials, then select the target OneDrive workbook, worksheet, and table where rows should be appended. (Optional) Adjust the Gemini prompt fields, validation rules, and the Excel column mappings to match your purchase order format and table schema.
by DIGITAL BIZ TECH
Knowledge RAG & AI Chat Agent: Google Drive to Qdrant Description This workflow transforms a Google Drive folder into an intelligent, searchable knowledge base and provides a chat agent to query it. It’s composed of two distinct flows: An ingestion pipeline to process documents. A live chat agent that uses RAG (Retrieval-Augmented Generation) and optional web search to answer user questions. This system fully automates the creation of a “Chat with your docs” solution and enhances it with external web-searching capabilities. Quick Implementation Steps Import the workflow JSON into your n8n instance. Set up credentials for Google Drive, Mistral AI, OpenAI, and Qdrant. Open the Web Search node and add your Tavily AI API key to the Authorization header. In the Google Drive (List Files) node, set the Folder ID you want to ingest. Run the workflow manually once to populate your Qdrant database (Flow 1). Activate the workflow to enable the chat trigger (Flow 2). Copy the public webhook URL from the When chat message received node and open it in a new tab to start chatting. What It Does The workflow is divided into two primary functions: 1. Knowledge Base Ingestion (Manual Trigger) This flow populates your vector database. Scans Google Drive:** Lists all files from a specified folder. Processes Files Individually:** Downloads each file. Extracts Text via OCR:* Uses *Mistral AI OCR API** for text extraction from PDFs, images, etc. Generates Smart Metadata:** A Mistral LLM assigns metadata like document_type, project, and assigned_to. Chunks & Embeds:* Text is cleaned, chunked, and embedded via *OpenAI’s text-embedding-3-small** model. Stores in Qdrant:** Text chunks, embeddings, and metadata are stored in a Qdrant collection (docaiauto). 2. AI Chat Agent (Chat Trigger) This flow powers the conversational interface. Handles User Queries:** Triggered when a user sends a chat message. Internal RAG Retrieval:* Searches *Qdrant Vector Store** first for answers. Web Search Fallback:* If unavailable internally, the agent offers to perform a *Tavily AI web search**. Contextual Responses:** Combines internal and external info for comprehensive answers. Who's It For Ideal for: Teams building internal AI knowledge bases from Google Drive. Developers creating AI-powered support, research, or onboarding bots. Organizations implementing RAG pipelines. Anyone making unstructured Google Drive documents searchable via chat. Requirements n8n instance** (self-hosted or cloud). Google Drive Credentials** (to list and download files). Mistral AI API Key** (for OCR & metadata extraction). OpenAI API Key** (for embeddings and chat LLM). Qdrant instance** (cloud or self-hosted). Tavily AI API Key** (for web search). How It Works The workflow runs two independent flows in parallel: Flow 1: Ingestion Pipeline (Manual Trigger) List Files: Fetch files from Google Drive using the Folder ID. Loop & Download: Each file is processed one by one. OCR Processing: Upload file to Mistral Retrieve signed URL Extract text using Mistral DOC OCR Metadata Extraction: Analyze text using a Mistral LLM. Text Cleaning & Chunking: Split into 1000-character chunks. Embeddings Creation: Use OpenAI embeddings. Vector Insertion: Push chunks + metadata into Qdrant. Flow 2: AI Chat Agent (Chat Trigger) Chat Trigger: Starts when a chat message is received. AI Agent: Uses OpenAI + Simple Memory to process context. RAG Retrieval: Queries Qdrant for related data. Decision Logic: Found → Form answer. Not found → Ask if user wants web search. Web Search: Performs Tavily web lookup. Final Response: Synthesizes internal + external info. How To Set Up 1. Import the Workflow Upload the provided JSON into your n8n instance. 2. Configure Credentials Create and assign: Google Drive** → Google Drive nodes Mistral AI** → Upload, Signed URL, DOC OCR, Cloud Chat Model OpenAI** → Embeddings + Chat Model nodes Qdrant** → Vector Store nodes 3. Add Tavily API Key Open Web Search node → Parameters → Headers Add your key under Authorization (e.g., tvly-xxxx). 4. Node Configuration Google Drive (List Files):** Set Folder ID. Qdrant Nodes:** Ensure same collection name (docaiauto). 5. Run Ingestion (Flow 1) Click Test workflow to populate Qdrant with your Drive documents. 6. Activate Chat (Flow 2) Toggle the workflow ON to enable real-time chat. 7. Test Open the webhook URL and start chatting! How To Customize Change LLMs:** Swap models in OpenAI or Mistral nodes (e.g., GPT-4o, Claude 3). Modify Prompts:** Edit the system message in ai chat agent to alter tone or logic. Chunking Strategy:** Adjust chunkSize and chunkOverlap in the Code node. Different Sources:** Replace Google Drive with AWS S3, Local Folder, etc. Automate Updates:* Add a *Cron** node for scheduled ingestion. Validation:** Add post-processing steps after metadata extraction. Expand Tools:** Add more functional nodes like Google Calendar or Calculator. Use Case Examples Internal HR Bot:** Answer HR-related queries from stored policy docs. Tech Support Assistant:** Retrieve troubleshooting steps for products. Research Assistant:** Summarize and compare market reports. Project Management Bot:** Query document ownership or project status. Troubleshooting Guide | Issue | Possible Solution | |------------|------------------------| | Chat agent doesn’t respond | Check OpenAI API key and model availability (e.g., gpt-4.1-mini). | | Known documents not found | Ensure ingestion flow ran and both Qdrant nodes use same collection name. | | OCR node fails | Verify Mistral API key and input file integrity. | | Web search not triggered | Re-check Tavily API key in Web Search node headers. | | Incorrect metadata | Tune Information Extractor prompt or use a stronger Mistral model. | Need Help or More Workflows? Want to customize this workflow for your business or integrate it with your existing tools? Our team at Digital Biz Tech can tailor it precisely to your use case from automation logic to AI-powered enhancements. 💡 We can help you set it up for free — from connecting credentials to deploying it live. Contact: shilpa.raju@digitalbiz.tech Website: https://www.digitalbiz.tech LinkedIn: https://www.linkedin.com/company/digital-biz-tech/ You can also DM us on LinkedIn for any help.