Webhookトリガーは、ワークフローごとに専用の「起動用URL」を発行する機能です。
このURLに実行リクエストを送ることで、外部アプリなどから対象のワークフローを好きなタイミングで自動実行できます。
起動用URLの作成
ワークフローを起動するための専用URLを発行します。
ワークフローの選択
ワークフロー一覧から、対象のワークフローをクリックします。Webhook設定の表示
画面右上の [Webhookトリガー] アイコンをクリックします。トリガーの作成
ダイアログ右上の[+トリガーを作成] をクリックします。URLのコピー
発行されたURLをコピーします。
このURLを呼び出し元(外部サービスや別のReckonerワークフロー等)に設定することで、連携が可能になります。
⚠️ セキュリティ上の注意
このURLを知っている人は誰でもワークフローを実行できてしまいます。URLの取り扱いには十分ご注意ください。
ワークフローの実行方法
発行したURLに実行リクエスト(HTTP POST)を送信することで、ワークフローが起動します。
基本的な実行例(curl)
特別なデータ(パラメーター)を送らず、ワークフローをそのまま起動する際の最もシンプルなコマンド例です。
curl -X POST https://hooks.reckoner-api.com/api/v2/workflows/xxxx/run/xxxxxxxx
エラー(411 Length Required)が出る場合
ご利用の環境によっては、実行時に「411 Length Required」というエラーが発生することがあります。これは、リクエスト時にデータ量の指定(Content-Length)が必要な場合に起こるエラーです。その場合は、コマンドに -H "Content-Length: 0" を追加して実行してください。
実行結果の確認
Webhookによって正しく実行されたかは、以下の手順で確認できます。
実行履歴の表示
ワークフロー画面上部の [実行履歴] タブをクリックします。実行方法の確認
一覧の「実行方法」列を確認します。Webhook と表示されているものが、本機能で起動されたジョブです。
パラメーター変数値の動的な更新(応用)
Webhookの実行時にJSONデータを送信することで、ワークフロー内の変数を、実行のたび任意の値に書き換えることができます。
前提条件
この機能を利用するには、あらかじめワークフロー側で [パラメーター変数] を作成しておく必要があります。
リクエスト例(curl)
curl -X POST https://hooks.reckoner-api.com/api/v2/workflows/xxxx/run/xxxxx \
-H "Content-Type: application/json" \
-d '{"parameters": [{"name": "変数1","value": "値1"}, {"name": "変数2","value": "値2"}]}'パラメータ例
{
"parameters": [
{
"name": "変数1",
"value": "xxxx.csv"
},
{
"name": "変数2",
"value": "accesskey-xxxxxxxxx"
}
]
}| キー | 型 | 詳細 |
|---|---|---|
| parameters | array(配列) | 更新する変数のリストです。全体を [ ] で囲みます |
| └ name | string(文字列) | ワークフローで設定した変数名を設定します |
| └ value | string(文字列) | 変数に設定する値を指定します |
ご利用にあたっての注意
Webhookトリガーを利用する際は、以下の点にご注意ください。
- データ型について
変数に設定する値(value)は、必ず文字列形式(" " で囲む形式)で指定してください。 - パラメータ関数の扱い
CURRENT_DATE などの関数をあらかじめ設定している場合、Webhook実行時にその関数が評価された後の値が代入されます。 - 変数が更新されないケース
以下のようにvalueが空(空文字)であったり、value自体が定義されていない場合は、変数の更新は行われません。
例:{ "name": "変数1", "value": "" }
例:{ "name": "変数1" } - 未定義の変数名の指定
ワークフロー側に存在しない変数名をJSONボディに含めて実行しても、エラーにはならずワークフロー自体はそのまま実行されます(存在しない変数は無視されます)。 - JSON形式エラー時の挙動
リクエストボディがJSONとして正しく解釈できない場合、エラーとなり実行されません。また、この場合は実行履歴にも残りません。