Makeのエラー処理&リトライ設計を完全解説|止まらない自動化の作り方

Makeのエラー処理とリトライ設計を表すフロー図。自動化が停止せず再試行する仕組みをイメージしたビジネスイラスト。
目次

ノーコード自動化は「止まらない設計」が命

Make(旧Integromat)を使えば、メール送信やスプレッドシート更新、AIとの連携など、多くの業務をノーコードで自動化できます。
しかし、実際に運用してみると「いつの間にかシナリオが止まっていた」「一部の処理が失敗していた」といった経験を持つ人も多いはずです。

自動化が便利なのは、“常に動き続けていること”が前提です。
もしシナリオが止まると、通知が届かず、請求が遅れたり、顧客への対応が抜け落ちたりするリスクが発生します。

この問題を防ぐ鍵が、**エラー処理とリトライ設計(再試行の仕組み)です。
Makeには強力な「エラー処理ツール」が備わっており、適切に設計すれば
「落ちない自動化」**を実現できます。


「エラー処理をしない自動化」は、いずれ止まる

Makeは非常に高機能ですが、すべてのAPI・外部サービスが常に安定しているわけではありません。
たとえば次のようなケースでエラーが発生します。

エラーの種類原因発生頻度
一時的な通信エラー外部APIやネットワークの遅延よくある
データ型の不一致数値・日付・文字列の形式が違う中程度
認証エラーAPIトークンの期限切れや更新忘れ時々
Rate Limit(制限超過)短時間にリクエストを送りすぎよくある
空データ・NULLエラー必須項目の欠落よくある

これらのエラーを処理しないままにすると、
Makeのシナリオはその時点で停止し、後続の処理も止まってしまいます。

つまり、ノーコード自動化の最大の敵は「想定外の停止」です。
そしてそれを防ぐ唯一の方法が、「止まらない設計」=エラーとリトライの体系的な仕組みなのです。


Makeのエラー処理を理解するための基本構造

Makeの自動化フロー(シナリオ)は、モジュールと呼ばれるブロックの連続で構成されています。
この中でどこか1つでもエラーが出ると、通常はそこでシナリオ全体が停止します。
ただし、Makeには次のような制御機能が用意されています。

エラーハンドラー(Error Handler)

各モジュールに分岐線を追加し、「エラーが起きたときに別のルートを実行する」仕組みです。
たとえばメール送信が失敗した場合に「Slackで通知を送る」「別の宛先にリトライする」といった代替ルートを設定できます。

リトライ設定(Auto Retry)

一時的なエラーに対して自動的に再試行を行う機能です。
APIが一時的に落ちている場合などに、一定時間後に再試行して成功させることができます。

ストラテジー(Error Handling Strategy)

各エラーハンドラーの中で、エラー発生時にどのような動作をするかを細かく指定できます。
たとえば:

  • Resume(スキップして続行)
  • Ignore(無視して次へ)
  • Rollback(実行前の状態に戻す)
  • Stop(シナリオ全体を停止)

これらを適切に使い分けることで、「完全停止を防ぎつつ、通知や再処理を自動化」できます。


自動化の安定性を高める3層設計の考え方

Makeでのエラー処理を設計する際は、以下の3層を意識すると体系的に整理できます。

内容目的
第1層:モジュールレベル各処理単位でのリトライ設定・型チェック小さな失敗を即座にリカバリー
第2層:シナリオレベルエラーハンドラー・通知設定シナリオ全体の停止を防ぐ
第3層:システムレベル外部監視・ログ・再起動フロー異常発生時の復旧・報告を自動化

この「三層構造」を意識することで、Makeのシナリオは堅牢になります。
一度エラーが起きても「止まらず、知らせて、再試行する」流れを自動で回せるのです。


「止まらないMake」のための基本原則

Makeのエラー処理を設計するうえで押さえておきたい原則は次の3つです。

  1. 失敗を前提にする設計
     外部APIやネットワークは100%安定していません。成功を前提に作ると必ず落ちます。
  2. 自動で再試行できる流れを作る
     リトライを組み込むことで、人が介入しなくても復旧できる仕組みにします。
  3. 通知・ログ・監視を仕組みに組み込む
     完全自動化は理想ですが、「止まったことに気づけない」状態は致命的です。Slack通知などを併用します。

Makeのエラー処理を構成する主要パターン

Makeでエラーを処理する方法には複数のパターンがあります。
代表的な4パターンを表に整理します。

パターン概要主な用途
Try → Catch構成エラーハンドラーで別ルートへ分岐API失敗時の代替処理
リトライ構成一定時間後に自動再試行一時的なAPIエラー対策
フォールバック構成別アクションに切り替えメール送信失敗→Slack通知など
ログ+通知構成エラー情報を残し、人に知らせる運用監視用

これらを組み合わせると、ほぼすべてのケースに対応可能です。
たとえば「3回までリトライ→それでもダメならSlack通知→ログに保存」といった流れを作れば、止まるリスクは大幅に減ります。


「再試行設計」が重要な理由

なぜリトライ設計が重要なのか。
その理由は、**エラーの8割以上が“再試行すれば成功する一時的エラー”**だからです。

特に以下のようなケースでは、リトライ設定が極めて有効です。

  • APIサーバーが混雑してレスポンスが遅延
  • Google Sheetsの書き込み制限(Rate Limit)に一時的に到達
  • ネットワーク断が数秒発生
  • 一時的に認証が無効化されたが、すぐに復旧

このようなケースでリトライを設けておけば、「一時的エラーによる停止」を完全に防げます。
逆にリトライがないと、毎回人間が手動で再実行しなければならず、自動化の意味が半減します。


リトライ設定の最適化ポイント

Makeのリトライ設定には細かいカスタマイズが可能です。
以下の3点を押さえると、安定性が飛躍的に向上します。

  1. リトライ回数:最大3回程度が目安(API制限に配慮)
  2. 間隔設定:指数的バックオフ(1分→3分→5分…)が理想
  3. 失敗時処理:最後の失敗時にSlack通知やエラーログ送信を追加

指数的バックオフを採用することで、サーバーが混雑しているときも負荷を分散しながら再試行できます。
この設計はGoogleやAWSでも採用されている、信頼性の高いリトライ戦略です。

実例①:Slack通知付きのエラーハンドラー設計

最も基本的で効果的なエラー処理が、Slack通知付きエラーハンドラーです。
シナリオが途中で失敗しても、すぐに自分(またはチーム)へ通知が届く仕組みを構築します。

設定ステップ

  1. 対象モジュールを選択
    • たとえば「Google Sheetsに書き込む」モジュール。
  2. エラーハンドラーを追加
    • モジュール右クリック → “Add error handler”。
  3. ハンドラー内にSlackモジュールを配置
    • 通知チャンネルを選び、メッセージ本文に以下を設定: 【Makeエラー通知】 モジュール: {{module.name}} エラー内容: {{error.message}} シナリオ: {{scenario.name}}
  4. ストラテジーを「Resume」で設定
    • Slack通知後も処理を継続できるようにします。

この設計により、Makeのシナリオは“落ちることはあっても、気づかず止まり続ける”ことがなくなります。
Slack通知には時刻やエラー種別も含めておくと、後からトラブルシュートが容易になります。


実例②:再試行+フォールバック構成のテンプレート

次に紹介するのは、リトライ+フォールバックの組み合わせ。
単純な再試行だけでなく、一定回数失敗した後に“代替手段”を自動で発動させる仕組みです。

構成イメージ

Main Route
 └▶︎ モジュール①:API送信(Auto Retry: 3回)
   └▶︎ 成功 → 次へ
   └▶︎ エラー → エラーハンドラー
     └▶︎ フォールバックモジュール(例:メール送信)
     └▶︎ Slack通知

実装のポイント

  • Retry設定はモジュール単位で「Auto Retry 3回・指数間隔」を設定
  • エラーハンドラーでは「フォールバック処理→通知→続行」の順に
  • 停止条件は「重大な認証エラー(401/403)」など限定的にする

これにより、外部APIが落ちていてもシナリオは止まりません。
フォールバックをメール送信やGoogle Sheets書き込みに変えれば、
“本処理が落ちても記録を残す”安全設計になります。


実例③:サブシナリオを使った自動回復設計

エラーが複雑なシナリオでは、1つのシナリオ内で全てを処理するより、
メインシナリオ+サブシナリオ」に分けるのが効率的です。

構成パターン

名称役割主な内容
メインシナリオ通常の業務処理データ取得・更新など
サブシナリオエラー処理専用ログ記録・通知・再実行

仕組みの流れ

  1. メインシナリオでエラーが発生
  2. エラーハンドラーが起動
  3. 「Run another scenario」モジュールでサブシナリオを呼び出す
  4. サブシナリオ内でSlack通知・スプレッドシート記録・再実行判定を実行

これにより、複数のシナリオで同じエラー処理を共通化できます。
運用面でも「全シナリオがどこで落ちたか」を一元監視できるようになります。


高度な応用:AI連携で“自己修復型”の自動化を作る

最近では、ChatGPT APIやClaudeを活用して「エラーを自己分析する」仕組みを作ることも可能です。

仕組みの例

  1. Makeでエラーが発生
  2. エラーハンドラーがChatGPT APIを呼び出し
  3. 以下のようなプロンプトを送信: 以下のエラーログを要約し、原因と対処方法を簡潔に出力してください。 {{error.message}}
  4. ChatGPTの出力結果をSlackに投稿

これにより、Slack上に「AIによるエラー解説」が自動投稿されます。
開発者がいなくても、チーム全体が原因を把握しやすくなり、対応スピードが飛躍的に向上します。


運用フェーズで意識したい監視とメンテナンス

エラー処理を設計しても、完全に放置できるわけではありません。
運用フェーズでは、次の3つのポイントを定期的にチェックしましょう。

  1. 実行履歴(Scenario History)
    • 「Failed」「Incomplete」ステータスを定期的に確認。
    • 失敗パターンを溜めて“再利用可能なエラーハンドラー”を改善。
  2. Webhook制限・API更新
    • GoogleやSlackなどのAPIは仕様変更が頻繁。認証切れを防ぐために定期更新が必要です。
  3. 通知ルールの見直し
    • 通知が多すぎると“通知疲れ”になります。
      重大エラー(認証・Rate Limit超過)だけを通知するなど、優先順位をつけましょう。

Makeでは「シナリオ実行履歴を別シートに自動転送」することで、エラーログを半自動的に蓄積できます。
運用レベルが上がるほど、記録の自動化が重要になります。


チーム運用で役立つベストプラクティス

業務が拡大し、複数人でMakeを使うようになると、
「誰がどのシナリオを管理しているのか」「いつエラーが起きたのか」が見えづらくなります。

そこで役立つのが、以下の管理ルールです。

管理項目推奨設定
シナリオ命名[担当者名]_[機能名]_v1 などルール化
通知ルール各担当者専用のSlackチャンネルを用意
ログ格納先Google Sheets or Notionで一元管理
定期レビュー月1回の「自動化ヘルスチェック」会議

これにより、Makeを“属人的な自動化ツール”から“チームのインフラ”に進化させることができます。


実践ステップ:止まらない自動化をつくる手順

最後に、この記事の内容をもとにした実践ロードマップをまとめます。

  1. すべてのモジュールにエラーハンドラーを設置
  2. Auto Retryを3回+指数的間隔で設定
  3. Slack通知を最低1カ所に導入
  4. 失敗時に再試行 or 代替処理を定義
  5. 共通エラーハンドラー用のサブシナリオを作成
  6. シナリオ履歴を自動でログ化
  7. 月1回のチェックで改善を継続

この7ステップを実装すれば、「Makeが落ちる」ことへの不安はほぼ消えます。
そして、止まらない自動化はそのまま“信頼できるAIシステム”につながります。


まとめ:自動化の本質は“仕組みが止まらないこと”

Makeで自動化を設計する際に最も重要なのは、スクリプトの正確性ではなく耐障害性です。
一時的なエラーは避けられませんが、それを想定し、再試行・フォールバック・通知を組み込むことで、
人の手を介さずに動き続ける“強い自動化”を実現できます。

目的実装の柱効果
安定稼働リトライ・バックオフ短期的な停止防止
可視化Slack通知・ログ化トラブル早期発見
継続改善サブシナリオ化・共通化運用効率向上

ノーコードの時代における“自動化エンジニア”は、ツールを使う人ではなく、
止まらない仕組みを設計する人です。
あなたのMakeが、24時間365日動き続ける“無停止オートメーション”になることを願っています。

目次