| name | repairshopr-rmm-alert |
| description | Manage RMM (Remote Monitoring and Management) alerts in RepairShopr |
| license | MIT |
| compatibility | opencode |
| metadata | {"audience":"technicians, system administrators","api":"GET /rmm_alerts, POST /rmm_alerts, GET /rmm_alerts/{id}, DELETE /rmm_alerts/{id}, POST /rmm_alerts/{id}/mute"} |
What I do
I manage RMM alerts that come from integrated RMM/ monitoring systems (like NinjaOne, etc.) into RepairShopr. I can list alerts, create manual alerts, view details, mute alerts temporarily, and clear/delete alerts.
When to use me
Use this when:
- Monitoring system alerts from integrated RMM tools
- Creating custom alerts (e.g., from custom scripts)
- Managing alert noise by muting recurring alerts
- Acknowledging or clearing resolved alerts
- Tracking asset health via alert history
How to use
Required API base URL:
VITE_REPAIRSHOPR_SUBDOMAIN
VITE_REPAIRSHOPR_API_KEY
Permissions:
- "RMM Alerts - List" for listing and viewing (Single-Customer Users own only)
- "RMM Alerts - Create" for creating
- "RMM Alerts - Clear/Manage" for muting
- "RMM Alerts - Delete" for clearing/deleting
List Alerts (GET /rmm_alerts)
Optional:
status (string) - Filter: "resolved", "all", "active" (default active)
page (integer) - Page number (25 results per page)
Create Alert (POST /rmm_alerts)
Optional fields:
customer_id (integer) - Associated customer/asset's customer
asset_id (integer) - Asset (computer/device) the alert is about
description (string) - Alert message/description
resolved (boolean) - Mark as resolved on create
status (string) - Alert status
properties (object) - Additional structured data
computer_name, check_id, formatted_output - Various RMM-specific fields
Get Alert (GET /rmm_alerts/{id})
Mute Alert (POST /rmm_alerts/{id}/mute)
id (integer) - Alert ID
Body: mute_for (string, required) - Duration: '1-hour', '1-day', '2-days', '1-week', '2-weeks', '1-month', 'forever'
Clear/Delete Alert (DELETE /rmm_alerts/{id})
Example call:
const alerts = await skill({ name: "repairshopr-rmm-alert" }, {
status: "active"
})
const alert = await skill({ name: "repairshopr-rmm-alert" }, {
asset_id: 123,
description: "High CPU usage detected (>95% for 10 minutes)",
properties: {
cpu_usage: 97.3,
threshold: 95,
duration_minutes: 10
}
})
await skill({ name: "repairshopr-rmm-alert" }, {
mute_for: "1-day"
}, { id: alert.alert.id, method: 'POST', endpoint: '/mute' })
await skill({ name: "repairshopr-rmm-alert" }, {},
{ id: alert.alert.id, method: 'DELETE', pathParams: { id: alert.. } }
)
Response includes:
- List:
rmm_alerts array with fields id, asset_id, customer_id, description, resolved, status, created_at, ticket_id (if linked)
- Create:
alert object with similar data
- Mute: simple success string/boolean
- Delete: success
Important
- Alerts are typically generated automatically by RMM integrations; use create sparingly for custom needs
mute_for helps reduce noise but alert will re-appear after mute period if still active
- Resolved alerts (
resolved: true) are separate from deleted/cleared alerts
- Alerts often link to
asset_id to identify the device
- Single-Customer Users only see their own alerts
Related skills
repairshopr-asset - Assets are the devices generating alerts
repairshopr-ticket-create - Convert alert into a service ticket
repairshopr-ticket - Link alerts to tickets