🔔 THOAlerts Documentation
Complete guide to setting up smart notifications for Google Sheets
Version 1.0 Pro (2025)
📑 Quick Navigation:
📖 Overview
THOAlerts is a powerful Google Sheets add-on that automatically sends notifications when your spreadsheet data meets specific conditions. Whether you’re tracking sales targets, monitoring inventory levels, managing tasks, or watching for form submissions, THOAlerts keeps you informed in real-time.
What Can THOAlerts Do?
10 Notification Channels
Send alerts via Email, Discord, Slack, Microsoft Teams, Google Chat, Telegram, Larksuite, Zapier, n8n, and Make
25 Smart Conditions
Text matching, CSV list matching, regex, number ranges, date operators, and complex AND/OR logic
Dynamic Recipients
Send notifications to email addresses stored in cells – perfect for task assignments
Rich Formatting
Support for HTML and Markdown in notifications with bold, italic, and links
First-match Mode
Send notification only once per value change to prevent spam
Row Data Access
Include entire row data or specific columns using {ROW_JSON}, {ROW_CSV} variables
🚀 Getting Started
Installation
Install from Google Workspace Marketplace
Open Google Sheets and go to Extensions → Add-ons → Get add-ons. Search for “THOAlerts” and click Install.
Grant Permissions
When prompted, click Continue and select your Google account. Review the permissions and click Allow.
Setup Trigger
After installation, click THO Alerts menu → Setup Trigger (Required). This creates an installable trigger that monitors your spreadsheet for changes.
Create Your First Rule
Click THO Alerts menu → Create Rule to open the rule manager and start setting up your first notification.
📡 Notification Channels
THOAlerts supports 7 notification channels. Here’s how to set up each one:
1. 📧 Email (FREE)
How to use: Enter email address directly in the Recipient field.
Recipient: john@example.com
Multiple recipients: Separate with commas
Recipient: john@example.com, jane@example.com
2. 💬 Discord (FREE)
How to get webhook URL:
- Open your Discord server
- Go to Server Settings → Integrations → Webhooks
- Click New Webhook
- Choose channel and name (e.g., “THOAlerts”)
- Click Copy Webhook URL
Recipient: https://discord.com/api/webhooks/123456789/ABCDEF...
📚 Official Guide: Discord Webhooks Documentation
3. 📱 Slack PRO
How to get webhook URL:
- Go to api.slack.com/apps
- Click Create New App → From scratch
- Name it “THOAlerts” and select your workspace
- Go to Incoming Webhooks → Toggle ON
- Click Add New Webhook to Workspace
- Select channel and click Allow
- Copy the Webhook URL
Recipient: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXX
📚 Official Guide: Slack Incoming Webhooks
4. 🚀 Microsoft Teams PRO
How to get webhook URL:
- Open Microsoft Teams
- Go to your desired channel
- Click ⋯ (More options) → Connectors
- Search for Incoming Webhook → Click Configure
- Name it “THOAlerts” and upload an icon (optional)
- Click Create and copy the URL
Recipient: https://outlook.office.com/webhook/XXXXX...
📚 Official Guide: Teams Incoming Webhooks
5. 🗨️ Google Chat PRO
How to get webhook URL:
- Open Google Chat
- Go to the space where you want notifications
- Click space name → Manage webhooks
- Click Add webhook
- Name it “THOAlerts” and optionally add avatar
- Click Save and copy the Webhook URL
Recipient: https://chat.googleapis.com/v1/spaces/AAAA/messages?key=XXX...
📚 Official Guide: Google Chat Webhooks
6. ✈️ Telegram PRO
How to setup:
- Open Telegram and search for @BotFather
- Send command
/newbot - Follow instructions to name your bot
- Copy the Bot Token (looks like
123456:ABC-DEF...) - Add your bot to a channel/group or start a private chat
- Get your Chat ID using @userinfobot or @RawDataBot
- Format:
BOT_TOKEN/CHAT_ID
Recipient: 123456789:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw/987654321
📚 Official Guide: Telegram Bot API
7. 🦜 Larksuite/Feishu PRO
How to get webhook URL:
- Open Larksuite and go to your group chat
- Click group settings → Bots
- Click Add Bot → Custom Bot
- Name it “THOAlerts” and add description
- Copy the Webhook URL
- Click Finished
Recipient: https://open.larksuite.com/open-apis/bot/v2/hook/XXXXXXXX
📚 Official Guide: Larksuite Custom Bots
8. ⚡ Zapier PRO
How to get webhook URL:
- Go to zapier.com and create account
- Create a new Zap
- Set trigger to Webhooks by Zapier → Catch Hook
- Copy the Webhook URL provided
- Paste into THOAlerts Recipient field
- Continue building your Zap workflow
Recipient: https://hooks.zapier.com/hooks/catch/123456/abcdef/
📚 Official Guide: Zapier Webhooks Documentation
9. 🔧 Make (Integromat) PRO
How to get webhook URL:
- Go to make.com (formerly Integromat)
- Create a new Scenario
- Add Webhooks module → Custom webhook
- Click Add to create new webhook
- Copy the Webhook URL
- Paste into THOAlerts and trigger once to register
Recipient: https://hook.us1.make.com/abc123xyz...
⚠️ Regional URLs: Make uses regional endpoints:
- US:
hook.us1.make.com✅ Supported - EU:
hook.eu1.make.com✅ Supported - Legacy:
hook.integromat.com✅ Supported (add to whitelist first)
📚 Official Guide: Make Webhooks Documentation
10. 🤖 n8n PRO
How to get webhook URL (Cloud only):
- Open your n8n Cloud instance at app.n8n.cloud
- Create a new Workflow
- Add Webhook node as trigger
- Set HTTP Method to POST
- Copy the Production URL (not Test URL)
- Activate workflow before testing
Recipient: https://your-workflow.app.n8n.cloud/webhook/abc123...
📚 Official Guide: n8n Webhook Node Documentation
🎯 Available Conditions
FREE: 6 Basic Conditions
PRO: 25 Advanced Conditions PRO
Includes all FREE conditions plus 19 advanced operators:
📝 Advanced Text Operators
text_not_contains– Does not contain texttext_starts_with– Begins with text (e.g., “INV-“)text_ends_with– Ends with text (e.g., “.pdf”)
🔥 CSV List Matching (KILLER FEATURE)
one_of– Value is in list:Done,Completed,Finishednot_one_of– Value NOT in list:Pending,Draft,Review
🔢 Number Operators
equals– Exactly matches numbernot_equals– Not equal to numbergreater_than– Larger than (>)greater_equal– Greater or equal (>=)less_than– Smaller than (<)less_equal– Less or equal (<=)between– In range (100-500)not_between– Outside range
📅 Date Operators
date_is– Exactly matches datedate_before– Date is earlierdate_after– Date is later
Date keywords: TODAY, TOMORROW, YESTERDAY, TODAY+7, TODAY-30
🔥 Regex & Validators (KILLER FEATURES)
matches_regex– Pattern matching (e.g.,^INV-d{6}$)is_valid_email– Email format validationis_valid_url– URL format validation
⚡ Advanced Features PRO
Dynamic Recipients NEW 2025
Send notifications to email addresses stored in cells – perfect for task assignments, client follow-ups, and team collaboration!
Method 1: Simple Cell Reference
Use {B} or {C2} in the Recipient field:
Recipient: {B}
# Sends to email in column B of the triggered row
Method 2: Excel-Style Formula
Use formulas like VLOOKUP or IF for complex logic:
Recipient: =IF(D2="High Priority",{B},{C})
# Send to manager (B) if high priority, else team lead (C)
Recipient: =VLOOKUP(A2,Contacts!A:B,2,FALSE)
# Lookup email from another sheet
💡 Real Example: Your task tracker has columns: A=Task Name, B=Assignee Email, C=Manager Email, D=Priority. When cell D5 changes to “Urgent”:
- Recipient:
{B}→ Sends to assignee’s email in B5 - Recipient:
=IF(D5="Urgent",{C},{B})→ Sends to manager if urgent, else assignee
⚠️ Troubleshooting Dynamic Recipients
- Not working? Make sure cell contains valid email format (name@domain.com)
- Empty cell? Notification will be skipped – no error message
- Formula error? Check syntax in Google Sheets first before using in THOAlerts
First-match vs Each-match Mode NEW 2025
Control notification frequency to prevent spam:
Row Data Variables NEW 2025
Access entire row data or specific columns in your message template:
📋 Task: {A}
👤 Assigned to: {B}
📅 Deadline: {D}
🔗 View: {URL}
HTML/Markdown Formatting NEW 2025
AND/OR Logic PRO
Combine multiple conditions with flexible logic:
- AND Logic: All conditions must be true (strict matching)
- OR Logic: At least one condition must be true (flexible matching)
- Unlimited conditions: Add as many rules as needed
💡 Example: Hot Lead Detection
Notify sales team when lead score > 80 AND status = “New”:
- Condition 1: greater_than 80
- Condition 2: text_equals “New”
- Logic: AND
💡 Real-World Examples
📝 Example 1: Google Form Auto-Response
Goal: Send instant confirmation email to form respondents
Perfect for: Event registration, customer inquiries, job applications
- Sheet: Form Responses 1
- Range: A2:A (Timestamp column)
- Channel: Email (FREE)
- Recipient:
{C}(Email column) - Message:
Hi {B}, thanks for submitting! We'll contact you within 24h. - Condition: is_not_empty
🛒 Example 2: E-commerce Low Stock Alert PRO
Goal: Alert inventory team when products need restocking
Perfect for: Online stores, Shopify sellers, dropshippers
- Sheet: Inventory
- Range: D2:D (Stock Quantity)
- Channel: Slack or Discord
- Message:
⚠️ LOW STOCK! Product: {B} | Current: {VALUE} units | SKU: {A} - Conditions (AND logic):
- less_than 10
- not_one_of: “Discontinued,Out of Season”
- Mode: First match only (prevent spam)
💰 Example 3: Freelancer Invoice Tracker PRO
Goal: Get notified when invoices are overdue
Perfect for: Freelancers, consultants, small agencies
Spreadsheet: A=Invoice#, B=Client, C=Amount, D=Due Date, E=Status
- Range: E2:E (Status column)
- Channel: Email + Discord
- Message:
💸 Invoice {A} OVERDUE! Client: {B} | Amount: ${C} | Due: {D} - Conditions (AND logic):
- text_equals “Unpaid”
- date_before TODAY
👥 Example 4: Team Task Assignment PRO
Goal: Auto-notify team members when assigned new tasks
Perfect for: Project managers, agile teams, remote workers
Spreadsheet: A=Task, B=Assignee Email, C=Status, D=Priority, E=Deadline
- Range: C2:C (Status column)
- Recipient:
{B}(Dynamic email from Assignee column) - Message:
📋 New Task: {A} | Priority: {D} | Deadline: {E} - Condition: one_of: “Assigned,In Progress,Review”
📊 Example 5: Personal Budget Alert
Goal: Get warned when monthly spending exceeds budget
Perfect for: Personal finance tracking, family budgets
- Sheet: Monthly Expenses
- Range: F2 (Total Spent cell)
- Channel: Discord (FREE) or Email
- Message:
⚠️ Budget Alert! Spent ${VALUE} this month. Budget: $3000 - Condition: greater_than 3000
- Mode: First match only
🔥 Example 6: Sales Hot Lead Alert PRO
Goal: Instantly notify sales team of high-value, qualified leads
Perfect for: Sales teams, CRM tracking, lead scoring systems
Spreadsheet: A=Lead Name, B=Email, C=Lead Score, D=Status, E=Budget
- Range: C2:C (Lead Score column)
- Channel: Microsoft Teams (PRO)
- Message:
🔥 HOT LEAD! {A} | Score: {C} | Budget: {E} | Contact: {B} - Conditions (AND logic):
- greater_than 80 (high score)
- text_equals “Qualified” (verified status)
❓ Frequently Asked Questions
Q: Why am I not receiving notifications?
Common solutions:
- Check trigger status: Menu THO Alerts → Check Status
- Setup trigger: If trigger is missing, go to THO Alerts → Setup Trigger (Required) and authorize permissions
- Verify condition: Test with simple rule first (e.g., “is_not_empty”)
- Check email spam folder for email notifications
- Verify webhook URLs: Must start with
https:// - Check monthly limit: Free tier: 550/month | Pro: 50,000/month
- Test your rule: Click “Test” button on any existing rule to send a test notification
Q: How many notifications can I send per month?
Free version: 550 notifications/month
Pro version: 50,000 notifications/month (90x more!)
Check your usage: THO Alerts menu → Usage Stats
Daily limit: Free: 100/day | Pro: 10,000/day
Q: Do notifications work when I’m offline?
Yes! Notifications trigger automatically when the spreadsheet is edited, even if you’re not online. The trigger runs on Google’s servers, not on your device.
Q: How do I upgrade to Pro?
Step 1: Click THO Alerts menu → Upgrade to Pro
Step 2: Complete payment ($99 one-time, lifetime license)
Step 3: Receive license key via email within 5 minutes
Step 4: Activate: THO Alerts → Activate License, paste your key, and click activate
✓ Instant activation | ✓ No monthly fees | ✓ Lifetime updates
Q: Does THO Alerts work with Google Forms?
Absolutely! Perfect for instant form response alerts.
Setup:
1. Open your Google Form
2. Go to Responses → View in Sheets (creates linked spreadsheet)
3. Install THO Alerts add-on in that spreadsheet
4. Create rule with condition is_not_empty on any column
5. Done! Get notified instantly when new responses arrive
Q: Can I test rules before they go live?
Yes! Two ways to test:
Method 1: Click “Test Connection” button when creating/editing a rule to verify your recipient/webhook works
Method 2: After saving a rule, go to Manage Rules tab and click “Test” button to send a real test notification with sample data
Q: What’s the difference between “Each match” and “First match” mode?
Each match (default): Send notification every time the cell value changes and matches your condition
First match: Send notification only ONCE when the cell first matches, then stop until the value changes. Perfect for preventing spam from repeated edits.
Example: Status column changes “Pending” → “Approved” → “Approved” (edited again)
• Each match: 2 notifications
• First match: 1 notification only
Q: How do I view notification history?
In Manage Rules tab, click the “History” button on any rule to see:
• All sent notifications (success/error status)
• Timestamp of each alert
• Cell reference and value that triggered it
• Error messages if delivery failed
📝 Logs are kept for the last 500 notifications per rule
Q: What channels are supported?
Free version: Email, Discord (2 channels)
Pro version (10 channels):
✓ Email
✓ Slack
✓ Discord
✓ Microsoft Teams
✓ Google Chat
✓ Telegram
✓ Lark Suite
✓ Zapier (connect to 5,000+ apps)
✓ Make (Integromat)
✓ n8n (self-hosted automation)
💬 Need Help?
We’re here to support you!
THOAlerts – Smart Notifications for Google Sheets
Version 1.0 Pro (2026) | Made with ❤️ by ThoDigitals
© 2026 ThoDigitals. All rights reserved.