> For the complete documentation index, see [llms.txt](https://docs.rewst.help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rewst.help/rewst-documentation/documentation/integrations/integration-guides/ninjaone-integration-setup.md).

# NinjaOne integration

{% hint style="info" %}
If you’re new to integrations in Rewst, read through our introductory integration documentation [here](https://docs.rewst.help/documentation/integrations).
{% endhint %}

## What does the NinjaOne integration do?

Our NinjaOne integration provides users with a powerful combination of documentation, remote monitoring, and management capabilities. Seamlessly access and manage NinjaOne within Rewst, monitor and troubleshoot devices, deploy software, and perform remote tasks more effectively. Use this integration to centralize your IT documentation and RMM workflows, ensuring a comprehensive and streamlined approach to IT management within the Rewst platform.

## Set up the NinjaOne integration

### Set up steps in NinjaOne

1. Navigate to **Administration > Apps > API > Add Client App**.
2. Choose **Web** from the **Application platform** drop-down selector.
3. Enter the **Name** for the app as desired, for example `Rewst` .
4. Add the following URL to the **Redirect URIs** field:  `https://app.rewst.ai/api/oauth/callback` .
5. Check off all your desired **Scopes**. Choosing all scopes will give Rewst robust access.
6. Check off **Client credentials** and **Refresh token** under **Allowed grant types**.
7. Click **Add**.
8. Copy the values in the **Client ID** and **Client secret** fields of the dialog that appears, and store them somewhere secure. You'll need them for further setup steps in Rewst. Note that once you navigate away from this dialog, you won't be able to view these values again.

### Set up steps in Rewst

1. Navigate to **Integrations** in the left side menu of your Rewst platform.
2. In the Integrations page, search for the `NinjaOne` integration.
3. Click on the integration tile to launch the configuration setup dialog.
4. Choose from either Production or Demo Mode for the setup of your integration:
   1. **Production**: Connect with real credentials for live data
   2. **Demo Mode**: Explore the integration with simulated mock responsesc
5. Click **Next: Configure and Authenticate**.
6. Select **+ Create New Credential from the Credential** drop-down selector.&#x20;
7. Enter the information copied from NinjaOne into the relevant fields:
   1. **Client ID**
   2. **Client Secret**
8. Update the value in the **Token URL** field to the following: `https://app.ninjarmm.com/ws/oauth/token`.
9. Note that if you chose limited scopes when setting up your NinjaOne app, you'll need to choose a test action that falls within these scopes. Failing to match scopes to action will result in a 403 error.
10. Click **Save Credential**.
11. Click **Authorize**.&#x20;
12. Return to the Rewst platform.
13. Click **Next: Confirm**.
14. Click **Install Integration**. The integration will now appear in the top Connected section of your Integrations page.
15. Click on the installed integration. Scroll down to the Org Mappings section of the configuration page and complete organization mapping as needed.&#x20;

## Use custom PowerShell scripts with your RMM integration

This brand of RMM allows PowerShell scripts to be passed via API. The RMM runs your script on an endpoint, and Rewst has no way to see the result, so the script has to POST back to a Rewst URL. PowerShell only runs on the RMM's side, never inside Rewst. To report the script back to Rewst, you'll need to add a wait for [webhook callback node](https://docs.rewst.help/rewst-documentation/documentation/integrations/integration-guides/pages/27ztelCxRCWn8lmMEtvh#wait-for-webhook-tasks.wait_for_webhook). This will generate a unique callback URL and pause until an external system calls it or the timeout expires.

If using custom scripts, you'll need to add this to bottom of your existing script to ensure the call back to Rewst is made. The `$resumeUrl` / `$resumeToken` are on the node's URL Ready output, and the workflow passes both into the RMM script as parameters.

```
$postData = $PS_Results | ConvertTo-Json
Invoke-RestMethod -Method 'Post' -Uri $resumeUrl -Body $postData `
  -ContentType 'application/json; charset=utf-8' `
  -Headers @{ 'X-Rewst-Token' = $resumeToken }
```

Timeout is required and bounded: 60 seconds minimum, 604800 maximum, which is 7 days. You can control the response your script sees. The `responseStatus` defaults to 200, and there's an optional `responseBody`. This is useful if the RMM cares what came back.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rewst.help/rewst-documentation/documentation/integrations/integration-guides/ninjaone-integration-setup.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
