> ## 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.

# RingCentral

> Connect your clients' RingCentral accounts to Triggr with a REST API app and a JWT credential for each account.

Triggr works with RingCentral extensions, phone numbers and account details, with the permissions of the user who created the JWT.

## Set up RingCentral

Repeat in each client's RingCentral account, or [use one app for every client](#use-one-app-for-every-client).

<Steps>
  <Step title="Create a REST API app">
    In the [Developer Console](https://developers.ringcentral.com), go to **Apps > Create App** and select REST API App. Name it `Triggr`, select JWT auth flow under Auth, add the scopes below, keep the app private and click Create. If Create App is disabled, ask the account's administrator for permission.

    | Triggr actions | App scope | JWT user's permission |
    | - | - | - |
    | Get Account Details | Read Accounts | `ReadCompanyInfo` |
    | Get Extension, List Extensions | Read Accounts | `ReadExtensions` |
    | List Account Phone Numbers, List Company Phone Numbers | Read Accounts | `ReadCompanyPhoneNumbers` |
    | Get Extension Phone Number List | Read Accounts | `ReadUserPhoneNumbers` |
    | Create Extension | Edit Accounts | `AddRemoveUsers` |
    | Update Extension | Edit Extensions | `EditUserInfo` or `EditUserCredentials` |
    | Assign Phone Number | Edit Accounts | `EditCompanyPhoneNumbers` |

    An action needs both the app scope and the permission in the JWT user's role; Super Admin covers every action.
  </Step>

  <Step title="Copy the Client ID and Client Secret">
    Open the app and copy its Client ID and Client Secret.
  </Step>

  <Step title="Create a JWT">
    Sign in as the user Triggr acts as, ideally a dedicated service user. Hover over your name, select **Credentials** and click Create JWT. Permit apps within your organisation, or Only specific apps of my choice with the app's Client ID. Click Create and copy the JWT.
  </Step>
</Steps>

See RingCentral's guides to [registering an app](https://developers.ringcentral.com/guide/getting-started/register-app), [configuring an app for JWT](https://developers.ringcentral.com/guide/authentication/jwt/config-app) and [creating a JWT](https://developers.ringcentral.com/guide/getting-started/create-credential).

### Use one app for every client

A private app only accepts JWTs from its own account. To use one app, make it public in your own account (RingCentral reviews public apps more closely) and, in each client's account, create the JWT with Only specific apps of my choice and your app's Client ID. See RingCentral's [JWT for public apps](https://developers.ringcentral.com/guide/authentication/jwt/jwt-for-public-apps) guide.

## Connect it in Triggr

<Steps>
  <Step title="Open the client's configuration">
    Go to **Integrations > Ring Central** and click **Configure** on the client's row on the Per-Client Configuration card, or on the Base Configuration card for workflows that don't run for a client.

    <Frame>
      <img src="https://mintcdn.com/triggr/nyuVXZ1rouDTTEvu/images/integrations-common/per-client-configuration.png?fit=max&auto=format&n=nyuVXZ1rouDTTEvu&q=85&s=11464b4946bea0b580c73330d9114a41" alt="The Per-Client Configuration card listing Acme Corp and Globex, each Not Configured with Admin Consent Not Required and a Configure button." width="2272" height="646" data-path="images/integrations-common/per-client-configuration.png" />
    </Frame>
  </Step>

  <Step title="Enter the app and JWT">
    Enter ClientID, ClientSecret and the full JwtToken, then click Save Configuration. There's no Authorize step.

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

Per-client integrations never fall back to the Base Configuration when a workflow runs for a client. In workflows, enter `~` as accountId so the same workflow works for every client; List Extensions returns each extension's `id`.

To replace a JWT, click Edit on the configuration, paste the new one into JwtToken and save, then revoke the old one.

## Troubleshooting

<AccordionGroup>
  <Accordion title="no Ring Central integration is configured for this client">
    Configure the client on the Per-Client Configuration card, then run the workflow again.
  </Accordion>

  <Accordion title="No access token in JWT Bearer response">
    Check ClientID and ClientSecret come from the same app, the app uses JWT auth flow, and the JWT is still valid and permits the app. A private app must be in the same account as the JWT.
  </Accordion>

  <Accordion title="CMN-401 or CMN-408">
    `CMN-401`: add the missing scope to the app. `CMN-408`: give the JWT's user a role with the named permission, or create the JWT as a user who has it.
  </Accordion>

  <Accordion title="429 errors">
    RingCentral limits requests per user and per app. Spread large workflows out or run them in smaller batches. See RingCentral's [rate limits](https://developers.ringcentral.com/guide/basics/rate-limits).
  </Accordion>
</AccordionGroup>


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