Source profileQuality 96/100

WYRE-AI/msp-claude-plugins/msp-claude-plugins/kaseya/datto-rmm/skills/alerts/SKILL.md

Datto RMM Alerts

Datto RMM alert structure, priorities, and the 25+ alert context types (antivirus_ctx, eventlog_ctx, perf_disk_usage_ctx, ransomware_ctx, and more), each with its own type-specific fields. Covers alert resolution workflows and context-specific triage guidance.

Source repository stars
42
Declared platforms
0
Static risk flags
1
Last source update
2026-08-28
Source checked
2026-08-28

Decision brief

What it does: where it fits

Datto RMM alert structure, priorities, and the 25+ alert context types (antivirus_ctx, eventlog_ctx, perf_disk_usage_ctx, ransomware_ctx, and more), each with its own type-specific fields. Covers alert resolution workflows and context-specific triage guidance.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/kaseya/datto-rmm/skills/alerts"
    Safe inspection promptEditorial

    Inspect the Agent Skill "Datto RMM Alerts" from https://github.com/WYRE-AI/msp-claude-plugins/blob/5005f73ba2f52cd299f58aa6bb79f4e70ae87103/msp-claude-plugins/kaseya/datto-rmm/skills/alerts/SKILL.md at commit 5005f73ba2f52cd299f58aa6bb79f4e70ae87103. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Anti-triggers

      A SOC-confirmed threat rather than a monitor firing —

      A SOC-confirmed threat rather than a monitor firing —Backup failures — appliance and SaaS backup raise alerts on theirVSA alarms — Kaseya's other RMM raises its own alarm objects; use
    2. 02

      Key Concepts

      Every alert has: - alertUid - Unique identifier for the alert - alertType - Category of alert (Device Offline, Monitor, etc.) - priority - Severity level (Critical, High, Moderate, Low, Information) - alertContext - Type-specific data with @class discriminator - timestamp - When…

      alertUid - Unique identifier for the alertalertType - Category of alert (Device Offline, Monitor, etc.)priority - Severity level (Critical, High, Moderate, Low, Information)
    3. 03

      Alert Structure

      Every alert has: - alertUid - Unique identifier for the alert - alertType - Category of alert (Device Offline, Monitor, etc.) - priority - Severity level (Critical, High, Moderate, Low, Information) - alertContext - Type-specific data with @class discriminator - timestamp - When…

      alertUid - Unique identifier for the alertalertType - Category of alert (Device Offline, Monitor, etc.)priority - Severity level (Critical, High, Moderate, Low, Information)
    4. 04

      Alert Priorities

      Review the “Alert Priorities” section in the pinned source before continuing.

      Review and apply the “Alert Priorities” source section.
    5. 05

      Alert States

      Review the “Alert States” section in the pinned source before continuing.

      Review and apply the “Alert States” source section.

    Permission review

    Static risk signals and limitations

    Network access

    medium · line 178

    The documentation includes network, browsing, or remote request actions.

    const alerts = await client.request('/api/v2/alerts/open');

    Network access

    medium · line 282

    The documentation includes network, browsing, or remote request actions.

    await client.request(`/api/v2/alert/${alertUid}/resolve`, {

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score96/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars42SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    WYRE-AI/msp-claude-plugins
    Skill path
    msp-claude-plugins/kaseya/datto-rmm/skills/alerts/SKILL.md
    Commit
    5005f73ba2f52cd299f58aa6bb79f4e70ae87103
    License
    Apache-2.0
    Collected
    2026-08-28
    Default branch
    main
    View the original SKILL.md

    Datto RMM Alert Management

    Overview

    Alerts are the primary notification mechanism in Datto RMM. They're generated by monitors when conditions are met - disk space low, service stopped, CPU high, etc. Each alert contains context-specific data based on the monitor type. This skill covers alert handling, the 25+ context types, and resolution workflows.

    Anti-triggers

    • A SOC-confirmed threat rather than a monitor firingransomware_ctx and antivirus_ctx alerts are monitor output, not analyst verdicts; use rocketcyber-incidents.
    • Backup failures — appliance and SaaS backup raise alerts on their own surfaces; use datto-bcdr-api-patterns or unitrends-api-patterns.
    • VSA alarms — Kaseya's other RMM raises its own alarm objects; use kaseya-vsa-api-patterns.
    • An alert raised by a different RMM — every RMM here emits objects called alerts with their own severity words; only the enrolled agent disambiguates. Use atera-alerts, ninjaone-alerts, superops-alerts, or connectwise-automate-alerts.
    • A signal that pages a human — incident platforms also call their inbound events alerts, but those route to a responder rather than resolving on the device; use pagerduty-alerts or rootly-alerts.

    Key Concepts

    Alert Structure

    Every alert has:

    • alertUid - Unique identifier for the alert
    • alertType - Category of alert (Device Offline, Monitor, etc.)
    • priority - Severity level (Critical, High, Moderate, Low, Information)
    • alertContext - Type-specific data with @class discriminator
    • timestamp - When the alert was raised (Unix milliseconds)

    Alert Priorities

    PriorityValueDescriptionTypical Response
    CriticalCriticalSevere impact, immediate action15 minutes
    HighHighSignificant issue1 hour
    ModerateModerateNotable but manageable4 hours
    LowLowMinor issue8 hours
    InformationInformationInformational onlyBest effort

    Alert States

    StateDescription
    openActive, requires attention
    resolvedClosed, issue addressed

    Field Reference

    Alert Object

    interface Alert {
      // Identifiers
      alertUid: string;              // Unique alert ID
      alertSourceInfo: AlertSource;  // Source of the alert
    
      // Device Info
      deviceUid: string;             // Device that generated alert
      hostname: string;              // Device hostname
    
      // Classification
      alertType: string;             // "Monitor", "Device Offline", etc.
      priority: AlertPriority;       // Critical, High, Moderate, Low, Information
      alertMessage: string;          // Human-readable message
    
      // Context (varies by @class)
      alertContext: AlertContext;    // Type-specific data
    
      // Timestamps (Unix milliseconds)
      timestamp: number;             // When alert was raised
      resolvedAt?: number;           // When resolved (if resolved)
    
      // Resolution
      resolved: boolean;
      resolvedBy?: string;           // Who resolved it
      resolution?: string;           // Resolution notes
    }
    
    type AlertPriority = 'Critical' | 'High' | 'Moderate' | 'Low' | 'Information';
    

    Alert Context Types

    Datto RMM has 25+ alert context types, identified by the @class field in alertContext. Each type carries fields specific to that monitor.

    @classMonitorKey Fields
    antivirus_ctxAntivirus status/detectionavProduct, avStatus, threatName, threatPath
    comp_script_ctxComponent script executioncomponentName, exitCode, stdout, stderr
    custom_snmp_ctxSNMP monitoringoid, value, threshold, comparison
    disk_health_ctxESXi disk healthdiskName, status, smartStatus, temperature
    eventlog_ctxWindows Event LoglogName, source, eventId, eventType, message
    fan_ctxESXi fan statusfanName, status, rpm
    fs_object_ctxFile/folder sizepath, size, threshold, isDirectory
    online_offline_status_ctxDevice online/offlinestatus, lastSeen, offlineDuration
    patch_ctxWindows patch statuspatchCount, criticalCount, rebootRequired
    perf_disk_usage_ctxDisk usage/spacedrive, usagePercent, freeSpace, usedSpace
    perf_mon_ctxWindows Performance Countercounter, instance, value, threshold
    perf_resource_usage_ctxCPU/Memory usageresource, usagePercent, duration, processName
    ping_ctxNetwork pinghost, latency, packetLoss, status
    process_resource_usage_ctxProcess resource usageprocessName, pid, cpuUsage, memoryUsage
    process_status_ctxProcess running/stoppedprocessName, status, expectedStatus
    psu_ctxESXi power supplypsuName, status, wattage
    ransomware_ctxRansomware detectiondetectionType, path, action, fileCount
    sec_management_ctxWebroot/security managementproduct, status, threatCount, licenseExpiry
    srvc_resource_usage_ctxWindows Service resource usageserviceName, cpuUsage, memoryUsage
    srvc_status_ctxWindows Service statusserviceName, status, expectedStatus, startType
    sw_action_ctxSoftware install/removeaction, softwareName, version, publisher
    temperature_ctxESXi temperaturesensorName, temperature, threshold, status
    wmi_ctxWMI query monitoringquery, namespace, property, value

    See references/alert-contexts.md for the complete field definitions and example alerts for each context type.

    API Patterns

    Get All Open Alerts

    GET /api/v2/alerts/open
    Authorization: Bearer {token}
    

    Get Open Alerts for Site

    GET /api/v2/site/{siteUid}/alerts/open
    Authorization: Bearer {token}
    

    Get Open Alerts for Device

    GET /api/v2/device/{deviceUid}/alerts/open
    Authorization: Bearer {token}
    

    Get Resolved Alerts

    GET /api/v2/alerts/resolved?max=250
    Authorization: Bearer {token}
    

    Get Alerts Since Timestamp

    GET /api/v2/alerts/open?since=1707991200000
    Authorization: Bearer {token}
    

    Resolve an Alert

    POST /api/v2/alert/{alertUid}/resolve
    Authorization: Bearer {token}
    Content-Type: application/json
    
    {
      "resolution": "Cleared disk space by removing temp files"
    }
    

    Note: Muting alerts (PUT to /alert/{alertUid}/mute) is deprecated. Use resolve instead.

    Workflows

    Alert Triage by Priority

    async function triageAlerts(client) {
      const alerts = await client.request('/api/v2/alerts/open');
    
      const triaged = {
        critical: [],
        high: [],
        moderate: [],
        low: [],
        information: []
      };
    
      alerts.alerts.forEach(alert => {
        const bucket = alert.priority.toLowerCase();
        if (triaged[bucket]) {
          triaged[bucket].push(alert);
        }
      });
    
      return triaged;
    }
    

    Context-Aware Alert Handling

    function getAlertRecommendation(alert) {
      const ctx = alert.alertContext;
    
      switch (ctx['@class']) {
        case 'perf_disk_usage_ctx':
          return {
            severity: ctx.usagePercent >= 95 ? 'critical' : 'warning',
            action: 'Clear disk space or expand volume',
            steps: [
              'Run Disk Cleanup utility',
              'Clear temp files',
              'Check for large log files',
              'Consider expanding disk'
            ]
          };
    
        case 'srvc_status_ctx':
          return {
            severity: 'high',
            action: `Start the ${ctx.displayName} service`,
            steps: [
              `Run: net start "${ctx.serviceName}"`,
              'Check Event Log for failure reason',
              'Verify service account credentials',
              'Check dependencies'
            ]
          };
    
        case 'ransomware_ctx':
          return {
            severity: 'critical',
            action: 'IMMEDIATE: Isolate device and investigate',
            steps: [
              'Disconnect from network immediately',
              'Do NOT restart the device',
              'Contact security team',
              'Preserve evidence',
              'Check for lateral movement'
            ]
          };
    
        case 'online_offline_status_ctx':
          return {
            severity: ctx.offlineDuration > 60 ? 'high' : 'moderate',
            action: 'Verify device connectivity',
            steps: [
              'Ping device from network',
              'Check physical connectivity',
              'Verify no scheduled maintenance',
              'Contact on-site user if available'
            ]
          };
    
        default:
          return {
            severity: 'moderate',
            action: 'Review alert details',
            steps: ['Investigate alert context', 'Check device status']
          };
      }
    }
    

    See references/examples.md for batch alert resolution and alert summary report examples.

    Error Handling

    Common Alert API Errors

    ErrorStatusCauseResolution
    Alert not found404Invalid alertUidVerify alert exists
    Already resolved400Alert already closedCheck alert state first
    Permission denied403API restrictionsCheck API permissions

    Error Handling Pattern

    async function safeResolveAlert(client, alertUid, resolution) {
      try {
        await client.request(`/api/v2/alert/${alertUid}/resolve`, {
          method: 'POST',
          body: JSON.stringify({ resolution })
        });
        return { success: true };
      } catch (error) {
        if (error.status === 404) {
          return { success: false, reason: 'Alert not found - may already be resolved' };
        }
        if (error.status === 400) {
          return { success: false, reason: 'Alert already resolved' };
        }
        throw error;
      }
    }
    

    Best Practices

    1. Prioritize by severity - Handle Critical and High alerts first
    2. Use context data - Each @class has specific actionable fields
    3. Document resolutions - Include what was done and outcome
    4. Set up escalation - Auto-escalate stale high-priority alerts
    5. Monitor patterns - Repeated alerts may indicate larger issues
    6. Use site filtering - Scope alerts to relevant sites when possible
    7. Handle ransomware specially - Immediate isolation protocol
    8. Track resolution time - Measure alert-to-resolution duration
    9. Correlate alerts - Multiple alerts may share root cause
    10. Review resolved alerts - Learn from past incidents

    Alert Priority Matrix

    Context TypeTypical PriorityNotes
    ransomware_ctxCriticalAlways immediate action
    online_offline_status_ctx (server)HighBusiness impact
    perf_disk_usage_ctx (>95%)HighData loss risk
    srvc_status_ctx (critical service)HighService impact
    antivirus_ctx (threat detected)HighSecurity risk
    perf_resource_usage_ctxModeratePerformance impact
    patch_ctx (critical patches)ModerateSecurity debt
    eventlog_ctxVariesBased on event severity
    sw_action_ctxLowInformational

    Related Skills

    Frequently asked questions

    What to verify before installation and use

    What does the Datto RMM Alerts source document cover?

    Datto RMM alert structure, priorities, and the 25+ alert context types (antivirus_ctx, eventlog_ctx, perf_disk_usage_ctx, ransomware_ctx, and more), each with its own type-specific fields. Covers alert resolution workflows and context-specific triage guidance.

    How do I install Datto RMM Alerts?

    The source record exposes this install command: npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/kaseya/datto-rmm/skills/alerts". Inspect the command and pinned source before running it.

    Which permission-related actions were detected?

    Static rules flagged network in the source; the page lists the matching lines and excerpts.

    Alternatives

    Compare before choosing

    Computed 10045,960

    coreyhaines31/marketingskills

    ab-testing

    When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

    Computed 10029,236

    garrytan/gbrain

    bulk-ingestion

    End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.

    Computed 10025,136

    alirezarezvani/claude-skills

    app-store-optimization

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

    Computed 1005,277

    dotnet/skills

    migrate-vstest-to-mtp

    Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing