by CreativeCreature
Workflow Overview This workflow automates the process of forwarding e-book files to a Kindle device using a Telegram bot and Outlook email. Setup Steps: Telegram Bot Setup: Create a Telegram bot via BotFather and configure its credentials in the workflow. Outlook Email Configuration: Set up your Outlook email credentials. (Currently, only Outlook is supported, but you can modify the workflow to support other email providers.) Amazon Kindle Email Setup: Find your Kindle device's email address from your Amazon account. This will be the recipient address for the e-books. Allow Email Sending to Kindle: Ensure your Amazon account is configured to allow emails from your Outlook address to send files to your Kindle. Workflow Explanation: The workflow begins with a Telegram bot trigger node that listens for new chat messages. When a new message is received, the workflow checks if the message contains a file attachment. If no file is detected, the bot will send a warning reply to the user in the chat. If a file is found, it will be renamed to ensure it appears correctly on the Kindle device when sent. The workflow then composes an email with the file attached and sends it to the Kindle's receiving address. If the email is sent successfully, the bot will notify the user with a success message in the chat. Only Amazon-supported file types will be accepted by Kindle. If sending fails, you will receive a notification email from Amazon in your Outlook inbox. In case of delivery issues, retry sending the file as network issues may occasionally interfere with the process.
by Johnny Rafael
This workflow implements the Gemini AI chat model to summarize your daily meetings and send the summary to a Slack channel daily at 9 AM (or any other time you choose). It automatically retrieves your Google Calendar events and feeds them to the model. The workflow uses Google’s Gemini AI for response generation. How it works The workflow uses a Scheduled Trigger Node as the main trigger. The AI Agent Node uses the Google Calendar action to retrieve relevant meeting data. The AI Agent sends the retrieved information to the Google Gemini Chat Model (gemini-flash). The Google Gemini Chat Model generates a summary and informative response based on today’s meetings. ++Setup Steps++ Google Cloud Project and Vertex AI API: Create a Google Cloud project. Enable the Vertex AI API for your project. Google AI API Key: Obtain a Google AI API key from Google AI Studio. Credentials in n8n: Configure credentials in your n8n environment for: Google Gemini (PaLM) API (using your Google AI API key). Import the Workflow: Import this workflow into your n8n instance. Configure the Workflow: Update both Slack and Gemini nodes with your credentials.
by Oneclick AI Squad
This n8n workflow automates subdomain creation and deletion on GoDaddy using their API, triggered via email requests. This empowers developers to manage subdomains directly without involving DevOps for minor tasks. Good to know Ensure GoDaddy API credentials are securely configured to avoid unauthorized access. Email parsing accuracy depends on the consistency of request formats. How it works Detect new email requests using the Start Workflow (GET Request) node. Use the Extract Data from Email node to parse relevant details (e.g., subdomain name, action type). Validate the action type with the Validate Action Type node to proceed with create (true) or delete (false). If true, the Create Subdomain node sends a POST request to GoDaddy’s API to create the subdomain. If false, the Delete Subdomain node sends a DELETE request to remove the subdomain. The Send Email Response node notifies the requester of the action’s success or failure. How to use Import the workflow into n8n and configure the nodes with your GoDaddy API and email credentials. Test with sample email requests to ensure proper parsing and API calls. Requirements GoDaddy API credentials Email service (e.g., SMTP or API) for notifications Customising this workflow Adjust the Extract Data from Email node to match your email format or add additional validation steps for security.
by Jimleuk
This template is for self-hosted n8n instances only. This n8n demonstrates how to build a simple FileSystem MCP server. Connecting to this server allows MCP clients and agents to list, read and create directories and files on the local machine or remote server. This MCP example is based off an official MCP reference implementation which can be found here -https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem How it works A MCP server trigger is used and connected to 5 tools: 3 Execute Command tools and 2 custom workflow tools. The 3 Execute Command tools allow for listing, searching and creating directories. The 2 custom workflow tools are for reading and writing files to disk. Special care has been to not allow the MCP agent to execute arbitrary linux commands on the target server. This is achieved by only allowing the agent to provide parameters such as filenames and paths rather than raw commands. How to use This Filesystem MCP server will write to the server which hosts the n8n instance - this can be your local machine or a remove server. If your target filesystem is on neither, then modify the commands to connect to the desired server. Connect your MCP client by following the n8n guidelines here - https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger/#integrating-with-claude-desktop Try the following queries in your MCP client: "Please help me list all folders under the project directory." "Help me create a bash script to send a notification to Slack." "Search for the log file on the 22nd April and read its contents. What was the cause of the outage?" Requirements Linux file system for this example template. Feel free to modify if working on Windows. MCP Client or Agent for usage such as Claude Desktop - https://claude.ai/download Customising this workflow Implement the moving and renaming of files by adding more custom workflow tools to the MCP server. Remember to set the MCP server to require credentials before going to production and sharing this MCP server with others!
by Lucas Peyrin
How it works This workflow changes the file name, and therefore the extension and MIME type, of any binary file passed to it. This is perfect for converting file formats on the fly, like turning a Telegram voice message (.oga) into an MP3 for an AI transcription service. Set New File Name: The SET OUTPUT FILE NAME node is where you define the desired output file name and extension (e.g., audio.mp3). It also dynamically captures the property name of the incoming binary (e.g., data). Extract Binary Data: The workflow temporarily converts the binary file into a Base64 text string to make it accessible in the next step. Rebuild Binary with New Name: A Code node takes the Base64 data and reconstructs it as a binary file, but this time, it assigns the new file name you specified. n8n automatically sets the MIME type based on the new file extension. Set up steps Setup time: < 1 minute This workflow is designed to be used as a sub-workflow. In your main workflow, add an Execute Sub-Workflow node where you need to change a file's type. In the Workflow parameter, select this "Change Binary MimeType/Extension" workflow. Open this workflow and go to the SET OUTPUT FILE NAME node. Modify the output_file_name value to your desired file name (e.g., voice_message.mp3 or document.pdf). Save this workflow. Now, any binary file you send to it from your main workflow will be returned with the new fileName and mimeType.
by Yang
What this workflow does This workflow extracts product details—like name, price, discount, and rating— from website screenshots using Dumpling AI. It starts when a new product page URL is added to a Google Sheet, captures a screenshot of that page, extracts visible product info from the image, and writes the results back into the sheet. What problem is this workflow solving? Many product pages block traditional scraping tools or use unstructured layouts. This workflow bypasses HTML limitations by using visual AI extraction, making it reliable even when content is embedded in images or hard to parse with code. Who is this for? This is ideal for eCommerce researchers, pricing analysts, marketers, or anyone building a product database from websites without needing to code or maintain complex scrapers. Setup Create a Google Sheet with a column named "Site" (or update the trigger). Add your product page URLs in this column—one per row. Connect your Google Sheets and Dumpling AI credentials in n8n. Ensure your Dumpling AI account has API access for screenshots and extraction. How to customize the workflow Prompt adjustment**: In the “Extract Text from Screenshot” node, you can modify the prompt to extract other information like brand name, delivery time, or availability. Add more fields**: After the extraction, edit the “Format Extracted Data” node to map additional fields from the response to your Google Sheet columns. Change output destination**: You can easily replace the Google Sheets module with Airtable, Notion, or another app if preferred. > ⚠️ This works best when the product data is clearly visible in the screenshot. > It won’t extract info that’s hidden behind popups or loaded via user interaction.
by Kevin
Monitor Postgres Data Freshness and Email Alert If Stale This template monitors a set of tables inside a Postgres database to ensure they're getting updated. If the table hasn't been updated in 3 days (configurable), an email alert is sent containing the tables that are stale. Requirements You must have a Postgres database containing one or more tables that you'd like to monitor. Each table to monitor must have a date or timestamp column that tracks when data was pushed. For example, this might be: A timestamp column if your table holds event/timeseries data A last_updated column if your rows are expected to be modified Usage Use this template Add your Postgres and email credentials Adjust the Produce tables + date columns node to produce pairs of [table, date_column] that should be monitored for freshness 💁♂️ Note that a timestamp column also works (Optional) Adjust the Remove fresh tables node for your desired staleness window (default is 3 days, but you can adjust as you please) (Optional) Customize the Send alerts node to call whichever alerting workflow you please (I recommend my alerting workflow for easiest plug-and-play) How it works This template works by: Pulling the most recent row for each table Calculating how out-of-date each table is, in days Dropping fresh tables that have been updated within the past 3 days Sending an email alert with the stale tables that haven't been updated within the past 3 days
by Marth
⚙️ How it works Workflow starts from a manual trigger or form submission with project details. It extracts key input data like client name, email, project type, deadline, and brand folder (optional). A Google Drive folder is automatically created inside a designated parent folder. The shareable link of the newly created folder is generated. A personalized email is composed and sent to the client using Gmail, including project details and folder link. 🛠️ Set up steps Google Drive Setup: Connect your Google Drive credentials in n8n. Set the parent folder ID where all project folders should be created. Gmail Setup: Connect a Gmail account with proper access. Customize the subject and message template in the Gmail node. Input Data Preparation: Ensure the following input fields are provided: client_name contact_email project_type deadline brand_drive_folder (optional) Test & Deploy: Use mock data or a test trigger to validate the workflow. Once confirmed, deploy it with the actual trigger (e.g. webhook, form submission).
by M Sayed
The Problem 😫 Tired of manually logging every coffee and cab ride? Stop wrestling with spreadsheets! This template automates your expense tracking so you can manage your finances effortlessly. It's perfect for freelancers, small business owners, and anyone who wants a simple, chat-based way to track spending. How It Works ✨ Just send a message to your personal Telegram bot like "5 usd for coffee with my card" and this workflow will automatically: 📲 Get your message from Telegram. 🤖 Use AI to understand the amount, category, currency, and payment method. 💱 Convert currencies automatically using live exchange rates. ✍️ Log everything neatly into a new row in your Google Sheet. 🛠️ Quick Setup Guide Google Sheets 📝 Create a new Google Sheet. Make sure your first row has these exact column names: date, amount, category, description, user_id, payment_method, currency, exchange_rate, amount_converted Copy the Sheet ID from the browser's URL bar. Telegram Bot 🤖 Chat with @BotFather on Telegram, use the /newbot command, and get your API Token. Chat with @userinfobot to get your personal Chat ID. n8n Workflow 🔗 Add your credentials for Google Sheets, Telegram, and your AI model. Paste your Chat ID into the Telegram Trigger node. Paste your Sheet ID into the Append row in sheet node. Activate the workflow and start tracking! ✅
by Ricardo Espinozaas
Use Case When tracking your contacts and leads in Hubspot CRM, every new contact might be a potential customer. To guarantee that you're keeping the overview you'd normally need to look at every new lead that is coming in manually to identify high-quality leads to prioritize their engagement and optimize the sales process. This workflow saves the work and does it for you. What this workflow does The workflow runs every 5 minutes. On every run, it checks the Hubspot CRM for contacts that were added since the last check. It then checks if they meet certain criteria (in this case if they are making +5m annual revenue) and alerts you in Slack for every match. Setup Add Hubspot, and Slack credentials. Click on Test workflow. How to adjust this workflow to your needs Change the schedule interval Adjust the criteria to send alerts
by Jimleuk
This n8n workflow demonstrates how to build a simple uptime monitoring service using scheduled triggers. Useful for webmasters with a handful of sites who want a cost-effective solution without the need for all the bells and whistles. How it works Scheduled trigger reads a list of website urls in a Google Sheet every 5 minutes Each website url is checked using the HTTP node which determines if the website is either in the UP or DOWN state. An email and Slack message are sent for websites which are in the DOWN state. The Google Sheet is updated with the website's state and a log created. Logs can be used to determine total % of UP and DOWN time over a period. Requirements Google Sheet for storing websites to monitor and their states Gmail for email alerts Slack for channel alerts Customising the workflow Don't use Google Sheets? This can easily be exchanged with Excel or Airtable.
by Marth
How it works This automation helps revive expired property listings by: Reading listing data from a Google Sheet that tracks all properties. Filtering listings where the last_activity date is older than 30 days. Generating a personalized email using OpenAI (GPT-4) to re-engage the owner. Sending the email to the property owner using Gmail or SMTP. (Optional): Updating the listing's status to followed_up in the Sheet once the email is sent. This workflow ensures no opportunity is missed by proactively reactivating cold leads. Set Up Steps Prepare your Google Sheet Create a Google Sheet with these columns: title, owner_name, email, property_type, location, last_activity Fill in sample data for testing. Connect Google Sheets in n8n Add a Google Sheets node. Use the "Read Rows" operation to load the listing data. Filter listings inactive for 30+ days Use a Set node to convert last_activity to a Date. Add an IF node or Code node to check if the listing is older than 30 days. Generate email content with OpenAI Add an OpenAI node. Use dynamic input (e.g. owner name, property type) to create a follow-up message. Send the email Add a Gmail node or SMTP node to send the email to the property owner. (Optional) Update status Use a Google Sheets "Update Row" node to change the listing's status to followed_up. Test the full workflow Manually trigger the workflow or schedule it to run daily/weekly.