Skip to main content

About Confluence

Confluence is Atlassian’s cloud wiki and documentation product. The Serval Confluence integration connects one Atlassian Cloud site per connection - once connected, Serval mirrors your spaces, pages, and folders into its Knowledge Base and lets workflows act on Confluence with the permissions you grant. Only Confluence Cloud (sites ending in .atlassian.net) is supported; Confluence Server and Data Center are not. Authentication: Browser-based OAuth 2.0, with two paths - the built-in Sign in with Confluence (OAuth) flow (recommended) or a bring-your-own Atlassian OAuth 2.0 (3LO) app owned by your organization. Both paths use the same permission picker, and Serval refreshes tokens automatically. Data sync: Confluence is a native knowledge source. Serval mirrors spaces, pages, and folder hierarchy into the Knowledge Base in the background, including who-can-see-what permissions so agents only answer from pages the requester is allowed to see. Workflow API requests run on demand.

What the Confluence integration enables

Anything defined in the Confluence REST API can be accessed through Serval.

Get your credentials

Most teams need nothing from Atlassian ahead of time - the recommended path only asks you to sign in and approve access. Creating credentials is only required if your organization wants to use its own Atlassian OAuth app.

Connect in Serval

Verifying the connection

After connecting, run the integration’s health checks from the integration page:
  • Test Confluence Connection - confirms Serval can reach your site and authenticate by fetching a small sample of spaces.
    • Success: “Successfully connected to Confluence”
    • Failure: “Unable to connect to Confluence. Please verify your API credentials and permissions are correct.”
  • List Confluence Spaces - confirms the connection can list spaces.
    • Success: “Successfully listed spaces from Confluence (sample size: [number])”
    • Failure: “Unable to list spaces from Confluence. Please verify your API credentials have permission to view spaces.”
  • List Confluence Pages - confirms the connection can list current pages.
    • Success: “Successfully listed pages in Confluence (sample: [number])”
    • Failure: “Unable to search content in Confluence. Please verify your API credentials have permission to search and read content.”
All three checks only need read access to spaces and pages - they can pass even if the connection is missing the user, group, and restriction permissions that Knowledge Base sync uses to resolve page visibility. If health checks are green but synced answers ignore page restrictions or sync seems incomplete, reconnect and make sure the full Knowledge Base preset is checked.

Gotchas and troubleshooting

Serval matches the site you authorized in Atlassian against the subdomain you entered (your input is matched case-insensitively). If they don’t match, the connection fails with “target Confluence site ‘[subdomain].atlassian.net’ not found in accessible resources. Please ensure you have access to this site and selected it during authorization”. If your Atlassian account has no authorized sites at all, you’ll see “no accessible Confluence sites found”. And if no subdomain reaches the server, exactly one authorized site is required - otherwise the attempt fails with “multiple Confluence sites found ([number]). Please specify which site to connect by providing the subdomain”. Double-check the subdomain and make sure you select the right site on Atlassian’s consent screen.
Permissions are baked into the OAuth consent and stored on the connection. To add permissions (for example, enabling Write Pages after the fact), reconnect the integration - the picker pre-checks what’s already granted so you only add what’s missing. Atlassian’s consent screen is shown every time by design.
The permissions you select in Serval are requested verbatim from your app. If any selected permission isn’t granted on the Atlassian OAuth 2.0 (3LO) integration under Permissions, Atlassian rejects the authorization. As the setup form puts it: “Make sure your integration grants at least these scopes under Permissions.”
Atlassian requires an exact match between the callback URL registered on your app and the one Serval uses. Always copy the value from Serval’s form - “Register the exact URL Serval provides - a guessed URL will not match the OAuth flow.” If the form ever shows “Server returned an empty callback URL”, retry loading it before submitting.
Your app details are held securely for only 10 minutes between submitting the Serval form and completing Atlassian’s consent screen. Taking longer fails with “Invalid or expired OAuth state” - restart the connect flow and complete the consent promptly.
On reconnect, Serval prefills the Display name, Client ID, Confluence site, and permissions - but the Secret field is always blank and required. There is no keep-the-existing-secret option; have the Secret handy (or reveal it again in the Atlassian developer console) before reconnecting.
Both connection paths automatically request offline access so Atlassian issues a refresh token; without it, the connection would die when the one-hour access token expires. If a bring-your-own connection ends up without a refresh token, requests fail with “custom Confluence OAuth app access token expired and no refresh token available; reconnect required” - reconnect to fix it.
The connect form appends .atlassian.net to your subdomain, and all traffic goes through Atlassian’s cloud API. Confluence Server and Data Center deployments cannot be connected.
If your team has platform-managed OAuth disabled, Serval sends you directly to the bring-your-own-app form and the Back button to the selection screen is disabled. That’s expected - only the bring-your-own path is available in that configuration.
The Confluence API request action requires the request path to begin with a forward slash. If it doesn’t, the request fails with ‘Confluence API path must start with ”/” (e.g. “/wiki/api/v2/…”); got: [path]’. Have your workflow builder copy the full path exactly as it appears in Atlassian’s REST API documentation, including the leading slash - Serval adds the site-specific prefix for your connected site automatically.

Need help? Contact support@serval.com for assistance with your Confluence integration.