カスタム関数は、チームメンバーが直接定義し、複数のタスクで再利用できる関数です。
外部サービスとのAPI通信やJavaScriptコードの実行を関数単位で定義しておくことで、タスクの関数ステップから入力・出力スキーマに基づいて呼び出せます。
[チャネル設定] - [外部サービス連携] - [カスタム関数] で関数の作成・編集ができます。
カスタム関数は、2種類のタイプに分かれます。
API関数:外部HTTP APIを呼び出します。
コード関数:JavaScriptコードを直接実行します。
関数には2つのステータスがあります。
ドラフト:一時保存状態で、編集は可能ですがタスクの関数ステップで呼び出すことはできません。
作動中:公開済みの状態で、タスクの関数ステップから呼び出せます。
[関数識別子] - [入力変数] - [API設定] の順で作成します。
URL・ヘッダー・ボディには {{変数名}} 構文で入力値を埋め込みます。データ内の値は {{user.id}} のように「.(ドット)」でつないで参照できます。
[テスト実行]で「実行」ボタンをクリックし、「成功」になると、次へ進めます。
[アウトプットスキーマ] で定義を最終確認し、[パブリッシュ] ボタンをクリックします。
アウトプットスキーマ:テスト結果をもとにアウトプットスキーマを定義してください。タスク内でこの関数の出力値をマッピングする際に使用されます。
テスト環境の設定:この関数が返す応答値を事前に設定できます。応答値の設定方法は以下の2種類があります。
直接入力方式
テストステップで実際にAPIを呼び出して取得した応答値が、デフォルトで自動入力されます。
各フィールドは自由に編集でき、該当ケース (返金状態・在庫状況) を任意で作成してテストできます。
テストステップをスキップした場合は、テーブルが空の状態で表示されます。値を手動で入力してください。
AI自動生成方式
この関数が返す情報をAIが解析し、テスト用の応答値を自動生成します。
プレビュー環境設定でシナリオの説明を入力すると、その内容に応じた値が生成されます。
例1) 「返金ケース」を入力
→
isRefund: true/status: refund_requested自動生成例2) シナリオ未入力
→ 中立的なデフォルト値 (
isRefund: false/status: deliveredなど) 自動生成
[コード設定] には、基本構造が自動で挿入されます。必要に応じて、以下のように変数を追加してください。
コード内で使用できる変数とモジュールは4種類あります。params.input.* では、Input Schemaで定義した入力値を参照できます。また、axios を使って外部HTTPリクエスト(HTTPSのみ対応)を送信できます。
[アウトプットスキーマ] で定義を最終確認し、[パブリッシュ] ボタンをクリックします。
アウトプットスキーマ:テスト結果をもとにアウトプットスキーマを定義してください。タスク内でこの関数の出力値をマッピングする際に使用されます。
テスト環境の設定:この関数が返す応答値を事前に設定できます。応答値の設定方法は以下の2種類があります。
直接入力方式
テストステップで実際にAPIを呼び出して取得した応答値が、デフォルトで自動入力されます。
各フィールドは自由に編集でき、該当ケース (返金状態・在庫状況) を任意で作成してテストできます。
テストステップをスキップした場合は、テーブルが空の状態で表示されます。値を手動で入力してください。
AI自動生成方式
この関数が返す情報をAIが解析し、テスト用の応答値を自動生成します。
プレビュー環境設定でシナリオの説明を入力すると、その内容に応じた値が生成されます。
例1) 「返金ケース」を入力
→
isRefund: true/status: refund_requested自動生成例2) シナリオ未入力
→ 中立的なデフォルト値 (
isRefund: false/status: deliveredなど) 自動生成
[+ステップを追加] ボタンをクリックし「関数」を選択します。
関数ステップに表示される一覧から、使用したい関数を選択します。
関数作成に必要な変数を入力します。
カスタム関数の制限事項は、開発者ドキュメントのコードステップのページにてご確認いただけます。