業務の自動化をノーコードで実現できる強力なツール「Make(旧Integromat)」。直感的にモジュールを繋げるだけで複雑なワークフローを構築できる一方、運用を始めてから「いつの間にかエラーでシナリオが停止していた」というトラブルに直面することも少なくありません。
特に小規模なチームや個人で自動化を運用している場合、エラーの検知が遅れると業務の遅延やデータの不整合に直結します。本記事では、Make初心者が最初に取り入れるべき、安全で堅牢なエラーハンドリング設計の基本を分かりやすく解説します。
なぜエラーハンドリングが必要なのか?
Makeのシナリオは、デフォルト状態ではモジュールの実行中に何らかのエラー(ネットワークの一時的な瞬断、APIの制限超過、不正なデータ形式の入力など)が発生すると、その場で処理を停止し、後続のモジュールを実行しません。
シナリオが停止すると、本来届くはずの通知が届かなかったり、スプレッドシートへの記録が漏れたりします。さらに、問題に気づくのが遅れれば遅れるほど、リカバリ(手動でのデータ修正や再実行)の手間は増大します。
こうした事態を防ぐために、「エラーが起きたとき、シナリオをどう動かすか」をあらかじめ設計しておくことが重要になります。
初心者が覚えるべき4つのエラー制御(ディレクティブ)
Makeには、エラー発生時の挙動を制御するための「ディレクティブ(Directives)」と呼ばれる専用のモジュールが用意されています。まずは以下の基本的なディレクティブの役割を理解しましょう。
1. Ignore(無視して続行)
エラーが発生したモジュールの処理をその場で無視し、後続のモジュールへと処理を進めます。重要度の低いステップ(例:完了ログの送信エラーなど、失敗しても全体に影響がない処理)で有効です。
2. Break(一時待機と再試行)
エラーが発生したステップで処理を一時停止し、一定時間後に自動で再試行(リトライ)を行います。APIサーバーの一時的なダウンやネットワークエラーなど、時間の経過で解決する可能性が高いエラーに適しています。
3. Rollback(巻き戻しと停止)
エラーが発生した時点でシナリオ全体の処理を中断し、そこまでの処理を無効化(ロールバック)します。データの整合性が極めて重要なトランザクション処理で使用されます。
4. Resume(代替データの挿入と続行)
エラーが発生したモジュールに対して、あらかじめ用意した代替データ(デフォルト値)を流し込み、処理を強引に継続させます。例えば、「名前が取得できなかった場合に『ゲスト様』という値を代入してメール送信を続ける」といった設計が可能です。
安全な自動化運用のための「最初の3ステップ」
複雑なディレクティブを最初からすべて使いこなす必要はありません。まずは以下の手順で、安全な運用体制を作りましょう。
ステップ1:重要なAPIモジュールに「Break」を設定する
Googleスプレッドシートや各種SaaSツールとの連携部分は、ネットワークの影響を受けやすいポイントです。エラーが発生しやすいモジュールを右クリックし、「Add error handler」を選択して `Break` モジュールを接続します。これにより、一時的なエラーでシナリオが完全に停止するのを防ぎます。
ステップ2:エラー発生時の「Slack/メール通知」を仕込む
エラーが起きたことを人間がすぐに察知できるよう、エラーハンドラーのルートの末尾に、コミュニケーションツール(Slackのチャンネルや管理者のメールアドレス)への通知モジュールを配置します。通知メッセージには「エラーが発生したシナリオ名」と「エラーメッセージ(Error Messageシステム変数)」を含めておくと、原因特定がスムーズになります。
ステップ3:エラーログを専用シートに集約する
通知だけでなく、エラーの内容(日付、シナリオID、エラータイプ、詳細)を専用のGoogleスプレッドシートやデータベースに自動で書き出す「エラー専用ログモジュール」をシナリオ末尾に繋ぐことで、後からの分析やバグ修正の効率が劇的に向上します。
まとめ
Makeによる自動化は「作って終わり」ではありません。予期せぬエラーは必ず発生するという前提のもと、事前にエラーの逃げ道を用意し、人間が早期に気づける仕組みを作ることが、真の「効率化」に繋がります。
まずは稼働中のシナリオに、シンプルなエラーハンドラーを追加することから始めてみてください。

コメント