Webhook 受信によりシナリオを実行する

Webhook 受信機能を使用することで、指定された Webhook URL に HTTP リクエスト (POST) を送信することで、Coopel の管理画面にログインせずにシナリオを実行できます。

Webhook 受信機能はシナリオ毎に有効化・無効化できます。

ここでは、Webhook 受信機能を有効にする方法、Webhook URL に対する HTTP リクエストを送信してシナリオを実行する方法、一度有効化した Webhook 受信機能を無効にする方法について説明します。

Webhook 受信機能を有効化する

1. シナリオ作成画面の[実行]の右側のlocal_button (1).png(3点ボタン)(①)をクリックし、[シナリオ設定](②)を選択します。

シナリオを予約実行する1.png

Information
プロジェクトフォルダ画面からシナリオの右端の3点縦(黒).png(①)をクリックし、[シナリオ設定](②)を選択しても、シナリオ設定画面を表示できます。シナリオを予約実行する2.png
最近使ったシナリオ](③)にあるシナリオの3点縦(黒).png(④)をクリックしても同様の操作でシナリオ設定画面を表示できます。シナリオを予約実行する3.png

 

2. [Webhook]の左隣のトグルをオンにします。

 

3. Webhook のトグルをオンにすることで、Webhook URL が発行され、下記のように表示が切り替わります。

①Webhook URL
Webhook のリクエストを受信するための URL が表示されます。この URL に POST リクエストを送信することで、シナリオを実行できます。

②URLをコピー
このボタンをクリックすると、表示されたWebhook URLがクリップボードにコピーされます。

③URLを再発行
URLを再発行リンクをクリックすると、新しい Webhook URL が発行されます。 

④[高速モード]
オンにすると、ブラウザ関連のアクション実行時に行われる画面キャプチャ処理がスキップされ、Webhook でシナリオを実行した際のシナリオ実行速度が速くなります。

⑤実行ユーザ情報
このシナリオがどのユーザーとして実行されるかの情報が表示されます。

 

Important
  • シナリオの同時実行数は1ユーザーあたり2までとなります。既に当該ユーザーとして2シナリオ実行中の場合には、エラーとなり、シナリオは実行されません。確実に実行されることを優先するためには、 Webhook 受信用のユーザーアカウントを別途作成し、そのユーザーアカウントでは予約実行や手動実行をしないようにすることをおすすめします。
  • Webhook 受信機能を使用してシナリオを実行した場合、クラウド実行となります。ローカル実行はできません。
  • Webhook のトグルをオンにしたユーザーでシナリオが実行されます。
  • Webhook 受信機能は、シナリオ毎に設定する必要がございます。
  • Webhook経由での実行結果をメールで受信するためには、「全ての実行結果を通知」にする必要があります。(デフォルトは「実行予約の結果のみ通知」)
  • GET メソッドを使用して Webhook URL にアクセスした場合でも、その Webhook URL と疎通できる場合には、{"message":"ok"} が返されます。但し、GET メソッドを使用した場合にはシナリオは実行されません。GET メソッドは Webhook URL の疎通確認用でご使用ください。

 

Information シナリオの実行結果は、メールやSlackで通知することができます。詳しくは「シナリオの実行結果を通知する」を参照してください。

 

 

Webhook 受信機能を使用してシナリオを実行する

Webhook URL に HTTP の POST リクエストを送信することでシナリオを実行できます。

シナリオ実行開始に成功すると下記のメッセージが返されます。

{"message":"ok"}

同時実行数制限によりシナリオ実行開始に失敗すると下記のメッセージが返されます。

{"errors":["task.execute.limited"]}

 

Curl で実行する場合の例:

% curl --location --request POST 'https://api.coopel-dev.com/webhook/XXXXXXX-XXXXXXX'

 

Python で実行する場合の例:
import http.client

 

conn = http.client.HTTPSConnection("api.coopel.com")
payload = ''
headers = {}
conn.request("POST", "/webhook/XXXXXXX-XXXXXXX", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

 

Postman で実行する場合の例:

 

n8n から Coopel のシナリオを実行する場合の例:

n8n の HTTP Request ノードで実行したい Coopel のシナリオの Webhook URL を指定し、Method に POST を指定します。

 

 

Coopel の別のシナリオから実行する場合の例:

web api を call アクションで Webhook URL に POST リクエストを送信することで、Coopel のシナリオから Webhook 受信機能を有効化した別のシナリオの実行を開始することも可能です。但し、当該シナリオ自身の Webhook URL を指定して実行すると、当該シナリオの実行が永久に繰り返される形となりますのでご注意ください。

 

 

Webhook 受信機能を無効化する

[Webhook]の左隣のトグルをオフにすることで、当該シナリオにおけるWebhook 受信機能を無効化できます。

Webhook 受信機能を無効化することで発行した Webhook URL は使用できなくなりますが、再度有効化することで以前と同じ Webhook URL を使用いただけるようになります。(但し、再発行した場合には、再発行前のWebhook URL は使用できなくなります。)

 

 

 

シナリオの実行に失敗する場合

Webhook 受信機能を使用してのシナリオ実行に失敗する原因として、シナリオに不備がある場合や、シナリオの同時実行数上限(1ユーザーアカウントあたり最大2)を超えてしまっている場合があります。以下の方法で原因を特定することができます。

 

今後の Webhook 受信機能について

今後の Webhook 受信機能については、

  • 同時実行数の制限にかかる場合、その受信を Coopel で保持し、同時実行数制限がなくなったタイミングで遅延実行させる
  • POST されたデータを、シナリオ最初のアクションに渡して、そのデータを参照・処理できる

などの機能強化を検討しています。こういった機能のニーズがある場合は、問い合わせフォームにてご連絡をいただけると幸いです。

コメント

0件のコメント

記事コメントは受け付けていません。