Skip to main content
This guide walks you through connecting your NinjaOne instance to MSPortal.ai. Setup runs on the NinjaOne connection page, where you connect, choose data, match organizations to companies, match locations and import devices inline.
Software synchronization collects inventory for imported devices in mapped companies. Screenshots use MSPortal Demo inventory.

Overview

The NinjaOne integration syncs your organizations, locations, and devices into MSPortal, allowing you to:
  • Import and manage devices from NinjaOne
  • Map NinjaOne organizations to your MSPortal companies
  • Map NinjaOne locations to your company locations for accurate site-level tracking
  • Keep device and installed-software inventory synchronized automatically with daily syncs
  • Track device status, backup usage, and ownership details
  • View NinjaOne devices in reports and compliance tracking

Prerequisites

Before you begin, ensure you have:
  • Active NinjaOne account with administrative access
  • MSPortal.ai account with integration management permissions
  • Companies already set up in MSPortal (from your PSA integration or manually created)
The NinjaOne integration maps organizations to existing companies in MSPortal. Import your companies from your PSA integration first, or create them manually before setting up NinjaOne.
This guide covers NinjaOne RMM devices. NinjaOne Ticketing is a separate connection. See Configure NinjaOne Ticketing Integration.

Part 1: Generate API Credentials in NinjaOne

Before connecting to MSPortal, you need to create API credentials in NinjaOne.
1

Access the NinjaOne Dashboard

Log into your NinjaOne portal and navigate to Administration from the left sidebar.
2

Navigate to API Settings

Go to Administration > Apps > API. You’ll see three tabs at the top of the page:
  • OAuth Tokens
  • Client App IDs
  • Legacy
Select the Client App IDs tab. Do not use the Legacy tab. Credentials created under Legacy will fail the connection test with a Client app not exist error, because MSPortal uses the modern Client Credentials OAuth flow which only works with apps created under Client App IDs.
3

Create a New API Application

On the Client App IDs tab, click Add to create a new API application.
4

Configure the Application

Fill in the following settings:
Some NinjaOne instances require a Redirect URI even for Machine-to-Machine apps. If the field is mandatory, enter https://app.msportal.ai. It is not used by the Client Credentials flow but satisfies the form validation.
Only check Client Credentials. Do not select Authorization Code, Password, Refresh Token, or any other grant type. Enabling additional grant types can cause NinjaOne to reject the token request and the connection test will fail.
Copy both the Client ID and Client Secret immediately after saving. The Client Secret cannot be retrieved once you close the dialog.
5

Note Your Region

Identify which NinjaOne region your account uses. This is visible in your NinjaOne portal URL:
Check your browser address bar when logged into NinjaOne to identify your region.

Part 2: Set Up NinjaOne in MSPortal

The Setup guide rail on the connection page lists the tasks: Connect, Choose data, Import or match companies, Locations (optional), Import devices and Review.

Connect

1

Open the connection

In MSPortal, go to Settings > Integrations, open the Directory tab, find NinjaOne, and choose Connect. To manage an established setup, open the existing connection from the Active tab instead.
2

Select Your Region

Choose your NinjaOne region from the Region list:
  • United States
  • Europe
  • Oceania
  • Canada
  • Custom URL (for non-standard NinjaOne instances)
If you choose Custom URL, enter the HTTPS address of your NinjaOne instance in NinjaOne URL, such as https://your-instance.ninjarmm.com.
If you’re unsure which region you’re on, check your NinjaOne portal URL. For example, if you log in at eu.ninjarmm.com, select Europe.
3

Enter API Credentials

Fill in the following fields:Credentials are stored in the vault and never shown again.
4

Test Connection

Choose Test connection to verify your credentials.If the connection fails:
  • Verify your Client ID and Client Secret are copied correctly (no extra spaces)
  • Confirm you selected the correct region
  • Ensure the API application is set to Client Credentials grant type
  • Check that the application platform is API Services (Machine-to-Machine)
5

Save

Once the connection test passes, choose Save and continue. This saves the connection and starts discovery of your NinjaOne organizations. A successful test alone does not save the connection.

Choose data

Open Choose data to choose what to sync from NinjaOne. Changes save as you make them, and turning a dataset on starts its first sync. Leave Software on to collect installed applications for imported devices. It defaults on. Turning Software off removes this connection’s installed-software data from MSPortal after cleanup completes. It does not uninstall applications or remove inventory supplied by another connection. Turn it back on to collect the inventory again. Company mapping is still required. Software uses the device’s mapped company; enabling it does not import an unmapped organization’s devices.

Import or match companies

Open Import or match companies to match your NinjaOne organizations to MSPortal companies. The workspace is titled Import or match NinjaOne organizations. Only devices from matched organizations are available for import.
1

Wait for discovery

After you save the connection, MSPortal begins syncing your organizations from NinjaOne. This may take a few minutes depending on the number of organizations. If the list is empty, wait a few minutes or start a sync from the empty list.
2

Review suggestions

The Import, Suggested, Matched and Ignored views show your progress. Open Suggested to see each suggestion with its confidence score. Choose Accept on a suggestion, or Change to pick a different company. Suggestions are not saved until you accept them.To accept every suggestion at 90% confidence or more at once, choose Accept N strong matches, untick any pair you want to check yourself, and confirm.
3

Match the remaining organizations

In the Import view, pick the correct MSPortal company for an organization from Choose company….
If a company does not exist yet, choose Import company to create it from the NinjaOne organization. To create several at once, choose Import companies, select records from the current page or all pages, and confirm. An existing company with the same name is matched instead of duplicated.
4

Ignore or unmatch (optional)

Choose Ignore for an organization you never want to match, and Restore to bring it back. To remove a saved match, choose Remove match.
Every accept, import, ignore and removal saves immediately. Saved matches determine which company receives NinjaOne data.
You must match at least one organization before importing devices. Devices from unmatched organizations show Match company first and cannot be imported.

Locations

Open Locations to match your NinjaOne locations to your company locations. The workspace is titled Match NinjaOne locations to your locations. This preserves your organizational hierarchy from NinjaOne and ensures devices are assigned to the correct site within each company.
This task is optional. If your organization does not use locations in NinjaOne or you do not need location-level tracking, choose Skip and continue to Import devices. You can return to it later.
  • Locations appear only for organizations you have already matched.
  • Accept a suggestion, or choose one of the company’s locations from Choose location…. Suggestions are based on the same name, the same street address or a similar name.
  • Choose Accept N suggested to accept every suggestion at once.
  • If the company has no matching location, choose Create location to create one from the NinjaOne location and match them.
Every change saves immediately.
Location mapping is most useful when your NinjaOne locations correspond to physical sites that are also tracked in your PSA. This keeps device site assignments consistent across both systems.

Import devices

Open Import devices to match device types and import devices from NinjaOne into your MSPortal asset inventory. Every change saves immediately.
1

Match device types

Under Match device types, each NinjaOne type (the device node class, such as WINDOWS_WORKSTATION, WINDOWS_SERVER, MAC or LINUX_WORKSTATION) shows its device count. Choose the MSPortal device type it becomes when imported.
  • Match all suggested accepts every suggested device type.
  • Match the rest with AI suggests device types for the types still unmatched.
2

Turn on Auto-import (optional)

Turn on Auto-import for device types you want imported automatically. New devices of these types are imported without manual intervention after each sync. Auto-import needs a device type match first.
3

Ignore a type (optional)

Choose Ignore for device types you never want to import (for example NAS devices, printers or network appliances). Unimported devices of an ignored type are hidden from the staged devices and pending counts, and new devices of that type are ignored automatically. Choose Restore to bring the type back.
4

Import staged devices

Staged devices lists the devices NinjaOne sent that are waiting to be imported, with their company, manufacturer, model, OS and status.
  • Choose Import all matched to import every device whose type is matched.
  • Or select devices and choose Import N selected.
  • To hide devices you never want to import, select them and choose Ignore N selected.
See Import Devices for the shared controls. Check the import result and the resulting Devices records.

Review

Open Review and choose Finish setup once the required tasks are complete. You can return to Import devices at any time. Finishing setup does not mean every background sync or device import has finished.

What Gets Synced


Review installed software

After devices are imported, software synchronization is queued separately and also runs daily. Wait for that work to finish before checking inventory. Failed reads preserve the last known inventory; a device missing from a snapshot is not proof that all its applications were removed. MSP staff with device-read access and software inventory enabled can open Devices > Software when Asio, Datto RMM, or NinjaOne is connected. Use the company selector to narrow the fleet. In an individual device, Software appears only when its installed inventory is available. Company users do not receive these Software destinations.
Device Software tab with installed applications, versions, and lifecycle status

Installed applications in an MSPortal Demo device's Software tab.

See understand device details for tab availability and filtering, and Sync Schedules for cadence.

Sync Schedule

Syncs run automatically on a daily schedule:
Device syncs may take a few minutes depending on the size of your environment. You can also start a sync at any time with Run sync on the connection page, then All data or one dataset. A scheduled time does not guarantee a successful run; check Sync activity for results.

Managing Your Integration

After setup, open the NinjaOne connection from Settings > Integrations:
  • Setup guide: Return to any task, such as Import or match companies, Locations or Import devices, to change matches or import more devices.
  • Overview and Sync activity: Inspect connection status, last syncs and errors.
  • Run sync: Start a fresh sync of All data or one dataset.
  • More actions › Rename: Rename the connection.
  • More actions › Disconnect…: Remove the connection. This removes the stored credentials, the matches between NinjaOne organizations and your companies, and the data synced from NinjaOne. It does not revoke the API application in NinjaOne.

Updating or retesting credentials

On an existing connection, the Region (and any custom URL) stays fixed. To check or replace the saved credentials:
  1. Open Connect.
  2. To retest, leave the masked Secret unchanged and choose Test connection.
  3. To replace credentials, enter the new Access Key ID and Secret. Changing the Access Key ID requires its matching secret.
  4. Choose Test connection, then Save changes. Testing alone does not save replacements.

Troubleshooting

Cause: The API credentials were created under the Legacy tab in NinjaOne instead of the Client App IDs tab. Legacy credentials use an older authentication flow that MSPortal does not support.Solution:
  1. Log into NinjaOne and go to Administration > Apps > API
  2. Click the Client App IDs tab (not Legacy)
  3. Click Add and create a new application with:
    • Application Platform: API Services (Machine-to-Machine)
    • Grant Type: Client Credentials
    • Scopes: monitoring
  4. Copy the new Client ID and Client Secret into Connect in MSPortal
  5. Choose Test connection again
Causes:
  • Incorrect Client ID or Client Secret
  • Wrong region selected
  • API application not configured as Machine-to-Machine
  • Client Credentials grant type not selected
  • Missing monitoring scope
  • Expired or revoked credentials
Solutions:
  1. Verify your Client ID and Client Secret are copied exactly (no extra spaces)
  2. Confirm you selected the correct region matching your NinjaOne portal URL
  3. Check that the API application in NinjaOne uses API Services (Machine-to-Machine) platform
  4. Ensure the grant type is set to Client Credentials
  5. Confirm the monitoring scope is enabled on the app
  6. Generate new API credentials in NinjaOne if needed
Causes:
  • Initial sync still in progress
  • API credentials lack organization read permissions
Solutions:
  1. Wait a few minutes for the initial sync to complete
  2. Start a sync from the empty list, or choose Run sync on the connection page
  3. Verify your API application has the necessary permissions in NinjaOne
  4. Avoid creating another connection; check Sync activity for errors instead
Cause: Matches save immediately, so a missing match was usually removed or changed by a later action.Solution: Reopen Import or match companies, check the Matched view, and match the correct company again if needed.
Causes:
  • No organizations have been matched to companies
  • Device sync still in progress
  • Organizations don’t have any devices
  • The device types are ignored
Solutions:
  1. Match at least one organization to a company in Import or match companies
  2. Wait for the device sync to complete (may take a few minutes)
  3. Choose Run sync to start a fresh sync
  4. Check for ignored types under Match device types
Causes:
  • Large number of devices across many organizations
  • NinjaOne API rate limits
Solutions:
  1. This is expected behavior for large environments. The sync processes devices in batches to respect rate limits.
  2. The daily sync runs overnight so it completes before business hours
  3. No action is needed; the sync will complete automatically
Causes:
  • Device type not matched
  • Organization match was removed
Solutions:
  1. Ensure every device type has a device type under Match device types
  2. Verify the organization is still matched to a company (devices without one show Match company first)
  3. Check for error messages in the import results
Causes:
  • Auto-import not turned on for the device type
  • Device type not matched
  • Organization not matched to a company
Solutions:
  1. Turn on Auto-import for the device type
  2. Ensure the device type has a device type match
  3. Verify the device’s organization is matched to a company
Causes:
  • The parent organization is not matched yet
  • NinjaOne organizations don’t have locations defined
  • Location sync has not completed yet
Solutions:
  1. Match the organization in Import or match companies first
  2. Verify that locations are configured in NinjaOne for your organizations
  3. Wait for the sync to complete and check again
  4. Location matching is optional. You can skip this task if you don’t use locations.
Check the last successful sync in Overview and Sync activity, and any connection errors. A scheduled time does not guarantee a successful run.

Frequently asked questions

No. For a new connection, complete the successful test and then choose Save and continue. For an existing connection, choose Save changes after testing replacement credentials.
No. Device discovery, saved matches and inventory imports have separate results. Check Import devices and the resulting inventory.

Best Practices

Map Organizations First

Always match your NinjaOne organizations to companies before importing devices. Devices from unmatched organizations can’t be imported.

Accept Strong Matches

Start with Accept N strong matches for organizations, then adjust any incorrect matches. It saves significant time for large environments.

Turn On Auto-import

For device types you always want imported (like workstations and servers), turn on Auto-import to reduce manual work going forward.

Ignore Unwanted Types

Use Ignore to hide device types you never manage (NAS, printers, etc.). This keeps your pending import counts clean and accurate.

Match Suggested, Then AI

Use Match all suggested for device types first, then Match the rest with AI for any remaining unmatched NinjaOne types.

Schedule Around Syncs

Device syncs run daily at 3:15 AM UTC, so device data is refreshed before business hours. You can choose Run sync at any time if you need fresher data.

Security and Privacy

  • Credential Storage: Your NinjaOne Client ID and Client Secret are encrypted using vault storage and never exposed in logs or responses
  • Data Isolation: All synced data is tenant-isolated and only visible to your organization
  • Read-Only Access: MSPortal only reads data from NinjaOne; it does not modify your NinjaOne configuration or device settings

Need Help?

For assistance with the NinjaOne integration, contact support@msportal.ai.