by Hunyao
What it does Captures token usage and cost from your AI Agent/LLM. Logs model, tokens, cost, tool use, and conversation I/O to Google Sheets for simple observability and billing. Perfect for Developers adding usage monitoring to AI agents. Teams needing cost transparency in prototypes. How it works Chat Trigger collects user input for the AI Agent. A Set node injects metadata like workflow, execution, and client IDs. LangChain Code node returns a configured Chat model with a callback that reads usage metadata. The callback computes input, output, and total costs based on perโmillion token prices you define. It appends token metrics to a Google Sheet via the Google Sheets Tool. The Agent records intermediate tool calls. An If node checks whether a tool was used. When tools are used, the workflow logs input, output, tool name, and metadata to an Observability sheet. How to use SELF-HOSTED N8N ONLY - the Langchain Code node is only available in the self-hosted version of n8n. It is not available in n8n cloud. Requirements Self-hosted version of n8n If you have any questions in running the workflow, see the attached video: https://youtu.be/JSulRS128MA
by Mathis
Convert PDF documents to AI-generated podcasts with Google Gemini and Text-to-Speech Transform any PDF document into an engaging, natural-sounding podcast using Google's Gemini AI and advanced Text-to-Speech technology. This automated workflow extracts text content, generates conversational scripts, and produces high-quality audio files. Who is this for? This workflow template is perfect for content creators, educators, researchers, and marketing professionals who want to repurpose written content into audio format. Ideal for creating podcast episodes, educational content, or making documents more accessible. What problem does this solve? Converting written documents to engaging audio content manually is time-consuming and requires scriptwriting skills. This workflow automates the entire process, turning static PDFs into dynamic, conversational podcasts that sound natural and engaging. What this workflow does Extracts text from uploaded PDF documents Generates podcast script using Google Gemini AI with conversational tone Converts script to speech using Google's advanced TTS with customizable voices Processes audio into properly formatted WAV files Saves final podcast ready for distribution Setup Obtain API credentials: Get Google Gemini API key from AI Studio Configure credentials in n8n as "Google Gemini(PaLM) Api account" Configure voice settings: Choose from available voices: Kore (professional), Aoede (conversational), Laomedeia (energetic) Customize script generation prompts if needed Test the workflow: Upload a sample PDF file Verify audio output quality Adjust voice settings as preferred How to customize this workflow Modify script style:** Edit the prompt in the "Generate Podcast Script" node to change tone, length, or format Change voice:** Update the voice name in "Prepare TTS Request" node Add preprocessing:** Insert text cleaning nodes before script generation Integrate with storage:** Connect to Google Drive, Dropbox, or other storage services Add notifications:** Include Slack or email notifications when podcasts are ready Note: This template requires Google Gemini API access and works best with text-based PDF files under 10MB.
by Pedro Santos
๐ฅ Summarize YouTube Videos using SearchApi & LLM Who is this for? This workflow is ideal for content creators, students, digital marketers, educators, and researchers who want to quickly summarize YouTube videos. What problem does this workflow solve? Manually extracting important information from lengthy YouTube videos can be tedious and prone to errors. This workflow streamlines the process by automatically fetching video transcripts using SearchApi.io and producing concise, informative summaries through a summarization chain powered by any LLM provider. This allows users to quickly access crucial information without the need for manual transcription or detailed viewing. What this workflow does Fetches the complete transcript of a YouTube video using SearchApi. Combines the retrieved transcript into a single, continuous text. Utilizes a Summarization Chain with an LLM (e.g., OpenRouter models) to create a concise summary of the video content. Setup Install the SearchApi community node: Open Settings โ Community Nodes inside your selfโhosted n8n instance. Fill npm Package Name with @searchapi/n8n-nodes-searchapi. Accept the risk prompt, and hit Install. It should now appear as a node when you search for it. API Configuration: Set up your SearchApi.io credentials in n8n. Add your preferred LLM provider credentials (e.g., OpenRouter API). Input Requirements: Provide the YouTube video ID (e.g., wBuULAoJxok). Connect LLM Integration: Configure the summarization chain with your chosen model and parameters for text splitting. How to customize this workflow to meet your needs Adjust the summarization model or modify text-splitter parameters to accommodate different lengths and complexities of video transcripts. Integrate additional nodes to export summaries directly into your preferred tools, such as Google Drive, Slack, or email. Customize prompt templates in the summarization chain to obtain various summary styles (bullet points, paragraphs, etc.). Modify the trigger to suit your workflow. Example Usage Input: YouTube video ID (wBuULAoJxok). Output: A concise, actionable summary that highlights key ideas, recommendations, and insights from the video.
by Khairul Muhtadin
โ What Problem Does It Solve? Manual exporting or copying of leads and newsletter signups from web forms to spreadsheets is time-consuming, error-prone, and delays follow-ups or marketing activities. Traditional workflows can lose data due to mistakes or lack of automation. The Fluentform Export workflow automates the capture and organization of form submissions and newsletter signups into Google Sheets ๐ก Why Use this workflow? Save Time:** Automate tedious manual data entry for form leads and newsletter signups Avoid Data Loss:** Ensure all submissions are reliably logged with real-time updates Organized Data:** Separate sheets for newsletter and contact form data maintain clarity Easy Integration:** Works seamlessly with Fluentform submissions and Google Sheets Flexible & Scalable:** Quickly adapt to changes in form structure or spreadsheet columns โก Who Is This For? Marketers & Growth Teams:** Automatically gather leads and newsletter contacts to fuel campaigns Small to Medium Businesses:** Reduce overhead from manual data management and errors Customer Support Teams:** Keep track of form submissions in a centralized, accessible place Website Admins:** Simplify data workflow from Fluentform plugins without coding ๐ง What This Workflow Does โฑ Trigger:** Listens for incoming POST requests from Fluentform via webhook ๐ Step 2:** Evaluates if the submission is a newsletter signup or a form based on a specific token ๐ Step 3 (Newsletter Path):** Maps email from newsletter submissions and appends/updates Google Sheets "News Letter" tab ๐ Step 3 (Form Path):** Extracts full name, email, phone, subject, and message fields and appends/updates the Google Sheets "form" tab ๐ Step 4:** Sends a JSON success response back to Fluentform confirming receipt ๐ Setup Instructions Import the provided .json workflow file into your n8n instance Set up credentials: Google Sheets OAuth2 credential with access to your target spreadsheets Customize workflow elements: Update Fluentform webhook URL in your Fluentform settings to the n8n webhook URL generated Adjust field names or spreadsheet columns if your form structure changes Update spreadsheet IDs and sheet names used in the Google Sheets nodes to match your own Sheets Test workflow thoroughly with actual Fluentform submissions to verify data flows correctly ๐งฉ Pre-Requirements Running n8n instance (Cloud or self-hosted) Google account with access to Google Sheets and OAuth credentials Fluentform installed on your website with ability to set webhook URL Target Google Sheets prepared with tabs named "News Letter" and "form" with expected columns ๐ง Nodes Used Webhook (POST - Retrieve Leads) If (Form or newsletter?) Set (newsletter and form data preparation) Google Sheets (Append/update for newsletter and form sheets) Respond to Webhook ๐ Support Made by: khaisa Studio Tag: automation, Google Sheets, Fluentform, Leads Category: Marketing Need a custom? Contact Me
by Halfbit ๐
Jura Coffee Counter: Webhook API & Google Sheets Logger โ๏ธ Track how many coffees your Jura E8 espresso machine makes โ fully automated via webhook and Google Sheets. This workflow exposes a custom API endpoint that can be called by smart devices, such as an ESP8266 or ESP32 reading data from a Jura E8 coffee machine via Bluetooth Low Energy (BLE). The incoming data (including total coffee count) is timestamped and appended to a Google Sheet, making it easy to visualize or analyze your machine usage. โ Originally built for a Jura E8, based on AlexxIT/Jura reverse-engineering project. > ๐ This workflow uses Google Sheets as a logging backend. You can easily switch it to Airtable, Notion, or a database of your choice. Live example available at: https://halfbitstudio.com/o-nas/ > ๐ฅ๏ธ In our setup, this workflow is used to provide real-time coffee consumption stats displayed directly on our website. > ๐ Some Jura machines require an accessory Bluetooth transmitter to enable connectivity. Communication is based on the Bluetooth Low Energy (BLE) protocol. Use Case Tracking usage of a Jura coffee machine Logging IoT sensor data into Google Sheets Creating dashboards for daily consumption Smart office setups with coffee stats! Features โ๏ธ Two Webhook endpoints: POST /{{WEBHOOK_POST_PATH}} โ receives JSON from ESP (coffee machine reader) GET /{{WEBHOOK_GET_PATH}} โ returns latest records as JSON ๐ Timestamping via Date & Time node ๐น Coffee counter extraction from incoming JSON ๐งพ Appends structured rows to Google Sheets ๐ค Webhook response for external status or dashboards Setup Instructions Jura Coffee Machine Integration (Hardware) Use an ESP device (e.g. ESP8266 or ESP32) to connect to the Jura E8 via Bluetooth Low Energy (BLE). Send POST requests with JSON payload: { "total_coffees": 123 } Reverse-engineered protocol reference: AlexxIT/Jura Google Sheets Configuration Create a new Google Sheet with column headers like: date | time | coffee counter Connect your Google account in n8n and authorize access to this sheet. Replace the documentId and sheetName fields in the Google Sheets nodes: Use full URL to your spreadsheet Use the actual sheet name (e.g. Sheet1) Environment Variables & Placeholders | Placeholder | Description | | ------------------------ | ----------------------------------------------- | | {{WEBHOOK_POST_PATH}} | Endpoint to receive coffee counter data | | {{WEBHOOK_GET_PATH}} | Endpoint to return latest data (for dashboards) | | {{SHEET_ID}} | Google Spreadsheet ID | | {{GOOGLE_CREDENTIALS}} | OAuth2 credentials for Google Sheets | | {{DATA_COLUMNS}} | Column names in the target sheet | Testing the Workflow Send test request: Use Postman or ESP to send a POST request to /{{WEBHOOK_POST_PATH}} Body should include total_coffees value Check Google Sheet: Open your sheet and verify that a new row was appended Test GET endpoint: Access the second webhook URL (e.g. /{{WEBHOOK_GET_PATH}}) in browser or fetch via API Optional: Use Respond to Webhook output in a dashboard or frontend Customization Tips Sheet format**: Add more columns if you want to track additional data (e.g. machine temperature, errors) Output format**: Replace Google Sheets with any other storage (e.g. MySQL, Notion) Auth layer**: Add basic auth or token verification if needed for public exposure Notifications**: Send alerts to Discord/Slack when reaching thresholds (e.g. 200 coffees brewed) Tags: google-sheets, iot, webhook, jura, coffee, api, automation
by Yang
๐งพ What this workflow does This workflow turns YouTube video links into ready-to-edit newsletter drafts using Dumpling AI and GPT-4o. It reads new video URLs from a Google Sheet, extracts their transcripts, summarizes them into email-friendly content, and logs the finished draft back into the same sheet. An email notification is also sent to alert the user once each draft is created. ๐ค Who is this for Newsletter writers or marketers repurposing video content YouTube creators building email follow-ups from videos Agencies or VAs batching social โ email content Automation users streamlining content workflows โ๏ธ How to set up โ Requirements Google Sheet** with the following columns: link โ YouTube video URL blog post โ for saving the generated newsletter draft Active accounts for: Dumpling AI (API for YouTube transcripts) OpenAI GPT-4 or GPT-4o Google Sheets Gmail (OAuth2 credential) ๐ง Setup steps Connect all credentials using n8n's Credential Manager: Google Sheets (OAuth2) Dumpling AI (via HTTP Header Auth) OpenAI Gmail Update the sheet ID and tab name in both Google Sheets nodes. Customize the GPT-4o prompt (optional): Located in the โGPT-4o: Write Newsletter Draft from Transcriptโ node You can edit tone, structure, and audience targeting in the system message Verify email recipient in the Gmail node and update if needed. ๐ง How it works The workflow is triggered manually or on schedule. It pulls YouTube links without drafts from the sheet. Each videoโs transcript is fetched using Dumpling AI. GPT-4o summarizes the transcript into a clean, friendly newsletter format. The draft is written back to the same row in Google Sheets. An email is sent to notify the user that the draft is ready. ๐ ๏ธ Customization ideas Send finished drafts to Notion or Airtable instead of Sheets Generate social media posts from the same transcript Add automatic review steps using GPT scoring or editing Trigger this on new form submissions or YouTube uploads instead This is a fast, AI-powered way to turn long-form video content into clean, polished newsletters โ ready to share or schedule with minimal editing.
by Abhishek Patoliya
This powerful n8n automation sends you daily weather updates directly to your Telegram chat using live data from OpenWeatherMap. It supports automatic daily updates and manual lookups via form input. โ Prerequisites Before you begin, make sure you have: A working n8n instance (v1.0 or later recommended). An account with OpenWeatherMap (free plan is sufficient). A Telegram Bot created via @BotFather. Your Telegram user ID or chat ID. ๐ API & Bot Setup ๐งฉ OpenWeatherMap API Go to https://openweathermap.org/api Sign up and verify your account. Navigate to API Keys in your account dashboard. Copy your API key (used later in the HTTP Request node). ๐ค Telegram Bot Open @BotFather in Telegram. Run /newbot and follow the prompts: Choose a name and username for your bot. Youโll get a bot token (copy this). Start a chat with your new bot to activate it. To get your Telegram User ID, use @userinfobot or an n8n Telegram Trigger node. ๐ Trigger Options โฐ Schedule Trigger (Automatic) Runs daily at 8:00 AM IST. Ideal for consistent, passive updates. ๐ Form Trigger (Manual) Input ๐ City and ๐ Country manually. Instantly receive weather info in Telegram. ๐ง How the Flow Works Trigger Activated (Scheduled or Form) City & Country fetched (default or from form) HTTP Request sent to OpenWeatherMap with API key Weather Data Parsed & Formatted: ๐ Current Date ๐ City & Country ๐ค๏ธ Weather Description ๐ก๏ธ Temperature (ยฐC) ๐ง Humidity (%) ๐ฌ๏ธ Wind Speed (m/s) ๐ผ Atmospheric Pressure ๐ Sunrise Time (IST) ๐ Sunset Time (IST) Message Sent to Telegram ๐งฐ Nodes Used Schedule Trigger** โ Runs every day at 8:00 AM IST Form Trigger** โ Accepts user input Set Node** โ Default city/country values and date formatting HTTP Request** โ Calls OpenWeatherMap API Function Node** โ Converts timestamps to IST Telegram Node** โ Sends formatted weather message ๐ฆ Example Telegram Output ๐ Wednesday, 10 July 2025 ๐ค Weather in Mumbai, IN: Condition: Clear sky Temperature: 30ยฐC ๐ง Humidity: 70% ๐ฌ Wind Speed: 3 m/s ๐ผ Pressure: 1013 hPa ๐ Sunrise: 5:57:12 AM ๐ Sunset: 6:53:45 PM ๐ ๏ธ Customization Tips ๐๏ธ Change Default City/Country Locate the Set Node (used before the API call). Replace "Mumbai" and "IN" with your preferred location. Or connect the Form Trigger input to allow dynamic values. ๐ Change Schedule Time Open the Schedule Trigger node. Adjust to your preferred time zone and daily timing (e.g., 7 AM IST). ๐งช Add Extra Data OpenWeatherMap returns more fields like visibility, UV index, etc. You can include these in your Telegram message via the Function Node and Set Node.
by n8n Team
This template shows how you can take any event from any service, transform its data and send an alert to your desired app. Specifically, this example monitors a Linear project for new bug submissions. Then it only sends a Slack notification to a channel if a new bug is urgent. You can swap the Linear trigger for another Task Management app such as Jira or Asana; or an entirely different usecase. Setup instructions are located inside the workflow template.
by n8n Team
This workflow syncs Shopify customers to your HubSpot account as contacts. Whenever somebody makes a purchase on Shopify, it automatically adds them as a new customer to your Hubspot account if the customer doesnโt exist yet. Also, this workflow creates or updates contacts from new paid orders on Shopify by adding the amount and order close date of the deal. Prerequisites Shopify account and Shopify credentials HubSpot account and HubSpot credentials How it works Shopify trigger starts the workflow whenever an order is updated. HubSpot node creates or updates the contact who made the order update. Set node sorts and passes only the userid. Merge node merges data of both inputs, the order and the customer. Hubspot node looks up if the order already exists. If node splits the workflow conditionally, based on data received. If the order is new, the new deal is created in the Hubspot node.
by Dariusz Koryto
FTP to Google Drive Transfer Template What This Template Does This workflow automatically transfers files from an FTP server to Google Drive. It's perfect for: Backing up files from remote servers Migrating data from FTP to cloud storage Automating file synchronization tasks Creating scheduled backups of server content How It Works The workflow follows these steps: Manual Trigger - You start the process by clicking "Execute" Lists FTP Directory - Scans the specified FTP folder for all items Filters Files Only - Separates actual files from directories (folders) Downloads Files - Retrieves each file as binary data from the FTP server Uploads to Google Drive - Stores all downloaded files in your specified Google Drive folder Requirements Before using this template, you'll need: FTP Server Access**: Server address, username, and password Google Drive Account**: With OAuth2 authentication set up in n8n n8n Instance**: Self-hosted or cloud version Setup Instructions Step 1: Configure FTP Credentials In n8n, go to Settings โ Credentials Create a new FTP credential Enter your FTP server details: Host: Your FTP server address Port: Usually 21 for FTP Username: Your FTP username Password: Your FTP password Test the connection and save Step 2: Set Up Google Drive Authentication Create a new Google Drive OAuth2 credential Follow n8n's Google Drive setup guide: Create a Google Cloud project Enable Google Drive API Create OAuth2 credentials Add your n8n callback URL Authorize the connection in n8n Step 3: Configure the Workflow Update FTP Path: Open the "List FTP Directory" node Change the path parameter from /_instalki to your desired FTP folder Set Google Drive Folder: Open the "Upload to Google Drive" node Replace the folderId with your target Google Drive folder ID To find folder ID: Open the folder in Google Drive and copy the ID from the URL Assign Credentials: Ensure both FTP nodes use your FTP credential Assign your Google Drive credential to the upload node How to Use Test First: Run the workflow manually with a few test files Monitor Execution: Check the execution log for any errors Verify Upload: Confirm files appear in your Google Drive folder Schedule (Optional): Add a schedule trigger if you want automatic runs Customization Options Filter Specific File Types Add a condition after "Filter Files Only" to process only certain file extensions: {{ $json.name.endsWith('.pdf') || $json.name.endsWith('.jpg') }} Add Error Handling Insert error-handling nodes to manage failed downloads or uploads gracefully. Organize by Date Modify the Google Drive upload to create date-based folders automatically. File Size Limits Add checks for file size before attempting upload (Google Drive has limits). Troubleshooting Common Issues: FTP Connection Failed**: Check server address, port, and credentials Google Drive Upload Error**: Verify OAuth2 setup and folder permissions Files Not Found**: Ensure the FTP path exists and contains files Large Files**: Consider Google Drive's file size limitations (15GB for free accounts) Tips: Test with small files first Check n8n execution logs for detailed error messages Ensure your Google Drive has sufficient storage space Verify FTP server allows multiple concurrent connections Security Notes Never hardcode credentials in the workflow Use n8n's credential system for all authentication Consider using SFTP instead of FTP for better security Regularly rotate your FTP passwords Review Google Drive sharing permissions Next Steps Once you have this basic transfer working, you might want to: Add email notifications for successful/failed transfers Implement file deduplication checks Create logs of transferred files Set up automatic cleanup of old files Add file compression before upload
by Roshan Ramani
Overview An intelligent automation workflow that monitors your Gmail inbox and sends AI-powered summaries of important emails directly to your Telegram chat. Perfect for staying updated on critical communications without constantly checking your email. ๐ Key Features Real-time Email Monitoring**: Checks Gmail every minute for new emails Smart Content Filtering**: Only processes emails containing important keywords AI-Powered Summarization**: Uses GPT-4o-mini to create concise, human-readable summaries Instant Telegram Notifications**: Delivers summaries directly to your preferred Telegram chat Customizable Keywords**: Easily modify filters to match your specific needs ๐ง How It Works Workflow Steps: Email Trigger: Continuously monitors your Gmail inbox for new messages Smart Filter: Analyzes email subject and body for important keywords (sales, jobs, etc.) AI Processing: Sends relevant emails to OpenAI for intelligent summarization Telegram Delivery: Sends formatted summary to your Telegram chat Sample Output: ๐ฆ Your Flipkart order "Bluetooth Speaker" was delivered today. Enjoy! ๐ฐ Invoice from AWS for $23.50 is due by July 20. Check billing portal. โ HR shared your July payslip. No action needed unless there's an error. ๐ Setup Requirements Gmail account with OAuth2 credentials OpenAI API key Telegram bot token and chat ID N8N instance (cloud or self-hosted) ๐ Use Cases Business Alerts**: Payment due notices, invoice reminders E-commerce**: Order confirmations, delivery updates HR Communications**: Payslips, policy updates, announcements Security**: Login alerts, security notifications Job Hunting**: Application responses, interview invitations โ๏ธ Customization Options Keyword Filters**: Add/remove keywords in the filter node (invoice, payment, security, delivery, etc.) AI Prompt**: Modify the summarization style and format Polling Frequency**: Adjust email checking interval Multiple Chats**: Send to different Telegram chats based on email type ๐ Privacy & Security Processes emails locally through n8n No email content stored permanently Uses secure OAuth2 authentication Respects Gmail API rate limits ๐ Performance Lightweight and efficient Minimal resource usage Fast AI processing with GPT-4o-mini Reliable Telegram delivery ๐ก Pro Tips Start with broad keywords and refine based on results Use multiple condition branches for different email types Set up different Telegram chats for work vs personal emails Monitor your OpenAI usage to avoid unexpected costs
by Darien Kindlund
Do you consistently forget to set a Default Error Workflow when creating new workflows? Then this helper workflow is for you! When activated, this helper workflow will: Scan ALL other workflows every 4 hours Make sure ALL workflows have a default error workflow set (based on what Workflow ID you provide) This helper will SKIP OVER any workflows that have the default_error:false tag set (make sure your default error workflow has the default_error:false tag set, so that you don't end up with recursive loops during errors) Setup Nodes: Once imported, edit the Set Vars node with your default_error_workflow_id value. If you want to change the default_error:false tag to some other tag name, you can do so here as well. You need to update the Set Default Error Workflow node with your PostgreSQL credentials to access the n8n database.