Dashboard
Total Devices
Enrolled in fleet
Online
Offline
Compliance
Policy adherence
Offline Duration Distribution
Device Manufacturers
Android / OS Version Distribution
Device Types
Anomalies
Detected fleet anomalies requiring attention
All clear!
No active anomalies detected in your fleet.
No anomalies in this category
Try selecting a different category or "All categories".
Ctrl+Enter to confirm
What it detects
Catches
Trigger
Recommended Action
| Device Name | Manufacturer | Model | Serial | IP Address | User | Last Connected | Group Path |
|---|---|---|---|---|---|---|---|
Archive
No archived anomalies yet.
| Name | Manufacturer | Model | Serial | IP Address | User | Last Connected | Group Path |
|---|---|---|---|---|---|---|---|
Settings
Configure AnomAlert connections and preferences
MCP Server Connection
Refresh Interval
AI-Powered Descriptions
When configured, AI will generate human-friendly anomaly descriptions and resolution advice.
Display Preferences
Primary accent color
Buttons, switches, and icons throughout the app
Button text color
Auto-set for readability; override if needed
Custom Logo
Upload a logo to display in the sidebar and on generated reports. Max 1 MB, any image format.
Anomaly Detectors
Toggle which built-in checks run during each collection cycle.
Catches
Threshold
Custom Anomaly Rules
Define simple threshold-based checks on any device field.
No custom rules defined yet.
How custom rules work
Each rule checks a device field against a value using a comparison operator. Devices that match are reported as an anomaly on the next collection run.
Use {count} in Title and Description to insert the number of affected devices.
Example — flag devices with very low storage:
Name: CRITICALLY_LOW_STORAGE · Field: Available Storage % · Operator: < · Value: 5 · Priority: critical
Title: {count} device(s) critically low on storage
Change Password
Alerts
Send notifications when anomalies are detected
Receivers
Custom SMTP tips
Port: Use 587 with STARTTLS (recommended) or 465 with implicit TLS (disable STARTTLS).
Username: Usually your full email address. Leave blank if your server allows unauthenticated relay.
From Email: Must match a sender address allowed on your SMTP server or relay policy.
STARTTLS: Upgrades the connection to TLS after connecting on port 587. Disable only for servers that don't support it.
How to create a Google App Password
- Go to myaccount.google.com → Security
- Under "How you sign in to Google", open 2-Step Verification and enable it if not already on
- Scroll to the bottom of that page and click App passwords
- Name it "AnomAlert" and click Create
- Copy the 16-character password shown — paste it into the App Password field
Gmail allows up to 500 messages/day via App Passwords.
Mail.Send permission and paste the credentials below.
Azure AD one-time setup
- Sign in to portal.azure.com → Azure Active Directory → App registrations → New registration. Name it "AnomAlert", leave other defaults, click Register.
- Open the new app → API permissions → Add a permission → Microsoft Graph → Application permissions. Search for Mail.Send, select it, click Add.
- Click "Grant admin consent for [your org]" — requires a Global Admin account.
- Go to Certificates & secrets → New client secret. Set an expiry, click Add, then copy the Value immediately (it won't be shown again).
- From the app's Overview page, copy the Directory (tenant) ID and Application (client) ID.
- The From Email must be a licensed mailbox in your tenant — the app sends on behalf of that address.
Creating a Teams Incoming Webhook
- Open the target Teams channel
- Click ··· → Connectors → Incoming Webhook → Configure
- Name it "AnomAlert", click Create
- Copy the generated URL and paste it below
Connectors can be disabled by a Teams admin — check your org's app policy if the option is missing.
Creating a Slack Incoming Webhook
- Go to api.slack.com/apps → Create New App → From scratch
- Under Features, click Incoming Webhooks and activate them
- Click Add New Webhook to Workspace, select a channel
- Copy the Webhook URL and paste it below
Alternatively, add Incoming Webhooks to an existing Slack app in your workspace.
Webhook payload
AnomAlert POSTs JSON with this shape:
{
"alert_name": "...",
"anomaly_count": 3,
"timestamp": "2025-…",
"anomalies": [{
"id", "type", "priority",
"title", "description",
"recommendation",
"device_count", "detected_at"
}]
}
GET method: payload is URL-encoded as a payload query parameter instead.
Headers: use JSON, e.g. {"Authorization":"Bearer token"} for authenticated endpoints.
Configured Alerts
No alerts configured yet.
Create an alert to start receiving notifications.
Add a receiver above first.
Send in selected months (fires once per matching month)
Send at the start of selected quarters (Q1=Jan, Q2=Apr, Q3=Jul, Q4=Oct)
Configured Reports
Scheduled HTML or PDF fleet reports sent via email
No reports configured yet.
Create a report to receive scheduled fleet summaries.
Add an email receiver below first.
Select months — fires once per matching calendar month
Select quarters — fires at the start of each selected quarter
Reports
Generate professional fleet anomaly reports as HTML or PDF
Executive Summary
For management & operations staff
A clean, non-technical overview of active fleet anomalies. Includes fleet health score, key metrics, and plain-language recommended actions — ideal for sharing with leadership.
Extended Technical Report
For IT engineers & administrators
A comprehensive technical report with full anomaly details, affected device tables, fleet distribution breakdowns, detector thresholds, and an appendix of all detector definitions.
Anomaly Detectors to Include
Choose which anomaly types to include in generated reports.