> ## Documentation Index
> Fetch the complete documentation index at: https://university.triggr-app.com/llms.txt
> Use this file to discover all available pages before exploring further.

# NinjaOne

> Connect NinjaOne to Triggr with an API Services (machine-to-machine) client app.

Triggr works with NinjaOne organisations, locations, devices, patches, scripts, users, tickets and documentation. Triggr connects to NinjaOne at `app.ninjarmm.com`.

## Set up NinjaOne

<Steps>
  <Step title="Add a client app">
    In NinjaOne, go to **Administration > Apps > API**, open Client App IDs and click Add. Set Application Platform to **API Services (machine-to-machine)** and Name to `Triggr`, and leave Redirect URIs empty.
  </Step>

  <Step title="Choose scopes and grant type">
    Under Scopes, tick Monitoring (read-only) and Management (changing devices and organisations, and running scripts); add Control only for remote access. Under Allowed Grant Types, tick **Client Credentials**.
  </Step>

  <Step title="Copy the credentials">
    Save the app and copy the client secret from the confirmation dialog, the only place NinjaOne shows it. Then copy the Client ID from Client App IDs.
  </Step>
</Steps>

See NinjaOne's [Register Machine-to-Machine Applications](https://app.ninjarmm.com/apidocs-beta/authorization/create-applications/machine-to-machine-apps).

## Connect it in Triggr

<Steps>
  <Step title="Open the integration">
    Go to **Integrations > NinjaOne 2.0** and click Configure on the Base Configuration card.

    <Frame>
      <img src="https://mintcdn.com/triggr/nyuVXZ1rouDTTEvu/images/integrations-common/base-configuration.png?fit=max&auto=format&n=nyuVXZ1rouDTTEvu&q=85&s=bb81acb082055015f91beda7b4876f35" alt="The Base Configuration card with Status Not Configured, Admin Consent Not Required and a Configure button." width="2272" height="330" data-path="images/integrations-common/base-configuration.png" />
    </Frame>
  </Step>

  <Step title="Enter the app">
    Enter the ClientID and ClientSecret, and the scopes you ticked in Scopes, in lower case and separated by spaces (for example `monitoring management`), then click Save Configuration.

    <Frame>
      <img src="https://mintcdn.com/triggr/nyuVXZ1rouDTTEvu/images/ninjaone/configure.png?fit=max&auto=format&n=nyuVXZ1rouDTTEvu&q=85&s=7b93793f331eb5b8ff5419a05d306fb1" alt="The NinjaOne 2.0 configuration window with ClientID, ClientSecret and Scopes fields, an Allow insecure TLS switch under Advanced, and a Save Configuration button." width="1344" height="1354" data-path="images/ninjaone/configure.png" />
    </Frame>
  </Step>
</Steps>

One app covers every NinjaOne organisation. Actions take the ID of the organisation, location or device they work on.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Every action fails">
    Often with `no access token in response`. Check ClientID and ClientSecret have no extra spaces, the app still has Client Credentials ticked, Scopes uses spaces (not commas) and only `monitoring`, `management` or `control`, and the app was created in the NinjaOne account you sign in to at `app.ninjarmm.com`.
  </Accordion>

  <Accordion title="Read actions work but changes fail">
    Tick Management on the app in NinjaOne, then add `management` to Scopes in Triggr.
  </Accordion>

  <Accordion title="The client secret was lost">
    Create a new client app, enter its details with Edit on the Base Configuration card, then delete the old app.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.