데이터 작업에 대한 구성 요청

참고: 이 문서는 AWS Lambda, Genesys Cloud, Google, Microsoft Dynamics 365, Salesforce, 웹 서비스 및 Zendesk 데이터 작업 통합에 적용됩니다.

데이터 작업 통합에 대한 사용자 지정 작업을 만들 수 있습니다. 사용자 지정 작업에는 구성에 요청과 응답이 포함됩니다. 자세한 내용은 통합을 위한 사용자 지정 작업 만들기.

이 문서에서는 요청의 일부를 설명합니다. 응답에 대한 정보는 다음을 참조하십시오. 응답 구성.

사용자 지정 작업은 요청 템플릿을 사용하여 원격 엔드포인트 또는 AWS Lambda 함수에 대한 POST, PUT 및 PATCH 요청의 본문을 정의합니다. 원격 끝점은 다음과 같이 정의됩니다. 요청 URL 템플릿. 이러한 요청 템플릿은 매크로 사용을 지원합니다. 자세한 내용은 데이터 작업을 위한 속도 매크로.

메모:
  • GET 요청은 요청 템플릿을 사용하지 않습니다. NS 요청 템플릿 필드에는 기본값이 표시됩니다. “${input.rawRequest}”.
  • 과도하게 중첩된 JSON 개체는 데이터 작업 서비스의 성능에 영향을 줄 수 있습니다. 성능을 유지하기 위해 JSON 객체의 깊이는 50레벨로 제한됩니다. 자세한 내용은 Genesys Cloud 개발자 센터에서 한도를 참조하세요.

주의: 내에서 입력 또는 출력 변수의 사용을 피하십시오. 요청 템플릿, 성공템플릿, 또는 요청 URL 템플릿. 특수 문자로 변수를 적절히 이스케이프하지 않으면 데이터 작업이 실행되지 않습니다.
  • 사용하다 esc.json문자열 JSON 본문 내에서 문자열을 이스케이프합니다.

    자세한 내용은 esc.jsonString 섹션을 참조하십시오. 속도 매크로.

  • 사용하다 esc.url() 또는 urlTool.OptionalQueryParam() 경로 또는 쿼리 매개변수를 적절히 이스케이프하려면 요청 URL 템플릿 또는 요청 템플릿 사용하는 경우 x-www.form-urlencoded 가치.

    For more information, see the String-escaping library section at Velocity macros and URL form encoding for data actions.

요청 템플릿

요청 템플릿은 Velocity를 사용하여 POST, PUT 및 PATCH 요청의 본문을 정의합니다. 요청 템플릿을 저장한 후 API 응답은 이를 다음과 같이 참조합니다. requestTemplateUri.

  • AWS Lambda 데이터 작업 통합의 경우 아래에 지정하는 모든 입력 요청 템플릿 에서 사용할 수 있습니다. 이벤트 호출된 AWS Lambda 함수의 매개변수입니다.
  • Google Cloud Functions의 경우 $esc.json문자열 매크로는 요청의 문자열을 JSON으로 변환합니다.

헤더

헤더는 원격 엔드포인트로 전송되는 요청에 HTTP 헤더로 추가되는 키-값 쌍입니다. 헤더 값은 Velocity 대체를 지원합니다.

참고: API를 사용하여 권한 부여를 처리하는 경우 요청 헤더에 권한 부여를 포함하지 마십시오. 통합하면 헤더가 자동으로 채워집니다. 그렇지 않으면 요청 헤더에 자체 승인을 포함하십시오.

AWS Lambda 데이터 작업 통합은 다음과 같이 키-값 쌍을 추가합니다. 클라이언트 컨텍스트 호출 항목 문맥 물체. 속성이 있는 경우 다음 속성이 context 개체에 자동으로 설정됩니다.

  • ININ-대화-Id
  • ININ-조직-ID
  • ININ-홈-조직-ID
  • ININ-Correlation-Id
  • ININ-사용자-ID
  • ININ-통합-ID

요청 유형

요청 유형 데이터 작업에서 HTTP 요청 유형을 정의합니다. 사용 가능한 HTTP 요청 유형에는 POST, PUT 및 PATCH가 있습니다.

참고: AWS Lambda 및 Google 데이터 작업 통합의 경우 POST를 사용합니다. 이 HTTP 메서드는 모든 요청 본문이 전송되도록 합니다.

요청 URL 템플릿

요청 URL 템플릿 HTTP 요청이 적중하는 원격 엔드포인트 또는 AWS 데이터 작업 통합이 호출하는 AWS Lambda 함수의 ARN입니다. 요청 URL 템플릿 변수 대체를 위해 Velocity 템플릿을 사용합니다. 

참고: requestUrlTemplate이 HTTP 끝점을 참조하는 경우 요청 URL 템플릿 HTTP 보안(HTTPS) 끝점을 참조해야 합니다.

requestTemplateUri

requestTemplateUri 귀하의 참조 URI입니다 요청 템플릿. 저장할 때 요청 템플릿, 통합으로 축소됩니다. 귀하의 콘텐츠를 보려면 요청 템플릿 저장한 후 GET 작업을 실행하십시오. requestTemplateUri.

예시 요청 템플릿

작업 실행 기관

다음 REST 호출은 sampleAction123 작업을 트리거하고 입력 스키마 샘플 작업에서. 

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

작업 서비스는 다음을 포함하여 샘플 작업에서 이러한 세 가지 속성을 참조하는 값을 찾아 바꿉니다. 요청 URL 템플릿 그리고 요청 템플릿

요청 템플릿

작업은 다음을 포함하도록 구성됩니다. 요청 템플릿

"{"firstName": "$esc.jsonString(${input.FIRST_NAME})","lastName": "$esc.jsonString(${input.LAST_NAME})"},

이스케이프에 대한 자세한 내용은 다음을 참조하십시오. esc.json문자열 섹션 데이터 작업을 위한 속도 매크로.

작업 서비스는 샘플 작업의 Velocity 템플릿 자리 표시자를 대체하여 다음과 같은 결과를 가져옵니다.

{
  "firstName": "John",
  "lastName": "Smith"
}

요청 템플릿 원격 엔드포인트로 전송되는 HTTP POST의 본문이 됩니다. 

웹 서비스 호출

수정된 샘플 작업으로 인해 다음 웹 서비스 호출이 발생합니다.

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}. 입력 스키마 요청을 구성하는 데 사용되는 세 가지 속성을 정의합니다. USER_ID, 이름, . 이 세 가지 속성은 다음에서 참조됩니다. 요청 템플릿 그리고 요청 URL 템플릿.

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

사용자 지정 작업의 구성에 대한 자세한 내용은 다음을 참조하십시오. 구성 추가 그리고 구성 수정.

자세한 내용은 통합을 위한 사용자 지정 작업 정보.

통합에 대한 자세한 내용은 다음을 참조하십시오. 데이터 작업 통합 정보.