.png)
ConnectWise RMM Integration Guide
ConnectWise RMM integrates with enterprise systems through REST APIs and OAuth-based application authentication for monitoring, inventory, alerting, and operational automation.
ConnectWise RMM integration options at a glance
ConnectWise RMM provides a REST API for accessing Companies, Sites, Devices, Alerts, Scripts, Users, and supported operational actions. OAuth 2.0 application authentication is the expected current approach, with tenant permissions and scopes controlling access. A universal webhook model, dedicated bulk API, general attachment API, GraphQL API, and SOAP interface were not confirmed, so scheduled polling, pagination, incremental filters, and bounded concurrency are important for synchronization. Martini can consume the REST API, securely manage credentials, orchestrate scheduled workflows, map RMM data to downstream systems, expose normalized APIs, and apply idempotency, retry, validation, and tenant-isolation rules.
Common ConnectWise RMM integration patterns
Common ConnectWise RMM data objects used in integrations
Authentication and security considerations
OAuth and application permissions
ConnectWise RMM integrations should use the OAuth-based application authentication documented for the RMM API. Application registration, client credentials, scopes, tenant authorization, and service-account permissions must be confirmed for the relevant environment.
Tenant-aware access
MSP environments require careful preservation of partner, Company, Site, and Device relationships. Martini workflows should prevent data from one customer organization from being routed to another customer's systems.
Secrets and operational actions
- Keep OAuth credentials and tenant configuration in secure environment configuration.
- Use least-privilege scopes and permissions.
- Validate eligibility and approval before invoking scripts or disruptive remediation actions.
- Record the initiating system, reason, request identifier, result, and failure details for operational actions.
Operational considerations for ConnectWise RMM integrations
Pagination and rate limits
Assume list endpoints require pagination unless the endpoint documentation states otherwise. Use bounded concurrency, request limits confirmed for the tenant, and exponential backoff for transient failures.
Synchronization and idempotency
Store a durable cursor or high-water mark outside the workflow execution context. Use overlapping windows where appropriate, prevent overlapping scheduled runs, and use stable Company, Site, Device, Alert, and action identifiers to avoid duplicates.
Alert lifecycle and schema changes
Alerts may be created, updated, acknowledged, resolved, or reopened. Downstream systems should preserve lifecycle state rather than creating a new incident for every poll result. Treat response fields as versioned contracts, preserve unknown fields where practical, and test changes to severity, operating-system, and site-assignment fields.
Error handling and testing
- Separate authentication, permission, validation, rate-limit, temporary service, and missing-object failures.
- Retry only transient failures and route persistent errors to an operational queue or monitoring process.
- Test initial loads, incremental synchronization, deleted objects, duplicate alerts, and tenant isolation.
Why use Martini instead of scripts or point-to-point integrations?
Orchestrated integration logic
Martini centralizes REST API calls, scheduled synchronization, enrichment, mapping, business rules, and downstream delivery in maintainable workflows rather than scattering logic across scripts.
Reusable and controlled APIs
Martini can expose normalized APIs for internal consumers while encapsulating ConnectWise RMM OAuth handling, pagination, tenant context, and provider-specific response structures.
Reliability and operations
Durable cursors, idempotency, bounded concurrency, retry handling, validation, monitoring, and explicit remediation controls provide a stronger operational model than unmanaged point-to-point scripts.