「Makeでシナリオを作ったけど、毎回手動で実行するのが面倒…」
「定期実行だと無駄な処理が多くてオペレーション数を消費してしまう…」
そんな悩みを抱えていませんか?
実は、MakeにはOn-demandスケジュールという便利な機能があります。
この機能を使えば、WebhookのようなトリガーがなくてもAPIやアプリから必要な時だけシナリオを実行できるようになります。
本記事では、On-demandスケジュールの基本的な仕組みから具体的な設定方法、実践的な活用事例まで詳しく解説します。
この記事を読み終える頃には、あなたもOn-demandスケジュールを使いこなして、より効率的な自動化システムを構築できるようになっているはずです。
On-demandスケジュールが必要な理由と解決できる課題
Makeでシナリオを実行する方法は主に3つあります。定期実行(Schedule)、Webhookによるトリガー実行、そして手動実行です。しかし、それぞれに課題があります。
従来の実行方法の限界
定期実行は便利ですが、データが更新されていない時でも実行されてしまい、無駄なオペレーション数を消費します。例えば、15分ごとにGoogleスプレッドシートをチェックするシナリオを作った場合、1日で96回も実行されることになります。実際にデータが更新されるのが1日3回程度なら、93回は無駄な実行になってしまいます。
Webhookトリガーは効率的ですが、すべてのアプリケーションがWebhookに対応しているわけではありません。また、Webhook URLの管理やセキュリティ設定など、追加の設定が必要になることもあります。
手動実行は確実ですが、毎回Makeの管理画面にログインして実行ボタンをクリックする必要があり、自動化の意味が薄れてしまいます。
On-demandスケジュールが解決する具体的な課題
On-demandスケジュールは、これらの課題を解決する第4の選択肢です。具体的には以下のような場面で威力を発揮します。
- 社内システムからの呼び出し:既存の業務システムから必要な時だけMakeのシナリオを実行したい
- ユーザーアクションに応じた処理:Webサイトのボタンクリックなど、ユーザーの操作に応じてシナリオを実行したい
- 条件付き実行:特定の条件を満たした時だけシナリオを実行したい(例:在庫が10個以下になった時だけ発注処理を実行)
- 外部アプリからの統合:Webhook非対応のアプリケーションからMakeのシナリオを呼び出したい
私が実際にOn-demandスケジュールを使い始めたきっかけは、クライアントから「必要な時だけレポートを生成したい」という要望を受けたことでした。毎日定期的にレポートを生成すると、見ない日のレポートも作成されてしまい、Google DriveやDropboxの容量を無駄に消費していたのです。
On-demandスケジュールの設定方法と実践的な活用法
それでは、実際にOn-demandスケジュールを設定する方法を見ていきましょう。設定は思っているよりもシンプルです。
基本的な設定手順
1. シナリオの作成または編集画面を開く
まず、On-demandスケジュールを設定したいシナリオを開きます。新規作成でも既存のシナリオでも構いません。
2. スケジューリング設定を開く
シナリオエディタの左下にある時計アイコンをクリックします。ここでスケジュールの設定ができます。
3. On-demandを選択
スケジュールタイプのドロップダウンから「On demand」を選択します。すると、実行用のURLが自動的に生成されます。
4. 実行URLをコピー
生成されたURLをコピーして、安全な場所に保存します。このURLにHTTP POSTリクエストを送信することで、シナリオが実行されます。
実行URLの構造と使い方
On-demandスケジュールで生成されるURLは以下のような構造になっています:
https://hook.eu1.make.com/[一意のID]/[トークン]
このURLは以下の特徴を持っています:
- HTTPSで保護されているため、通信は暗号化されます
- 一意のIDとトークンの組み合わせにより、推測による不正実行を防ぎます
- POSTリクエストのみ受け付けるため、ブラウザからの誤アクセスを防げます
実践的な実行方法
On-demandスケジュールのシナリオを実行する方法はいくつかあります。技術レベルに応じて選択してください。
1. cURLコマンドを使った実行(開発者向け)
ターミナルやコマンドプロンプトから以下のコマンドを実行します:
curl -X POST https://hook.eu1.make.com/あなたのURL
2. Pythonスクリプトからの実行
Pythonを使えば、より複雑な条件での実行も可能です:
import requests
def execute_make_scenario():
url = "https://hook.eu1.make.com/あなたのURL"
response = requests.post(url)
if response.status_code == 200:
print("シナリオが正常に実行されました")
else:
print(f"エラーが発生しました: {response.status_code}")
# 条件に応じて実行
if 在庫数 10:
execute_make_scenario()3. Google Apps Scriptからの実行
Googleスプレッドシートのカスタムメニューから実行する例:
function executeMakeScenario() {
var url = "https://hook.eu1.make.com/あなたのURL";
var options = {
'method': 'post',
'muteHttpExceptions': true
};
var response = UrlFetchApp.fetch(url, options);
if (response.getResponseCode() == 200) {
SpreadsheetApp.getUi().alert('処理が完了しました');
}
}パラメータの受け渡し
On-demandスケジュールの優れた点は、実行時にパラメータを渡せることです。これにより、動的な処理が可能になります。
例えば、顧客IDを渡して特定の顧客のレポートだけを生成する場合:
curl -X POST https://hook.eu1.make.com/あなたのURL \
-H "Content-Type: application/json" \
-d '{"customer_id": "12345", "report_type": "monthly"}'Make側では、Webhookモジュールと同様に、受け取ったデータを後続のモジュールで使用できます。
よくある失敗とその回避方法
On-demandスケジュールを使い始めた頃、私もいくつかの失敗を経験しました。ここでは、よくある失敗とその対策を紹介します。
1. GETリクエストで実行しようとする
ブラウザのアドレスバーにURLを入力しても実行されません。必ずPOSTリクエストを使用してください。
2. URLの漏洩
実行URLは認証情報と同じように扱ってください。GitHubなどの公開リポジトリにコミットしないよう注意が必要です。環境変数や秘密管理ツールを使用することをおすすめします。
3. タイムアウトエラー
シナリオの実行時間が長い場合、呼び出し側でタイムアウトが発生することがあります。非同期実行を検討するか、タイムアウト時間を延長してください。
4. 同時実行の問題
複数の場所から同時に実行される可能性がある場合は、シナリオ側で排他制御を実装する必要があります。データストアモジュールを使ったフラグ管理などが有効です。
他の実行方法との比較とOn-demandスケジュールの適用判断
On-demandスケジュールは便利な機能ですが、すべての場面で最適というわけではありません。ここでは、他の実行方法と比較しながら、どのような場合にOn-demandスケジュールを選ぶべきか解説します。
実行方法の比較表
| 実行方法 | メリット | デメリット | 適している場面 |
|---|---|---|---|
| 定期実行(Schedule) | 設定が簡単、確実に実行される | 無駄な実行が発生しやすい | 定期的なバックアップ、日次レポート |
| Webhook | リアルタイム性が高い、効率的 | Webhook対応アプリが必要 | フォーム送信、決済通知 |
| On-demand | 柔軟性が高い、無駄な実行なし | 呼び出し側の実装が必要 | 条件付き実行、ユーザー操作起動 |
| 手動実行 | 完全な制御が可能 | 自動化のメリットが薄い | テスト、初期設定 |
On-demandスケジュールがおすすめの人
- プログラミングの基礎知識がある人:HTTPリクエストの送信方法を理解している必要があります
- 既存システムとの連携を考えている人:社内システムやカスタムアプリケーションとMakeを連携させたい場合に最適です
- コスト最適化を重視する人:無駄な実行を避けてオペレーション数を節約したい場合に有効です
- 条件に応じた柔軟な実行が必要な人:データの状態や外部要因に応じて実行タイミングを制御したい場合に適しています
On-demandスケジュールが向いていない場合
一方で、以下のような場合は他の実行方法を検討した方が良いでしょう:
- プログラミング知識がなく、GUIだけで完結させたい場合
- 確実に定期的な実行が必要な場合(例:法的要件のあるバックアップ)
- ミリ秒単位のリアルタイム性が要求される場合
まとめと次のステップ
MakeのOn-demandスケジュールは、必要な時だけシナリオを実行できる強力な機能です。定期実行による無駄なオペレーション消費を避けながら、外部システムとの柔軟な連携を実現できます。
本記事で解説した内容をまとめると:
- On-demandスケジュールは、HTTP POSTリクエストでシナリオを実行する仕組み
- 設定は簡単で、生成されたURLにリクエストを送るだけで実行可能
- パラメータの受け渡しにより、動的な処理も実現できる
- 既存システムとの連携や条件付き実行に最適
次のステップとして、まずは簡単なテストシナリオでOn-demandスケジュールを試してみることをおすすめします。慣れてきたら、実際の業務プロセスに組み込んでいきましょう。
Makeには他にも多くの便利な機能があります。より詳しくMakeについて学びたい方は、Make完全ガイド記事をご覧ください。基本的な使い方から高度な活用方法まで、体系的に解説しています。
また、実際にMakeを使い始める準備ができた方は、こちらから無料アカウントを作成できます。無料プランでも月1,000オペレーションまで利用可能なので、On-demandスケジュールの動作を十分に検証できます。
自動化の可能性は無限大です。On-demandスケジュールを活用して、より効率的で柔軟な自動化システムを構築していきましょう。
