Confluence
Confluence is where a lot of teams already write decisions down - and where those write-ups go stale without anyone noticing. Align captures new decisions from comments and page publishes, and Discover scans what is already there.
Confluence is fully built and shipped as a container image, but connectors.confluence.enabled
is false in the chart's default values. On Align Cloud, ask us to enable it. Self-hosting, set
the flag - see Configuration.
What it does
- Capture from comments -
/alignin a page comment - Page-publish signal - publishing a decision-shaped page can raise a capture suggestion
- Discover - scan existing spaces, decision logs and RFC pages for past decisions
- Evidence linking - a decision keeps a link back to the page and comment it came from
Setup
- Settings → Integrations → Connect next to Confluence
- Sign in with Atlassian and select the site to grant access to
- Choose which spaces are in scope
On Align cloud, Align's OAuth app is used. Self-hosted, you register your own Atlassian app. See OAuth apps.
Capturing a decision
In a comment on any page in an opted-in space:
/align We're standardising on OpenAPI 3.1 for all public service contracts
Align reads the surrounding page context, synthesises a Decision Snapshot, and posts a reply comment on the same page linking to it - only when your Confluence connection was made through Jira (see OAuth scopes below). Connect Confluence on its own and the decision is still captured; the reply comment does not post, because that connection has no write scope for Confluence.
What Confluence cannot do
Two limits come from Atlassian's API, not from Align, and it is worth knowing which is which:
- No react-to-capture. Atlassian Cloud emits no comment-reaction webhook events, so the
📌 / 🔖 reaction path that works in Slack and Teams is not available here. Use
/align. - Page publish is treated as an explicit trigger, not an ambient signal - a publish is already a deliberate act by an author. It still requires per-space opt-in (checked against the page's real space, ALI-1077) and an explicit decision marker in the title/body to persist a decision (ALI-1078); only the decision-shape judgment call an LLM would otherwise make is skipped.
OAuth scopes
Connecting Confluence requests Confluence scopes only. This is the full list your consent screen shows:
| Scope | Why |
|---|---|
read:page:confluence | Read page content for context |
read:space:confluence | Enumerate spaces you have granted |
read:comment:confluence | Read the comment that triggered a capture |
read:confluence-content.all | Discover scans across granted content |
offline_access | Refresh the token without re-authorising |
Every one is a read. There is no write scope in this list, so a Confluence-only connection cannot create, edit, delete, or comment on Confluence content with your tokens - and it gives Align no access to your Jira either.
Jira and Confluence use the same Atlassian OAuth application, which is why the connectors page shows one Atlassian card.
Atlassian takes the scope list from each authorisation request, so a Confluence authorisation asks for the five scopes above and nothing more. What it does not do is let the two products hold different permissions at the same time. Atlassian's grant is per user per app, and its documentation is explicit that "the scopes in the new grant override the scopes in the existing grant".
So there are two cases, and they are worth stating separately:
- Confluence and not Jira. The grant is the five read scopes above. Align has no access to
your Jira, and cannot post an
/alignreply comment. - Both products. Connecting the Atlassian card authorises through Jira, because that is the
one request that covers both in a single consent. You are approving
Jira's read scope list, which since ALI-1800 holds no write
scope. The credential Align stores for Confluence is that same authorisation. The Confluence
comment scope,
write:comment:confluence, is added only when you switch on the Confluence comments feature, so a tenant using both products can post a comment only after that one re-consent.
So Align can only write a Confluence comment - the /align reply - when your connection came
through Jira and the Confluence comments feature is on. A Confluence-only connection never requests a Confluence write scope, and Align
checks the actual granted scope before every reply, not just which button you clicked.
A refreshed token keeps the scopes it was originally granted, so an existing connection keeps whatever it was granted until it is re-authorised.
Evidence captured
- Page link and title
- Space key and name
- Comment link, where the capture came from a comment
- Author and timestamp