- PSA asset sync — every NinjaOne customer organization you map to a PSA company contributes its approved devices to that company’s Asset list in the PSA module. Updated every 4 hours.
- Compliance evidence sweep — for each mapped customer that has been promoted to a Regentra compliance workspace, five aggregate-only signals refresh every 6 hours: disk encryption posture, antivirus posture, patch SLA, backup activity, and device inventory. Each signal maps to multiple Internal Controls in the CCF catalog.
What you give Regentra
monitoring (read-only). Regentra
deliberately does not request management (write access) or control
(remote-control sessions) — both are out of scope for compliance evidence
collection.
Required permissions in NinjaOne
When you create the API Client:monitoring scope grants on that tenant.
Setup
The full step-by-step lives inline on the NinjaOne card in Settings → Integrations. The short version:Pick your region first
Create the API Client in NinjaOne
Copy the Client ID and Client Secret
Test before Save
Save
Mapping NinjaOne organizations to PSA companies
NinjaOne organizes its customer device fleets under “organizations” inside your account. Each NinjaOne organization binds to exactly one Regentra PSA company — or is explicitly marked “don’t sync” so it stays out of both PSA and compliance. After your first save, click Review organization mappings → on the integration card. Regentra pulls the organization list from NinjaOne and surfaces every customer org with:- The current mapping state (Pending review / Mapped / Ignored)
- A suggested PSA company if Regentra can match by exact name (case-insensitive)
- Map / Change (opens a panel to bind or create), and Don’t sync
- If Regentra found an exact-name match, a one-click Use <company name> button binds it immediately.
- Otherwise, click Map to open the panel: Bind to existing PSA company (pick from a dropdown, then Bind) or Or create a new PSA company (type a name, then Create) — creating reuses a PSA company with that name instead of duplicating it if one already exists.
- Don’t sync records the mapping as IGNORED so re-discovery doesn’t keep prompting you. Devices from that NinjaOne org never flow into Regentra.
PSA asset sync
Per-company sync
The PSA Company detail page (when bound to a NinjaOne org) exposes a Sync With NinjaOne button next to the existing Sync With M365 button. It triggers a sync scoped to just that one mapping so a single customer can be refreshed on demand without waiting for the next 4-hour sync.Alert webhook (optional) — real-time PSA tickets
Beyond the polling syncs above, NinjaOne can push device/condition alerts to Regentra in real time and have them land as PSA tickets, instead of waiting on the next scheduled sync.Copy the Webhook URL
Create a Webhook notification channel in NinjaOne
Attach the channel to Conditions
Verify it's live
Compliance evidence sweep
For every NinjaOne organization mapped to a PSA company that has been promoted to a Regentra compliance workspace, the evidence sweep collects five aggregate-only signals every 6 hours.What’s included in each signal
Aggregates only. Every signal carries counts, percentages, vendor distributions, and bucket counts — never hostnames, IPs, serial numbers, drive letters, or last-logged-on-user values. The Trust Center reads from the same signals; per-device identifiers would leak customer device inventory if the customer’s Trust Center is public. This is enforced by an automated test that scans every signal’s output against a PII deny list.How customer data stays separated
The evidence sweep runs in two stages so that data always lands in the right place:- A scheduled step reviews your active NinjaOne credentials, finds every mapping whose PSA company has been promoted to a compliance workspace, and queues one job per customer.
- A per-customer step securely retrieves your NinjaOne credential, pulls that customer’s data from NinjaOne, and writes signals into that customer’s own compliance workspace — never into your MSP account, and never into a different customer’s workspace. Each customer’s sweep runs independently, so many customers can be processed at the same time without their data mixing.
- Every credential lookup uses your MSP account.
- Every evidence write lands in the correct customer’s compliance workspace.
- Every audit log entry lands in the correct customer’s compliance workspace.
- The MSP account and each customer’s workspace are never conflated.
First-sync dry-run
The first compliance sweep after you connect NinjaOne collects signals but suppresses the auto-ticket bridge until that first sweep finishes successfully. This means: a 50-customer MSP turning NinjaOne on doesn’t wake up to 250 HIGH-priority tickets on day one if every customer happens to have failing antivirus or outstanding patches. After the first sweep completes, subsequent sweeps route findings to your PSA queue through the standard bridge.Internal Control mappings
Disconnecting NinjaOne
Disconnect from the integration card. Regentra:- Permanently deletes the stored credentials and marks the connection inactive.
- Retires every device record sourced from NinjaOne on your PSA account (records are preserved for historical traceability; they’re simply taken out of the active list).
- Writes an audit log entry on every customer compliance workspace
that the disconnect affects, so each customer’s auditor sees a
NINJAONE_DISCONNECTEDevent in their trail. - Leaves existing monitoring signals alone — they age out naturally after 7 days. The auditor needs to see “the integration was disconnected with N signals already collected” at the moment of disconnect; wiping them would erase that record.
- Leaves existing company mappings alone, so a future reconnect doesn’t force you to re-map every customer.
Rate limits and pagination
NinjaOne enforces per-tenant rate limits (1500 requests/hour sustained, 200/min burst). Regentra’s sync workers stay comfortably under that cap on every cadence we ship:- 4-hour PSA sync: one
/organizationslist + one/devices-detailedpage per mapped customer. - 6-hour compliance sweep: six endpoints per customer.
Troubleshooting
Test Connection returns 401 invalid_client
Test Connection returns 401 invalid_client
Test Connection succeeds but lists 0 organizations
Test Connection succeeds but lists 0 organizations
monitoring scope needs visibility on at least one customer org
to be useful.Mapping page says 'NinjaOne is not configured for any region yet'
Mapping page says 'NinjaOne is not configured for any region yet'
My customer isn't showing up in mappings even though they exist in NinjaOne
My customer isn't showing up in mappings even though they exist in NinjaOne
monitoring scope honors tenant-level permission scoping).Compliance signals aren't appearing for one customer
Compliance signals aren't appearing for one customer
First sync didn't create any tickets even though signals are failing
First sync didn't create any tickets even though signals are failing
What this integration does NOT do
- No remote control sessions. Regentra never requests the
controlscope, even if NinjaOne offers it. - No write-back to NinjaOne. Regentra never requests the
managementscope. Future read-write features (e.g., setting aregentra_compliancecustom field per device) would require an explicit opt-in toggle in the integration card. - No per-event device telemetry in the compliance evidence. The activity log is sampled only as aggregates for the backup-activity signal; individual device events are not persisted as evidence. (The optional alert webhook above is a separate path, feeding PSA tickets rather than compliance evidence.)