ResponseTemplate - 범위가 지정됨, 전역

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기10분
  • ResponseTemplate 스크립트 포함은 응답 템플릿을 관리하기 위한 메서드를 제공합니다.

    응답 템플릿은 에이전트가 케이스 또는 작업 양식에 복사할 수 있는 재사용 가능한 메시지입니다. 사용자에게 빠르고 일관된 메시지를 제공하고 의 요청자에게 에이전트 채팅표준 채팅 응답 메시지를 표시합니다. 이 스크립트 포함에는 기본적으로 활성화되고 sn_templated_snip 네임스페이스 내에서 실행되는 템플릿 응답 플러그인(com.sn_templated_snip)이 필요합니다.

    응답 템플릿에 대한 자세한 내용은 응답 템플릿을 참조하십시오.

    응답 템플릿 - ResponseTemplate()

    새 ResponseTemplate 객체를 인스턴스화합니다.

    표 1. 매개변수
    이름 유형 설명
    안 함
    new sn_templated_snip.ResponseTemplate().query("incident","ef4225a40a0a0b5700d0b8a790747812", "", 0, 0, true, ""); 

    ResponseTemplate - query(String tableName, String recordId, String searchTerm, Number limit, Number offset, Boolean includeEvaluatedBody, String errorFormat, Object opts)

    전달된 쿼리 기준과 일치하는 지정된 테이블의 모든 응답 템플릿을 반환합니다.

    표 2. 매개변수
    이름 유형 설명
    tableName 문자열 sn_templated_snip_note_template 테이블을 검색하여 해당 응답 템플릿을 찾는 데 사용할 테이블의 이름입니다. 예를 들어 인시던트 또는 sn_hr_core_case입니다.
    recordId 문자열 응답 템플릿에서 변수를 렌더링하는 데 사용할 기록의 시스템 ID입니다.
    searchTerm 문자열 옵션입니다. 일치하는 응답 템플릿 목록을 필터링하는 데 사용할 텍스트입니다.

    이 메서드는 이름 및 본문 필드에서 이 텍스트의 CONTAINS 검색을 수행하고 짧은 이름 필드에서 STARTS WITH 검색을 수행합니다. 예를 들어 검색어가 "crash"인 경우 메서드는 쿼리 조건과 일치하고 이름 또는 본문에 crash가 있거나 짧은 이름이 crash로 시작하는 응답 템플릿을 반환합니다.

    짧은 이름과 정확히 일치하는 응답 템플릿이 반환 결과에 먼저 나타납니다. 반환된 다른 모든 응답 템플릿은 이름별로 정렬됩니다.

    기본값: 일치하는 모든 응답 템플릿을 반환합니다.

    제한 번호 옵션입니다. 반환할 응답 템플릿의 최대 수입니다.

    기본값: 50

    오프셋 번호 옵션입니다. 페이지 매김의 경우 검색을 시작할 인덱스입니다.

    기본값: 0

    includeEvaluatedBody 부울 옵션입니다. 템플릿 변수를 렌더링할지 여부를 나타내는 플래그입니다.

    유효한 값은 다음과 같습니다.

    • false: 템플릿 변수를 렌더링하지 않습니다. 응답에는 메시지 변수가 포함되어 있습니다.
      예:
      케이스 ${number}이(가) ${assignment_group}(으)로 에스컬레이션되었습니다.
    • true: 템플릿 변수를 렌더링하고 반환 결과에 반환합니다 evaluated_response .
      예:
      케이스 INC100001 시설로 에스컬레이션되었습니다.

    기본값: false

    오류 형식 문자열 옵션입니다. 오류에 사용할 HTML 서식입니다.

    예:

    "<span style='color:#ffff00'>${%s}</span>"

    기본값: "<span style='color:#ff0000'>${%s}</span>"

    옵션 객체 옵션입니다. sn_templated_snip.response_template 확장점에 전달할 매개변수입니다. 이러한 매개변수의 형식과 내용은 확장점의 구현에 따라 달라집니다. 확장점에 대한 자세한 내용은 확장점을 사용하여 애플리케이션 기능 확장을 참조하십시오.
    표 3. 반환
    유형 설명
    객체 지정된 검색 기준과 일치하는 모든 템플릿의 배열입니다. 짧은 이름과 정확히 일치하는 응답 템플릿이 반환 결과에 먼저 나타납니다. 반환된 다른 모든 응답 템플릿은 이름별로 정렬됩니다.

    배열의 각 노드에는 다음 매개변수가 포함될 수 있습니다.

    • sys_id:문자열. 응답 템플릿의 고유 식별자입니다.
    • name:문자열. 응답 템플릿의 이름입니다.
    • short_name:문자열. 응답 템플릿의 짧은 이름입니다.
    • body: HTML입니다. 응답 템플릿의 본문입니다.
    • short_name_match:부울. 응답 템플릿의 짧은 이름에서 정확히 일치가 발생했는지 여부를 나타내는 플래그입니다.
    • evaluated_response:배열. 템플릿 평가 결과입니다.
      • success:부울. 모든 변수가 제대로 렌더링되었는지 여부를 나타내는 플래그입니다.
      • evaluated_body: HTML입니다. 렌더링된 응답 템플릿 본문입니다.
      • error:배열. 발생한 각 평가 오류에 대한 항목입니다.
        • inAccessibleVariables:문자열. 확인할 수 없는 응답 템플릿 본문의 변수입니다.
        • unEvaluatedVariables:문자열. 평가되지 않은 응답 템플릿 본문의 변수입니다.
        • message:문자열. 오류 메시지.

    이 예에서는 인시던트 테이블과 연결된 응답 템플릿을 쿼리하는 방법을 보여줍니다.

    query("incident","ef4225a40a0a0b5700d0b8a790747812", "", 0, 0, false, "");

    성공적인 응답:

    [
      {
        "sys_id": "5fc1d65993003300a9bc1d1e867ffb9c",
        "name": "Incident escalation",
        "short_name": "escalation",
        "template_body": "<p>Dear ${caller_id.first_name},</p>\r\n<p>Please note that your incident ${number} has been escalated to ${assignment_group}. An agent will be assigned on your case and will keep you updated. If you have more questions please reach out to our team.</p>\r\n<p>Regards,</p>\r\n<p>${sys_updated_by}</p>"
      }
    ]
    

    오류 응답이 있는 동일한 쿼리입니다.

    query("incident","fe4225a40a0a0b5700d0b8a790747812", "", 0, 0, false, "");

    오류 응답:

    [
      {
        "sys_id": "5fc1d65993003300a9bc1d1e867ffb9c",
        "name": "Incident escalation",
        "short_name": "escalation",
        "template_body": "<p>Dear ${caller.first_name},</p>\r\n<p>Please note that your incident ${number} has been escalated to ${assignment_group}. An agent will be assigned on your case and will keep you updated. If you have more questions please reach out to our team.</p>\r\n<p>Regards,</p>\r\n<p>${sys_updated_by}</p>",
        "evaluated_response": {
          "success": false,
          "error": {
            "unEvaluatedVariables": "caller.first_name",
            "message": "Cannot evaluate following variables: caller.first_name"
          },
          "evaluated_body": "<p>Dear <span style='color:#ff0000'>${caller.first_name}</span>,</p>\r\n<p>Please note that your incident INC0000049 has been escalated to Hardware. An agent will be assigned on your case and will keep you updated. If you have more questions please reach out to our team.</p>\r\n<p>Regards,</p>\r\n<p>admin</p>"
        }
      }
    ]
    

    ResponseTemplate - render(String templateId, String tableName, String recordId, String errorFormat, Object opts)

    지정된 응답 템플릿의 HTML 본문을 렌더링합니다.

    렌더링하는 동안 모든 변수는 지정된 테이블과 기록의 정보를 사용하여 해결됩니다. 변수를 확인할 수 없거나 렌더링 중에 다른 문제가 발생하면 메서드는 결과에 오류 메시지를 반환합니다.

    표 4. 매개변수
    이름 유형 설명
    templateId 문자열 렌더링할 응답 템플릿의 시스템 ID입니다.
    tableName 문자열 응답 템플릿에서 변수를 렌더링할 때 사용할 테이블의 이름입니다.
    recordId 문자열 응답 템플릿에서 변수를 렌더링할 때 사용할 기록의 시스템 ID입니다. 이 기록은 에서 tableName지정한 테이블에 있어야 합니다.
    오류 형식 문자열 옵션입니다. 오류에 사용할 HTML 서식입니다.

    예:

    "<span style='color:#ffff00'>${%s}</span>"

    기본값: "<span style='color:#ff0000'>${%s}</span>"

    옵션 객체 옵션입니다. sn_templated_snip.response_template 확장점에 전달할 매개변수입니다. 이러한 매개변수의 형식과 내용은 확장점의 구현에 따라 달라집니다. 확장점에 대한 자세한 내용은 확장점을 사용하여 애플리케이션 기능 확장을 참조하십시오.
    표 5. 반환
    유형 설명
    객체 렌더링의 결과입니다.
    • success: 렌더링이 성공했는지 여부를 나타내는 플래그입니다.
    • evaluated_body:문자열. 성공을 위해 렌더링된 응답 템플릿 본문입니다. 오류의 경우 렌더링된 변수와 렌더링할 수 없는 변수를 모두 포함하는 응답 템플릿 본문입니다.
    • error:객체. 렌더링에 실패한 경우의 오류 메시지.
      • unEvaluatedVariables: 렌더링할 수 없는 변수입니다.
      • message: 오류 메시지.

    이 코드 예시에서는 인시던트 테이블에 대해 렌더링된 응답 템플릿을 요청하는 방법을 보여줍니다.

    render("5fc1d65993003300a9bc1d1e867ffb9c","incident","ef4225a40a0a0b5700d0b8a790747812", "")

    성공적인 응답:

    {
      "success": true,
      "evaluated_body": "<p>Dear Beth,</p>\r\n<p>Please note that your incident INC0000049 has been escalated to Hardware. An agent will be assigned on your case and will keep you updated. If you have more questions please reach out to our team.</p>\r\n<p>Regards,</p>\r\n<p>admin</p>"
    }
    

    렌더링 요청은 동일하지만 오류 응답을 반환합니다.

    render("5fc1d65993003300a9bc1d1e867ffb9c","incident","ef4225a40a0a0b5700d0b8a790747812", "")

    오류 응답:

    {
      "success": false,
      "error": {
        "unEvaluatedVariables": "caller.first_name",
        "message": "Cannot evaluate following variables: caller.first_name"
      },
      "evaluated_body": "<p>Dear <span style='color:#ff0000'>${caller.first_name}</span>,</p>\r\n<p>Please note that your incident INC0000049 has been escalated to Hardware. An agent will be assigned on your case and will keep you updated. If you have more questions please reach out to our team.</p>\r\n<p>Regards,</p>\r\n<p>admin</p>"
    }