by Samir Saci
Tags: Image Compression, Tinify API, TinyPNG, SEO Optimisation, E-commerce, Marketing Context Hi! I’m Samir — Supply Chain Engineer, Data Scientist based in Paris, and founder of LogiGreen. I built this workflow for an agency specialising in e-commerce to automate the daily compression of their images stored in a Google Drive folder. This is particularly useful when managing large libraries of product photos, website assets or marketing visuals that need to stay lightweight for SEO, website performance or storage optimisation. > Test this workflow with the free tier of the API! 📬 For business inquiries, you can find me on LinkedIn Who is this template for? This template is designed for: E-commerce managers** who need to keep product images optimised Marketing teams** handling large volumes of visuals Website owners** wanting automatic image compression for SEO Anyone using Google Drive** to store images that gradually become too heavy What does this workflow do? This workflow acts as an automated image compressor and reporting system using Tinify, Google Drive, and Gmail. Runs every day at 08:00 using a Schedule Trigger Fetches all images from the Google Drive Input folder Downloads each file and sends it to the Tinify API for compression Downloads the optimised image and saves it to the Compressed folder Moves the original file to the Original Images archive Logs: fileName, originalSize, compressedSize, imageId, outputUrl and processingId into a Data Table After processing, it retrieves all logs for the current batch Generates a clean HTML report summarising the compression results Sends the report via Gmail, including total space saved Here is an example from my personal folder: Here is the report generated for these images: P.S.: You can customise the report to match your company branding or visual identity. 🎥 Tutorial A complete tutorial (with explanations of every node) is available on YouTube: Next Steps Before running the workflow, follow the sticky notes and configure the following: Get your Tinify API key for the free tier here: Get your key Replace Google Drive folder IDs in: Input, Compressed, and Original Images Replace the Data Table reference with your own (fields required: fileName, originalSize, compressedSize, imageId, outputUrl, processingId) Add your Tinify API key in the HTTP Basic Auth credentials Set up your Gmail credentials and recipient email (Optional) Customise the HTML report in the Generate Report Code node (Optional) Adjust the daily schedule to your preferred time Submitted: 18 November 2025 Template designed with n8n version 1.116.2
by Dr. Firas
Build Your First AI Agent with ChatGPT-5 Who is this for? This workflow is designed for beginners and professionals who want to build their first AI-powered assistant with n8n. It’s perfect for anyone managing online trainings, consultations, or services that require both a knowledge base and appointment scheduling. What problem is this workflow solving? Manually handling client questions, checking your availability, and confirming bookings can be time-consuming and error-prone. This workflow automates the process, ensuring quick, accurate answers and seamless scheduling directly through chat. What this workflow does Answers user questions using your knowledge base stored in Google Sheets. Checks availability in Google Calendar and proposes alternative time slots if needed. Books 1-hour appointments in Paris time only after client confirmation. Sends a professional confirmation email with all appointment details. Setup Import this workflow into your n8n instance. Connect your Google Sheets, Gmail, and Google Calendar credentials. Add your knowledge base into Google Sheets (questions, answers, policies, packs, etc.). Test the workflow using the Connected Chat Trigger node to start conversations with the AI Agent. How to customize this workflow to your needs Update the Google Sheets database with your own training packs, services, or company FAQs. Adjust the email template to reflect your branding and communication style. Modify the appointment duration if you need sessions longer or shorter than 1 hour. Add extra nodes (e.g., CRM integration) to capture leads or sync appointments with external systems. 📄 Documentation: Notion Guide Need help customizing? Contact me for consulting and support : Linkedin / Youtube
by Fabian Herhold
Who's it for Sales teams, BDRs, account managers, and customer success professionals who want to show up prepared for every meeting. Perfect for anyone using Calendly who wants to automate prospect research and never walk into a call blind again. Watch the full tutorial here: What it does This workflow automatically researches your meeting attendees the moment they book through Calendly. It combines multiple AI agents to gather comprehensive intelligence: Company Research**: Uses Perplexity AI to validate company details, recent news, funding, leadership changes, and business signals LinkedIn Analysis**: Leverages RapidAPI to analyze the person's profile, recent posts, comments, and engagement patterns from the last 60-90 days Signal Detection**: Identifies hiring signals, growth indicators, and potential risks with confidence scoring Meeting Prep**: Synthesizes everything into personalized talking points, conversation starters, and strategic recommendations The final research brief gets delivered directly to your Slack, saving 30-45 minutes of manual research per meeting. How it works Someone books a meeting via your Calendly (must include LinkedIn URL in booking form) Main AI Agent extracts company domain from email and coordinates three specialist research agents Company Agent researches business intel via Perplexity Person Agent analyzes LinkedIn activity using 4 different RapidAPI endpoints Signal Agent identifies business opportunities and risks Comprehensive meeting brief gets sent to your Slack channel Requirements API Credentials needed: Calendly API (for webhook trigger) OpenAI API key (GPT-4 recommended for orchestration) Perplexity API key (for web research) RapidAPI subscription (for LinkedIn data endpoints) Slack bot token (for output delivery) Important: Your Calendly booking form must include a LinkedIn URL field to get optimal results. How to set up Configure Calendly: Add the Calendly trigger node with your API credentials Update Slack destination: Modify the final Slack node with your user ID or channel Add API keys: Configure all the API credentials in their respective nodes Test the workflow: Book a test meeting through Calendly to verify the complete flow Customize prompts: Adjust the AI agent prompts based on your specific industry or use case The workflow uses structured JSON output with confidence scoring and source citation for reliable, actionable intelligence. How to customize the workflow Change output destination**: Replace Slack with email, Teams, or CRM integration Modify research depth**: Adjust the AI prompts to focus on specific industries or company types Add more signals**: Extend the Signal Research Agent to detect additional business indicators Integrate with CRM**: Add nodes to automatically update contact records in your sales system Schedule follow-ups**: Connect to calendar tools to automatically schedule research updates The modular design makes it easy to adapt for different sales processes and research requirements.
by Olivier
This template syncs prospects from ProspectPro into HubSpot. It checks if a company already exists in HubSpot (by ProspectPro ID or domain), then updates the record or creates a new one. Sync results are logged back in ProspectPro with tags to prevent duplicates and mark errors, ensuring reliable and repeatable integrations. ✨ Features Automatically sync ProspectPro prospects to HubSpot companies Smart search logic: match by ProspectPro ID first, then by domain Creates new HubSpot companies when no match is found Updates existing HubSpot companies with latest ProspectPro data Logs sync results back into ProspectPro with tags (HubspotSynced, HubspotSyncFailed) Extendable and modular: use as a trigger workflow or callable sub-flow ⚙ Requirements n8n instance or cloud workspace Install the ProspectPro Verified Community Node ProspectPro account & API credentials (14-day free trial) HubSpot account with OAuth2 app and API credentials 🔧 Setup Instructions Import the template and set your credentials (ProspectPro, HubSpot). Connect to a trigger (e.g., ProspectPro "New website visitor") or call as a sub-workflow. Add a propery to Hubspot for the ProspectPro ID if you don't already have one Adjust sync logic in the "Continue?"-node and HubSpot fields to match your setup. Optional: extend error handling, add Slack/CRM notifications, or sync back HubSpot data into ProspectPro. 🔐 Security Notes Prevents re-processing of failed syncs using the HubspotSyncFailed tag Error branches included for failed updates/creates Manual resolution required if sync errors persist 🧪 Testing Run with a ProspectPro ID of a company with a known domain Check HubSpot for creation or update of the company record Verify updated tags (HubspotSynced / HubspotSyncFailed) in ProspectPro 📌 About ProspectPro ProspectPro is a B2B Prospecting Platform for Dutch SMEs. It helps sales teams identify prospects, track website visitors, and streamline sales without a full CRM. Website: https://www.prospectpro.nl Platform: https://mijn.prospectpro.nl API docs: https://www.docs.bedrijfsdata.nl Support: https://www.prospectpro.nl/klantenservice Support hours: Monday–Friday, 09:00–17:00 CET 📌 About HubSpot HubSpot is a leading CRM platform offering marketing, sales, and customer service tools. It helps companies manage contacts, automate workflows, and grow their customer base. Website: https://www.hubspot.com Developer Docs: https://developers.hubspot.com
by Oneclick AI Squad
This n8n workflow helps users easily discover nearby residential construction projects by automatically scraping and analyzing property listings from 99acres and other real estate platforms. Users can send an email with their location preferences and receive a curated list of available properties with detailed information, including pricing, area, possession dates, and construction status. Good to know The workflow focuses specifically on residential construction projects and active developments Property data is scraped in real-time to ensure the most current information Results are automatically formatted and structured for easy reading The system handles multiple property formats and data variations from different sources Fallback mechanisms ensure reliable data extraction even when website structures change How it works Trigger: New Email** - Detects incoming emails with property search requests and extracts location preferences from email content Extract Area & City** - Parses the email body to identify target areas (e.g., Gota, Ahmedabad) and falls back to city-level search if specific area is not mentioned Scrape Construction Projects** - Performs web scraping on 99acres and other property websites based on the extracted area and city information Parse Project Listings** - Cleans and formats the scraped HTML data into structured project entries with standardized fields Format Project Details** - Transforms all parsed projects into a consistent email-ready list format with bullet points and organized information Send Results to User** - Delivers a professionally formatted email with the complete list of matching construction projects to the original requester Email Format Examples Input Email Format To: properties@yourcompany.com Subject: Property Search Request Hi, I am interested in buying a flat. Can you please send me the list of available properties in Gota, Ahmedabad? Output Email Example Subject: 🏘️ Property Search Results: 4 Projects Found in Gota, Ahmedabad 🏘️ Available Construction Projects in Gota, Ahmedabad Search Area: Gota, Ahmedabad Total Projects: 4 Search Date: August 4, 2025 📋 PROJECT LISTINGS: 🔷 Project 1 🏠 Name: Vivaan Oliver offers 🏢 BHK: 3 BHK 💰 Price: N/A 📐 Area: 851.0 Sq.Ft 🗓️ Possession: August 2025 📊 Status: under construction 📍 Location: Thaltej, Ahmedabad West 🕒 Scraped Date: 2025-08-04 🔷 Project 2 🏠 Name: Vivaan Oliver offers 🏢 BHK: 3 BHK 💰 Price: Price on Request 📐 Area: 891 Sq Ft 🗓️ Possession: N/A 📊 Status: Under Construction 📍 Location: Thaltej, Ahmedabad West 🕒 Scraped Date: 2025-08-04 🔷 Project 3 🏠 Name: It offers an exclusive range of 🏢 BHK: 3 BHK 💰 Price: N/A 📐 Area: 250 Sq.Ft 🗓️ Possession: 0 2250 📊 Status: Under Construction 📍 Location: Thaltej, Ahmedabad West 🕒 Scraped Date: 2025-08-04 🔷 Project 4 🏠 Name: N/A 🏢 BHK: 2 BHK 💰 Price: N/A 📐 Area: N/A 🗓️ Possession: N/A 📊 Status: N/A 📍 Location: Thaltej, Ahmedabad West 💡 Next Steps: • Contact builders directly for detailed pricing and floor plans • Schedule site visits to shortlisted properties • Verify possession timelines and construction progress • Compare amenities and location advantages 📞 For more information or specific requirements, reply to this email. How to use Setup Instructions Import the workflow into your n8n instance Configure Email Credentials: Set up email trigger for incoming property requests Set up SMTP credentials for sending property listings Configure Web Scraping: Ensure proper headers and user agents for 99acres access Set up fallback mechanisms for different property websites Test the workflow with sample property search emails Sending Property Search Requests Send an email to your configured property search address Include location details in natural language (e.g., "Gota, Ahmedabad") Optionally specify preferences like BHK, budget, or amenities Receive detailed property listings within minutes Requirements n8n instance** (cloud or self-hosted) with web scraping capabilities Email account** with IMAP/SMTP access for automated communication Reliable internet connection** for real-time property data scraping Valid target websites** (99acres, MagicBricks, etc.) access Troubleshooting No properties found**: Verify area spelling and check if the location has active listings Scraping errors**: Update user agents and headers if websites block requests Duplicate results**: Implement better deduplication logic based on property names and locations Email parsing issues**: Test with various email formats and improve regex patterns Website structure changes**: Implement fallback parsers and regular monitoring of scraping success rates
by Rakin Jakaria
Who this is for This workflow is for freelancers, job seekers, or service providers who want to automatically apply to businesses by scraping their website information, extracting contact details, and sending personalized job application emails with AI-powered content — all from one form submission. What this workflow does This workflow starts every time someone submits the Job Applier Form. It then: Scrapes the target business website** to gather company information and contact details. Converts HTML content** to readable markdown format for better AI processing. Extracts email addresses* and creates a company summary using *GPT-5 AI**. Validates email addresses** to ensure they contain proper formatting (@ symbol check). Accesses your experience data* from a connected *Google Sheet** with your skills and portfolio. Generates personalized application emails* (subject + body) using *GPT-5** based on the job position and company info. Sends the application email* automatically via *Gmail** with your name as sender. Provides confirmation** through a completion form showing the AI's response. Setup To set this workflow up: Form Trigger – Customize the job application form fields (Target Business Website, Applying As dropdown with positions like Video Editor, SEO Expert, etc.). OpenAI GPT-5 – Add your OpenAI API credentials for both AI models used in the workflow. Google Sheets – Connect your sheet containing your working experience data, skills, and portfolio information. Gmail Account – Link your Gmail account for sending application emails automatically. Experience Data – Update the Google Sheet with your relevant skills, experience, and achievements for each job type. Sender Name – Modify the sender name in Gmail settings (currently set to "Jamal Mia"). How to customize this workflow to your needs Add more job positions to the dropdown menu (currently includes Video Editor, SEO Expert, Full-Stack Developer, Social Media Manager). Modify the AI prompt to reflect your unique value proposition and application style. Enhance email validation with additional checks like domain verification or email format patterns. Add follow-up scheduling to automatically send reminder emails after a certain period. Include attachment functionality to automatically attach your resume or portfolio to applications. Switch to different email providers or add multiple sender accounts for variety.
by Wolf Bishop
A reliable, no-frills web scraper that extracts content directly from websites using their sitemaps. Perfect for content audits, migrations, and research when you need straightforward HTML extraction without external dependencies. How It Works This streamlined workflow takes a practical approach to web scraping by leveraging XML sitemaps and direct HTTP requests. Here's how it delivers consistent results: Direct Sitemap Processing: The workflow starts by fetching your target website's XML sitemap and parsing it to extract all available page URLs. This eliminates guesswork and ensures comprehensive coverage of the site's content structure. Robust HTTP Scraping: Each page is scraped using direct HTTP requests with realistic browser headers that mimic legitimate web traffic. The scraper includes comprehensive error handling and timeout protection to handle various website configurations gracefully. Intelligent Content Extraction: The workflow uses sophisticated JavaScript parsing to extract meaningful content from raw HTML. It automatically identifies page titles through multiple methods (title tags, Open Graph metadata, H1 headers) and converts HTML structure into readable text format. Framework Detection: Built-in detection identifies whether sites use WordPress, Divi themes, or heavy JavaScript frameworks. This helps explain content extraction quality and provides valuable insights about the site's technical architecture. Rich Metadata Collection: Each scraped page includes detailed metadata like word count, HTML size, response codes, and technical indicators. This data is formatted into comprehensive markdown files with YAML frontmatter for easy analysis and organization. Respectful Rate Limiting: The workflow includes a 3-second delay between page requests to respect server resources and avoid overwhelming target websites. The processing is sequential and controlled to maintain ethical scraping practices. Detailed Success Reporting: Every scraped page generates a report showing extraction success, potential issues (like JavaScript dependencies), and technical details about the site's structure and framework. Setup Steps Configure Google Drive Integration Connect your Google Drive account in the "Save to Google Drive" node Replace YOUR_GOOGLE_DRIVE_CREDENTIAL_ID with your actual Google Drive credential ID Create a dedicated folder for your scraped content in Google Drive Copy the folder ID from the Google Drive URL (the long string after /folders/) Replace YOUR_GOOGLE_DRIVE_FOLDER_ID_HERE with your actual folder ID in both the folderId field and cachedResultUrl Update YOUR_FOLDER_NAME_HERE with your folder's actual name Set Your Target Website In the "Set Sitemap URL" node, replace https://yourwebsitehere.com/page-sitemap.xml with your target website's sitemap URL Common sitemap locations include /sitemap.xml, /page-sitemap.xml, or /sitemap_index.xml Tip: Not sure where your sitemap is? Use a free online tool like https://seomator.com/sitemap-finder Verify the sitemap URL loads correctly in your browser before running the workflow Update Workflow IDs (Automatic) When you import this workflow, n8n will automatically generate new IDs for YOUR_WORKFLOW_ID_HERE, YOUR_VERSION_ID_HERE, YOUR_INSTANCE_ID_HERE, and YOUR_WEBHOOK_ID_HERE No manual changes needed for these placeholders Adjust Processing Limits (Optional) The "Limit URLs (Optional)" node is currently disabled for full site scraping Enable this node and set a smaller number (like 5-10) for initial testing For large websites, consider running in batches to manage processing time and storage Customize Rate Limiting (Optional) The "Wait Between Pages" node is set to 3 seconds by default Increase the delay for more respectful scraping of busy sites Decrease only if you have permission and the target site can handle faster requests Test Your Configuration Enable the "Limit URLs (Optional)" node and set it to 3-5 pages for testing Click "Test workflow" to verify the setup works correctly Check your Google Drive folder to confirm files are being created with proper content Review the generated markdown files to assess content extraction quality Run Full Extraction Disable the "Limit URLs (Optional)" node for complete site scraping Execute the workflow and monitor the execution log for any errors Large websites may take considerable time to process completely (plan for several hours for sites with hundreds of pages) Review Results Each generated file includes technical metadata to help you assess extraction quality Look for indicators like "Limited Content" warnings for JavaScript-heavy pages Files include word counts and framework detection to help you understand the site's structure Framework Compatibility: This scraper is specifically designed to work well with WordPress sites, Divi themes, and many JavaScript-heavy frameworks. The intelligent content extraction handles dynamic content effectively and provides detailed feedback about framework detection. While some single-page applications (SPAs) that render entirely through JavaScript may have limited content extraction, most modern websites including those built with popular CMS platforms will work excellently with this scraper. Important Notes: Always ensure you have permission to scrape your target website and respect their robots.txt guidelines. The workflow includes respectful delays and error handling, but monitor your usage to maintain ethical scraping practices.RetryClaude can make mistakes. Please double-check responses.
by WeblineIndia
📊 Generate Weekly Energy Consumption Reports with API, Email and Google Drive This workflow automates the process of retrieving energy consumption data, formatting it into a CSV report, and distributing it every week via email and Google Drive. ⚡ Quick Implementation Steps: Import the workflow into your n8n instance. Configure your API, email details and Google Drive folder. (Optional) Adjust the CRON schedule if you need a different time or frequency. Activate workflow—automated weekly reports begin immediately. 🎯 Who’s It For Energy providers, sustainability departments, facility managers, renewable energy operators. 🛠 Requirements n8n instance Energy Consumption API access Google Drive account Email SMTP access ⚙️ How It Works Workflow triggers every Monday at 8 AM, fetches consumption data, emails CSV report and saves a copy to Google Drive. 🔄 Workflow Steps 1. Schedule Weekly (Mon 8:00 AM) Type: Cron Node Runs every Monday at 8:00 AM. Triggers the workflow execution automatically. 2. Fetch Energy Data Type: HTTP Request Node Makes a GET request to: https://api.energidataservice.dk/dataset/ConsumptionDE35Hour (sample API) The API returns JSON data with hourly electricity consumption in Denmark. Sample Response Structure: { "records": [ { "HourDK": "2025-08-25T01:00:00", "MunicipalityNo": _, "MunicipalityName": "Copenhagen", "ConsumptionkWh": 12345.67 } ] } 3. Normalize Records Type: Code Node Extracts the records array from the API response and maps each entry into separate JSON items for easier handling downstream. Code used: const itemlist = $input.first().json.records; return itemlist.map(r => ({ json: r })); 4. Convert to File Type: Convert to File Node Converts the array of JSON records into a CSV file. The CSV is stored in a binary field called data. 5. Send Email Weekly Report Type: Email Send Node Sends the generated CSV file as an attachment. Parameters: fromEmail: Sender email address (configure in node). toEmail: Recipient email address. subject: "Weekly Energy Consumption Report". attachments: =data (binary data from the previous node). 6. Report File Upload to Google Drive Type: Google Drive Node Uploads the CSV file to your Google Drive root folder. Filename pattern: energy_report_{{ $now.format('yyyy_MM_dd_HH_ii_ss') }} Requires valid Google Drive OAuth2 credentials. ✨ How To Customize Change report frequency, email template, data format (CSV/Excel) or add-ons. ➕ Add-ons Integration with analytics tools (Power BI, Tableau) Additional reporting formats (Excel, PDF) Slack notifications 🚦 Use Case Examples Automated weekly/monthly reporting for compliance Historical consumption tracking Operational analytics and forecasting 🔍 Troubleshooting Guide | Issue | Cause | Solution | |-------|-------|----------| | Data not fetched | API endpoint incorrect | Verify URL | | Email delivery issues | SMTP configuration incorrect | Verify SMTP | | Drive save fails | Permissions/Drive ID incorrect | Check Drive permissions | 📞 Need Assistance? Contact WeblineIndia for additional customization and support, we're happy to help.
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 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 🆓