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

# Connect RingCentral with OAuth 2.0 (Client Credentials) – StackOne Hub

> Link a RingCentral account in the StackOne Hub using OAuth 2.0 (Client Credentials). End-user guide to authorize the integration and start using RingCentral actions.

> [!WARNING]
>
> A JWT credential acts as the RingCentral user who created it, with that user's permissions. RingCentral recommends creating it from a dedicated service user, so the connection keeps working when an employee's account is disabled.

Select Actions to adjust the guideSome actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.

Select all
Clear

ActionScope(s)

Loading actions...No actions match your search.

Dynamic Guide URL

Copy URL

Scopes Selected

<pre role="textbox" aria-readonly="true" tabIndex="0" />

Separator

Copy scopes

## Create a RingCentral application for JWT

This connection exchanges a JWT credential for an access token through a REST API app in the RingCentral Developer Console. Creating the app and the credential needs a RingCentral developer account or role.

**1. Sign in to the Developer Console**

Sign in to the [RingCentral Developer Console](https://developers.ringcentral.com/my-account.html).

<ul>
  <li>If you do not have access to the Developer Console, ask your account administrator for access.</li>
</ul>

**2. Create the app**

Go to **Apps** and click **Create App**.

<ul>
  <li>Under **What type of app are you creating?**, select **REST API App** and click **Next**.</li>
  <li>In the app's authentication settings, select **JWT auth flow**.</li>
</ul>

**3. Select permissions**

Enables actions: Add BYOD Devices, Add Chat To Favorites, Add Opt-In/Out Numbers, Archive Team, Calls Aggregation Data, Calls Timeline Data, Cancel RingOut Call, Create Data Export Task, Create Extension, Create Fax Message, Create Message Store Report, Create Multiple User Extensions, Create Task, Create Team, Delete Conversation, Delete Message, Delete User Call Records, Delete User Extensions, Delete User Profile Image, Drop Call Session, Enable Automatic Location Updates For Users, Get Agent's Call Queue Presence, Get Call Queue Presence, Get Call Session Status, Get Company Directory Entries, Get Contacts Upload Task, Get Data Export Task, Get Emergency Map Configuration Task, Get Event, Get Extension, Get Extension Update Task Status, Get Message Store Configuration, Get Message Store Report Task, Get Message(s), Get RingOut Call Status, Get Unified Presence, Get User Presence Status, Get User Profile Image, Get User Template, Get Video Meeting, List A2P SMS Statuses, List Call Queues, List Chat Tasks, List Company Active Calls, List Company User Roles, List Data Export Tasks, List Extension Devices, List Extensions, List Favorite Chats, List Favorite Contacts, List Messages, List Opted Out Numbers, List Teams, List User Active Calls, List User Administered Sites, List User Assigned Roles, List User Call Records, List User Events, List User Templates, List Video Meetings, Make CallOut, Make RingOut Call, Patch Message(s), Search Company Directory Entries, Send A2P SMS, Send MMS, Send SMS, Send/Resend Activation Email, Send/Resend Welcome Email, Start Conference Call Session, Unarchive Team, Update Agent's Call Queue Presence, Update Call Queue Presence, Update Favorite Contact List, Update Message Store Configuration, Update Message(s), Update Multiple Extensions, Update Unified Presence, Update User Administered Sites, Update User Assigned Roles, Update User Call Queues, Update User Presence Status, Update User Profile Image, Upload Multiple User Contacts, Upload User Profile Image

Under **Security**, add the permission for every action you intend to use.

<ul>
  <li>The JWT flow always grants the permissions selected on the app.</li>
  <li>The connection test needs no permissions, so a missing one only shows up later as a permission error from that action.</li>
  <li>Select **This app is private and will only be callable using credentials from the same RingCentral account**, then create the app.</li>
</ul>

<ul>
  <li>
    A2PSMS
  </li>

  <li>
    Analytics
  </li>

  <li>
    CallControl
  </li>

  <li>
    Contacts
  </li>

  <li>
    EditAccounts
  </li>

  <li>
    EditCallLog
  </li>

  <li>
    EditExtensions
  </li>

  <li>
    EditMessages
  </li>

  <li>
    EditPresence
  </li>

  <li>
    Faxes
  </li>

  <li>
    Glip
  </li>

  <li>
    ReadAccounts
  </li>

  <li>
    ReadCallLog
  </li>

  <li>
    ReadContacts
  </li>

  <li>
    ReadMessages
  </li>

  <li>
    ReadPresence
  </li>

  <li>
    RingOut
  </li>

  <li>
    RoleManagement
  </li>

  <li>
    SMS
  </li>

  <li>
    TeamMessaging
  </li>

  <li>
    Video
  </li>
</ul>

**4. Copy the app credentials**

On the app's dashboard, copy the **Client ID** and **Client Secret** across.

## Create a JWT credential

JWT credentials belong to users, not to apps. The user who creates the credential decides what the connection is allowed to do.

**1. Open Credentials**

In the Developer Console, hover over your name in the upper right-hand corner and select **Credentials**.

**2. Create the JWT**

Click **Create JWT** and configure the credential.

<ul>
  <li>To limit the credential to this integration, check **Only specific apps of my choice** under **What apps are permitted to use this credential?**, paste the app's Client ID and click **Add app**.</li>
  <li>Click **Create**.</li>
</ul>

**3. Copy the JWT**

Copy the **JWT Credential** across.

## Troubleshooting

Common issues and how to resolve them.

**1. Check a connection that fails when linking the account**

RingCentral did not accept the app credentials or the JWT credential.

<ul>
  <li>Check that the Client ID and Client Secret both come from the app you created.</li>
  <li>Check that the JWT was copied in full and has not been revoked or expired.</li>
  <li>If the JWT is restricted to specific apps, check that the app's Client ID is in its list of authorized apps.</li>
  <li>Check that the app has **JWT auth flow** selected in its authentication settings.</li>
</ul>

**2. Check an action that fails with a permission error**

The RingCentral app does not have the permission that action needs, or the user who created the JWT is not allowed to perform it.

<ul>
  <li>Add the permission under the app's Security settings in the Developer Console.</li>
  <li>Or create the JWT from a user who has the required access.</li>
</ul>

## Link the Account

**1. Connect**

<ul>
  <li>Click **Connect**.</li>
  <li>If applicable, the provider will redirect you to a sign-in or authorization page. Complete the provider's authorization flow.</li>
  <li>Once authorization is successful, you will see a confirmation popup.</li>
</ul>

**2. Use Actions**

Connect an AI platform to the linked account's actions. See [AI Platforms](https://docs.stackone.com/ai-platforms/overview.md).

Other ways to call actions are listed in [Protocols & SDKs](https://docs.stackone.com/connect/protocols-and-sdks.md).


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