Sapilon becomes publicly available on 1 December 2026: 42 days to go. The core goes open source the same day →

Confluence integration

In short

Search, read, create and update pages. Connect it on the Integrations page; your app then calls Confluence through Sapilon without ever holding an Atlassian credential.

Lets your app list spaces, search with CQL, read page trees and create or update pages on a Confluence Cloud site, with an Atlassian API token.

The app acts as the account the token belongs to and sees only what that account can see.

Connecting

On the Integrations page choose Connect on Confluence and fill in:

  • Site name — The part before .atlassian.net in your Confluence address.
  • Account email — The email of the Atlassian account the token belongs to. Use a shared service account for anything long-lived.
  • API token — id.atlassian.com/manage-profile/security/api-tokens → Create API token.

Sapilon checks the key with the provider before it saves it, and stores it encrypted; it is never shown again.

  • Confluence Cloud only; Confluence Data Center is not supported.

What your app can do

Only these requests are available; anything else is refused.

  • GET /spaces
  • GET /spaces/*/pages
  • GET|POST /pages
  • GET|PUT /pages/*
  • GET /pages/*/children
  • GET /search

How the agent uses it

Use integrations.request('confluence', …); paths are relative to https://<site>.atlassian.net/wiki/api/v2, except /search (the v1 CQL search, routed for you).

  • GET /spaces — Example: { method: 'GET', path: '/spaces', query: { limit: '50' } }. GET /spaces/{id}/pages — pages in a space.
  • GET /search — CQL. Example: { method: 'GET', path: '/search', query: { cql: 'type = page AND text ~ "onboarding"' } }.
  • GET /pages/{id} — Example: { method: 'GET', path: '/pages/123', query: { 'body-format': 'storage' } }. GET /pages/{id}/children — child pages.
  • POST /pages — create. Example: { method: 'POST', path: '/pages', body: { spaceId: '42', status: 'current', title: 'Runbook', body: { representation: 'storage', value: '<p>Steps…</p>' } } }.
  • PUT /pages/{id} — update; send the next version.number. Example: { method: 'PUT', path: '/pages/123', body: { id: '123', status: 'current', title: 'Runbook', body: { representation: 'storage', value: '<p>New</p>' }, version: { number: 3 } } }.

Deleting is not allowed.

More from Atlassian: https://developer.atlassian.com/cloud/confluence/rest/v2/intro/

Last updated .

Was this page helpful?