Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Confluence

Scalekit connector
Open markdown

The Confluence connector lets your AI agent act in each user's Confluence account. Each user signs in to Confluence once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 147 tools.

Tools
147
What they doRead · write · destructive
103 · 27 · 17103 read27 write17 destructive
Users sign in with
OAuth app
Scalekit's or your own

What you can do

  • Search and read content: search with Confluence Query Language and fetch pages, blog posts, and attachments
  • Create and edit pages: create, update, retitle, and delete pages and blog posts in any space
  • Comment on content: add, edit, resolve, and delete footer and inline comments and their replies
  • Organize spaces: create spaces, browse their pages, and create folders, whiteboards, and databases
  • Work with labels and tasks: list labels, find content by label, and mark tasks complete or incomplete
  • Track versions: view the version history of pages, blog posts, attachments, and comments

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Confluence connection

    In AgentKit > Connections, create a Confluence connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Confluence, so you don't need to register an OAuth app. To show your own app on the consent screen, use your own credentials instead.

    Use your own OAuth app

    Register your Scalekit environment with the Confluence connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:

    1. Set up auth redirects

      • In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Confluence and click Create. Copy the redirect URI. It looks like https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.

        Copy redirect URI from Scalekit dashboard

      • In the Atlassian Developer Console, open your app and go to Authorization → OAuth 2.0 (3LO) → Configure.

      • Paste the copied URI into the Callback URL field and click Save changes.

        Add callback URL in Atlassian Developer Console

    2. Get client credentials

      In the Atlassian Developer Console, open your app and go to Settings:

      • Client ID — listed under Client ID
      • Client Secret — listed under Secret
    3. Add credentials in Scalekit

      • In Scalekit dashboard, go to AgentKit > Connections and open the connection you created.

      • Enter your credentials:

        Add credentials for Confluence in Scalekit dashboard

      • Click Save.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'confluence'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Confluence:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'confluence_attachments_list',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • confluence_access_by_email_checkCheck site access for a list of emails.Read-only

    Check Access By Email

    Check site access for a list of emails. Returns the subset of emails from the input list that do NOT currently have access to the Confluence site. Requires permission to access the Confluence site.

    Inputs

    emailsarrayrequired
    JSON array of email addresses to check for site access
  • confluence_attachment_comments_getRetrieve footer comments for a specific Confluence attachment.Read-only

    Get Attachment Comments

    Retrieve footer comments for a specific Confluence attachment. Returns paginated comment results including author, content, creation time, and reply counts. Supports cursor-based pagination and optional body format, and can retrieve comments for a specific attachment version.

    Inputs

    idstringrequired
    The ID of the attachment for which comments should be returned
    body_formatstring
    The content format type to be returned in the body field of the responseone of storageatlas_doc_format
    cursorstring
    Cursor token for pagination, returned in the previous response as _links.next
    limitinteger
    Maximum number of comments to return per page (default 25, max 250)default 25
    sortstring
    Sort order for comments (e.g. created-date, -created-date, modified-date, -modified-date)
    versioninteger
    Version number of the attachment to retrieve comments for. If not provided, retrieves comments for the latest version.
  • confluence_attachment_getRetrieve a specific Confluence attachment by its ID.Read-only

    Get Attachment

    Retrieve a specific Confluence attachment by its ID. Returns metadata including filename, media type, file size, download URL, and optionally labels, content properties, operations, versions, and collaborators. Use the Get Attachments tool if you don't know the attachment ID.

    Inputs

    idstringrequired
    The ID of the attachment to retrieve
    include_collaboratorsboolean
    Set to true to include collaborators on the attachmentdefault false
    include_labelsboolean
    Set to true to include labels associated with this attachmentdefault false
    include_operationsboolean
    Set to true to include operations associated with this attachmentdefault false
    include_propertiesboolean
    Set to true to include content properties associated with this attachmentdefault false
    include_versionboolean
    Set to false to exclude the current version details from the responsedefault true
    include_versionsboolean
    Set to true to include all versions associated with this attachmentdefault false
    versioninteger
    Specific version number of the attachment to retrieve (defaults to latest)
  • confluence_attachment_labels_getRetrieve all labels attached to a specific Confluence attachment.Read-only

    Get Attachment Labels

    Retrieve all labels attached to a specific Confluence attachment. Labels can be filtered by prefix (e.g. global, my, team, system). Returns a paginated list of label names and prefixes. Only labels the caller has permission to view are returned.

    Inputs

    idstringrequired
    The ID of the attachment whose labels to retrieve
    cursorstring
    Cursor token for pagination, returned in the previous response as _links.next
    limitinteger
    Maximum number of labels to return per page (default 25, max 250)default 25
    prefixstring
    Filter labels by prefix (e.g. my, team, global, system)one of myteamglobalsystem
    sortstring
    Sort order for labels (e.g. created-date, -created-date, id, -id, name, -name)
  • confluence_attachment_thumbnail_getDownload an attachment's thumbnail image by attachment ID.Read-only

    Get Attachment Thumbnail

    Download an attachment's thumbnail image by attachment ID. Redirects to a URL that serves the thumbnail's binary data. Optionally control the thumbnail dimensions or retrieve a previous version. Requires permission to view the attachment's container.

    Inputs

    idstringrequired
    The ID of the attachment whose thumbnail is to be returned
    heightinteger
    Allows you to define the thumbnail height
    versioninteger
    Allows you to retrieve a previously published version. Specify the previous version's number to retrieve its details
    widthinteger
    Allows you to define the thumbnail width
  • confluence_attachment_version_getRetrieve the version details for a specific version of a Confluence attachment.Read-only

    Get Attachment Version Details

    Retrieve the version details for a specific version of a Confluence attachment. Returns metadata about that version, including author and modification date. Use the Get Attachment Versions tool to list available version numbers first.

    Inputs

    attachment_idstringrequired
    The ID of the attachment for which version details should be returned
    version_numberintegerrequired
    The version number of the attachment to be returned
  • confluence_attachment_versions_getRetrieve the version history of a specific Confluence attachment.Read-only

    Get Attachment Versions

    Retrieve the version history of a specific Confluence attachment. Returns a paginated list of versions including version numbers, authors, and modification dates. Use the Get Attachment Version Details tool to fetch full details for a single version.

    Inputs

    idstringrequired
    The ID of the attachment whose versions to retrieve
    cursorstring
    Cursor token for pagination, returned in the previous response as _links.next
    limitinteger
    Maximum number of versions to return per page (default 25, max 250)default 25
    sortstring
    Sort order for versions (e.g. modified-date, -modified-date)one of modified-date-modified-date
  • confluence_attachments_listList all attachments across the Confluence instance.Read-only

    List Attachments

    List all attachments across the Confluence instance. Returns a paginated collection of attachments with metadata including filename, media type, file size, and download URL. Supports filtering by status, media type, or filename and cursor-based pagination.

    Inputs

    cursorstring
    Cursor token for pagination, returned in the previous response as _links.next
    filenamestring
    Filter attachments by exact filename
    limitinteger
    Maximum number of attachments to return per page (default 50, max 250)default 50
    media_typestring
    Filter attachments by MIME media type (e.g. image/png, application/pdf)
    sortstring
    Sort order for attachments (e.g. created-date, -created-date, modified-date, -modified-date)
    statusarray
    Filter attachments by status (current, archived, trashed). By default current and archived are returned.

Workflows

Proxy API call

Don’t worry about the Confluence cloud ID in the path. Scalekit automatically resolves {{cloud_id}} from the connected account’s configuration. For example, a request with path="/wiki/rest/api/user/current" will be sent to https://api.atlassian.com/ex/confluence/a1b2c3d4-e5f6-7890-abcd-ef1234567890/wiki/rest/api/user/current automatically.

const result = await actions.request({
connectionName: 'confluence',
identifier: 'user_123',
path: '/wiki/rest/api/user/current',
method: 'GET',
});
console.log(result);
Execute a tool
const result = await actions.executeTool({
connector: 'confluence',
identifier: 'user_123',
toolName: 'confluence_space_list',
toolInput: {},
});
console.log(result);