データアクションの設定要求


注意:この記事は、AWS Lambda、Microsoft Dynamics 365、PureCloud、Salesforce、Webサービス、およびZendeskデータアクション統合に適用されます。

データアクション統合用のカスタムアクションを作成できます。カスタムアクションは、その設定にリクエストとレスポンスを含みます。詳細については、 インテグレーション用のカスタムアクションを作成する.

この記事では、要求の各部分について説明します。応答の詳細については、 応答構成.

カスタムアクションでは、リクエストテンプレートを使用して、リモートエンドポイントまたは AWS Lambda 関数に対する POST、PUT、パッチリクエストの本文を定義します。リモートエンドポイントは、requestUrlTemplate によって定義されます。これらの要求テンプレートは、マクロの使用をサポートします。詳細については、 データアクション用の速度マクロ

注意:GET 要求は、要求テンプレートを使用しません。requestTemplateフィールドが示しデフォルト 「$ {input.rawRequest}」の値を。

requestTemplate

要求テンプレートは Velocity を使用して、POST、PUT、パッチ要求の本文を定義します。要求テンプレートを保存すると、API 応答によって requestTemplateUri として参照されます。AWS Lambda データアクション統合では、以下のように指定した入力 requestTemplate で利用できるようになります イベント 呼び出された AWS Lambda 関数のパラメーター。

ヘッダー

ヘッダーは、リモートエンドポイントに送信される要求に HTTP ヘッダーとして追加されるキーと値のペアです。ヘッダー値は、速度置換をサポートします。

ノート
  • 認証を処理するために API に依存している場合は、要求ヘッダーに承認を含めないでください。統合によってヘッダーが自動的に設定されます。それ以外の場合は、要求ヘッダーに独自の権限を含めます。
  • AWS Lambdaデータアクション統合はヘッダーを使用しません。

requestType

requestType は、データアクションで HTTP 要求の種類を定義します。使用可能な HTTP 要求の種類には、POST、PUT、および PATCH があります。

注意:AWS Lambda データアクションの統合については、POST を使用します。この HTTP メソッドは、すべての要求本文が送信されることを保証します。

requestUrlTemplate

requestUrlTemplate は、HTTP 要求がヒットしたリモートエンドポイント、または AWS データアクションの統合によって呼び出される AWS Lambda 関数の ARN です。requestUrlTemplate は変数置換に Velocity テンプレートを使用します。

メモ: RequestUrlTemplate が HTTP エンドポイントを参照する場合、requestUrlTemplate は HTTP セキュア (HTTPS) エンドポイントを参照する必要があります。

requestTemplateUri

requestTemplateUri は、requestTemplate のリファレンス URI です。RequestTemplate を保存すると、統合が折りたたまれます。RequestTemplate の内容を保存した後に表示するには、requestTemplateUri で GET 操作を発行します。

例 requestTemplate

アクション実行ボディ

次の REST 呼び出しは、アクション sampleAction123 をトリガーし、サンプルアクションで inputSchema で定義された3つのプロパティを渡します。

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"
}'

アクションサービスは、requestUrlTemplate や requestTemplate などのサンプルアクションでこれらの3つのプロパティを参照する値を検索して置き換えます。

requestTemplate

アクションは、次の requestTemplate を持つように構成されています。

"{\"firstName\": \"${input.FIRST_NAME}\",\"lastName\": \"${input.LAST_NAME}\"}",

アクションサービスは、サンプルアクションの 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: PureCloudIntegrations/1.0' \
  -H 'Company: My company' \
  -d '{
  "firstName": "John",
  "lastName": "Smith"}'

新しいアクションを作成する要求

次に、POST を https ://sample.com/users/${入力に実行するように構成されたアクションを示します。ユーザー 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": "PureCloudIntegrations/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": "PureCloudIntegrations/1.0",
        	    "Company": "My company"
         },
         "response": {
             ...
         }
    },
    "category": "Sample",
    "version": 1,
    "secure": true,
    "selfUri": "/api/v2/integrations/actions/<action ID>"
}

カスタムアクションの設定の詳細については、 構成を追加 そして 構成の変更.

詳細については、 統合のカスタムアクションについて

統合について詳しくは、AWS Lambdaデータアクション統合についてMicrosoft Dynamics 365データアクション統合についてPureCloudデータアクション統合についてSalesforceデータアクション統合についてWeb サービス データアクションの統合について、そして Zendeskデータアクション統合についてを参照してください。