Confluence
ドキュメント作成ツール
Confluence
概要
Confluenceはアトラシアン社が開発したエンタープライズ向けwikiプラットフォームです。Jira完全連携、チーム協働機能、プロジェクト文書化を統合し、組織全体のナレッジ管理を最適化します。
詳細
Confluence(コンフルエンス)は2004年にAtlassian社によって開発され、企業向けコラボレーションwikiのパイオニアとして成長してきました。Webベースのプラットフォームにより、ドキュメント作成、ナレッジ共有、プロジェクト管理を統合的に提供します。Jiraとのネイティブ統合により、プロジェクト管理とドキュメント作成のワークフローを完全に連携させることができます。リアルタイム協働編集機能により、複数のチームメンバーが同時に文書を編集・コメント可能です。マクロシステムにより、動的コンテンツ、外部システム連携、カスタム機能を実現できます。エンタープライズ機能として、SAML SSO、2段階認証、自動ユーザープロビジョニング、高度な管理コントロールを提供します。ホワイトボード機能により、ブレインストーミングや図解作成をリアルタイムで行えます。2025年現在、Docker、Dropbox、Robloxなど多くのエンタープライズ企業で採用され、組織の情報基盤として機能しています。Atlassian Forgeプラットフォームにより、カスタムアプリ開発とサードパーティ統合も可能です。
メリット・デメリット
メリット
- Jiraネイティブ統合: プロジェクト管理と文書化の完全連携による一元管理
- エンタープライズ級セキュリティ: SAML SSO、強制2段階認証、アクセス制御の完備
- リアルタイム協働: 同時編集、コメント、通知による効率的なチーム作業
- 豊富なマクロ機能: Jira課題、カレンダー、外部コンテンツの動的埋め込み
- スケーラビリティ: 大規模組織対応の管理機能とパフォーマンス
- アトラシアンエコシステム: Bitbucket、Trelloなど他製品との統合
- カスタマイズ性: Forgeプラットフォームによるアプリ開発とAPI連携
デメリット
- 学習コスト: 豊富な機能により初期習得に時間が必要
- ライセンス費用: エンタープライズ機能利用時の高額なライセンス料
- パフォーマンス: 大量データや複雑ページでの動作速度低下
- UI複雑性: 管理画面や設定項目の複雑さ
- ベンダーロックイン: アトラシアンエコシステムへの依存度
- エクスポート制限: 他プラットフォームへの移行時の制約
主要リンク
- Confluence公式サイト
- Confluence機能紹介
- Confluence開発者ドキュメント
- Jira連携ガイド
- Atlassian Forgeプラットフォーム
- Confluenceクラウドロードマップ
書き方の例
基本的なページ構造
# プロジェクト計画書
## プロジェクト概要
**開始日**: 2025年7月1日
**終了予定日**: 2025年12月31日
**プロジェクトマネージャー**: 田中太郎
## Jira課題の統合表示
{jira}project = "PROJ" AND status = "進行中"{jira}
## タスクリスト
- [x] 要件定義完了
- [x] 設計書作成
- [ ] 実装開始
- [ ] テスト実施
## チーム情報
| 役割 | 担当者 | 連絡先 |
|------|--------|--------|
| PM | 田中太郎 | [email protected] |
| 開発リーダー | 佐藤花子 | [email protected] |
| QA | 鈴木次郎 | [email protected] |
## 添付ファイル
- [設計書.pdf]
- [要件定義書.docx]
Jira課題マクロの活用
<!-- 特定プロジェクトの課題一覧 -->
{jira:url=https://company.atlassian.net|project=PROJ}
<!-- 自分にアサインされた課題 -->
{jira}assignee = currentUser() AND status != Done{jira}
<!-- 特定のJQLクエリ結果 -->
{jira}project = "WEB" AND component = "Frontend" AND fixVersion = "2.0"{jira}
<!-- 単一課題の詳細表示 -->
{jira:PROJ-123}
<!-- 課題作成フォーム -->
{jira:project=PROJ|type=Task|priority=High}create{jira}
ページテンプレートの作成
<!-- 会議議事録テンプレート -->
<h1>会議議事録 - {日付}</h1>
<table>
<tr><th>項目</th><th>内容</th></tr>
<tr><td>日時</td><td>{日時を記入}</td></tr>
<tr><td>参加者</td><td>{参加者一覧}</td></tr>
<tr><td>場所</td><td>{会議室またはオンライン}</td></tr>
</table>
<h2>議題</h2>
<ol>
<li>{議題1}</li>
<li>{議題2}</li>
<li>{議題3}</li>
</ol>
<h2>討議内容</h2>
{討議内容を記録}
<h2>決定事項</h2>
{decisions}
<table>
<tr><th>決定事項</th><th>担当者</th><th>期限</th><th>Jira課題</th></tr>
<tr><td>{決定内容1}</td><td>{担当者}</td><td>{期限}</td><td>{jira:課題キー}</td></tr>
</table>
{decisions}
<h2>次回までのアクション</h2>
{tasks}
- [ ] {アクション1} - {担当者} - {期限}
- [ ] {アクション2} - {担当者} - {期限}
{tasks}
Atlassian Forgeアプリの開発
# manifest.yml - Confluenceアプリ設定
modules:
confluence:contentAction:
- key: page-enhancer
resource: main
resolver:
function: resolver
render: native
title: ページ強化ツール
confluence:macro:
- key: custom-chart
resource: chart-macro
resolver:
function: chart-resolver
render: native
title: カスタムチャート
function:
- key: resolver
handler: index.handler
- key: chart-resolver
handler: chart.handler
resources:
- key: main
path: src/frontend/index.jsx
- key: chart-macro
path: src/chart/index.jsx
permissions:
scopes:
- read:confluence-content.summary
- write:confluence-content
- read:confluence-space.summary
- read:jira-work
external:
fetch:
backend:
- https://api.example.com
app:
runtime:
name: nodejs22.x
id: ari:cloud:ecosystem::app/your-app-id
Confluence REST APIの活用
// Forge アプリでのConfluence API使用例
import { requestConfluence, route } from '@forge/api';
// ページコンテンツの取得
async function getPageContent(pageId) {
const response = await requestConfluence(route("/wiki/api/v2/pages/" + pageId + "?body-format=atlas_doc_format"), {
headers: {
'Accept': 'application/json'
}
});
if (!response.ok) {
throw new Error(`ページ取得エラー: ${response.status}`);
}
return await response.json();
}
// ページの作成
async function createPage(spaceId, title, content) {
const pageData = {
spaceId: spaceId,
status: 'current',
title: title,
body: {
representation: 'atlas_doc_format',
value: content
}
};
const response = await requestConfluence(route("/wiki/api/v2/pages"), {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(pageData)
});
return await response.json();
}
// ページラベルの追加
async function addLabelsToPage(pageId, labels) {
const labelData = labels.map(label => ({
prefix: 'global',
name: label
}));
const response = await requestConfluence(route("/wiki/api/v2/pages/" + pageId + "/labels"), {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ results: labelData })
});
return await response.json();
}
スペース設定とアクセス管理
// Forge UIによるスペース設定画面
import ForgeUI, { render, SpaceSettings, Text, Select, Option, Button, useState } from '@forge/ui';
const SpaceConfigApp = () => {
const [accessLevel, setAccessLevel] = useState('team');
const [notifications, setNotifications] = useState(true);
const handleSaveSettings = async () => {
// スペース設定の保存処理
await saveSpaceConfiguration({
accessLevel,
notifications
});
};
return (
<SpaceSettings>
<Text>スペース設定</Text>
<Select
label="アクセスレベル"
value={accessLevel}
onChange={setAccessLevel}
>
<Option label="チームのみ" value="team" />
<Option label="部門全体" value="department" />
<Option label="全社" value="company" />
</Select>
<Button
text="設定を保存"
onClick={handleSaveSettings}
/>
</SpaceSettings>
);
};
export const run = render(<SpaceConfigApp />);
自動化とワークフロー
// Confluence自動化ルール(Automation)
{
"name": "新規ページ作成時の自動処理",
"trigger": {
"type": "page.created",
"spaceKey": "PROJ"
},
"conditions": [
{
"type": "page.hasLabel",
"label": "meeting-notes"
}
],
"actions": [
{
"type": "create.jira.issue",
"project": "PROJ",
"issueType": "Task",
"summary": "会議フォローアップ: {{page.title}}",
"description": "会議議事録に基づくフォローアップタスク\n\nページリンク: {{page.tinyUrl}}"
},
{
"type": "notify.user",
"users": ["@project-manager"],
"message": "新しい会議議事録が作成されました: {{page.title}}"
}
]
}
ホワイトボードとコラボレーション
<!-- ホワイトボードマクロの使用 -->
{whiteboard:title=プロジェクト設計|template=user-journey}
<!-- コメント機能の活用 -->
<ac:structured-macro ac:name="info">
<ac:rich-text-body>
<p>このセクションについて質問がある場合は、
<ac:link>
<ri:user ri:account-id="user-123" />
</ac:link>
にコメントで連絡してください。</p>
</ac:rich-text-body>
</ac:structured-macro>
<!-- タスクリストの共有 -->
{task-list}
- [ ] UI設計レビュー (@designer, 2025-07-15)
- [ ] APIエンドポイント実装 (@backend-dev, 2025-07-20)
- [x] データベース設計完了 (@database-admin, 2025-07-10)
{task-list}