自動化ツールMakeを使っていて、「特定の条件の時だけ処理を実行したい」と思ったことはありませんか?
例えば、メールの件名に特定のキーワードが含まれている時だけSlackに通知を送りたい。
売上データが一定額を超えた時だけレポートを作成したい。
そんな時に欠かせないのが、Makeの「フィルター機能」です。
この記事では、Makeのフィルター機能を使った条件分岐の方法を、実際の設定画面を交えながら詳しく解説します。
読み終わる頃には、複雑な条件分岐も自在に設定できるようになり、より高度な自動化フローを構築できるようになるでしょう。
なぜMakeのフィルター機能が必要なのか?条件分岐が自動化の質を変える理由
自動化を始めたばかりの頃は、単純な「AからBへデータを転送する」といったフローで満足できるかもしれません。しかし、実際の業務では「すべてのデータを同じように処理する」ことはまれです。
私が初めてMakeを使い始めた時、Googleフォームから受け取った問い合わせをすべてSlackに通知していました。しかし、営業関連の問い合わせとサポート関連の問い合わせが混在してしまい、対応が遅れることがありました。
ここで必要になったのが「条件によって処理を分ける」仕組みです。Makeのフィルター機能を使えば、問い合わせの内容に応じて異なるチャンネルに通知を送ったり、優先度に応じて処理方法を変えたりできます。
フィルター機能なしでは起こる3つの問題
1. 不要な処理によるリソースの無駄遣い
すべてのデータに対して同じ処理を実行すると、Makeの操作数(Operations)を無駄に消費してしまいます。例えば、1000件のデータのうち実際に処理が必要なのが100件だけの場合、900件分の操作数を無駄にしていることになります。
2. エラーの頻発とメンテナンスの手間
条件を考慮せずに処理を実行すると、想定外のデータでエラーが発生しやすくなります。エラーが頻発すると、その都度対応が必要になり、自動化のメリットが薄れてしまいます。
3. ビジネスロジックの複雑化への対応不可
実際のビジネスでは、「金額が10万円以上なら上司の承認が必要」「在庫が50個以下なら発注」といった複雑な条件が存在します。フィルター機能なしでは、このようなビジネスロジックを自動化に組み込むことができません。
これらの問題を解決し、真に実用的な自動化を実現するために、Makeのフィルター機能は欠かせない存在なのです。
Makeのフィルター機能を使った条件分岐の設定方法
それでは、実際にMakeのフィルター機能を使って条件分岐を設定する方法を見ていきましょう。基本的な設定から応用的な使い方まで、段階的に解説します。
基本編:シンプルな条件でフィルターを設定する
ステップ1:フィルターを追加する
Makeのシナリオエディタで、条件分岐を設定したいモジュール間の接続線をクリックします。表示されるメニューから「Set up a filter」を選択します。
ステップ2:フィルター名を設定する
フィルターには分かりやすい名前を付けましょう。例えば「金額が1万円以上」「メールアドレスが存在する」など、条件の内容が一目で分かる名前がおすすめです。
ステップ3:条件を設定する
条件設定画面では、以下の3つの要素を指定します:
- 比較対象となるデータ(左側のフィールド)
- 比較演算子(等しい、含む、より大きいなど)
- 比較する値(右側のフィールド)
例えば、「注文金額が10,000円以上」という条件を設定する場合:
- 左側:前のモジュールから受け取った「注文金額」データ
- 演算子:「Greater than or equal to」(以上)
- 右側:10000
実践編:複数条件を組み合わせた高度なフィルタリング
実際の業務では、単一の条件だけでなく複数の条件を組み合わせる必要があることがよくあります。Makeでは「AND」と「OR」を使って複雑な条件を設定できます。
AND条件の例:VIP顧客への特別対応
「購入金額が5万円以上」かつ「過去の購入回数が3回以上」の顧客に特別なサンクスメールを送る場合:
1. 最初の条件:購入金額 >= 50000
2. 「+AND rule」をクリックして2つ目の条件を追加
3. 2つ目の条件:購入回数 >= 3
この設定により、両方の条件を満たす顧客だけが次の処理に進みます。
OR条件の例:緊急対応が必要な問い合わせ
「件名に『緊急』が含まれる」または「本文に『至急』が含まれる」問い合わせを優先処理する場合:
1. 最初の条件:件名 Contains “緊急”
2. 「+OR rule」をクリックして2つ目の条件を追加
3. 2つ目の条件:本文 Contains “至急”
どちらか一方の条件を満たせば、優先処理のフローに進みます。
応用編:ネストした条件とルーターを使った複雑な分岐
さらに複雑な条件分岐が必要な場合は、フィルターとルーターモジュールを組み合わせて使用します。
ルーターモジュールの活用
ルーターを使うと、1つのデータを複数の経路に分岐させることができます。各経路にフィルターを設定することで、条件に応じた処理の振り分けが可能になります。
例:ECサイトの注文処理の自動化
- ルート1:注文金額3万円以上 → 上位顧客リストに追加 + 特別クーポン送付
- ルート2:初回購入 → ウェルカムメール送信 + 初回限定クーポン
- ルート3:在庫10個以下の商品 → 在庫補充アラート
- デフォルトルート:通常の注文処理
このように、ルーターとフィルターを組み合わせることで、実際のビジネスロジックに沿った複雑な自動化フローを構築できます。
よくある失敗とその回避方法
1. データ型の不一致によるエラー
数値として比較したいデータが文字列として扱われている場合、期待通りの結果が得られません。必要に応じて、parseFloat()やparseInt()関数を使ってデータ型を変換しましょう。
2. 空のデータによる処理の停止
前のモジュールからデータが渡されない場合、フィルターでエラーが発生することがあります。「Exists」演算子を使って、データの存在を確認してから比較を行うようにしましょう。
3. 条件の優先順位の誤り
複数のルートがある場合、上から順に評価されます。より具体的な条件を上に、一般的な条件を下に配置することで、意図した通りの分岐を実現できます。
Makeの基本的な使い方については、Make完全ガイド記事でも詳しく解説していますので、併せてご覧ください。
フィルター機能と他の条件分岐方法との比較
Makeには、フィルター機能以外にも条件分岐を実現する方法があります。それぞれの特徴を理解して、適切に使い分けることが重要です。
1. Switch文との比較
Switchモジュールは、1つの値に対して複数の選択肢がある場合に適しています。
Switchが適している場合:
- 部署名に応じて異なる承認者に送信(営業部→営業部長、経理部→経理部長)
- 曜日に応じて異なる処理を実行
- 商品カテゴリーごとに異なる在庫管理
フィルターが適している場合:
- 数値の範囲による判定(売上10万円以上、在庫50個以下)
- 複数条件の組み合わせ(VIP顧客かつ高額購入)
- 存在チェック(メールアドレスが入力されているか)
2. カスタム関数(Custom JS)との比較
より複雑な条件判定が必要な場合、Custom JSモジュールでJavaScriptを使用することも可能です。
メリット:
正規表現や複雑な計算を含む条件設定が可能、再利用可能な関数として定義できる
デメリット:
プログラミング知識が必要、デバッグが難しい、視覚的に条件が分かりにくい
基本的には、フィルター機能で実現できる条件分岐はフィルターを使用し、どうしても実現できない場合のみカスタム関数を検討することをおすすめします。
3. エラーハンドリングとの使い分け
エラーハンドリングも一種の条件分岐ですが、フィルターとは用途が異なります。
- フィルター:正常なデータの中から条件に合うものを選別
- エラーハンドリング:処理中にエラーが発生した場合の代替処理
両方を適切に組み合わせることで、堅牢な自動化フローを構築できます。
まとめ:フィルター機能を使いこなして、ワンランク上の自動化を実現しよう
Makeのフィルター機能は、単純な自動化を実用的なビジネスツールに変える重要な機能です。
この記事で学んだポイントを振り返ると:
- フィルター機能により、条件に応じた柔軟な処理が可能になる
- AND/OR条件を組み合わせて、複雑なビジネスロジックも実現できる
- ルーターと組み合わせることで、より高度な分岐処理が構築できる
- 用途に応じてSwitch文やカスタム関数と使い分けることが重要
次のステップとして、まずは簡単な条件分岐から始めてみましょう。例えば、受信メールの件名に特定のキーワードが含まれている場合だけ通知を送る、といったシンプルなフィルターから実装してみてください。
慣れてきたら、複数条件やルーターを使った複雑な分岐にも挑戦してみましょう。実際に手を動かすことで、フィルター機能の可能性と便利さを実感できるはずです。
Makeを使った自動化の第一歩を踏み出したい方は、こちらから無料でアカウントを作成できます。フィルター機能を含む基本機能は無料プランでも十分に試すことができるので、ぜひ実際に触って体験してみてください。