NinjaOne Integration
Deepser introduces a dedicated module for seamless integration with NinjaOne. The integration, through the additional configuration of a flow, enables the following functionalities:
- Download all Organizations listed in NinjaOne
- Download all Locations listed in NinjaOne
- Download all Devices listed in NinjaOne
- Download the latest Activities created in NinjaOne
- Receive new Activities created in NinjaOne in real-time
- Create or Update an Organization
- Create or Update a Location
- Create or Update a Device
Below is a summary of the available actions on the flow side regarding the integration:
Enable NinjaOne Integration on Deepser
To enable the integration module, navigate to Deepser’s menu in System > Configurations > Integrations – Configurations, select and enable NinjaOne, then Save.
Once the integration is enabled in the menu, you will be able to view the new item.
Organization
An “organization” in NinjaOne represents a logical division within the platform, designed to group devices, users, and configurations associated with a specific client, department, or any organizational unit.
Within Deepser, in the Integration > NinjaOne > Organization section, you will find the organizations created in NinjaOne and synchronized via our integration.
Below are the main fields provided and synchronized in Deepser:
FIELD | DEFINITION |
Organization Id | This refers to the unique identifier automatically assigned by NinjaOne to the organization. |
Name | This is the descriptive name of the organization. |
Description | In this field, you can provide a more detailed description of the organization. |
User Data | This field is intended to host additional data related to the organization, such as contact information, specific notes, or other customized metadata |
Node Approval Mode | This parameter defines the method by which devices (or “nodes”) are approved for inclusion within the organization. |
Tags | Tags are labels or keywords that can be assigned to the organization to facilitate classification, search, and grouping. |
Fields | This term generally refers to custom fields that can be associated with the organization. These fields allow for additional, tailored information to be stored and managed. |
With specific configurations, it is possible to link Organizations with other similar entities in Deepser, such as “Account” or “Company.”
Location
A location in NinjaOne represents a logical or physical grouping used to organize devices and resources within a specific area of an organization.
In Deepser, under the Integration > NinjaOne > Location section, you can find the locations that were created in NinjaOne and synchronized through our integration.
Below are the main fields provided and synchronized in Deepser:
FIELD | DEFINITION |
Location Id | This field represents the unique identifier of the location within the system. |
Organization | It indicates the organization to which the location belongs. |
Name | This is the descriptive name of the location. |
Address | It collects the physical address of the location (such as street, city, postal code, country, etc.). |
Description | In this field, you can include additional details and descriptive notes about the location. |
User Data | This field is designed to host additional and customized data. |
Tags | Tags are labels or keywords used to categorize the location. |
Fields | This term refers to the custom fields associated with the location, allowing for tailored information specific to the location to be stored and managed. |
With specific configurations, it is possible to link Locations with other similar entities in Deepser, such as “CI” (Configuration Items) of the “Location” class.
Device
A device in NinjaOne refers to any endpoint (physical or virtual) managed and monitored by the platform.
In Deepser, under the Integration > NinjaOne > Device section, you will find the devices created in NinjaOne and synchronized via our integration.
Below are the main fields provided and synchronized in Deepser:
FIELD | DEFINITION |
Device Id | Unique identifier assigned to each device within the system. |
Parent Device | This field indicates the ID of the “parent” device to which the current device belongs. |
Organization | Indicates the organization (logical division or client) the device is associated with. |
Address | Collects the physical address of the location (e.g., street, city, postal code, country, etc.). |
Location | Specifies the site or location (physical or logical) where the device is located. |
Device Type | Identifies the hardware type of the device. |
Node Class | Indicates a general classification of the device at the “node” level. |
Node Role | Specifies the operational role the device plays within the infrastructure. |
Role Policy | Represents the set of rules associated with the device’s role. |
Policy | Represents the series of configurations, rules, or automations applied to the device. |
Approval Status | Indicates the approval status of the device within the system. |
Offline | Displays the device’s connectivity status, such as whether the device is currently offline. |
Display Name | The name displayed in the NinjaOne user interface to identify the device. |
System Name | Usually represents the operating system name or internal asset name as recorded by the system. |
DNS Name | The domain name associated with the device, useful for network resolutions and DNS-level identification. |
Netbios Name | The NetBIOS name (typical in Windows environments) used to identify the device on the local network. |
Created | The date and time the device was registered. |
Last Contact | Indicates the last time the device communicated with the NinjaOne server. |
Last Update | The date and time of the last update to the device’s data or configuration. |
User Data | A field designed to host additional or customized data associated with the device. |
Tags | Tags or keywords assigned to the device. |
Fields | Reference to custom fields that can be associated with the device to extend the basic information. |
Maintenance Status | Indicates whether the device is currently under maintenance or scheduled for planned interventions. |
Maintenance Start | The start date and time of the scheduled maintenance window for the device. |
Maintenance End | The end date and time of the maintenance window, after which the device returns to a normal operational state. |
IP Addresses | List of IP addresses assigned to the device. |
MAC Addresses | List of MAC addresses associated with the device’s network interfaces. |
Public IP | The public IP address associated with the device. |
Notes | A field that contains annotations or comments related to the device. |
Disks | Information related to the device’s physical or virtual disks, including details like capacity, status, and configuration. |
Operating Systems | Indicates the operating system installed on the device. |
With specific configurations, it is possible to link Locations with other similar entities in Deepser, such as “CI” (Configuration Items) of the “Device” class.
Activity
An activity in NinjaOne represents an event logged in the system, such as the execution of a script, software update, remote action, status change, or error report.
Within Deepser, under the Integration > NinjaOne > Activity section, you can find activities created in NinjaOne and synchronized through our integration.
Here are the main fields provided and synchronized in Deepser:
FIELD | DEFINITION |
Activity Id | Unique identifier of the activity in the system. |
Device | The device on which the activity was performed. |
Activity Time | Date and time when the activity occurred. |
Severity | Severity of the activity, indicating the importance or urgency of the event. |
Priority | Priority assigned to the activity, useful for determining the order of management. |
Series Uid | Identifier of the series of related activities, useful for tracking operations composed of multiple steps. |
Activity Type | Type of activity, such as “Script Execution,” “Software Installation,” or “Remote Session.” |
Status Code | Numerical code representing the activity’s state, such as completed or failed. |
Status | Textual description of the activity’s state, e.g., “Success” or “Failed.” |
Activity Result | Result of the activity, providing details on the outcome. |
Source Config Uid | Identifier of the source configuration that generated the activity, such as a policy or a trigger. |
Source Name | Name of the source that originated the activity. |
Subject | Object or title of the activity, useful for quick identification. |
User | User who executed or initiated the activity. |
Message | Message associated with the activity, providing additional details or descriptions. |
Type | Category of the activity, such as “Automated” or “Manual.” |
Data | Additional data related to the activity, which may include specific parameters or detailed results. |
With specific configurations, it is possible to link Locations with other similar entities in Deepser, such as “Operations”.
Deepser – Connection and Client OAuth Configurations
To proceed with the integration setup, you need to create a new connection and an OAuth client.
Then, navigate to System > Integration > NinjaOne > Connection and click the “Add Connection” button. Let me know if you’d like further guidance on this!
The Connection Configuration screen will open:
The following information is required:
FIELD | DEFINITION |
Name | Set a custom name for the connection |
OAuth Client | Select the OAuth client to be used for the connection with NinjaOne. By clicking the “+” icon below, a window will open to create a new OAuth client. The fields related to this form are described in the next table. |
Status | To create a new OAuth Client, the following information will be required |
For the creation of a new OAuth Client, the following information will be required:
FIELD | DEFINITION |
Redirect Uri | OAuth Client URI generated by Deepser required by the NinjaOne app. The URI will be generated and displayed after the first creation of the file. |
Name | Set a custom name for the OAuth Client. |
Status | Field to enable or disable the OAuth client. |
Provider | Select “NinjaOne.” |
Domain | Select the domain of your “NinjaOne” instance. For installations in Europe, the standard domain is EMEA. |
Client ID | Enter the Client ID generated by the NinjaOne app. |
Client Secret | Enter the Client Secret generated by the NinjaOne app. |
The creation of the app in NinjaOne is described in the following paragraph.
NinjaOne – API Configuration
Su NinjaOne, navigare fino a Administration / Apps / API:
From the API screen, click “Add” and the following screen will open:
Select “Web (PHP, Java, .Net Core, etc.)” option.
Fill the form with the following information:
- The Redirect URI of Deepser’s OAuth Client.
- The Scopes needed.
- Authorization Code and Refresh Token as Allowed Grant Types.
Below is an example configuration:
By clicking the Save button in the upper right corner, NinjaOne will generate the Client Secret.
Copy this value and enter it in the Client Secret field of Deepser’s OAuth Client.
NOTE: Make sure to copy and save this value, as the Client Secret will no longer be available once you leave this page!
Click the Close button, and you will return to the Administration / Apps / API screen.
From there, copy the Client ID generated by NinjaOne and paste it into the Client ID field of Deepser’s OAuth Client.
Below is an example configuration of a Deepser OAuth Client:
Click the Validate button in the Deepser OAuth Client form.
In the screen that opens, click Authorize:
If the authentication returns the message “Client was successfully authorized”, the NinjaOne Client is correctly configured and ready to be used within a Connection.
Deepser – Download Data from NinjaOne
To retrieve all objects in NinjaOne and create them in Deepser, we will use a dedicated flow that handles the creation and/or updating of Organization, Location, Device, and Activity
NOTA: Generally, these types of flows are used only in the initial phase to establish a working foundation, but there is nothing preventing you from using this method to retrieve information from NinjaOne.
Let’s proceed with creating a new Flow:
- First, configure a trigger by setting the automatic execution of the flow once per day:
2. By clicking the “+” icon, proceed to configure a node to download all organizations via: Action > Integration > NinjaOne > Download Multiple > Organizations:
Once the action has been added, select the previously configured connection to NinjaOne:
3. Once the Organizations have been retrieved, we can proceed to iterate through them. Add a new node by clicking the “+” button, then select Logic > Foreach:
Select the collection of organizations created earlier (from the right-hand menu):
Finally, based on each Organization obtained through Foreach, retrieve the Locations and Devices associated with each Organization.
4. Additionally, it is possible to retrieve part of the Activities as a historical record. To do this, you need to iterate through the Devices:
And then retrieve the latest 200 Activities associated with each Device.
The complete flow will be as follows:
The flow will handle the creation and updating of objects retrieved from NinjaOne in Deepser, including Organizations, Locations, Devices, and Activities.
The example flow will automatically execute every day at 8:00 AM (this parameter can be modified in the Trigger settings).
You can manually run the flow by clicking the Run Now button in the Trigger section of the flow.
IMPORTANT NOTE 1: For the nodes in rows 1, 3, 4, and 6, ensure that the selected Connection is the one configured earlier.
IMPORTANT NOTE 2: Node 6 is used to retrieve the latest 200 Activities (alerts) generated for each Device. It is recommended to keep this node only for the first execution of the flow. Future Activities created in NinjaOne will also be created in Deepser through an additional flow. Alternatively, you may choose to remove this node (along with Node 5).
IMPORTANT NOTE 3: Enable the flow once it has been imported.