## Confluence integration Confluence is a team workspace and wiki platform by Atlassian for creating, organizing, and collaborating on documentation and knowledge bases. The Confluence integration with Frontegg allows your application to access and manage Confluence spaces, pages, and user data on behalf of your users. Prerequisites - An Atlassian account with access to the Atlassian Developer Console - Permission to create OAuth 2.0 apps in the Atlassian Developer Console ### Connect Confluence #### Step 1: Open the Atlassian Developer Console Go to [developer.atlassian.com/console/myapps](https://developer.atlassian.com/console/myapps/) and sign in with your Atlassian account. ![Atlassian Developer Console showing the list of existing apps](/assets/confluence-1.d3fdf8fef8eab2be5104554a475ece1e4cce7d23c8e7c4f89077be58b4d555b4.1ce25488.png) #### Step 2: Create a new OAuth 2.0 app Click **Create** and select **OAuth 2.0 integration** from the dropdown. ![Create dropdown with OAuth 2.0 integration option highlighted](/assets/confluence-2.4b7aab7bb96a6a6e3fb1cc500ca64839ec4e88357acca751870500dbc1507e4d.1ce25488.png) #### Step 3: Fill in the app details In the form that appears, enter the app name: - **Name**: `Frontegg Integration` ![Create a new OAuth 2.0 integration form with app name filled in](/assets/confluence-3.6efa1755b5156a9588a711ca4019e7d24fbcb3066ce9893a3aa732df12adb8ef.1ce25488.png) #### Step 4: Accept the developer terms and create the app Check **I agree to be bound by Atlassian's developer terms** and click **Create**. ![Create form with name entered and terms accepted](/assets/confluence-4.1ce84d7b592db688f48bfc28dd1840feb146d3f99260aae9df08a4b07c4dcdec.1ce25488.png) #### Step 5: View the app overview After creation, you are taken to the app overview page. This shows your app's details and navigation tabs. ![Frontegg Integration app overview page](/assets/confluence-5.d25ac8da2f18c554a162567b21d9ed505802364a9c76b78f23fff74451b0ee4b.1ce25488.png) #### Step 6: Copy your credentials Navigate to **Settings** to find your **Client ID** and **Secret**. ![App Settings page showing Client ID and Secret fields](/assets/confluence-6.58aa88e5f9706bf2025053fc7c22ca214f302fae9c3ebbb826c096c9af75753b.1ce25488.png) Save your Secret now Copy the Secret immediately and store it securely. You will need it when configuring the Frontegg portal. #### Step 7: Add the Confluence API permission Navigate to the **Permissions** tab. In the API list, find **Confluence API** and click **Add**. ![Permissions page with Confluence API row and Add button highlighted](/assets/confluence-7.15d89f3a2dc57a34ca08bc5a7eb22e754c17a6f73825a191457959ee9b3e3e30.1ce25488.png) #### Step 8: Configure Confluence API scopes After adding the Confluence API, click **Configure** next to it. On the scopes page, switch to the **Granular scopes** tab and click **Edit Scopes**. Use Granular scopes, not Classic scopes Frontegg's Confluence integration uses the Confluence v2 REST API, which only accepts **granular scopes**. Classic scopes (such as `read:confluence-content.all`) will not work with the v2 API. Make sure you are on the **Granular scopes** tab before selecting permissions. In the dialog, select the following scopes: | Scope | Description | | --- | --- | | `read:page:confluence` | View pages | | `write:page:confluence` | Create and update pages | | `delete:page:confluence` | Delete pages | | `read:hierarchical-content:confluence` | View page descendants and other hierarchical content | | `read:space:confluence` | View spaces | | `read:space-details:confluence` | View space details | | `write:space:confluence` | Create and update spaces | | `read:user:confluence` | View user details | | `read:group:confluence` | View groups and their members | | `read:label:confluence` | View labels associated with content or spaces | | `write:label:confluence` | Add and remove labels | | `read:configuration:confluence` | View Confluence settings | | `read:content-details:confluence` | View content details (required for v1 user endpoints) | Click **Save**. ![Edit Confluence API dialog with the 13 granular scopes selected](/assets/confluence-8.67af6707df48b21fbf72908d8b6464be7e801e35e6273fee74b52ea5955a6c3b.1ce25488.png) After saving, the scopes overview shows **Scopes Used: 13** with all 13 granular scopes listed. ![Confluence API scopes page showing 13 granular scopes configured](/assets/confluence-9.94cff1836f26fb12f13d330566e758b85e3a094a6164d9e0b416b76a043d5f0d.1ce25488.png) #### Step 9: Configure the callback URL Navigate to the **Authorization** tab and click **Add** next to **OAuth 2.0 (3LO)**. ![Authorization tab showing OAuth 2.0 (3LO) row with Add button highlighted](/assets/confluence-10.a1dfaeaa1fdaa076cc8e4af72fe43a2af52601fa84a851d1aef1ce0c2d498e5d.1ce25488.png) In the **Callback URLs** field, enter the following URL: ``` https://YOUR_MCP_GATEWAY_URL/integration-callback ``` ![Authorization page with Frontegg callback URLs entered in the Callback URLs field](/assets/confluence-11.93eef21696aaa62c3598780727d7a672cada9b587d3d80ac9041e453a034afa1.1ce25488.png) Click **Save changes**. ![Authorization page after saving, showing the saved callback URLs](/assets/confluence-12.c3c0decf05e8ee3d780ec485aaa637d7220a1b4bcfd301eccf7b6e50e576646f.1ce25488.png) ### Configure the Frontegg portal Once you have your **Client ID** and **Secret** from the Settings page, enter them in the Frontegg portal: 1. Open the **Frontegg portal** and navigate to [ENVIRONMENT] → Integrations → Confluence. 2. Enter the **Client ID** and **Secret** in the corresponding fields. 3. Click **Save**. Keep your credentials secure Never share or commit your Secret to version control. ### Additional resources - [Confluence Cloud REST API documentation](https://developer.atlassian.com/cloud/confluence/rest/v2/intro/) - [Atlassian OAuth 2.0 (3LO) guide for Confluence](https://developer.atlassian.com/cloud/confluence/oauth-2-authorization-code-grants-3lo-for-apps/) - [Atlassian Developer Console](https://developer.atlassian.com/console/myapps/) - [How to get your Redirect URL](/agen-for-work/connectors/redirect-url)