Docly Child

Webhookトリガー

263 views

この記事では、Webhookトリガーの設定・使用方法を紹介します。


Webhookとは?

Webhookとは一般的に、Webツール①で情報の更新等があった際、それとは別のWebツール②に情報を渡す仕組みを指します。
AUTOROではこれをトリガーとして使用することが可能です。
例)Chatworkの特定チャンネルに投稿があったとき、kintoneにレコードを作成

 Webhookトリガー

Webhookトリガーを使用することで、Webツール①の更新をきっかけにWebツール②に情報を渡すことが可能になります。

あらかじめWebhookトリガーを紐づけたワークフローを準備しておけば、こちらからは何も操作する必要なくワークフローが実行されます。

事前準備として、AUTOROでのWebhookトリガーの設定、トリガー発火のきっかけとなるWebツールのWebhook設定の両方が必要となります。

Webツール側の設定方法に関しては、各ツールのガイドをご参照ください。

以下は、Webhookが利用できる代表的なツールの、Webhook設定画面のリンク集です。ご要望や活用例により随時更新いたします(2024年5月現在)。

 Webhookトリガーの設定画面

下記手順にてWebhookトリガーを作成します。

「トリガー」のページから新規トリガーを作成します。

  • 「追加」のボタンをクリックします。

  • 「Webhookの受信」を選択します

受信するWebhookの設定を行います。

  • このトリガーを有効にする:チェックを入れるとトリガーが有効化されます
  • トリガーの説明:トリガーの内容を記載します(必須)
  • ワークフローを選択:このトリガーによって起動するワークフローを選択します(必須)
  • WebhookのJSON形式のbody:ワークフロー内で使用したいJSONデータがある場合は設定できます。設定できるのは固定値のみとなります(任意)
  • エラーが発生した際の通知先:コラボレーターに追加されているアドレスが通知先として設定できます(任意)

  • 項目への入力が完了したら「テストする」のボタンをクリックします
  • 選択したワークフロー内で使用できる変数の一覧と解説が表示されるので、確認したら「設定を保存する」ボタンをクリックします
    (これらの一覧はいつでも確認可能です)
    • 手順2.で「WebhookのJSON形式のbody」を設定していた場合、ここに追加で表示されます

  • Webhook URLが発行されます
    (こちらも後からいつでも確認できます)

  • コピーを取る等で確認が終われば、「OK」をクリックします
  • トリガー一覧の画面に、今設定したトリガーが追加されました

 ワークフローの設定例

ここでは、上記で設定したトリガーを使用し、「Chatworkの特定のチャンネルにメッセージが送信されたらkintoneのレコードを作成」という挙動のワークフローの作成例をご紹介します。

トリガー作成時に対象ワークフローの指定が必須になるため、最初にワークフローを作成しておきます。この時点では、中身は何も設定していない状態で問題ありません。

詳細な設定方法は「Webhookトリガーの設定画面」でご紹介しているため省略します。

「ワークフローの選択」で、先程作成したワークフローを指定します。

トリガーが作成できたら、発行されたWebhook URLをコピーします。データの受け渡しを行うため、こちらをChatworkとの連携に使用します。

  • トリガー画面からWebhook URLをコピーします

  • Chatworkの設定一覧から「サービス連携」を選択します

  • API > Webhook > 新規作成 と進みます
  • Webhook URL欄に、先程コピーしておいたものを貼り付けます
  • トリガー発火のイベントを設定します。今回は「特定のチャンネルにメッセージが送信されたら」なので、ルームイベントメッセージ作成にチェックを入れ、ルームIDを入力します

Chatwork側の設定も以上で完了です。

トリガーによって起動するワークフローの中身を作成していきます。

まずWebhookトリガーを通してChatworkから受け取った情報をフロー内に呼び出します。トリガー設定時に「ワークフロー内で使用できる変数名」として表示されるうち、リクエストのボディを返すrawBodyを使用します。

※Chatworkに限らずどのツールを利用しても、受け取った情報は基本的にrawBodyという変数に保存されます。

  • RunScriptアクションに以下を入力します
  • Webhookを通して受け取ったChatworkの情報が取得できます
return rawBody;

挙動確認として、Chatworkの任意のチャンネルにメッセージを送信してみます。

このタイミングでトリガーが発火し、想定通りワークフローが実行されているかをご確認ください。

実行に成功していたら、3.で設定したRunScriptのログをご確認ください。
Chatworkのメッセージ本文が、webhook_event内のbodyという項目に格納されていることがわかります。

フロー内で利用するため、こちらのみ抽出して別途変数に保存しておきます。

  • StoreValueアクションを設定します
  • 値を以下とします
${webhook_event.body}

取得したメッセージ本文を任意のフィールドに持つkintoneレコードを作成します。

  • kintoneCreateRecordアクションを設定します
  • 使用するプロバイダーID、アプリIDを指定します。ピッカーから選択可能です
  • 作成レコードのピッカーから、任意のフィールドを選択し、valueには2.で設定した変数を変数表記で入力

ワークフロー自体の設定は以上で完了です。

4.と同じように、再度Chatworkにメッセージを送信してワークフローが実行されるかご確認ください。

kintone上にレコードが作成されていたら完了です。

セッション画面にて、Chatworkでのメッセージ作成したタイミングで、トリガーによって正しくワークフローが起動していることを確認できます。

RunScriptのログが、Chatworkで送信されたメッセージの情報を持っていることが確認できます。

kintone上に、Chatworkのメッセージ本文の情報を受け取ったレコードが作成されています。

# スクリプトを実行_chatworkから受け取った情報を返す
+run_script_1:
  action>: RunScript
  code: "return rawBody;\n"
  private: false

# 変数に保存_メッセージ本文だけ抽出
+store_value_1:
  action>: StoreValue
  key: chatworkbody
  value: ${webhook_event.body}
  private: false

# レコードを1件作成する_本文をタイトルとしてレコード作成
+kintone_create_record_1:
  action>: kintoneCreateRecord
  provider: ''
  appId: ''
  record:
    文字列__1行_:
      value: ${chatworkbody}
  private: false
  meta:
    display:
      provider:
        type: chip
        label: 'kintone (xxxxx.cybozu.com)'
        icon: kintone
      appId:
        label: ''
        icon: kintone
        type: chip

<Webhook>ウェブフック

このページは役に立ちましたか?