3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Confluence で 3か月以上更新されてないページを通知する

3
Last updated at Posted at 2025-12-26

VisasQ Inc. Advent Calendar 2025 21日目の記事です。

更新されていないドキュメントほど怖いものないですよね。

Confluence の自動化を使って更新されていないページを通知してもらい更新を頑張るようにしました! (結局頑張るのは人間)

image.png

Step1: xx日更新されていないページの一覧を週1でチェックしてメールで通知

「いつ」に関しては毎週月曜日の10時にしています。 (これはお好みで)
image.png

また「ページの検索」コンポーネントを追加し、 最終更新日が 92日より古いものを探すようにしています。
image.png

最後に「メールを送信」コンポーネントを追加し、本文に対象ページをリストアップするようにします。

以下の通りです
ページを更新することでこのメールは届かなくなります

{{#lookupPages}}
1. [{{title}}]({{url}}) by {{author.fullName}}
{{/}}

https://slmbrcat-tech.com/how-to-filter-confluence-pages-by-labels-and-post-teams-channel/ の記事を参考にさせていただいています。

image.png

Step2: 特定のラベルが付いているページのみを対象にする

ページの中には「メンテナンスしたい」ものと「インスタント」なものそれぞれあると思います。
ワークスペースを分けたりもできますが、 TOP ページなど更新しようがないページも含まれるのでラベルを使って区別できるようにします。

今回は、別の自動化を追加しています。
(一律で付与されてしまいますが、不要なページが少数だったので、ページ作成後や通知が来た後に手動で一度外してしまえばそこまで困りませんでした)
image.png

「ラベル」をフィルターするコンポーネントが無さそうだったので、メール文を作成するタイミングでチェックする構文を追加しています。

以下の通りです
ページを更新することでこのメールは届かなくなります

{{#lookupPages}}
{{#if(labels.name.join(",").match(".*(maintenance).*").isNotEmpty())}}
1. [{{title}}]({{url}}) by {{author.fullName}}
{{/}}
{{/}}

Step3: 更新するものが無ければメール通知をスキップする

毎週何も中身のない空メールが届くと体験悪いですよね。
ここが一番難航しました。 (データ構造が分からないので、どういう条件を書けばよいか見当がつかなかった)

「変数」コンポーネントを追加して、その変数値で判別するようにしました。
見てもらうと分かりますが、上記のメールで使った構文そのままです。 (もう少しスマートに書けそうですが)
image.png

「IF:条件」コンポーネントを追加して、「空」かどうかチェックしています。
image.png

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?