Getting your Confluence app ready for real users
Verdict. A private Atlassian OAuth app takes about 5 minutes and no review. Sharing it with customers is self-serve but needs vendor details, policy links and a personal data declaration. For an agent that stores or caches Confluence data, that declaration brings reporting obligations.
At a glance
The answer in one screen- Access type is set at creation. Pick Resource-level unless your agent truly needs every site.
- The personal data answer is almost always Yes for agents. Decide your caching and memory design before you share, and plan for the Personal data reporting API.
- Stopping sharing affects existing users. Share only when ready to support customers.
Prerequisites
What to have readyTo create and connect
- An Atlassian account; agreement to Atlassian's developer terms
- The Composio callback URL (up to 30 callback URLs allowed)
For approval (can take days)
- Vendor name, privacy policy URL, terms of service URL, support contact
- A personal data decision, and Personal data reporting API handling if Yes
App types
Which one is right for an agent product?OAuth 2.0 (3LO), not sharing
- Who can install
- Only you
- Review
- None
- Use it for
- Building and testing
OAuth 2.0 (3LO), sharing
- Who can install
- Anyone with your authorization URL
- Review
- None
- Use it for
- Agent products with customers
Forge app
- Who can install
- Installed into sites by admins
- Review
- Marketplace for distribution
- Use it for
- Apps that run inside Atlassian
Creation steps
Who does what, and how long it takes- YouSign in to developer.atlassian.com1 minConsole, My apps. A new Developer Space selector may appear.
- AgentCreate, OAuth 2.0 integration1 minName the app and choose Resource-level access.
- YouAgree to developer terms and create5 secThe page notes rotating refresh tokens are mandatory for new apps.
- AgentAdd the Confluence API and scopes2 minPermissions, Confluence API, Configure, Edit scopes. Choose classic or granular per the endpoints you call.
- AgentAdd OAuth 2.0 (3LO) and the callback1 minAuthorization page, then paste the Composio callback. The page then generates an authorization URL.
- YouFill distribution details and share15 minVendor name, policy links, support contact, personal data answer, then switch to Sharing.
- YouCopy credentials into Composio2 minFrom the app's Settings page.
In our test: about 5 minutes to a private app with scopes and callback. Sharing was not switched on (needs real policy URLs).
Scopes
What each permission costs youScopes are added per API (Confluence, Jira, User identity, Personal data reporting and more). Atlassian recommends no more than 50 scopes in total.
| Agent use case | Scopes | What it costs you |
|---|---|---|
| Search pages and spaces | search:confluence | Classic scope |
| Read content summaries | read:confluence-content.summaryread:confluence-space.summary | Classic scopes |
| Read full page bodies | read:confluence-content.all | Classic scope |
| Create and edit pages | write:confluence-content | Classic scope |
| Newer v2 endpoints | granular scopes (e.g. read:page:confluence) | Required by many newer endpoints |
| Keep refreshing without the user | offline_access | Needed for refresh tokens |
search:confluenceread:confluence-content.alloffline_accessChanging scopes later
- Edit scopes on the Permissions page; users must reauthorize to grant new ones.
- No review for OAuth apps.
Approval and distribution
Review, cost and renewalWhen you need it: No review to share an OAuth 2.0 app. Atlassian Marketplace listing is a separate path. Cost: None to share. Renewal: If you declared personal data: ongoing reporting through the Personal data reporting API.
What you submit
- Vendor and security details
- Personal data declaration
Common rejection reasons
- Not applicable for sharing
Before approval: what works and what's capped
Data use and compliance
Rules that shape agent design- Personal data declaration. Yes if you store personal data with account IDs or cache data longer than 24 hours.
- Personal data reporting. Apps that store personal data report the accounts they hold, so deleted or changed users can be handled.
Common blockers
Symptom, cause, fix| Symptom | Cause | Fix |
|---|---|---|
| 401 on newer Confluence endpoints | Only classic scopes added | Add the granular scopes the endpoint documents |
| Customers cannot authorize | Distribution still Not sharing | Provide vendor details and switch to Sharing |
| Refresh fails after working once | Rotating refresh token reused | Store the newest refresh token every time |
| Agent sees only one site | Resource-level access type | Expected; users connect each site, or use Account-level |
Sources
Where every claim comes from| Claim | Source |
|---|---|
| Rotating refresh tokens mandatory for new apps | Tested in our setup |
| Resource-level vs Account-level access type | Tested in our setup |
| Apps start private; sharing needs vendor details and personal data declaration | Tested in our setup |
| Classic vs granular warning | Tested in our setup |
| Composio managed Atlassian app | Not verified |
All sources
- Atlassian: OAuth 2.0 (3LO) apps developer.atlassian.com
- Atlassian developer console developer.atlassian.com