by Avkash Kakdiya
How it works This workflow automatically generates and sends personalized sales proposals when a new row is added to Google Sheets. It uses AI to create proposal content, updates contact details in HubSpot, and generates a formatted document. The document is converted into a PDF and emailed to the client. This eliminates manual proposal writing and ensures fast, consistent delivery. Step-by-step Capture lead and generate AI content** Google Sheets Trigger – Detects new form submissions in your sheet. Loop Over Items – Processes each new entry individually. Message a model – Uses Gemini AI to generate the proposal content. Code in JavaScript – Cleans and splits AI output into structured fields. Create contact and generate document** Create or update a contact – Stores or updates client data in HubSpot. Copy file – Duplicates a proposal template from Google Drive. Update a document – Replaces placeholders with real client and AI data. Download file – Converts the final document into a PDF file. Send proposal to client** Send a message – Emails the generated PDF proposal to the client. Why use this? Automatically generates professional proposals without manual writing Ensures consistent formatting using templates and placeholders Saves time by combining CRM, AI, and document creation Improves response speed for leads and increases conversion chances Scales easily for handling multiple client requests simultaneously
by Databox
Stop spending hours manually pulling paid ads data. This workflow connects to Databox via MCP, auto-discovers every connected paid platform, fetches 6 key metrics, and delivers a consolidated weekly report to Slack and email - every Monday at 9 AM, completely hands-free. Who's it for Performance marketers** managing campaigns across multiple platforms Marketing managers** who need a weekly cross-platform overview Agencies** automating paid ads reporting for clients How it works Schedule Trigger fires every Monday at 9 AM AI Agent connects to Databox via MCP and discovers all connected paid platforms (Google Ads, Facebook Ads, LinkedIn Ads, TikTok Ads, and 6 more) Fetches Spend, Clicks, CPC, CTR, Impressions, and Conversions for this week and last week Calculates week-over-week changes and formats two outputs - a Slack summary and a color-coded HTML email Delivers both simultaneously Requirements Databox account** with at least one paid ads platform connected (free plan works) OpenAI API key (or Anthropic) Slack account Gmail account How to set up Click Databox MCP Tool - set Authentication to OAuth2 and authorize Add your OpenAI API key to the Chat Model node Connect Slack and update the channel ID in the Send to Slack node Connect Gmail and set the recipient address in the Send Email node Activate - your first report arrives next Monday
by Le Nguyen
How it works Runs every morning at 8:00 using the Schedule Trigger. Sets a stale_days value and queries Salesforce for Opportunities where Stage_Unchanged_Days__c equals that value and the stage is not Closed Won / Closed Lost. For each “stale” Opportunity, loads full deal details and sends them to an OpenAI model. The model uses the query_soql tool to pull recent Notes, the primary Contact, and the Opportunity Owner, then returns a single JSON object with: a personalized follow-up email for the client, a short SMS template, a concise Slack summary for the sales team, and a ready-to-use Task payload for Salesforce. n8n parses that JSON, sends the email via SMTP, posts the Slack message to your chosen channel, and creates a Salesforce Task assigned to the Opportunity Owner so every stalled deal has a clear next step. Setup steps Estimated setup time: ~30–45 minutes if your Salesforce, OpenAI, SMTP and Slack credentials are ready. Create Stage_Unchanged_Days__c on Opportunity (Salesforce) Field Type: Formula (Number, 0 decimal places) Formula: IF( ISBLANK(LastStageChangeDate), TODAY() - DATEVALUE(CreatedDate), TODAY() - DATEVALUE(LastStageChangeDate) ) This field tracks how many days the Opportunity has been in the current stage. Connect credentials in n8n Salesforce OAuth2 for the Salesforce nodes and the query_soql HTTP Tool. OpenAI (or compatible) credential for the “Message a model” node. SMTP credential for the customer email node. Slack credential for the internal notification node. Configure your follow-up rules In Edit Fields (Set), set stale_days to the threshold that defines a stalled deal (e.g. 7, 14, 30). In Perform a query, optionally refine the SOQL (record types, owners, minimum amount, etc.) to match your pipeline. Update the Send Email SMTP Customer node with your real “from” address and tweak the wording if needed. Point Send Message To Internal Team (Slack) to the right channel or user. Test safely Turn off the Schedule Trigger and run the workflow manually with a few test Opportunities. Inspect the AI output in Message a model and Parse JSON to confirm the structure (email, sms, slack, task.api_body). Check that the email and Slack messages look good and that Salesforce Tasks are created, assigned to the right Owner, and linked to the correct Opportunity. Go live Re-enable the Schedule Trigger. Monitor the first few days to confirm that follow-ups, Slack alerts, and Tasks all behave as expected, then let the automation quietly keep your pipeline clean and moving.
by Mychel Garzon
Stop compiling your weekly business report by hand. Let automation pull the numbers, and let Claude write the narrative. Every Monday morning, this workflow fetches last week's revenue from Stripe, pipeline data from Notion, and operational metrics from Google Sheets aggregates everything into a single structured dataset, hands it to Claude Sonnet 4 for executive analysis, and delivers a styled HTML report to your inbox before you've had your first coffee. How it works The workflow runs in five sequential stages: 1. Trigger & Date Setup Fires every Monday at 08:00. Computes last week's date window in your configured business timezone using Luxon, outputting ISO timestamps, Unix epochs, and milliseconds so every downstream node speaks the same time format without conversion. 2. Data Collection Fetches from three sources in sequence: Stripe:** Cursor-based pagination retrieves every charge in the window no 100 record cap, no missed revenue Notion:** Queries your Deals database with a date filter and a built-in 350ms rate-limit delay between pages to stay safely under the Notion API ceiling Google Sheets:** Reads the latest row from your ops metrics sheet for tickets closed, NPS score, and uptime percentage 3. Aggregation Normalises all three sources into a single structured item: gross and net revenue, refunds, transaction count, total and probability-weighted pipeline value, deal count by stage, and all operational KPIs. Every field has a safe fallback so missing data never crashes the report. 4. AI Executive Narrative Passes the aggregated metrics to Claude Sonnet 4 with a structured prompt requesting three paragraphs: revenue performance, pipeline health, and operational highlights with a forward-looking observation. Temperature is set to 0 for consistent, professional tone on every run. 5. Report Build & Delivery Assembles a styled HTML email with KPI cards, a pipeline stage breakdown table, and the AI narrative embedded inline. Sends via SendGrid, then fires a Slack message to your chosen channel with a one-line summary of net revenue and new deal count. Key benefits No record caps:** Stripe pagination loops until has_more is false, the report always reflects the full week, not just the first 100 charges Timezone-aware:** Set REPORT_TIMEZONE once and every date window, label, and timestamp respects your business timezone automatically Consistent narrative:** Claude runs at temperature 0, so the executive summary reads in the same structured, data-driven voice every week Safe fallbacks:** Every aggregation field defaults gracefully, a missing ops metric shows N/A rather than crashing the workflow Global error handling:** A dedicated Error Trigger catches any execution failure and sends an alert email with the execution ID and the name of the failed node Setup Credentials: Connect your Anthropic account to the Anthropic Chat Model node SendGrid: Connect your SendGrid credential to the Send via SendGrid and Send Error Email nodes Google Sheets: Connect a Google Sheets OAuth2 credential to the GSheets: Ops Metrics node Slack: Connect your Slack credential to the Slack: Report Sent node Stripe: Set STRIPE_SECRET_KEY environment variable Notion: Set NOTION_API_KEY and NOTION_DEALS_DB_ID environment variables Google Sheets: Set GSHEETS_SPREADSHEET_ID, GSHEETS_SHEET_NAME, and GSHEETS_LAST_ROW_RANGE environment variables Email: Set REPORT_EMAIL_FROM, REPORT_EMAIL_TO, and REPORT_ALERT_EMAIL environment variables Slack: Set SLACK_CHANNEL_ID environment variable Timezone: Set REPORT_TIMEZONE environment variable (e.g., Europe/Helsinki defaults to UTC if not set) Who this is for Founders and operators** who want a Monday morning briefing without opening five different dashboards Finance teams** tracking weekly revenue, refunds, and transaction volume without manual Stripe exports Sales managers** monitoring pipeline health and weighted deal value across Notion CRM stages Agencies and MSPs** delivering automated reporting as a managed service to their clients Required credentials Anthropic (Claude Sonnet 4) SendGrid Google Sheets OAuth2 Slack Stripe Secret Key (via env var) Notion API Key (via env var) How to customize it Add more data sources:** Extend the collection stage with nodes for HubSpot, Jira, Intercom, or any API, just reference them in Aggregate All Metrics Change the report schedule:** Modify the cron expression in the trigger node to run daily, bi-weekly, or on any schedule Adjust the AI prompt:** Edit the prompt in Claude: Write Executive Narrative to change the number of paragraphs, the tone, or the specific metrics Claude should prioritize Swap the email provider:** Replace SendGrid with Outlook, Gmail, or any SMTP node without touching any other part of the workflow Extend the HTML template:** Modify Build HTML Report to add your company logo, brand colors, or additional KPI sections
by Cheng Siong Chin
How It Works MQTT ingests real-time sensor data from connected devices. The workflow normalizes the values and trains or retrains machine learning models on a defined schedule. An AI agent detects anomalies, validates the results for accuracy, and ensures reliable alerts. Detected issues are then routed to dashboards for visualization and sent via email notifications to relevant stakeholders, enabling timely monitoring and response. Setup Steps MQTT: Configure broker connection, set topic subscriptions, and verify data flow. ML Model: Define retraining schedule and specify historical data sources for model updates. AI Agent: Connect Claude or OpenAI APIs and configure anomaly validation prompts. Alerts: Set dashboard URL and email recipients to receive real-time notifications. Prerequisites MQTT broker credentials; historical training data; OpenAI/Claude API key; dashboard access; email service Use Cases IoT sensor monitoring; server performance tracking; network traffic anomalies; application log analysis; predictive maintenance alerts Customization Adjust sensitivity thresholds; swap ML models; modify notification channels; add Slack/Teams integration; customize validation rules Benefits Reduces detection latency 95%; eliminates manual monitoring; prevents false alerts; enables rapid incident response; improves system reliability
by Cheng Siong Chin
How It Works This workflow automates procurement fraud detection and supplier compliance monitoring for organizations managing complex purchasing operations. Designed for procurement teams, audit departments, and compliance officers, it solves the challenge of identifying fraudulent transactions, contract violations, and supplier misconduct across thousands of purchase orders and vendor relationships. The system schedules continuous monitoring, generates sample transaction data, analyzes patterns through dual AI agents (Price Reasonableness validates pricing against market rates, Delivery Agent assesses fulfillment performance), orchestrates comprehensive risk evaluation through Orchestration Agent, routes findings by severity (critical/high/medium/low), and triggers multi-channel responses: critical issues activate immediate Slack/email alerts with detailed logging; high-priority cases receive escalation workflows; medium/low findings generate routine compliance reports. By combining AI-powered anomaly detection with intelligent routing and coordinated notifications, organizations prevent fraud losses by 75%, ensure vendor compliance, maintain audit trails, and enable procurement teams to focus on strategic sourcing rather than manual transaction reviews. Setup Steps Connect Schedule Trigger for monitoring frequency Configure procurement systems with API credentials Add AI model API keys to Price Reasonableness, Delivery, and Orchestration Agent nodes Define fraud indicators and compliance thresholds in agent prompts based on company policies Link Slack webhooks for critical and high-priority fraud alerts to procurement and audit teams Connect email credentials for stakeholder notifications and escalation workflows Prerequisites Procurement system API access, AI service accounts, market pricing databases for benchmarking Use Cases Invoice fraud detection, bid rigging identification, duplicate payment prevention Customization Modify agent prompts for industry-specific fraud patterns, adjust risk scoring algorithms Benefits Prevents fraud losses by 75%, automates compliance monitoring across unlimited transactions
by Paul Karrmann
This n8n template helps you turn inbound messages into a clean, deduped queue of actionable tickets. It includes Slack and Gmail as ready to use examples, but the key idea is the universal intake normalizer: you can plug in other sources later (forms, webhooks, chat tools, other inboxes) as long as you map them into the same normalized schema. Good to know This workflow sends message content to an LLM for classification. Keep sensitive data out of the prompt, and only process messages you are allowed to process. Costs depend on message volume and length, so truncation and tight filters matter. How it works Collect inbound items (Slack and Gmail are included as examples). Normalize each item into one shared JSON format so every source behaves the same. Deduplicate items using a data table so repeats are skipped. Use an AI agent with structured output to score urgency and importance, produce a summary, and draft a reply. Create a Notion ticket for tracking, and optionally notify Slack for high priority items. Setup steps Connect credentials for Slack, Gmail, Notion, and your LLM provider. Choose your Slack channel and set a Gmail filter that keeps volume manageable. Select your Notion database and ensure properties match the field mappings. Create or select a data table and map the unique ID column for deduplication. Adjust the notification threshold and schedule interval to match your workflow. Requirements Slack workspace access (optional if you swap the source) Gmail access (optional if you swap the source) Notion database for ticket creation LLM API credentials Customising this workflow Add new sources by mapping them into the normalizer schema. Truncate long messages before the AI step to reduce cost. Change categories, scoring, and thresholds to match your operating model.
by Oneclick AI Squad
This workflow ingests property document packages submitted via webhook or monitored cloud storage, extracts text from each file, runs Claude AI to verify legal compliance, detect missing or expired documents, flag invalid clauses, and produces a structured validation report with remediation guidance. How it works Trigger — Webhook submission or Google Drive folder watch Intake & Register — Logs submission, assigns case ID, normalises metadata Download Documents — Fetches each file from Drive / S3 / URL Extract Text — Reads PDF/DOCX content via parser node Classify Document Type — Identifies contract, title, disclosure, certificate, etc. AI Legal Compliance Check — Claude AI validates each document against jurisdiction rules Aggregate Validation Results — Merges per-document findings into a case report Check Required Doc Checklist — Detects missing mandatory documents Route by Compliance Status — Branches on PASS / FAIL / REQUIRES_REVIEW Notify Submitter — Email with full validation report and remediation steps Alert Legal Team on Slack — Flags FAIL or critical issues to legal channel Create Audit Record — Writes full report to Google Sheets compliance log Generate PDF Report — Stores formatted report back to Drive Return Validation Response — Sends structured JSON result to caller Setup Steps Import workflow into n8n Configure credentials: Anthropic API — Claude AI for legal document analysis Google Drive OAuth — Document intake and report storage Google Sheets OAuth — Compliance audit log Slack OAuth — Legal team alerts SendGrid / SMTP — Submitter notification emails Set your Google Drive folder IDs for intake and output Configure jurisdiction rules in the AI prompt node Set mandatory document checklist in the Checklist node Activate the workflow Sample Webhook Payload { "caseId": "CASE-2025-0871", "submitterEmail": "agent@realty.com", "propertyAddress": "42 Oak Street, Sydney NSW 2000", "transactionType": "sale", "jurisdiction": "NSW", "documents": [ { "name": "Contract of Sale", "type": "contract", "driveFileId": "1aBcDeFgHiJkL" }, { "name": "Title Search", "type": "title", "driveFileId": "2mNoPqRsTuVwX" } ] } Document Types Supported Contract of Sale / Purchase Agreement Certificate of Title / Title Search Vendor Disclosure Statement Section 32 / Vendor Statement Building & Pest Inspection Report Strata Report / Body Corporate Docs Zoning Certificate / Planning Certificate Land Tax Certificate Mortgage / Discharge of Mortgage Lease Agreement / Tenancy Documents Council Rates Notice Smoke Alarm / Safety Certificates Features Multi-document batch validation per submission Jurisdiction-aware compliance rules (AU/UK/US configurable) Missing document detection against mandatory checklist Expiry date validation for time-sensitive certificates Critical clause and red-flag detection Automated remediation guidance per issue Full audit trail in Google Sheets PDF validation report stored to Drive Explore More Automation: Contact us to design AI-powered lead nurturing, content engagement, and multi-platform reply workflows tailored to your growth strategy.
by Neloy Barman
Self-Hosted This workflow provides a complete end-to-end system for capturing, analyzing, and routing customer feedback. By combining local multimodal AI processing with structured data storage, it allows teams to respond to customer needs in real-time without compromising data privacy. Who is this for? This is designed for Customer Success Managers, Product Teams, and Community Leads who need to automate the triage of high-volume feedback. It is particularly useful for organizations that handle sensitive customer data and prefer local AI processing over cloud-based API calls. 🛠️ Tech Stack Tally.so**: For front-end feedback collection. LM Studio**: To host the local AI models (Qwen3-VL). PostgreSQL**: For persistent data storage and reporting. Discord**: For real-time team notifications. ✨ How it works Form Submission: The workflow triggers when a new submission is received from Tally.so. Multimodal Analysis: The OpenAI node (pointing to LM Studio) processes the input using the Qwen3-VL model across three specific layers: Sentiment Analysis: Evaluates the text to determine if the customer is Positive, Negative, or Neutral. Zero-Shot Classification: Categorizes the feedback into pre-defined labels based on instructions in the prompt. Vision Processing: Analyzes any attached images to extract descriptive keywords or identify UI elements mentioned in the feedback. Data Storage: The PostgreSQL node logs the user's details, the original message, and all AI-generated insights. AI-Driven Routing: The same Qwen3-VL model makes the routing decision by evaluating the classification results and determining the appropriate path for the data to follow. Discord Notification: The Discord node sends a formatted message to the corresponding channel, ensuring the support team sees urgent issues while the marketing team sees positive testimonials. 📋 Requirements LM Studio** running a local server on port 1234. Qwen3-VL-4B** (GGUF) model loaded in LM Studio. PostgreSQL** instance with a table configured for feedback data. Discord Bot Token** and specific Channel IDs. 🚀 How to set up Prepare your Local AI: Open LM Studio and download the Qwen3-VL-4B model. Start the Local Server on port 1234 and ensure CORS is enabled. Disable the Require Authentication setting in the Local Server tab. Configure PostgreSQL: Ensure your database is running. Create a table named customer_feedback with columns for name, email_address, feedback_message, image_url, sentiment, category, and img_keywords. Import the Workflow: Import the JSON file into your n8n instance. Link Services: Update the Webhook node with your Tally.so URL. In the Discord nodes, paste the relevant Channel IDs for your #support, #feedback, and #general channels. Test and Activate: Toggle the workflow to Active. Send a test submission through your Tally form and verify the data appears in PostgreSQL and Discord. 🔑 Credential Setup To run this workflow, you must configure the following credentials in n8n: OpenAI API (Local)**: Create a new OpenAI API credential. API Key: Enter any placeholder text (e.g., lm-studio). Base URL: Set this to your machine's local IP address (e.g., http://192.168.1.10:1234/v1) to ensure n8n can connect to the local AI server, especially if running within a Docker container. PostgreSQL**: Create a new PostgreSQL credential. Enter your database Host, Database Name, User, and Password. If using the provided Docker setup, the host is usually db. Discord Bot**: Create a new Discord Bot API credential. Paste your Bot Token obtained from the Discord Developer Portal. Tally**: Create a new Tally API credential. Enter your API Key, which you can find in your Tally.so account settings. ⚙️ How to customize Refine AI Logic**: Update the System Message in the AI node to change classification categories or sentiment sensitivity. Switch to Cloud AI: If you prefer not to use a local model, you can swap the local **LM Studio connection for any 3rd party API, such as OpenAI (GPT-4o), Anthropic (Claude), or Google Gemini, by updating the node credentials and Base URL. Expand Destinations: Add more **Discord nodes or integrate Slack to notify different departments based on the AI's routing decision. Custom Triggers: Replace the Tally webhook with a **Typeform, Google Forms, or a custom Webhook trigger if your collection stack differs.
by Avkash Kakdiya
How it works This workflow fetches the latest blog post from a WordPress API and checks against a Google Sheets tracker to prevent duplicate processing. If a new post is found, the workflow updates the tracker and cleans the blog data. The cleaned content is then sent to a Gemini-powered AI agent to generate a newsletter and LinkedIn teaser. Finally, the workflow distributes the content via LinkedIn and Gmail to subscribers. Step-by-step Detect new blog content** Schedule Trigger – Runs the workflow automatically at intervals. HTTP Request – Fetches the latest blog post from WordPress. Last ID – Retrieves the last processed blog ID from Google Sheets. If – Compares IDs to check if the blog is new. Update Last ID – Updates the sheet with the latest blog ID. Clean and generate AI content** data cleanse – Cleans HTML, extracts title, content, and image. AI Agent2 – Generates newsletter and teaser content. Google Gemini Chat Model – Provides AI model for content generation. Distribute content across channels** Format Response – Parses and structures AI output. Create a post – Publishes content on LinkedIn. Email List – Fetches subscriber emails from Google Sheets. Loop Over Items – Iterates through each recipient. Send Email – Sends HTML newsletter via Gmail. Why use this? Automates end-to-end blog promotion workflow Prevents duplicate publishing using ID tracking Uses AI to generate engaging content instantly Saves time on manual posting and emailing Easily scalable for growing audiences
by Redowan Ahmed Farhan
Quick Overview This workflow collects job applications via an n8n form, stores CVs in Google Drive, logs applicants in Airtable, and uses OpenAI to score CV-to-role fit. Shortlisted candidates receive an AI-generated questionnaire, a personalized Gmail outreach, an auto-booked Google Calendar phone screen, and saved screening questions. How it works Receives a job application through an n8n form submission, including applicant details and a PDF CV upload. Uploads the CV to Google Drive, builds a normalized applicant record (name, email, phone, experience, CV link), and creates an applicant entry in Airtable. Downloads the stored CV from Google Drive, extracts text from the PDF, and uses an OpenAI-powered agent to score the CV against the job description pulled from Airtable. Updates the applicant’s Airtable record as either “Interviewing” (score ≥ 0.7) or “No hire” (score < 0.7), including the numeric score and short reasoning. For shortlisted candidates, generates five interview questions with OpenAI, presents them in a follow-up n8n form, and saves the candidate’s responses back to Airtable. Uses OpenAI plus Airtable job/candidate context to draft a personalized outreach email, sends it via Gmail, and schedules a 30-minute phone screen in Google Calendar. Writes the scheduled phone interview time and OpenAI-generated phone screening questions back to the applicant’s Airtable record. Setup Connect credentials for Airtable, Google Drive, Google Calendar, Gmail, and OpenAI (used for scoring, question generation, email drafting, scheduling, and screening questions). In Airtable, create or update a base with an Applicants table and a Positions table that match the fields referenced (for example CV Link, Stage, JD CV score, CV Score Notes, Questionnaires and responses, Phone interview, and phone screening questions). Set the target Google Drive folder for CV uploads and ensure the workflow can download files using the stored CV link. Publish the n8n forms (application intake and questionnaire) and share their URLs with candidates as part of your recruitment process. Confirm the shortlisting threshold (0.7) and update any fixed values (like the position name and calendar) to match your role and interviewer availability.
by Wan Dinie
Automated Malaysian Weather Alerts with Perplexity AI, Firecrawl and Telegram This n8n template automates daily weather monitoring by fetching official government warnings and searching for related news coverage, then delivering comprehensive reports directly to Telegram. Use cases include monitoring severe weather conditions, tracking flood warnings across Malaysian states, staying updated on weather-related news, and receiving automated daily weather briefings for emergency preparedness. Good to know Firecrawl free tier allows limited scraping requests per hour. Consider the 3-second interval between requests to avoid rate limits. OpenAI costs apply for content summarization - GPT-4.1 mini balances quality and affordability. After testing multiple AI models (GPT, Gemini), Perplexity Sonar Pro Search proved most effective for finding recent, relevant weather news from Malaysian sources. The workflow focuses on major Malaysian news outlets like Utusan, Harian Metro, Berita Harian, and Kosmo. How it works Schedule Trigger runs daily at 9 AM to fetch weather warnings from Malaysia's official data.gov.my API. JavaScript code processes weather data to extract warning types, severity levels, and affected locations. Search queries are aggregated and combined with location information. Perplexity Sonar Pro AI Agent searches for recent news articles (within 3 days) from Malaysian news channels. URLs are cleaned and processed one by one through a loop to manage API limits. Firecrawl scrapes each news article and extracts summaries from main content. All summaries and source URLs are combined and sent to OpenAI for final report generation. The polished weather report is delivered to your Telegram channel in English. How to use The schedule trigger is set for 9 AM but can be adjusted to any preferred time. Replace the Telegram chat ID with your channel or group ID. The workflow automatically filters out "No Advisory" warnings to avoid unnecessary notifications. Modify the search query timeout and batch processing based on your API limits. Requirements OpenAI API key (get one at https://platform.openai.com) Perplexity API via OpenRouter (get access at https://openrouter.ai) Firecrawl API key (get free tier at https://firecrawl.dev) Telegram Bot token and channel/group ID Customizing this workflow Expand news sources**: Modify the AI Agent prompt to include additional Malaysian news outlets or social media sources. Language options**: Change the final report language from English to Bahasa Malaysia by updating the "Make a summary" system prompt. Alert filtering**: Adjust the JavaScript code to focus on specific warning types (e.g., only severe warnings or specific states). Storage integration**: Connect to Supabase or Google Sheets to maintain a historical database of weather warnings and news. Multi-channel delivery**: Add more notification nodes to send alerts via email, WhatsApp, or SMS alongside Telegram.