外部のWeb APIを実行した結果をフォームに自動入力する(スタンダードプラン以上のみ)
この機能はスタンダードプラン以上限定です。
kickflowのフォームでは、外部のWeb APIを実行したレスポンスから抽出した値をフォームに自動入力することができます。
この機能はkickflowの汎用マスタの代わりに外部のデータベースから直接値を取得したり、外部のアプリケーションに持たせた複雑なロジックを元にフォームへの入力を自動で計算するのに使用できます。
Web APIの実行はユーザーがフォーム内に配置されるAPI実行ボタンを押したときに実行されます。
また、ユーザーがボタンを押すたびに何回でも実行されます。
サポートしているWeb API
実行されるWeb APIは、以下の条件を満たしている必要があります。
- インターネット経由でアクセスできること
- SSL利用の場合、正規のSSLサーバー証明書を使用していること
- レスポンスの文字コードがUTF-8であること
- レスポンスボディがJSON形式であること
外部API連携を設定するには
-
「管理センター」>「ワークフロー」>「ワークフロー」 を開きます。
-
「新規作成」 をクリック、または既存のワークフローの編集画面を開きます。
-
「入力項目を追加」 をクリックし、以下のように設定します。
-
型
- 「ボタン(外部API連携)」にします(注意:スモールプランでは表示されません)
- 「ボタン(外部API連携)」にします(注意:スモールプランでは表示されません)
-
リクエスト設定
-
HTTPメソッド / URL
- リクエスト先のURLとHTTPメソッドを入力してください。クエリパラメータが必要な場合は、URLに追加してください。
- 自動計算フィールドと同じく変数が使用可能です(例: https://example.com/api?hoge=$12345)
-
ヘッダー(任意)
- リクエストに特定のヘッダーが必要な場合は、ヘッダーを追加してください。複数追加可能です。
- なお、 User-Agent: kickflow はここの設定に関わらずに自動で付加されます。
- 自動計算フィールドと同じく変数が使用可能です。
-
ボディ(任意)
- リクエストにボディが必要な場合は、ボディを入力してください。
- 自動計算フィールドと同じく変数が使用可能です。
-
HTTPメソッド / URL
-
レスポンス設定
-
複数レコードから申請者に選択させる
- レスポンスがレコードの配列を返し、その中からユーザーに一つのレコードを選択させたい場合はチェックを入れてください。
- チェックを入れたときは、レスポンスからレコードの配列を抽出するためのJSONPathを入力してください。
-
フィールドへのマッピング設定
- 取得したレコード内のどの値を、どのフィールドにマッピングするかの設定です。複数追加可能です。マッピング可能なフィールドはテキスト(短文・長文)、数値、整数型のフィールドです。
- レコード内の値の抽出用のJSONPathを入力してください。複数レコードからの選択の場合は、各レコードがJSONPathのルートになります。
- 複数レコードからの選択時は、選択用のダイアログにフィールドを表示するかどうか、表示する場合のタイトルも入力してください。
-
複数レコードから申請者に選択させる
- そのまま進み、ワークフローを保存します。
JSONPathが複数のフィールドにヒットした場合の挙動
JSONPathによる値の抽出時に複数のフィールドがヒットした場合は、自動的に最初にヒットしたフィールドが抽出されます。正しく意図したフィールドにヒットするようJSONPathを入力してください。
リクエストの送信元IPアドレスについて
Web APIへのリクエストは Webhookと同じIPアドレス から実行されます。
リクエスト設定にフィールド内の変数を使用した場合の注意点
入力した変数は、項目の配置順が上のものから順次評価していきます。
そのため以下のような設定をした場合、意図した挙動とならないことがあります。
- 1番目に配置した項目の変数:$team
- 2番目に配置した項目の変数:$team2
- リクエスト設定:https://example.com/api?hoge=$team2
上記設定の場合、配置順が上の $team が先に評価されるため、
「hoge="1番目に配置した項目の入力内容" + "2"」という内容でリクエストします。
リクエスト設定に変数を使用する場合、他の項目と変数名が部分一致していないかどうかを確認してから設定してください。