無人で動く自動化は「静かに止まる」。通知の設計で気をつけている5つのこと
この記事の内容
業務を自動化すると、人が見ていない時間に仕組みが動くようになります。夜中の集計、朝の書き出し、定時の配信準備。便利になる一方で、止まっていても誰も気づかないという新しいリスクが生まれます。
当社では、自社とお手伝い先の自動化ジョブの結果を、スマホに知らせる共通の仕組みを使っています。作ってみて分かったのは、通知の仕組みで一番難しいのは「送ること」ではなく、送らないことと、届かなかったことに気づくことだという点でした。
自動化でいちばん怖いのは「静かに止まる」こと
エラーで止まったジョブは、まだ分かりやすい方です。本当に困るのは、次のような「正常に見える故障」です。
| 起きること | 見え方 | 気づくタイミング |
|---|---|---|
| ジョブ自体が起動していない | エラーも通知も来ない | 数字が合わないと言われたとき |
| 通知用のトークンが失効した | 通知が来ない=正常に見える | 障害が起きたのに誰も気づかなかったとき |
| 通知の送信上限に達した | 通知が来ない=正常に見える | 月末や翌月になってから |
| 通知が別の宛先に飛んでいる | 担当者には何も来ない | 関係ない人から「何これ?」と言われたとき |
2つめと3つめは特に厄介です。「通知が来ない」という状態が、正常時と故障時でまったく同じ見え方になるからです。通知を1本の経路に絞るほど、この問題ははっきり出ます。
原則1:成功は静かに、失敗だけ鳴らす
動かし始めた直後は、成功のたびに通知が欲しくなります。ただ、毎日「正常終了しました」が届くと、1週間もしないうちに誰も読まなくなり、失敗の通知もその中に埋もれます。
当社の仕組みでは、通知を鳴らす条件を「ジョブが失敗で終わったとき」と「通知そのものの送信に失敗したとき」の2つに絞っています。成功の記録はログに残し、スマホには送りません。
鳴らす/鳴らさないの線引き
- 鳴らす:人が何かしないと業務が止まるもの(失敗・要確認)
- まとめて送る:人が判断に使うが急がないもの(1日の件数・週次の集計)
- 鳴らさない:正常に終わったという事実だけのもの(ログに残す)
原則2:通知が壊れても、本業は止めない
通知は、あくまで本業のジョブを見守る脇役です。ところが作り方を間違えると、通知の設定ファイルが読めない、通知先のサービスが落ちている、といった理由で本業のジョブまで止まることがあります。
当社の仕組みは、ジョブを通知用のコマンドで「包んで」実行する形にしています。通知側で何が起きても、中のジョブは最後まで走り、ジョブの終了コード(成功か失敗か)はそのまま外に返します。通知は失敗しても、業務の結果は変えない。この順番を先に決めておくと、通知を後から足しても既存の業務を壊しません。
原則3:届かなかった通知に、あとから気づけるようにする
通知の経路をLINE1本に絞ると、スマホで確実に気づける反面、経路が壊れたときの予備がありません。そこで次の3つを入れています。
「届かない」に気づくための仕掛け
- 届かなかった通知を、ファイルに残す:送信に失敗した通知は、内容ごと月別のログに書き出す
- 月初に1回、テスト送信する:トークン失効のように「来ないのが正常に見える」故障を、月1回の確認で拾う
- 送信上限の手前で、成功系から先に止める:下で詳しく書きます
原則4:送信上限は、障害用に残しておく
LINE公式アカウントの無料プランは、送れるメッセージ数に月あたりの上限があります(無料のコミュニケーションプランで月200通)。自動化の通知で上限を使い切ると、いちばん大事な障害通知が月末に届かないことになります。
そこで、送信数のカウンタは1本にしたまま、止める閾値を2段にしました。
| 通知の種類 | 止める閾値(月あたり) | 考え方 |
|---|---|---|
| 成功・お知らせ系 | 110通 | 先に打ち止めにする |
| 障害系 | 150通 | 成功系が止まったあとも、40通は障害用に残る |
あわせて、同じ件名の通知は30分間まとめて1回にしています。障害は連鎖しやすく、同じエラーが数秒おきに出ると、それだけで上限を食いつぶすからです。
原則5:宛先は、コードで固定する
通知先の設定に、全社向けのチャンネルと管理者向けのチャンネルの両方が書かれていると、いつか取り違えます。実際、社内向けの自動通知が全体のチャンネルに流れかけたことがありました。
対策として、通知の仕組みは管理者向けの宛先しか読み込まないように作り直しました。全体向けの宛先は設定ファイルに存在していても、通知のコードからは参照しません。「気をつけて使う」ではなく、間違えられない形にするのが確実です。
自社で作るときのチェックリスト
無人で動く自動化に通知を付けるとき、最低限これだけ決めておけば、静かに止まる事故はかなり防げます。
よくある質問
通知先はSlack・LINE・メールのどれがいいですか?
「担当者がいちばん早く気づける場所」で選ぶのが基本です。当社では、業務時間外でも気づけるようにスマホのLINEに寄せています。社内のやり取りがSlackに集まっている会社であれば、Slackのbotに寄せる方が自然です。大事なのは経路の種類より、上限と失効に備えることです。
成功の通知がないと、ちゃんと動いているか不安です
成功を毎回スマホに送る代わりに、ログに記録して、週に1回まとめて件数を確認する形をおすすめしています。不安なのは「動いているか分からない」ことなので、確認する日と場所を決めてしまえば、毎回通知を受け取る必要はなくなります。
今ある自動化にも後から通知を付けられますか?
付けられます。当社の仕組みは、既存のジョブを通知用のコマンドで包むだけで動くため、ジョブ本体を書き換える必要がありません。まずは止まると一番困るジョブ1本から付けるのが安全です。
「夜間に動く自動化が止まっていないか不安」「通知が多すぎて誰も見ていない」といった状況があれば、通知の設計から見直すお手伝いができます。
無料で相談する