中級向け

自動化の診断書

自動化は、静かに止まります。認証の期限切れ、失敗の通知先がない公開中のワークフロー、思ったより多い実行回数は、使っている人に気づかれるまで分かりません。

このワークフローは、毎朝7つのサービスの認証が通るかを試し、毎週 n8n の API で実行回数と公開中のワークフローを調べて、Slack に知らせます。AI は使いません。

作った直後の1回目の実行で、実際に切れていた Gmail の認証を見つけました。JSON を配布します。

人の手間は、どう変わるか

Before(人が手でやっていたこと)

  • 認証が切れたことに、ワークフローが止まって誰かに言われてから気づく
  • 各サービスの画面を開いて、認証やキーの期限を1つずつ確かめる
  • n8n の実行履歴を開いて、どのワークフローが何回動いたか、失敗が増えていないかを見て回る
  • 公開中のワークフローを1本ずつ開いて、失敗の通知先や Webhook の認証が設定されているかを確かめる

After(このワークフローを入れると)

  • 毎朝、7つのサービスの認証が通るかを1回ずつ試し、通らなければ Slack に届く
  • 手で入れたキーやドメインの期限が近づくと、知らせが届く
  • 毎週、ワークフローごとの実行回数・失敗・急な増加・月の予測が、まとめて届く
  • 公開中のワークフローの穴(失敗の通知先がない、認証のない Webhook など)が、一覧で届く

それでも人に残ること

  • 知らせを受けて、切れた認証をつなぎ直し、穴をふさぐ
  • キーやドメインの期限は、最初に手で入れておく

動作確認: — n8n 2.36.8 / n8n API(v1) / Slack(無料プラン)

自動化は、静かに止まります。

認証が切れる。誰かが API のキーを更新する。公開中のワークフローに、失敗の通知先が設定されていない。思ったより多く、実行されている。どれも、お客様や、使っている人に気づかれるまで、作った本人は知りません。

このサイトの試験の中でも、同じ週に、こんなことが起きました。

  • Google スプレッドシートの認証が切れて、書き込みが止まった(再接続が必要になった)
  • Chatwork の認証で、Bearer を付けて、401 になった
  • Gmail の認証も、同じ週に切れていた(これは、あとで、診断が見つけるまで、気づきませんでした)

そこで、自動化を見張る自動化を作りました。

  • 毎朝、7つのサービスの認証が、まだ通るかを、1回ずつ試す
  • 手で入れた期限(API キー、ドメイン)が近づいたら、知らせる
  • 毎週、n8n の API で、ワークフローごとの実行回数、失敗、急な増加、月の予測を、まとめる
  • 公開中のワークフローの穴(失敗の通知先がない、認証のない Webhook、ノードの中の秘密のような文字列)を、一覧にする
  • AI は使いません。 軽い呼び出しと、計算だけです
約30秒で、仕組みの全体(音声あり。音声:VOICEVOX:雨晴はう)

automation-checkup.json をダウンロード

n8n 公式のテンプレートへの提出は、まだしていません(審査中の枠が空いたので、提出するかどうかを決めます)。提出したら、結果を、この記事に書きます。

毎朝:認証の健康診断7つのサービス軽い読み取りを1回ずつ判定401=無効か期限切れ手で入れた期限も確認Slack問題があるときだけ(月曜は全部正常も)毎週月曜:実行回数と棚卸しn8n の API全ワークフローと全実行を読む数える・調べる実行回数、急な増加、失敗月の予測、AI 呼び出しの上限通知先なし、認証なし、秘密Slack1通の報告
どちらも、AI を使わない。確かめるのは、「通るか」「何回動いたか」「穴がないか」だけ。

毎朝:認証の健康診断

次の7つに、費用のかからない、読み取りだけの呼び出しを、1回ずつ試します。

サービス 試す呼び出し
Chatwork 自分のアカウントの情報(/me)
LINE ボットの情報
Slack auth.test
Anthropic モデルの一覧(1件)
Gemini モデルの一覧(1件)
Google スプレッドシート スプレッドシート1つの、メタ情報だけ
Gmail 自分のプロフィール

判定は、次のとおりです。

  • 200番台:正常
  • 401 や 403:認証が無効、期限切れ、または権限が足りない
  • 429 や 5xx:警告(回数制限や、相手側の障害。認証そのものは、無事かもしれない)
  • 応答がない:n8n 自身のエラー文を、そのまま出す(たとえば、「The credential “Gmail account” needs to be reconnected」)

失敗は「結果」として扱い、「エラー」にしません。 1つの認証が壊れていても、ほかの6つの確認は、止まりません。

Slack は、認証が無効でも、200 を返し、本文の ok: false で伝える、と理解しています(Slack の公式の説明による理解です。この試験では、悪い Slack のトークンでは、確かめていません)。そのため、Slack だけは、本文まで見て判定します。

手で入れた期限も、一緒に見ます。たとえば、「Anthropic の API キーは、2026-10-27」「ドメインの更新は、2027-09-01」のように、設定のノードに書いておくと、14日前から知らせます。

何もなければ、静かにしています(毎日の「異常なし」は、読まれなくなるので)。月曜だけ、「全部正常」と知らせます。

毎週月曜:実行回数と、棚卸し

n8n の API で、全ワークフローと、残っている全実行を読みます。

実行回数

  • ワークフローごとの、直近24時間、7日、30日の実行回数
  • 失敗の数
  • 急な増加: 直近24時間が、その前の7日の1日あたりの平均の3倍以上(20回以上のとき)
  • 月の予測: 直近7日を、30日に延ばしたもの(予測であって、実測ではありません)
  • AI 呼び出しの上限の目安: 実行回数 × そのワークフローの AI ノードの数。実際に、全部のノードが動くとは限らないので、上限です
  • いちばん古い実行の日付: n8n は、古い実行の記録を消すので、30日の数は、この日以降の分しか、含みません

棚卸し

  • 公開中なのに、失敗の通知先(エラー用ワークフロー)が設定されていないもの
  • 公開中で、認証のない Webhook があるもの(署名を、自分で確認する作りなら、問題ありません)
  • ノードの中に、秘密のように見える文字列(Slack、Anthropic、OpenAI、Google、GitHub のトークンの形)
  • 公開中なのに、一度も動いていないもの

実際に動かした結果

自分の n8n(2.36.8、パソコンの中で動かしているもの)で、動かしました。

毎朝の診断

  • 作った直後の1回目の実行で、Gmail の認証が「再接続が必要」と出ました。 Chatwork、LINE、Slack、Anthropic、Gemini、Google スプレッドシートの6つは、正常でした。
  • わざと間違ったトークンを渡した Chatwork は、「401:認証が無効、期限切れ、または権限不足。再接続か、再発行を」と報告されました。

毎週の報告(62本のワークフロー。ほとんどは、試験で作った、公開していないものです)

  • 直近7日で163回の実行(24時間で82回)。このままだと、月に約699回
  • いちばん多かったのは、通しの試験のために公開して動かした、テスト2本(24時間で、38回と35回)。「急な増加」として、検出されました。Slack のボット自身の投稿でも動くため、と考えられます(この2本で、原因までは調べていません)。前に測った「1通あたり約3回」とは、矛盾しません
  • 公開中の2本は、どちらも、失敗の通知先がありませんでした。認証のない Webhook も、どちらにもありました(LINE の署名を、自分で確認する作りです)
  • ノードの中の、秘密のように見える文字列は、0件(このテンプレート自身も、含めて)
  • 残っている、いちばん古い実行の日付は、2026-09-27でした

つまずいた3つと、直し方

1. 実行の取得で、「limit は 250 以下」のエラー

n8n の標準ノードで、実行を取るとき、「件数の指定」を使うと、250件を超える数は指定できません(request/query/limit must be <= 250 という 400 のエラーになります)。「全件を取る」にして、直しました。 実行の記録が多い n8n では、読むのに時間がかかるかもしれません(この試験は、数百件です)。

2. API の接続先を空にして、「Couldn’t connect」

n8n の API の認証情報で、接続先(Base URL)の欄の薄い文字は、入力例であって、値ではありません。 空のまま保存すると、「Couldn’t connect with these settings」になります。自分の n8n の場合は、http://localhost:5678/api/v1 のように、自分で入れます。

3. 「30日」の数が、思ったより小さい

n8n は、古い実行の記録を、自動で消します。そのため、「直近30日」の数は、実際より小さく出ます。この診断は、いま残っている、いちばん古い実行の日付を、一緒に出して、「30日の数は、この日からの分だけです」と書きます。

使うための設定

1. n8n の API キーを作る

n8n の「Settings → n8n API」で、API キーを作ります。次の3つを、守ってください。

  • 名前を付ける(用途が分かるもの)
  • 有効期限を付ける(「なし」にしない。切れる日は、診断の期限の一覧に足す)
  • 権限は、読み取りだけにする(ワークフローと実行の、一覧と読む)

そのあと、「Credentials」で、「n8n API」の認証情報を作ります。Base URL を、必ず、入れてください(上の「つまずいた2」)。

2. 使う確認だけを残す

7つの確認のノード(Check …)で、自分の認証情報を選びます。使わないサービスの確認は、ノードごと削除してください。 削除したノードは、報告から自動で外れます。

3. Slack と、設定

  • Slack のノードが2つ(認証の報告、実行回数の報告)。チャンネルを選びます。ボットは、そのチャンネルに招待しておきます
  • 「Credential settings」:スプレッドシートの ID を1つ(その認証で開けるもの)、期限の一覧
  • 「Usage settings」:月の実行回数の上限(お持ちの料金プランの数字)、急な増加と失敗のしきい値

4. 公開する

公開したら、2つの「Run now」で、すぐに報告を見られます。

使う前に知っておくこと

  • 「通る」ことしか、確かめません。 読み取りの権限があっても、書き込みの権限がない、という場合は、見つけられません
  • 月の予測は、直近7日の延長です。 週末や、月末に偏る処理は、外れます
  • どの実行が、料金の「実行回数」に数えられるかは、確かめていません。 初期設定では、手動の実行は数えません。お持ちのプランの数え方に合わせて、設定を変えてください
  • 全ワークフローの中身を読みます。 私の62本で、実行の記録に残るデータが、約1MBになりました。ワークフローが非常に多い n8n では、時間がかかるかもしれません
  • 秘密の検出は、挙げた形だけです。 見慣れない形の秘密は、見つけられません
  • n8n の API キーは、このワークフローの入口になります。 権限を、読み取りだけにして、期限を付けてください

確認していないこと

  • 読み取りだけの権限(ワークフローと実行の、一覧と読む)で、動くか。 私は、作ったキーの権限の内訳を、確かめていません。権限が足りないときは、403 になります
  • n8n クラウド。 自分のパソコンで動かす n8n(セルフホスト)だけで試しました。クラウドの Base URL は、認証情報の入力例にある https://<名前>.app.n8n.cloud/api/v1 の形のはずですが、試していません
  • 悪い Slack のトークン。 上に書いたとおり、Slack の公式の説明による理解だけです
  • 確認のノードを削除したときの動き。 コードは、ないノードを飛ばす作りですが、削除して動かす試験は、していません
  • ほかのサービス。 7つ以外は、自分で、確認のノードを足す必要があります
  • ワークフローが数百本ある n8n。 試したのは、62本です

次に読む

次に読む