データアクションの設定要求
データアクション統合用のカスタムアクションを作成できます。 カスタムアクションは、その設定にリクエストとレスポンスを含みます。 詳細については、 インテグレーション用のカスタムアクションを作成する.
この記事では、回答の一部について説明します。 要求については、設定を要求するを参照してください。
カスタムアクションでは、リクエストテンプレートを使用して、リモートエンドポイントまたは AWS Lambda 関数に対する POST、PUT、パッチリクエストの本文を定義します。 リモートエンドポイントはによって定義されます requestUrlTemplate. これらの要求テンプレートは、マクロの使用をサポートします。 詳細については、 データアクション用の速度マクロ。
- 使用する esc.jsonString JSON本体内の文字列をエスケープします。
詳細については、以下の「esc.jsonString」セクションを参照してください。 速度マクロ.
- 使用する esc.url() または urlTool.optionalQueryParam() のパスまたはクエリパラメータを適切にエスケープするには requestUrlTemplate または requestTemplate 使用している場合 x-www.form-urlencoded 値。
詳しくは、の String-escaping library の項を参照してください。 Velocity マクロ およびデータアクションの URL フォームエンコーディング.
requestTemplate
リクエストテンプレートは、Velocityを使用して、POST、PUT、およびPATCHリクエストの本体を定義します。 リクエストテンプレートを保存すると、APIレスポンスはそれを次のように参照します requestTemplateUri。
- AWS Lambdaデータアクション統合の場合、指定したすべての入力 requestTemplateで利用可能になります出来事 呼び出されたAWS Lambda関数のパラメーター。
- Google Cloud Functionsでは、 $ esc.jsonString マクロは、リクエスト内の文字列をJSONに変換します。
ヘッダー
ヘッダーは、リモートエンドポイントに送信される要求に HTTP ヘッダーとして追加されるキーと値のペアです。 ヘッダー値は、速度置換をサポートします。
メモ: 認証を処理するために API に依存している場合は、要求ヘッダーに承認を含めないでください。 統合によってヘッダーが自動的に設定されます。 それ以外の場合は、要求ヘッダーに独自の権限を含めます。
AWS Lambdaデータアクション統合は、キーと値のペアを次のように追加します clientContext 呼び出しの項目 環境 オブジェクト。 属性が存在する場合、コンテキスト オブジェクトに以下の属性が自動的に設定されます:
- ININ-会話ID
- ININ-組織ID
- ININ-Home-Organization-Id
- ININ-相関ID
- ININ-ユーザーID
- ININ-統合ID
requestType
リクエストの種類 データデータ アクションでHTTPリクエストのタイプを定義します。 使用可能な HTTP 要求の種類には、POST、PUT、および PATCH があります。
requestUrlTemplate
requestUrlTemplate は、HTTPリクエストがヒットするリモートエンドポイントポイント、またはAWSデータアクション統合が呼び出すAWS Lambda関数のARNです。 requestUrlTemplate 変数置換にVelocityテンプレートを使用します。
requestTemplateUri
requestTemplateUri は、参照URIです requestTemplate. 保存するとき requestTemplate、統合により崩壊します。 の内容を表示するには requestTemplate 保存した後、GET操作を発行します requestTemplateUri.
例 requestTemplate
アクション実行ボディ
次のREST呼び出しは、アクションsampleAction123をトリガーし、 inputSchema サンプルアクションで。
curl -X POST https://api.mypurecloud.com/api/v2/integrations/actions/sampleAction123/execute \ -H 'authorization: bearer *****' \ -d '{ "USER_ID": 123, "FIRST_NAME":"John", "LAST_NAME": "Smith" }'
アクションサービスは、サンプルアクション内の次の3つのプロパティを参照する値を見つけて置き換えます。 requestUrlTemplate そして requestTemplate.
requestTemplate
アクションは次のように構成されます requestTemplate:
"{"firstName": "$esc.jsonString(${input.FIRST_NAME})","lastName": "$esc.jsonString(${input.LAST_NAME})"},
エスケープの詳細については、 esc.json文字列 セクションでの データ アクションの速度マクロ.
アクションサービスは、サンプルアクションの Velocity テンプレートプレースホルダーを置き換え、次のようになります。
{
"firstName": "John",
"lastName": "Smith"
}
requestTemplate リモートエンドポイント送信されるHTTP POSTの本文になります。
Web サービス呼び出し
変更されたサンプルアクションにより、次の web サービスコールが発生します。
curl -X POST \ https://sample.com/users/123 \ -H 'content-type: application/json' \ -H 'UserAgent: GenesysCloudIntegrations/1.0' \ -H 'Company: My company' \ -d '{ "firstName": "John", "lastName": "Smith"}'
新しいアクションを作成する要求
以下は、POSTを実行するように構成されたアクションです。 https ://sample.com/users/${input.USER_ID}。inputSchema リクエストの作成に使用される3つのプロパティを定義します。 USER_ID, FIRST_NAME, LAST_NAME. これらの3つのプロパティは、 requestTemplate そして requestUrlTemplate.
{
"category": "Sample",
"contract": {
"input": {
"inputSchema": {
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Update user's first and/or last name",
"properties": {
"USER_ID": {
"description": "User Id",
"type": "number"
},
"FIRST_NAME": {
"description": "Users first name",
"type": "string"
},
"LAST_NAME": {
"description": "User last name",
"type": "string"
}
},
"required": [
"USER_ID",
"FIRST_NAME",
"LAST_NAME"
],
"title": "Update name request",
"type": "object"
}
},
"output": {
...
}
},
"config": {
"request": {
"headers": {
"Content-Type": "application/json",
"UserAgent": "GenesysCloudIntegrations/1.0",
"Company": "My company"
},
"requestTemplate" : "{\"firstName\": \"${input.FIRST_NAME}\",\"lastName\": \"${input.LAST_NAME}\"}",
"requestType": "POST",
"requestUrlTemplate": "https://sample.com/users/${input.USER_ID}"
},
"response": {
...
}
},
"name": "Sample Action",
"secure": true
}
アクション定義を取得した結果
{
"id": "<action ID>",
"name": "Sample Action",
...
"config: {
"request": {
"requestUrlTemplate": "https://sample.com/users/${input.USER_ID}",
"requestTemplateUri": "/api/v2/integrations/actions/<action ID>/templates/requesttemplate.vm",
"requestType": "POST",
"headers": {
"Content-Type": "application/json",
"UserAgent": "GenesysCloudIntegrations/1.0",
"Company": "My company"
},
"response": {
...
}
},
"category": "Sample",
"version": 1,
"secure": true,
"selfUri": "/api/v2/integrations/actions/<action ID>"
}
カスタムアクションの設定の詳細については、 構成を追加 そして 構成の変更.
詳細については、 統合のカスタムアクションについて。
統合の詳細については、 データアクションの統合についてをご覧ください。