by Cuong Nguyen
Why I built this? (The Problem) Most expense tracker apps (like Money Lover, Spendee, or Wallet) have a common friction point: Data Entry. You have to unlock your phone, find the app, wait for it to load, navigate menus, and manually select categories. It’s tedious, so we often forget to log small expenses. I wanted a solution that lives where I already spend my time: Telegram. This workflow allows you to log expenses in seconds—just by sending a text, a voice note while driving, or a photo of a receipt. No UI navigation required. Comparison: This Workflow vs. Traditional Apps |Feature|Traditional Expense Apps|This n8n Workflow| |-|-|-| |Data Ownership|Data is locked in their proprietary database.|100% Yours. It lives in your Google Sheet. You can export, pivot, or connect it to Looker Studio.| |Input Speed|Slow. Requires multiple taps/clicks.|Instant. Send a text/voice/photo to a Telegram bot.| |Flexibility|Rigid categories & logic.|Infinite. You can customize the AI prompt, categories, and currency logic.| |Cost|Often requires monthly subscriptions for premium features.|Low Cost. Runs on your n8n instance + Gemini Flash API (which is currently free/very cheap).| |UI/UX|Beautiful, pre-built mobile dashboards.|Raw Data. You view data in Google Sheets (though you can build a dashboard there)| Key Features Multi-Modal Input:** Just send what you have. -- Text: "Lunch 50k, Taxi 30k" (Splits into 2 rows). -- Voice: Speak naturally, AI transcribes and extracts data. -- Photo: OCRs receipts and parses details. Global Currency Support:** Uses Gemini AI to intelligently detect currency. You can set a default currency (e.g., USD, VND) in the Config node. Smart Extraction & Categorization:** Automatically splits* multiple items in one message (e.g., "Lunch 20k and Grab 50k" → 2 separate rows). AI automatically* assigns categories (Food, Transport, Bills, etc.) based on the item name. Budget Management:** Use the command /add budget 500 to instantly top up your monthly budget. "Quiet" Reporting:* Instead of spamming you after every message, the system waits for *30 minutes of inactivity** before sending a daily summary report (Debounce logic). Setup Instructions 1. Prerequisites Google Sheet:* You *MUST* make a copy of this template: *[[Google Sheet Template here]](https://docs.google.com/spreadsheets/d/1bVdxslvMkTA1DDQv6kQ5j-COC8ZOH8AfEWmn31Rq6l4/edit?usp=sharing)** n8n Data Table:* This workflow requires a Data Table named ReportTokens for the reporting feature. Please read the setup guide below. *Setup Guide: AI Expense Tracker** 2. Configure the Workflow Credentials:* Connect *Telegram, **Google Sheets, and Google Gemini (PaLM). Config Node:** Open the CONFIG - User Settings node and update these fields. -- spreadsheet_id: The ID of your copied Google Sheet -- sheet_gid_dashboard: The ID of your sheet Dashboard -- sheet_gid_budget: he ID of your sheet Budget_Topups -- currency_code: Your currency code (e.g., USD, EUR, VND). -- currency_symbol: Your currency symbol (e.g., $, €, ₫). -- locale: Your locale for number formatting (e.g., en-US, vi-VN). Data Table**: Create a table in n8n with columns: chat_id, report_token, updated_at (All type: String). Link this table to the relevant nodes in the workflow. 3. Usage Log Expense*: Send *"Coffee $5" or a photo. Add Budget**: Send command /add budget 1000 Need Help or Want to Customize This? Contact me for consulting and support: Email: cuongnguyen@aiops.vn
by Vasyl Pavlyuchok
What this template does This workflow turns the arXiv AI feed into a daily research assistant. Every morning it fetches the latest Artificial Intelligence papers from arXiv.org, deduplicates them, stores one page per paper in Notion (with metadata + PDF link), generates a Deep Research Summary of each PDF using Gemini, and finally posts a short update to a Telegram channel with links to both the paper and the Notion summary. Who is this for & what problem it solves This template is designed for founders, researchers, builders and curious professionals who want to stay up-to-date with AI research without reading every paper in full. It solves the “information overload” problem: instead of manually checking arXiv and skimming PDFs, you get a curated daily feed with human-style explanations stored in your own Notion database. Use Cases Daily AI research digest for solo founders or small teams. Private “AI research hub” in Notion for your company or lab. Telegram channel that shares the latest AI papers plus plain-English summaries. Personal learning pipeline: track, tag and revisit important papers over time. How it works (workflow overview) Scheduled trigger runs every day at 08:00. HTTP Request pulls the latest AI papers from arXiv’s API. Results are converted from XML to JSON and cleaned. A time-window filter keeps only recent papers and removes duplicates. For each paper, a Notion page is created (metadata + PDF URL). Gemini reads the PDF and returns a structured, multi-chunk summary. Each chunk is appended to the same Notion page as rich-text blocks. A Telegram message is sent with title, short abstract, PDF link and Notion link. Setup (step-by-step) Create a Notion database and connect your Notion integration. Map the properties in the Register to Notion Database node (title, arxiv_id, abstract, authors, categories/tags, published date, pdf URL). Add your Gemini API key and model in the Analyze doc (Prompt Ultra-Pro) node. Add your Telegram bot token and chat_id in the Send a text message node. (Optional) Adjust the arXiv query in HTTP Request to focus on your preferred AI categories or keywords. Enable the Scheduled Daily Trigger when you’re ready to run it in production. Customization options Change the arXiv search query (keywords, categories, max_results). Modify the time window logic (e.g. 24h, 48h, or no filter). Adapt the Notion properties to your own schema (status, tags, priority, etc.). Switch the messaging channel (Telegram, Discord, Slack) using similar nodes.
by David Olusola
📉 Buy the Dip Alert (Telegram/Slack/SMS) 📌 Overview This workflow automatically notifies you when Bitcoin or Ethereum drops more than a set percentage in the last 24 hours. It’s ideal for traders who want to stay ready for buy-the-dip opportunities without constantly refreshing charts. ⚙️ How it works Schedule Trigger — runs every 30 minutes (adjustable). HTTP Request (CoinGecko) — fetches BTC & ETH prices and 24h % change. Code Node (“Dip Check”) — compares changes against your dip threshold. IF Node — continues only if dip condition is true. Notification Node — sends alert via Telegram, Slack, or SMS (Twilio). Example Output: Dip Alert — BTC –3.2%, ETH –2.8% Not financial advice. 🛠 Setup Guide 1) Dip threshold Open the Code node. Change the line: const DIP = -2.5; // trigger if 24h drop <= -2.5% Set your preferred dip value (e.g., –5 for a 5% drop). 2) Choose your alert channel Telegram: add your bot token & chat ID. Slack: connect Slack API & set channel name. Twilio: configure SID, token, from/to numbers. 3) Test Temporarily set DIP to 0 to force an alert. Run once from the Code node → confirm alert message text. Execute the Notification node → confirm delivery to your channel. 🎛 Customization Cadence: change Schedule Trigger (every 5m, 15m, hourly, etc.). Coins: extend the CoinGecko call (add solana, bnb) and update Code node logic. Multiple alerts: duplicate IF → Notification branch for different thresholds (minor vs major dip). Combine with “Threshold Alerts” workflow to cover both upside breakouts and downside dips. Storage: log alerts into Google Sheets for tracking dip history. 🧩 Troubleshooting No alerts firing: check CoinGecko API response in Execution Data. Wrong %: CoinGecko returns usd_24h_change directly — no math needed. Duplicate alerts: add a debounce using a Sheet/DB to store last fired time. Telegram not posting: confirm bot has access to your channel/group.
by Trung Tran
Beginner’s Tutorial: Manage Azure Storage Account Container & Blob with n8n > This beginner-friendly n8n workflow shows you how to generate AI images using OpenAI, store them in Azure Blob Storage, and manage blob containers, all with zero code. 👤 Who’s it for This workflow is perfect for: Beginners learning Azure + OpenAI integration** No-code developers** experimenting with image generation Cloud learners** who want hands-on Blob Storage use cases Anyone who wants to automate storing AI-generated content in the cloud ⚙️ How it works / What it does 🖱️ Trigger the workflow manually using the Execute Workflow node. ✏️ Use the Edit Fields node to input: containerName (e.g., demo-images) imageIdea (e.g., "a robot holding a coffee cup") 📦 Create a new Azure Blob container (Create container). 🤖 Use an OpenAI-powered Prompt Generation Agent to craft the perfect image prompt. 🎨 Generate an image using OpenAI’s DALL·E model. ☁️ Upload the generated image to Azure Blob Storage (Create Blob). 📂 List blobs in the container (Get many blobs). 🧹 Delete any blob as needed (Delete Blob). (Optional) 🗑️ Remove the entire container (Delete container). 🔧 How to set up 🧠 Set up OpenAI Create an OpenAI account and get your API key. In n8n, go to Credentials → OpenAI and paste your key. 🪣 Set up Azure Blob Storage Log in to your Azure Portal. Create a Storage Account (e.g., mystorageaccount). Go to Access Keys tab and copy: Storage Account Name Key1 In n8n, create a new Azure Blob Storage Credential using: Account Name = your storage account name Access Key = key1 value > 📝 This demo uses Access Key authentication. You can also configure Shared Access Signatures (SAS) or OAuth in production setups. Run the Workflow Enter your image idea and container name. Click “Execute Workflow” to test it. 📋 Requirements | Requirement | Description | |------------------------|--------------------------------------------------| | Azure Storage Account | With container-level read/write access | | OpenAI API Key | For image and prompt generation | | n8n Version | v1.0+ recommended | | Image Credits | OpenAI charges tokens for DALL·E image creation | 🛠️ How to customize the workflow 🧠 Adjust Prompt Generation Update the Prompt Agent to include: Specific style (3D, anime, cyberpunk) Brand elements Multiple language options 📁 Organize by Date/User Modify the containerName to auto-include: Date (e.g., images-2025-08-20) Username or session ID 📤 Send Image Output Add Slack, Telegram, or Email nodes to deliver the image Create public links using Azure’s blob permissions 🔁 Cleanup Logic Auto-delete blobs after X days Add versioning or backup logic
by octik5
🤖 This n8n workflow automatically posts new articles from an RSS feed to your Telegram channel. It enhances article text using AI, adds a branded watermark to the article image, and keeps your channel updated with fresh and consistent content. Use Cases Automatically publish RSS feed updates to Telegram. Use AI to rewrite, summarize, or stylize text. Add watermarked visuals to keep your content on-brand. Perfect for news aggregators, media channels, and content creators. How It Works RSS Trigger: Monitors an RSS feed for new articles. Check Google Sheet: Compares links to avoid reposting. Fetch Article: Retrieves the full article content for new links. AI Enhancement: Uses an AI agent to improve readability and engagement. Image Watermarking: Fetches the main image and adds a watermark. Telegram Publishing: Sends the final AI-enhanced post to your Telegram channel. Setup Steps Google Sheet:** Create and share a sheet to store processed links. RSS Source:** Add your feed URL to the RSS Trigger node. AI Agent:** Configure a prompt and model (e.g., OpenRouter or Gemini). Telegram Bot:** Add your bot token and chat ID for message delivery. Test & Automate:** Run once manually, then let it update automatically. Tips You can tweak the AI prompt to match your tone (e.g., newsy, casual, concise). Adjust watermark placement, font, and color for brand consistency. AI models may have usage costs or regional restrictions. ✅ Key Advantage: Fully automated — from RSS feed detection to AI-enhanced publishing with branded visuals.
by Sergey Skorobogatov
GiggleGPTBot — Witty Telegram Bot with AI & Postgres 📝 Overview GiggleGPTBot is a witty Telegram bot built with n8n, OpenRouter, and Postgres. It delivers short jokes, motivational one-liners, and playful roasts, responds to mentions, and posts scheduled witty content. The workflow also tracks user activity and provides lightweight statistics and leaderboards. ✨ Features 🤖 AI-powered humor engine — replies with jokes, motivation, random witty lines, or sarcastic roasts. 💬 Command support — /joke, /inspire, /random, /roast, /help, /stats, /top. 🎯 Mention detection — replies when users tag @GiggleGPTBot. ⏰ Scheduled posts — morning jokes, daily motivation, and random wisdom at configured times. 📊 User analytics — counts messages, commands, reactions, and generates leaderboards. 🗄️ Postgres persistence — robust schema with tables for messages, responses, stats, and schedules. 🛠️ How It Works Triggers Telegram Trigger — receives all messages and commands from a chat. Schedule Trigger — runs hourly to check for planned posts. Processing Switch routes commands (/joke, /inspire, /random, /roast, /help, /stats, /top). Chat history fetches the latest context. Mention Analysis determines if the bot was mentioned. Generating an information response builds replies for /help, /stats, /top. AI nodes (AI response to command, AI response to mention, AI post generation) craft witty content via OpenRouter. Persistence Init Database ensures tables exist (user_messages, bot_responses, bot_commands, message_reactions, scheduled_posts, user_stats). Logging nodes update stats and store every bot/user interaction. Delivery Replies are sent back via Telegram Send nodes (Send AI response, Send info reply, Reply to Mention, Submit scheduled post). ⚙️ Setup Instructions Create a Telegram Bot with @BotFather and get your API token. Add credentials in n8n: Telegram API (your bot token) OpenRouter (API key from openrouter.ai) Postgres (use your DB, Supabase works well). Run the Init Database node once to create all required tables. (Optional) Seed schedule with the Adding a schedule node — it inserts: Morning joke at 06:00 Daily motivation at 09:00 Random wisdom at 17:00 (Adjust chat_id to your group/channel ID.) Activate workflow and connect Telegram Webhook or Polling. 📊 Database Schema user\_messages** — stores user chat messages. bot\_responses** — saves bot replies. bot\_commands** — logs command usage. message\_reactions** — tracks reactions. scheduled\_posts** — holds scheduled jokes/wisdom/motivation. user\_stats** — aggregates per-user message/command counts and activity. 🔑 Example Commands /joke → witty one-liner with light irony. /inspire → short motivational phrase. /random → unexpected witty remark. /roast → sarcastic roast (no offensive targeting). /stats → shows your personal stats. /top → displays leaderboard. /help → lists available commands. @GiggleGPTBot + message → bot replies in context. 🚀 Customization Ideas Add new command categories (/quote, /fact, /news). Expand analytics with reaction counts or streaks. Localize prompts into multiple languages. Adjust CRON schedules for posts. ✅ Requirements Telegram Bot token OpenRouter API key Postgres database 📦 Import this workflow, configure credentials, run the DB initializer — and your witty AI-powered Telegram companion is ready!
by NAZIA AI ACADEMY
How it works This workflow lets users generate AI images directly from Telegram messages using: Google Gemini API – to convert text to detailed, high-quality image prompts. Pollinations API – to generate free AI images from the prompts. Telegram Bot – to interact with users and return generated images instantly. It’s fully automated using n8n — from text message to stunning image, all in one flow. Perfect for creators, content marketers, or anyone wanting quick visuals on the go. Set up steps 🧩 Estimated setup time: ~10–15 minutes Create a Telegram Bot via @BotFather, copy your token, and set up the Telegram Trigger node in n8n with your credentials. Set up Google Gemini API via Google AI Studio or Cloud Console. Make sure your API key is added in the credentials section of the Gemini node. Customize prompt structure or image size in the Fields - Set Values or Prompt Agent node. (Optional) Enable Save to Disk if you want to keep a local copy of every image. Deploy and run the workflow — done 🎉 🛠️ All technical details and logic are fully documented inside the workflow using sticky notes. ⚠️ Requirements n8n (Self-hosted or Cloud) Telegram Bot Token Google Gemini API key (with billing enabled — includes some free usage) No key needed for Pollinations API — it's 100% free 🆓
by jellyfish
This workflow automates the process of monitoring Twitter accounts for intelligence gathering. It fetches new tweets from specified accounts via RSS, uses a powerful AI model (Google Gemini) to analyze the content based on your custom prompts, and sends formatted alerts to a Telegram chat for high-priority findings. Key Features: Scheduled Execution: Runs automatically at your desired interval. Dynamic Configuration: Manage which Twitter accounts to follow and what AI prompts to use directly from a Postgres database. AI-Powered Analysis: Leverages Google Gemini to extract summaries, keywords, and assign an importance level to each tweet. Duplicate Prevention: Keeps track of the last processed tweet to ensure you only get new updates. Customizable Alerts: Sends well-structured and easy-to-read notifications to Telegram. Setup Required: Postgres Database: Set up a table to store your configuration (see the Sticky Note in the workflow for the required schema). RSSHub: You need access to an RSSHub instance to convert Twitter user timelines into RSS feeds. Credentials: Add your credentials for Postgres, Google AI (Gemini), and your Telegram Bot in n8n. Configuration: Update the placeholder values in the RSS and Telegram nodes (e.g., your RSSHub URL, your Telegram Chat ID).
by Ninja - Abbas
Overview This workflow automates quiz delivery from a Google Sheet directly into a Telegram group. It ensures that quizzes are posted one by one as polls, and once a quiz is sent, its status in the sheet is automatically updated to prevent duplication. If no pending quiz is available, the workflow notifies a separate Telegram channel to refill the sheet. Target Audience This template is designed for teachers, community managers, and Telegram group admins who want an easy way to run quizzes, trivia games, or knowledge checks without manual posting. Problem It Solves Manually sending quizzes is repetitive and prone to mistakes (like re-posting the same question). This template ensures quizzes are sent in order, tracked, and managed automatically with minimal human effort. Requirements An active Google account with Google Sheets enabled A Telegram bot token (via BotFather) Chat IDs for both the quiz group and the notification group Google Sheet Structure Create a sheet with the following columns: quiz_number | question | option_a | option_b | option_c | option_d | status status**: Use 🟨 for pending quizzes, ✅ once completed Setup Instructions Copy the workflow into your n8n instance. Add your Google Sheets credentials. Replace the YOUR_SHEET_ID placeholder with your sheet ID. Set environment variables: TELEGRAM_BOT_TOKEN TELEGRAM_CHAT_ID (for the group) TELEGRAM_NOTIFY_CHAT_ID (for refill notifications) Run the workflow. Customization Options Adjust the sheet name if not using “Sheet1” Change emoji markers (🟨 / ✅) to your preferred system Modify the Telegram notification message
by Curso Bot com IA
Template Overview This workflow demonstrates how to build a simple Telegram bot that can schedule events, check service prices, and query company documents using AI integrated with MCP and RAG. It’s designed to show how n8n can connect conversational interfaces with internal tools in a clear and scalable way. Key Concepts (explained simply): MCP (Multi‑Channel Processing): A framework that lets the AI agent connect to external services (like Google Calendar, Docs, Sheets) through MCP Clients and Servers. Think of it as the “bridge” between the bot and your tools. RAG (Retrieval‑Augmented Generation): A method where the AI retrieves information from documents before generating a response. This ensures answers are accurate and based on your actual data, not just the AI’s memory. ⚙️ Setup Instructions (step‑by‑step) Create a Telegram Bot Use BotFather to generate a bot and get the API token. Configure Google Services Make sure you have access to Google Calendar, Docs, and Sheets. Connect them via MCP Server so the agent can call these tools. Set up Redis Memory Create an Upstash Redis account. Configure it in the workflow to store conversation history. Import the Template into n8n Load the workflow and update credentials (Telegram, Google, Redis). Test the Bot Send a message like “Schedule laptop maintenance tomorrow” and check if it creates an event in Google Calendar. 🛠 Troubleshooting Section Bot not responding? Verify your Telegram API token is correct. Google services not working? Check that your MCP Server is running and properly connected to Calendar, Docs, and Sheets. Conversation context lost? Ensure Redis memory is configured and accessible. Wrong date/time? Confirm that relative dates (“tomorrow”, “next week”) are being converted into ISO format correctly. Customization Examples This template is flexible and can be adapted to different scenarios. Here are some ideas: Change the communication channel Replace the Telegram Trigger with WhatsApp, Slack, or a Webhook to fit your preferred platform. Expand document sources Connect additional Google Docs or Sheets, or integrate with other storage (e.g., Notion, Confluence, or internal databases) to broaden the bot’s knowledge base. Add new services Extend the workflow to handle more requests, such as booking meeting rooms, checking inventory, or creating support tickets. Personalize responses Customize the AI Agent’s tone and style to match your company’s branding (formal, friendly, or technical). Segment agents by role Create specialized agents (e.g., one for scheduling, one for pricing, one for troubleshooting) to keep the workflow modular and scalable. Integrate external APIs Connect to services like Google Calendar, CRM systems, or helpdesk platforms to automate more complex tasks.
by System Admin
Extract the audio from video for generate the description. Request to OpenAi for generate description with the audio extracted from the video. Generate in upload-post.com the token and add to the cred...
by Patrick Jennings
Sleeper NFL Team Chatbot Starter A Telegram chatbot built to look up your fantasy football team in the Sleeper app and return your roster details, player names, positions, and team info. This starter workflow is perfect for users who want a simple, conversational way to view their Sleeper team in-season or pre-draft. What It Does When a user types their Sleeper username into Telegram, this workflow: Extracts the username from Telegram Pulls their Sleeper User ID Retrieves their Leagues and selects the first one (by default) Pulls the full league Rosters Finds the matching roster owned by that user Uses player_ids to look up full player info from a connected database (e.g. Airtable or Google Sheets) Returns a clean list of player names, positions, and teams via Telegram Requirements To get this running, you’ll need: A Telegram bot (set up through BotFather) A Sleeper Fantasy Football account A synced player database that matches player_id to full player details (we recommend using the companion template: Sleeper NFL Players Daily Sync) Setup Instructions Import the workflow into your n8n instance Add the required credentials: Telegram (API Key from BotFather) Airtable (or replace with another database method like Google Sheets or HTTP request to a hosted JSON file) Trigger the workflow by sending your exact Sleeper username to the bot Your full team roster will return as a formatted message > If the user is in multiple Sleeper leagues, the current logic returns the first league found. Example Output You have 19 players on your roster: Cam Akers (RB - NO), Jared Goff (QB - DET), ... Customization Notes Replace Telegram Trigger with any other input method (webhook, form input, etc.) Replace Airtable node with Google Sheets, SQL DB, or even a local file if preferred You can hardcode a Sleeper username if you're using this for a single user Related Templates Sleeper NFL Players Daily Sync (syncs player_id to player name, position, team) -Create Player Sync first then either integrate it to this template or reate a subworkflow from it & use most recent data set. Difficulty Rating & Comment (from the author) 3 out of 10 if this ain't you're first rodeo, respectfully. Just a little bit more work on adding the Players Sync as your data table & knowing how to GET from Sleeper. If you use Sleeper for fantasy football, lets go win some games!