서비스 노드는 타사 웹 서비스에 REST 또는 SOAP 요청을 하는 API 서비스를 추가하는 데 사용할 수 있는 대화 작업의 구성 요소 유형입니다. 엔티티 또는 다른 노드를 사용하여 사용자 입력을 확인하는 API 요청에 필요한 매개 변수가 있을 때 이 노드를 사용할 수 있습니다. 서비스 유형을 다음과 같이 정의할 수 있습니다.

  • 맞춤형 서비스 – 타사 웹 서비스에 대한 API 요청을 정의합니다. 이 설정은 기본 설정입니다.
  • HTML to Image – JavaScript를 사용하여 이미지로 렌더링할 HTML을 정의합니다. 예를 들어, 이미지로 변환하려는 HTML 마크업을 문자열로 포함하는 웹 서비스 응답에 HTML 또는 키 값을 구성합니다.
  • URL to Image – 이미지를 렌더링하기 위해 로드할 웹 페이지 URL을 정의합니다.
  • 사용자 정의 인증 서비스 – 작업 흐름에 필요한 인증 서비스를 제공하는 타사 애플리케이션에 대한 URL을 정의합니다.
  • 경고 구독 서비스 – 대화 여정의 일부로 사용자에게 능동적으로 보낼 상황별 관련 경고를 정의합니다.
  • 데이터 테이블 서비스 – 봇에 지정된 모든 주어진 데이터 테이블/테이블 뷰의 데이터를 쿼리하고 조작하려면 CRUD 작업을 정의합니다.

설정

대화 작업에서 서비스 노드를 설정하려면 다음 단계를 수행합니다. 참고: 플랫폼의 v9.0 이후에는 서비스 노드가 봇 조치 노드로 분류됩니다. 봇 조치 노드에 대해 자세히 알아보려면 여기를 클릭하세요.

노드 추가

  1. 서비스 노드를 추가하려는 대화 작업을 엽니다.
  2. 지정된 위치에 서비스 노드를 추가합니다. 노드를 추가하는 단계의 경우, 여기를 참조하세요.
  3. 서비스 창은 기본적으로 구성 요소 속성 탭이 선택되어 표시됩니다.
  4. 연결 속성을 설정할 수 있습니다.자세한 내용은 여기를 참조하세요.

노드 설정

  1. 구성 요소 속성 탭의 일반 설정 섹션에서 서비스 노드의 이름표시 이름 이름을 입력합니다. 예: FetchWeather.
  2. 드롭다운 목록에서 서비스 유형을 선택합니다.
    • 맞춤형 서비스 – 타사 웹 서비스에 대한 API 요청을 정의합니다. 이 설정은 기본 설정입니다.
    • HTML to Image – JavaScript를 사용하여 이미지로 렌더링할 HTML을 정의합니다. 예를 들어, 이미지로 변환하려는 HTML 마크업을 문자열로 포함하는 웹 서비스 응답에 HTML 또는 키 값을 구성합니다.
    • URL to Image – 이미지를 렌더링하기 위해 로드할 웹 페이지 URL을 정의합니다.
    • 사용자 정의 인증 서비스 – 작업 흐름에 필요한 인증 서비스를 제공하는 타사 애플리케이션에 대한 URL을 정의합니다. 더 알아보기.
    • 경고 구독 서비스 – 대화 여정의 일부로 사용자에게 능동적으로 보낼 상황별 관련 경고를 정의합니다.
  3. 선택한 서비스 유형에 따라 각 드롭 다운 목록 또는 인증 URL에서 유형/하위 유형을 선택합니다.
  4. 요청 정의 섹션에서 요청 정의를 클릭합니다.
  5. <ServiceXXXX >를 위한 요청 정의 대화가 표시됩니다. 선택한 서비스 유형에 따라 이 항목의 다음 섹션 중 하나를 참조하세요. 참고: 사용자 정의 인증 서비스의 경우 요청 정의 섹션이 적용되지 않는 대신 응답 섹션을 확인할 수 있습니다. 더 알아보기. 
  6. 변수 네임스페이스 섹션에서 이 노드와 전환을 실행할 변수 네임스페이스를 연결합니다. 이 옵션은 봇에 변수 네임스페이스를 사용하도록 설정한 경우에만 표시됩니다. 작업 수준 설정을 사용하거나 이 노드에 사용자 정의할 수 있습니다. 자세한 내용은 네임스페이스 관리를 참조하세요.
  7. 노드의 연결 탭에서 대화 작업에서 어떤 노드를 다음에 실행할지 결정할 수 있습니다. 대화 작업에서 엔티티 또는 컨텍스트 개체의 값을 기반으로 조건문을 작성하거나 전환을 위해 의도를 사용할 수 있습니다. 구성 요소 전환을 설정하려면 다음 단계를 수행하세요.
    1. 서비스 창에서 연결 탭을 클릭합니다.
    2. 연결 탭의 연결 규칙 섹션의 기본값 드롭다운 목록에서 노드를 선택할 수 있습니다.
    3. 왼쪽 패널에서 기존 서비스 노드를 끌어서 놓을 수 있습니다.
    4. 조건부 흐름을 설정하려면 IF 추가를 클릭합니다.
    5. 다음 조건 중 하나를 기준으로 조건식을 설정합니다.
      • 엔티티: 다음 연산자 중 하나를 사용하여 대화의 엔티티 노드와 지정된 값을 비교합니다. Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, less than. 엔티티, 각 드롭다운 목록을 사용한 연산자를 선택하고 상자에 숫자를 입력합니다. 예: PassengerCount (엔티티) greater than (연산자) 5 (지정된 값)
      • 컨텍스트: 다음 연산자 중 하나를 사용하여 대화의 컨텍스트 개체와 지정된 값을 비교합니다. Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, less than. 예: Context.entity.PassengerCount (컨텍스트 개체) greater than (연산자) 5 (지정된 값)
      • 의도: 다음 사용자 발화와 일치하는 의도를 선택합니다.
    6. Then go to 드롭다운 목록에서 조건식이 성공할 경우 대화 흐름에서 실행할 다음 노드를 선택합니다. 예: PassengerCount (엔티티) greater than (연산자) 5 (지정된 값), Then go to Offers (하위 대화)
    7. Else 드롭다운 목록 조건이 실패할 경우 실행할 노드를 선택합니다.
    참고: 여러 If 조건을 작성하려면 마지막 If 조건식 아래에 있는 Else If 추가를 클릭합니다.

     

맞춤형 서비스 정의

  1. 서비스 유형에서 맞춤형 서비스를 선택할 때 하위 유형 필드에서 다음 옵션 중 하나를 선택합니다:
    • REST – API 웹 서비스가 REST 서비스를 사용하고 있습니다.
    • SOAP – API 웹 서비스가 SOAP 서비스를 사용하고 있습니다.
  2. 요청 정의 섹션에서 요청 정의를 클릭하여 웹 서비스 유형의 설정을 지정합니다.
  3. <서비스 노드 이름>을 위한 요청 정의 대화가 다음 설명에서 보여지듯 표시됩니다.
  4. 요청 URL 필드의 첫 번째 필드에서 요청에 사용되는 HTTP 메소드를 선택합니다. 다음을 선택할 수 있습니다.
    • POST – 서버로 데이터를 보낼 때 사용합니다. 예: HTML 양식을 사용한 고객 정보, 파일 업로드 등.
    • PUT – 대상 리소스의 내용을 전송된 내용으로 대체합니다.
    • PATCH – 기존 대상 리소스의 내용에 전송된 내용을 추가합니다.
    • DELETE – 기존 대상 리소스의 내용을 삭제합니다.
    • GET – 기존 대상 리소스의 내용을 반환합니다.
  5. 요청 URL의 두 번째 필드에 Kore.ai에서 처리할 대화 작업 응답을 위한 URL을 지정합니다. 예: http://koremessenger.com/postURL. 필요한 경우 URL의 일부로 쿼리 또는 경로 매개 변수를 추가합니다. 엔티티 노드 값을 매개 변수로 사용하려면 Context 개체에 접근하는 데 다음 구문을 사용하세요. context.entities.topic의 경우 https://myDomain.com/{{context.entities.topic}}입니다. {{ context.object }}에 이중 괄호를 사용해야 합니다. 자세한 내용은 컨텍스트 개체를 참조하세요.
    1. 선택적으로 고급 표시를 클릭하고
      • Kore.ai 봇의 접근을 Kore.ai 커넥터 에이전트를 사용하는 경우 커넥터를 사용한 접근 필드에서 를 선택합니다. 자세한 내용은 Kore.ai 커넥터 사용을 참조하세요.
      • PII(개인 식별 정보) 데이터 비식별화에서 를 클릭하고 사용자가 봇과 공유하는 모든 민감 정보 유형을 삭제합니다. 자세한 내용은 개인 식별 정보 삭제하기를 참조하세요.
    2. 인증 탭에서 이 서비스 호출에 필요한 권한 부여 유형을 선택하거나 필요한 경우 새 권한 부여 유형을 정의합니다. 자세한 내용은 인증 설정을 참조하세요.
    3. 헤더 탭에서 지정된 요청 URL 접근에 필요한 경우 헤더를 키/값 쌍으로 지정합니다. 인증 헤더는 인증 탭에 지정된 권한 부여 유형에 따라 자동으로 생성됩니다. 다른 표준 헤더를 정의해야 합니다. 예: 콘텐츠 유형, 수락 또는 사용자 정의 헤더. 여기에 정의된 헤더는 이 서비스 노드에만 적용 가능합니다.
    4. 본문 탭에서 본문 콘텐츠 유형을 선택합니다. 다음을 선택할 수 있습니다.
      • application/x-www-form-urlencoded – Multipart/Form-data라고도 하며 사용자가 양식에서 파일을 업로드할 수 있도록 하는 경우 HTTP POST 요청 메소드를 통해 파일을 전송하는 인코딩 유형입니다. 봇 플랫폼에서 인코딩된 키/값 쌍을 추가할 수 있습니다.
      • application/json – JSON을 사용하여 Kore.ai 서버와 봇 웹 애플리케이션 간에 데이터를 전송합니다. 모든 JSON은 아무런 처리 없이 요청과 함께 전송됩니다.
      • application/xml – SOAP 서비스의 경우 POST 메소드를 사용하여 XML 페이로드를 전달합니다. context.entities.topicContext 개체: https://myDomain.com/{{context.entities.topic}}에 액세스하기 위해 다음 구문을 사용하여 엔티티 노드 값을 XML의 일부로 전달할 수 있습니다. {{ context.object }}에 이중 괄호를 사용해야 합니다. 자세한 내용은 컨텍스트 개체를 참조하세요.
    5. 테스트 요청 탭에서 테스트를 클릭하여 지정된 인증 유형, HTTP 헤더, 본문 매개 변수(정의된 경우)를 사용하여 선택적으로 API 요청 URL을 전송합니다. 응답은 텍스트 영역에 표시됩니다. 샘플 응답으로 저장을 클릭하여 테스트 응답을 이 노드의 샘플 응답으로 저장하세요.
    6. 저장을 클릭하여 서비스 노드의 요청을 저장하고 <서비스 노드 이름>의 요청 정의 대화를 닫습니다.
  6. 샘플 응답 섹션에서 선택적으로 샘플 응답 추가를 클릭하여 샘플 응답을 수동으로 입력하거나 붙여넣는 데 사용할 수 있는 샘플 응답 추가 대화를 표시합니다.
  7. 선택적으로 샘플 응답 추가 드롭다운 목록에서 다음을 선택할 수 있습니다.
    • JSON – 다른 노드에서 변수로 사용되는 요청 URL 응답에서 사용 가능한 JSON 키/값 쌍의 목록입니다.
    • RAW – 다른 노드에서 변수로 사용되는 키/값 쌍의 목록입니다.
  8. 구성 요소 속성 섹션의 고급 컨트롤에서 서비스 호출을 종료하기 위한 타임아웃을 구성할 수 있습니다. 기본적으로 20초로 설정되며 5~20초 사이의 값을 선택할 수 있습니다.

이미지로 변환할 URL 정의

  1. 서비스 유형에서 URL to Image를 선택하면 유형 설정이 읽기 전용이 됩니다.
  2. 요청 정의 섹션에서 서비스 유형으로 URL to Image를 선택한 경우 요청 정의를 클릭하여 설정을 지정합니다. <서비스 노드 이름>을 위한 요청 정의 대화가 다음 설명에서 보여지듯 표시됩니다.
  3. URL to Convert 필드에서 이미지의 URL을 입력합니다. URL에서 Context 개체 키를 사용할 때 구문은 이중 대괄호로 묶는 것입니다. 예: https://myURLimage.com/{{context.entities.imageName}}.
  4. 렌더링 크기 섹션에서 이미지 크기의 이름을 지정합니다. 예: iPhone 또는 태블릿.너비높이를 픽셀로 입력한 다음 +추가를 클릭하여 추가적인 크기를 추가하거나 추가를 클릭하여 대화를 저장한 후 닫습니다.
  5. 저장을 클릭하여 서비스 노드의 요청을 저장하고 <서비스 노드 이름>의 요청 정의 대화를 닫습니다.

이미지로 변환할 HTML 정의

  1. 서비스 유형에서 HTML to Image를 선택하면 유형 설정이 읽기 전용이 됩니다.
  2. 요청 정의 섹션에서 서비스 유형으로 HTML to Image를 선택한 경우 요청 정의를 클릭하여 설정을 지정합니다. <서비스 노드 이름>을 위한 요청 정의 대화가 다음 설명에서 보여지듯 표시됩니다.
  3. HTML to Convert 필드에서 이미지의 HTML을 입력합니다.
  4. 렌더링 크기 섹션에서 이미지 크기의 이름을 지정합니다. 예: iPhone 또는 태블릿.너비높이를 픽셀로 입력한 다음 +추가를 클릭하여 추가적인 크기를 추가하거나 추가를 클릭하여 대화를 저장한 후 닫습니다.

다음은 HTML을 이미지로 변환하는 예제입니다.

<head>
<link href="../assets/styles.min.css" rel="stylesheet"/>
<title>HTML: Print Wide HTML Tables</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style>
  .style1 {
     border-collapse: collapse;
     }
  .style1 th {
     background-color: #DDDDDD;
     white-space: nowrap;
     }
  .style1 .d {
     white-space: nowrap;
     }
  .style1 .n {
     padding-left: 20px;
     text-align: right;
     }
</style>
</head>
<body>
<table id="table1" class="style1" border="1" cellpadding="4" cellspacing="0">
  ///TODO Add Table Rows here.
</table>
<input type="button" id="print-button" value="Make this table printable contact@ {{context.session.UserContext.emailId}}"/>
<script>
/*
 * HTML: Print Wide HTML Tables
 * http://salman-w.blogspot.com/2013/04/printing-wide-html-tables.html
*/
$(function() {
$("#print-button").on("click", function() {
   var table = $("#table1"),
       tableWidth = table.outerWidth(),
       pageWidth = 600,
       pageCount = Math.ceil(tableWidth / pageWidth),
       printWrap = $("<div></div>").insertAfter(table),
       i,
       printPage;
   for (i = 0; i < pageCount; i++) {
      printPage = $("<div></div>").css({
          "overflow": "hidden",
          "width": pageWidth,
          "page-break-before": i === 0 ? "auto" : "always"
        }).appendTo(printWrap);
   table.clone().removeAttr("id").appendTo(printPage).css({
      "position": "relative",
      "left": -i * pageWidth
     });
   }
 table.hide();
 $(this).prop("disabled", true);
});
});
</script>
</body>
</html>

앞의 HTML 예제는 테이블 행이 예제에 추가될 때 다음 이미지를 최종 사용자에게 렌더링할 수 있습니다. HTML 이미지 예제

알림 구독 서비스 정의

이제 봇 사용자를 자동으로 구독하여 대화 여정의 일부로 상황별 관련 알림을 보낼 수 있습니다. 예를 들어, 특정 날짜에 항공권을 예약하는 사람은 목적지 도시의 일기 예보에 대한 정기적인 업데이트를 받을 수 있도록 자동 구독됩니다. 알림 구독 서비스를 설정하려면 다음 단계를 수행하세요.

  1. 알림을 연결하려는 서비스 노드의 구성 요소 속성 탭을 엽니다.
  2. 일반 설정 섹션의 서비스 유형 드롭다운 목록에서 자동 구독 서비스를 선택합니다.
  3. 요청 정의를 클릭합니다. 참고: 알림 구독 서비스를 생성하려면 기존 경고 작업을 기반으로 해야 합니다. 사용자는 대화에서 연결 서비스 노드에 도달하면 경고 작업에 자동 구독됩니다.
  4. 스마트/자동 경고 대화 상자에서 알림 선택 드롭다운 목록에서 경고 작업을 선택합니다. 목록은 봇과 관련된 게시된 경고 작업으로만 구성됩니다.
  5. 아래 설명에 따라 필요한 정보를 입력합니다.

알림 구독(스마트 알림) 구성

일반적인 알림 설정에서 알림 매개 변수, 필터, 기타 필요한 세부 정보는 봇 사용자가 입력합니다. 알림을 위한 자동 구독이므로 개발자로서 이러한 세부 정보를 설정해야 합니다.

알림 매개 변수

선택한 알림에 따라 달라집니다. 알림 구독 서비스로 사용할 기본 매개 변수 값을 입력합니다. 이 예에서 알림에 대해 정의된 매개 변수는 주제 이름뉴스 영역입니다. 목적지 도시의 일기 예보를 사용자에게 보내는 것이므로 매개 변수 값을 Weather Forecastcontext.entity.destinationcity로 설정할 수 있습니다.

필터

선택한 알림에 따라 달라집니다. 알림 구독 서비스로 사용할 필터 조건을 입력합니다.

알림 빈도

알림 통지를 보낼 빈도를 입력합니다. 계획, 빈도, 시간 프레임을 선택해야 합니다.

  • 계획 선택 드롭다운 목록에서 알림을 보내려는 시기에 따라 매일, 평일 또는 주말을 선택합니다.
  • 빈도 선택 드롭다운 목록에서 하루에 여러 알림을 일정한 시간 간격으로 보내려면 Every를 선택하거나 하루 중 특정 시간에 하나의 알림을 보내려면 at을 선택합니다.
  • 시간 선택 드롭다운 목록에서 위에서 선택한 빈도 값에 따라 시간 간격 값 또는 하루 중 시간을 선택합니다.

이 예에서는 매일 오전 6시를 선택했습니다. 즉, 매일 오전 6시에 알림이 사용자에게 전송됩니다.

스마트 알림 만료

다음 옵션 중 하나에서 사용자에게 알림을 보내는 시기를 설정합니다.

  • 기간: 구독일로부터 입력한 일수가 지나면 통지 발송을 중지합니다.
  • 통지 수: 입력한 수의 통지를 전송한 후 알림 발송을 중지합니다.
알림 업그레이드

기본 경고 작업(처음부터 선택한 게시된 경고)의 업그레이드된 버전이 게시되는 경우 알림의 예상 동작을 정의합니다.

  • 기존 인스턴스 삭제 이 스마트 알림의 기존 구독이 모두 제거되고 사용자는 더 이상 알림을 받을 수 없습니다. 사용자는 대화를 실행하고 대화 여정에서 서비스 노드에 도달할 때만 업그레이드된 경고 작업에 자동으로 구독됩니다.
  • 사용자가 수동으로 구독을 업그레이드하도록 허용 사용자는 선택한 채널에서 자동 구독 업그레이드를 안내하는 링크인 업그레이드 통지를 받습니다. 업그레이드가 성공하면 사용자는 성공 통지를 받습니다.

데이터 서비스 정의

  1. 서비스 유형에서 데이터 서비스 를 선택하면 유형 설정은 두 가지 옵션을 제공합니다.
    • 테이블 – 데이터 테이블에서 CRUD 작업을 수행하려면 이 옵션을 선택합니다.
    • 뷰 – 테이블 뷰에서 데이터를 가져오려면 이 옵션을 선택합니다.

    참고: 봇에 테이블/뷰 액세스 권한이 있어야 합니다. 테이블/뷰의 소유자가 이 권한을 부여해야 합니다. 방법을 알아보려면 여기를 클릭하세요.

  2. 요청 정의 섹션에서 요청 정의를 클릭하여 수행하려는 작업을 지정합니다. 자세한 내용을 확인하려면 여기를 클릭하세요.

다음 단계 설정한 서비스 노드의 경우 다음을 수행하는 것이 좋습니다.

サービスノードは、APIサービスを追加して、RESTまたはSOAPのリクエストをサードパーティのWebサービスに対して行うために使用できるダイアログタスクのコンポーネントタイプです。このノードは、エンティティまたは他のノードを使用してユーザー入力をキャプチャし、 API リクエストに必要なパラメータを持つ場合に使用できます。サービスタイプは以下のように定義できます。

  • カスタムサービス – サードパーティのWebサービスへのAPIリクエストを定義します。これはデフォルト設定です。
  • 画像に対するHTML – JavaScriptを使用して、HTMLを画像としてレンダリングするように定義します。例として、HTMLを作成するために、あるいは画像に変換したい文字列としてのHTMLマークアップを含むWebサービス応答におけるキー値を作成するために。
  • 画像に対するURL – 画像をレンダリングするためにロードするWebページのURLを定義します。
  • カスタム認証サービス – タスクフローに必要な認証サービスを提供するサードパーティアプリケーションのURLを定義します。
  • アラートサブスクリプションサービス – ダイアログ世界の一環として、ユーザーへ積極的に送信されるコンテキスト関連のアラートを定義します。
  • データテーブルサービス – ボットに割り当てられた指定のデータテーブル/テーブルビューのデータを任意にクエリ、操作するためのCRUDオペレーションを定義します。

セットアップ

ダイアログタスクにおけるサービスノードのセットアップは、以下の手順で行います。メモ:プラットフォームのv9.0以降では、サービスノードはボットアクションノードの下に分類されます。ボットアクションノードの詳細はこちらをクリックしてください

ノードの追加

  1. ダイアログタスクを開き、サービスノードを追加します。
  2. サービスノードを指定された場所に追加します。ノードの追加手順についてはこちらをご参照ください
  3. 「サービス」ウィンドウは、デフォルトではコンポーネントプロパティタブが選択された状態で表示されます。
  4. 接続プロパティを設定できます。詳細はこちらをご参照ください

ノードの設定

  1. コンポーネントプロパティタブの一般設定セクションで、サービスノードの名前表示名を入力します。例:FetchWeather
  2. ドロップダウンリストから、サービスタイプを選びます。
    • カスタムサービス – サードパーティのWebサービスへのAPIリクエストを定義します。これはデフォルト設定です。
    • 画像に対するHTML – JavaScriptを使用して、HTMLを画像としてレンダリングするように定義します。例として、HTMLを作成するために、あるいは画像に変換したい文字列としてのHTMLマークアップを含むWebサービス応答におけるキー値を作成するために。
    • 画像に対するURL – 画像をレンダリングするためにロードするWebページのURLを定義します。
    • カスタム認証サービス – タスクフローに必要な認証サービスを提供するサードパーティアプリケーションのURLを定義します。詳細について
    • アラートサブスクリプションサービス – ダイアログ世界の一環として、ユーザーへ積極的に送信されるコンテキスト関連のアラートを定義します。
  3. 選択したサービスタイプに基づいて、それぞれのドロップダウンリストから タイプ/サブタイプを選択するか、URL認証を選択します。
  4. 定義のリクエストセクションで、リクエストの定義をクリックします。
  5. <サービスXXXX>向けリクエストの定義ダイアログが表示されます。 選択したサービスタイプに応じて、このトピックにおける次のいずれかのセクションをご参照ください。メモ:カスタム認証サービスの場合、リクエストの定義セクションは適用されないで、代わって応答セクションが表示されます。詳細について. 
  6. 可変ネームスペースセクションでは、可変ネームスペースを関連付けてこのノードとその遷移を実行します。このオプションは、可変ネームスペースがボットに対して有効になっている場合にのみ表示されます。タスクレベルの設定を使用するか、またはこのノード用にカスタマイズできます。詳細情報は、ネームスペースの管理をご参照ください。
  7. ノードの接続タブから、次に実行するダイアログタスクのノードはどれにするかを決定できます。条件文は、ダイアログタスク内の任意のエンティティやコンテキストオブジェクトの値に基づいて記述することも、遷移にインテントを使用することもできます。コンポーネント遷移のセットアップは、以下の手順に従います。
    1. 「サービス」ウィンドウで、接続タブをクリックします。
    2. 接続タブの接続ルールセクションでは、 デフォルトドロップダウンリストからノードを選択することができます。
    3. 左側パネルから既存のサービスノードをドラッグアンドドロップすることができます。
    4. 条件付きのフローを設定するには、IFの追加をクリックします。
    5. 以下のいずれかの基準に基づいて、条件式を設定します。
      • エンティティ:これらの演算子のいずれかを使用して、ダイアログ内のエンティティノードを特定の値と比較します。存在する、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。それぞれのドロップダウンリストを使用して、エンティティ、演算子を選択し、ボックスに数値を入力します。例:PassengerCount (エンティティ) は5 (指定値)より大きい(演算子)
      • コンテキスト:これらの演算子のいずれかを使用して、ダイアログ内のコンテキストオブジェクトを特定の値と比較します。存在する、等しい、等しいより大きい、等しいより小さい、等しくない、より大きい、より小さい。例: Context.entity.PassengerCount (コンテキストオブジェクト)が(演算子)5(指定値)より大きい。
      • インテント:次のユーザーの発話に一致するインテントを選択します。
    6. 次へ進むドロップダウンリストで、条件式が成功した場合にダイアログフローで実行する次のノードを選択します。例として、PassengerCount (エンティティ) が(演算子) 5 (指定値)より大きい場合、次へ進むオファー(サブダイアログ)になります。
    7. その他ドロップダウンリストで、条件が失敗した場合に実行するノードを選択します。
    メモ:複数のIf条件を書きたい場合は、最後のIf条件式の下のその他の条件を追加をクリックします。

     

カスタムサービスの定義

  1. サービスタイプカスタムサービスを選択した場合、 サブタイプフィールドで以下のオプションのいずれかを選択します。
    • REST – API WebサービスはRESTサービスを使用しています。
    • SOAP – API WebサービスはSOAPサービスを使用しています。
  2. リクエストの定義セクションで、リクエストの定義をクリックして、Webサービスタイプの設定を行います。
  3. 下図に、リクエストの定義<サービスノード名 >ダイアログが表示されます。
  4. リクエストURLフィールドの最初のフィールドで、リクエストに使用するHTTPメソッドを選択します。以下のいずれかを選択できます。
    • POST– サーバーにデータを送信するために使用します。例:HTMLフォームを使用する顧客情報、ファイルのアップロードなど。
    • PUT– ターゲットリソースのコンテンツを、送信されてきたコンテンツに置き換えます。
    • PATCH – 送信されてきたコンテンツに、既存のターゲットリソースのコンテンツを追加します。
    • DELETE―既存のターゲットリソースのコンテンツを削除します。
    • GET–既存のターゲットリソースのコンテンツを返します
  5. リクエストURLの第2フィールドには、Kore.aiで処理するダイアログタスク応答のURLを指定します。例:http://koremessenger.com/postURL必要に応じて、クエリパラメータまたはパスパラメータをURLの一部として追加します。エンティティノードの値をパラメータとして使用するには、Contextオブジェクトにアクセスする際に以下の構文を使用します。https://myDomain.com/{{context.entities.topic}} で context.entities.topic。二重括弧 {{ context.object }}を使用する必要があります。詳細情報は、コンテキストオブジェクトをご参照ください。
    1. 必要に応じて、詳細表示をクリックして、次を選択します。
      • Kore.ai BotsへのアクセスがKore.aiコネクタエージェントを使用している場合は、コネクタ使用によるアクセスフィールドで表示される「はい」。詳細情報については、Kore.ai Connectorの使用をご参照ください。
      • ユーザーがボットと共有する機密情報タイプを編集するために、PIIデータの非識別化で「はい」を選択します。詳細情報は、個人特定情報の編集をご覧ください。
    2. 認証タブでは、このサービスノードの呼び出しに必要な認証のタイプを選択するか、必要に応じて新しい認証のタイプを定義します。詳細情報は、認証のセットアップご参照ください。
    3. ヘッダータブでは、指定したリクエストURLにアクセスするために必要な場合、ヘッダーをキー/値のペアで指定します。認証ヘッダーは、認証タブで指定した認証タイプに基づいて自動生成されます。その他の標準ヘッダーを定義する必要があります。例:コンテンツタイプ、受理、または任意のカスタムヘッダー。ここで定義されたヘッダーは、このサービスノードにのみ適用されます。
    4. 本文タブで、本文コンテンツタイプを選択します。以下のいずれかを選択できます。
      • application/x-www-form-urlencoded – マルチパート/フォームデータとしても知られており、ユーザーがフォームからファイルをアップロードできるようにしたい場合に、HTTP POSTリクエストメソッドでファイルを送信できるようにするエンコーディングタイプです。ボットプラットフォームでエンコードされたキー/値のペアを追加することができます。
      • application/json – Kore.aiサーバーとMyボットWebアプリケーション間のデータ転送にJSONを使用します。あらゆるJSONは、処理もまったく行わずにリクエストとともに送信されます。
      • application/xml – SOAPサービスでは、POSTメソッドを使用してXMLペイロードを渡します。エンティティノード値は、XMLの一部として渡すことができます。その際、Contextオブジェクトにアクセスするために次の構文を使用します。https://myDomain.com/{{context.entities.topic}}は、 context.entities.topic.二重括弧{{ context.object }}を使用する必要があります。詳細情報は、コンテキストオブジェクトをご参照ください。
    5. リクエストのテストタブでテストをクリックすると、オプションとして、指定された認証タイプ、HTTPヘッダー、本文パラメータ(定義されている場合)を使用して、APIリクエストURLを送信することができます。回答はテキストエリアに表示されます。サンプル応答として保存をクリックすると、テスト応答がこのノードのサンプル応答として保存されます。
    6. 保存をクリックすると、サービスノードに対するリクエストが保存され、リクエストの定義<サービスノード名 >ダイアログが閉じます。
  6. サンプル応答セクションで、オプションとしてサンプル応答の追加をクリックすると、サンプル応答の追加ダイアログが表示され、サンプル応答を手動で入力または貼り付けることができます。
  7. オプションとして、サンプル応答の追加ドロップダウンリストで、以下を選択できます。
    • JSON – 他のノードで変数として使用されるリクエストURL応答で利用可能なJSONキー/値のペアのリスト。
    • RAW – 他のノードで変数として使用されるキー/値のペアのリストです。
  8. コンポーネントのプロパティセクションの高度な管理では、サービスコールを終了させるための タイムアウト を設定できます。デフォルトでは20秒に設定されていますが、5~20秒の間で任意の値を選択できます。

画像変換向けのURLの定義

  1. サービスタイプ画像向けのURLを選択した場合、 タイプの設定は読み取り専用となります。
  2. リクエストの定義セクションでは、リクエストの定義 をクリックして、 サービスタイプで 画像向けのURLを選択した場合の設定を指定します。下図に、リクエストの定義<サービスノード名 >ダイアログが表示されます。
  3. 変換向けのURLフィールドに、画像のURLを入力します。ContextオブジェクトキーをURLで使用するときの構文は、次のようにオブジェクト名を二重括弧で囲みます。例:https://myURLimage.com/{{context.entities.imageName}}
  4. レンダリングサイズセクションで、画像サイズの名前を指定します。例として、iPhoneタブレットの場合、 高さ をピクセル単位で入力し、+追加をクリックして別のサイズを追加するか、追加をクリックし、ダイアログを保存して閉じます。
  5. 保存をクリックすると、サービスノードに対するリクエストが保存され、リクエストの定義<サービスノード名 >ダイアログが閉じます。

画像変換向けのHTMLの定義

  1. サービスタイプ画像向けのHTMLを選択した場合、 タイプ の設定は読み取り専用となります。
  2. リクエストの定義セクションでは、リクエストの定義 をクリックして、 サービスタイプで 画像向けのHTMLを選択した場合の設定を指定します。下図に、リクエストの定義<サービスノード名 >ダイアログが表示されます。
  3. 変換向けのHTMLフィールドに、画像のHTMLを入力します。
  4. レンダリングサイズセクションで、画像サイズの名前を指定します。例として、iPhoneタブレットの場合、 高さ をピクセル単位で入力し、+追加をクリックして別のサイズを追加するか、追加をクリックし、ダイアログを保存して閉じます。

以下は、HTMLを画像に変換する例です。

<head>
<link href="../assets/styles.min.css" rel="stylesheet"/>
<title>HTML: Print Wide HTML Tables</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style>
  .style1 {
     border-collapse: collapse;
     }
  .style1 th {
     background-color: #DDDDDD;
     white-space: nowrap;
     }
  .style1 .d {
     white-space: nowrap;
     }
  .style1 .n {
     padding-left: 20px;
     text-align: right;
     }
</style>
</head>
<body>
<table id="table1" class="style1" border="1" cellpadding="4" cellspacing="0">
  ///TODO Add Table Rows here.
</table>
<input type="button" id="print-button" value="Make this table printable contact@ {{context.session.UserContext.emailId}}"/>
<script>
/*
 * HTML: Print Wide HTML Tables
 * http://salman-w.blogspot.com/2013/04/printing-wide-html-tables.html
*/
$(function() {
$("#print-button").on("click", function() {
   var table = $("#table1"),
       tableWidth = table.outerWidth(),
       pageWidth = 600,
       pageCount = Math.ceil(tableWidth / pageWidth),
       printWrap = $("<div></div>").insertAfter(table),
       i,
       printPage;
   for (i = 0; i < pageCount; i++) {
      printPage = $("<div></div>").css({
          "overflow": "hidden",
          "width": pageWidth,
          "page-break-before": i === 0 ? "auto" : "always"
        }).appendTo(printWrap);
   table.clone().removeAttr("id").appendTo(printPage).css({
      "position": "relative",
      "left": -i * pageWidth
     });
   }
 table.hide();
 $(this).prop("disabled", true);
});
});
</script>
</body>
</html>

前述のHTMLの例で、テーブルの行を例に追加すると、エンドユーザーには次のような画像がレンダリングされます。 HTML画像の例

アラートサブスクリプションサービスの定義

ボットユーザーを自動的に登録し、ダイアログ世界の一環として、コンテキストに応じた適切なアラートを送信できるようになりました。例として、特定の日付の航空券を予約した人は、目的地の都市の天気予報を定期的に受け取るように自動登録されます。アラートサブスクリプションサービスを設定するには、以下の手順に従います。

  1. アラートを関連付けたいサービスノードのコンポーネントプロパティタブを開きます。
  2. 一般設定セクションで、サービスタイプドロップダウンリストから自動サブスクリプションサービスを選択します。
  3. リクエストの定義をクリックします。メモ:アラートサブスクリプションサービスを作成するには、既存のアラートタスクに基づく必要があります。ユーザーは、ダイアログ内の関連するサービスノードに到達すると、アラートタスクに自動登録されます。
  4. スマート/自動アラートダイアログボックスで、 アラートの選択ドロップダウンリストからアラートタスクを選択します。リストには、Myボットに関連する公開されたアラートタスクのみが表示されます。
  5. 以下の説明にあるように、必要な情報を入力します。

アラートサブスクリプション(スマートアラート)の設定

一般的なアラートセットアップでは、アラートのパラメータ、フィルター、その他必要な詳細などは、ボットユーザーが入力します。これはアラートの自動サブスクリプションなので、開発者としてその詳細を設定する必要があります。

アラートパラメータ

これらは、選択したアラートによって異なります。アラートサブスクリプションサービスに使用するデフォルトのパラメータ値を提供します。この例では、アラートに定義されているパラメータはトピック名ニュースの地域です。目的地の都市の天気予報をユーザーに送信することが目的なので、パラメータ値をそれぞれ天気予報context.entity.destinationcity に設定することができます。

フィルター

これらは、選択したアラートによって異なります。アラートサブスクリプションサービスに使用するフィルター基準を提供します。

アラートの頻度

アラート通知の送信頻度を提供します。スキーム、周波数、期間を選択する必要があります。

  • スキームの選択のドロップダウンリストから、アラートを送信するタイミングに応じて、「毎日」、「週日」、「週末」のいずれかを選択します。
  • 頻度の選択のドロップダウンリストから、1日のうち一定の時間間隔で複数のアラートを送信する場合は 「毎」を、1日のうち特定時間に1回のアラートを送信する場合は 「~に」 を選択します。
  • 時間ノード選択ドロップダウンリストから、上記で選択した頻度に応じて、間隔の時間値または1日のうちの時刻を選択します。

この例では、「Daily At 6 a.m.」を選択しています。これは、毎日午前6時にユーザーにアラートが送信されることを意味します。

スマートアラートの有効期限

以下のオプションのいずれかを選び、ユーザーへのアラートの送信を終了するタイミングを設定します。

  • 期間:サブスクリプションの日付から入力した日数が経過すると、通知の送信を停止します。
  • 通知の回数:入力された回数の通知が送信されると、アラートの送信を停止します。
アラートアップグレード

基礎となるアラートタスク(最初に選択して公開されたアラート)のアップグレード版が公開された場合に、このアラートに想定される動作を定義します。

  • 既存インスタンスの削除 このスマートアラートの既存サブスクリプションはすべて削除され、ユーザーは通知を受け取らなくなります。ユーザーは、ダイアログを実行してダイアログ世界のサービスノードに到達したときにのみ、アップグレードされたアラートタスクに自動登録されます。
  • ユーザーがサブスクリプションを手動でアップグレードできるようにする ユーザーは、選択したチャネルでアップグレード通知を受け取りますが、その通知は自動サブスクリプションのアップグレードを案内するリンクです。アップグレードが成功すると、ユーザーに成功の通知が届きます。

データサービスの定義

  1. サービスタイプデータサービス を選択した場合、 タイプ の設定では2つのオプションが提供されています。
    • テーブル – データテーブルでCRUD操作を行う場合は、このオプションを選択します。
    • ビュー – テーブルビューからデータを取得する場合は、このオプションを選択します。

    メモ:Myボットは、テーブル/ビューにアクセスする許可を得ている必要があります。テーブル/ビューの所有者はこの許可を与えなければなりません。許可の方法はこちらをご覧ください

  2. 定義のリクエストセクションで、リクエストの定義 をクリックして、実行したいオペレーションを指定します。詳細はこちらをクリックしてください。

次のステップセットアップしたサービスノードについて、以下のことをしたいと考えます。

The Service Node is a component type in a dialog task that you can use to add an API service to make REST or SOAP requests to third-party web services. You can use this node when you have the parameters needed for the API request using an entity or other nodes to capture the user input.

You can define the Service Type as:

  • Custom Service – Define an API request to a third-party web service. This is the default setting.
  • HTML to Image – Define HTML to render as an image using JavaScript. For example, to compose HTML or the value of a key in a web service response that contains HTML markup as a string that you want to convert to an image.
  • URL to Image – Define a web page URL to load to render an image.
  • Custom Authentication Service – Define a URL to a third-party application that provides the authentication services necessary for the task flow.
  • Alert Subscription Service – Define contextually relevant alerts to be sent proactively to the user as a part of the dialog journey.
  • Data Table Service – Define CRUD operations to query and manipulate the data for any given data table/table view assigned to the bot.

Set-Up

Setting up a service node in a dialog task involves the following steps:

Note: Post v9.0 of the platform, the Service node is categorized under the Bot Action node. For details on the Bot Action node, click here.

Add Node

  1. Open the dialog task to add the Service node.
  2. Add service node in the designated place. For steps in adding nodes, refer here.
  3. The Service window is displayed with the Component Properties tab selected by default.
  4. You can configure the Connection Properties, refer here for details.

Configure Node

  1. On the Component Properties tab, under the General Settings section, enter the Name and Display Name of your service node. For example, FetchWeather.
  2. Choose a Service Type from the drop-down list:
    • Custom Service – Define an API request to a third-party web service. This is the default setting.
    • HTML to Image – Define HTML to render as an image using JavaScript. For example, to compose HTML or the value of a key in a web service response that contains HTML markup as a string that you want to convert to an image.
    • URL to Image – Define a web page URL to load to render an image.
    • Custom Authentication Service – Define a URL to a third-party application that provides the authentication services necessary for the task flow. Learn more.
    • Alert Subscription Service – Define contextually relevant alerts to be sent proactively to the user as a part of the dialog journey.
  3. Based on the service type selected, select the Type/Sub Type from the respective drop-down lists or Auth URL.
  4. Under the Request Definition section, click Define Request.
  5. The Define Request for < ServiceXXXX > dialog is displayed.

    Depending on the Service Type selected, refer to one of the following sections in this topic:
    Note: In the case of Custom Authentication Service, the Request Definition section does not apply and you can see a Response section instead. Learn more. 

  6. In the Variable Namespaces section, associate the variable namespaces to execute this node and its transitions. This option is visible only when the Variable Namespace is enabled for the bot. You can go with the task level settings or customize it for this node. For more information, refer to Managing Namespace.
  7. From the node’s Connections tab you can determine which node in the dialog task to execute next. You can write the conditional statements based on the values of any Entity or Context Objects in the dialog task, or you can use intents for transitions. To setup Component Transitions, follow the below steps:
    1. On the Service window, click the Connections tab.
    2. On the Connections tab, under the Connection Rules section, you can select nodes from the Default drop-down list.
    3. You can drag and drop an existing service node from the left panel.
    4. To configure a conditional flow, click Add IF.
    5. Configure the conditional expression based on one of the following criteria:
      • Entity: Compare an entity node in the dialog with a specific value using one of these operators: Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, and less than. Select the entity, operator using the respective drop-down lists, and type the number in the Value box. For example, PassengerCount (entity) greater than (operator) 5 (specified value).
      • Context: Compare a context object in the dialog with a specific value using one of these operators: Exists, equals to, greater than equals to, less than equals to, not equal to, greater than, and less than. For example, Context.entity.PassengerCount (Context object) greater than (operator) 5 (specified value).
      • Intent: Select an intent that matches the next user utterance.
    6. In the Then go to drop-down list, select the next node to execute in the dialog flow if the conditional expression succeeds. For example, if the PassengerCount (entity) greater than (operator) 5 (specified value), Then go to Offers (sub-dialog).
    7. In the Else drop-down list, select the node to execute if the condition fails.
    Note: If you want to write multiple If conditions, click Add Else If below the last If conditional expression.

     

Define a Custom Service

  1. When you select Custom Service in the Service Type, then in the Sub-Type field, select one of the options:
    • REST – The API web service is using REST services.
    • SOAP – The API web service is using SOAP services.
  2. In the Request Definition section, click Define Request to specify the settings for the web service type.
  3. The Define Request for < Service Node Name > dialog is displayed as shown in the following illustration.
  4. In the Request URL field, in the first field, select the HTTP method used for the request. You can select:
    • POST – Used to send data to the server. For example, customer information, file upload, and so forth using HTML forms.
    • PUT – Replaces the content of the target resource with the content sent.
    • PATCH – Appends the content of an existing target resource with the content sent.
    • DELETE – Deletes the content of an existing target resource.
    • GET – Returns the content of an existing target resource
  5. In the second field of the Request URL, specify the URL for the dialog task response to process at Kore.ai. For example, http://koremessenger.com/postURL. Add query or path parameters as part of the URL, if required. To use entity node values as parameters, use the following syntax for accessing the Context object: https://myDomain.com/{{context.entities.topic}} for the context.entities.topic. You must use the double brackets {{ context.object }}. For more information, refer to Context Object.
    1. Optionally, click Show Advanced, and select
      • Yes in the Access Using A Connector field if access for Kore.ai Bots is using the Kore.ai connector agent. For more information, refer to Using the Kore.ai Connector.
      • Yes in the De-Identification of PII Data to redact any sensitive information types that users share with your bots. For more information, refer to Redacting Personally Identifiable Information
    2. In the Auth tab, select the type of authorization needed for this service node call, or define a new authorization type if needed. For more information, refer to Setting Up Authentication.
    3. In the Headers tab, specify the headers as key/value pairs if required to access the specified request URL.  Authentication headers are auto-generated based on the authorization type specified on the Auth tab. You need to define any other standard headers. For example, Content-type, Accept, or any custom headers. Headers defined here are only applicable to this service node.
    4. In the Body tab, select the body content type. You can select:
      • application/x-www-form-urlencoded – Also known as Multipart/Form-data, which is an encoding type that allows files to be sent through an HTTP POST request method if you want to allow a user to upload a file from a form. You can add key/value pairs that are encoded by the Bots platform.
      • application/json – Use JSON to transmit data between the Kore.ai servers and your bot web application. Any JSON is sent with the request without any processing.
      • application/xml – For SOAP services, pass XML payload using POST methods. You can pass entity node values as part of the XML, using the following syntax for accessing the Context object: https://myDomain.com/{{context.entities.topic}} for the context.entities.topic. You must use the double brackets {{ context.object }}. For more information, refer to Context Object.
    5. In the Test Request tab, click Test to optionally send your API request URL using the specified Auth type, HTTP headers, and body parameters, if defined. The response is displayed in the text area. Click Save as Sample Response to save the test response as the sample response for this node.
    6. Click Save to save the request for the service node and close the Define Request for < Service Node Name > dialog.
  6. In the Sample Response section, optionally click Add Sample Response to display the Add Sample Response dialog that you can use to manually enter or paste a sample response.
  7. Optionally, in the Add Sample Response drop-down list, you can select:
    • JSON – A list of JSON key/value pairs available in the request URL response used in other nodes as variables.
    • RAW – A list of key/value pairs that are used in other nodes as variables.
  8. In the Component Properties section, under Advanced Controls, you can configure the Timeout for terminating the service call. By default, it is set for 20 seconds, you can choose a value anywhere between 5 to 20 seconds.

Define a URL to Convert to Image

  1. When you select URL to Image in the Service Type, the Type setting is read-only.
  2. In the Request Definition section, click Define Request to specify the settings when the URL to Image is selected for Service Type. The Define Request for < Service Node Name > dialog is displayed as shown in the following illustration.
  3. In the URL to Convert field, enter the URL for the image. The syntax when using a Context object key in a URL is to enclose the object name in double brackets, for example, https://myURLimage.com/{{context.entities.imageName}}.
  4. In the Render Sizes section, specify a name for the image size. For example, iPhone or tablet, enter the Width and Height in pixels; then click +Add to add additional sizes, or click Add to save and close the dialog.
  5. Click Save to save the request for the service node and close the Define Request for < Service Node Name > dialog.

Define HTML to Convert to Image

  1. When you select HTML to Image in the Service Type, the Type setting is read-only.
  2. In the Request Definition section, click Define Request to specify the settings when HTML to Image is selected for Service Type. The Define Request for < Service Node Name > dialog is displayed as shown in the following illustration.
  3. In the HTML to Convert field, enter the HTML for the image.
  4. In the Render Sizes section, specify a name for the image size. For example, iPhone or tablet, enter the Width and Height in pixels; then click +Add to add additional sizes, or click Add to save and close the dialog.

The following is an example for converting HTML to an image:

<head>
<link href="../assets/styles.min.css" rel="stylesheet"/>
<title>HTML: Print Wide HTML Tables</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style>
  .style1 {
     border-collapse: collapse;
     }
  .style1 th {
     background-color: #DDDDDD;
     white-space: nowrap;
     }
  .style1 .d {
     white-space: nowrap;
     }
  .style1 .n {
     padding-left: 20px;
     text-align: right;
     }
</style>
</head>
<body>
<table id="table1" class="style1" border="1" cellpadding="4" cellspacing="0">
  ///TODO Add Table Rows here.
</table>
<input type="button" id="print-button" value="Make this table printable contact@ {{context.session.UserContext.emailId}}"/>
<script>
/*
 * HTML: Print Wide HTML Tables
 * http://salman-w.blogspot.com/2013/04/printing-wide-html-tables.html
*/
$(function() {
$("#print-button").on("click", function() {
   var table = $("#table1"),
       tableWidth = table.outerWidth(),
       pageWidth = 600,
       pageCount = Math.ceil(tableWidth / pageWidth),
       printWrap = $("<div></div>").insertAfter(table),
       i,
       printPage;
   for (i = 0; i < pageCount; i++) {
      printPage = $("<div></div>").css({
          "overflow": "hidden",
          "width": pageWidth,
          "page-break-before": i === 0 ? "auto" : "always"
        }).appendTo(printWrap);
   table.clone().removeAttr("id").appendTo(printPage).css({
      "position": "relative",
      "left": -i * pageWidth
     });
   }
 table.hide();
 $(this).prop("disabled", true);
});
});
</script>
</body>
</html>

The preceding HTML example, when table rows are added into the example, can render the following image to an end-user.
HTML Image Example

Define Alert Subscription Service

You can now automatically subscribe your bot users to send contextually relevant alerts as part of the dialog journey. For example, a person booking a flight ticket for a specific date is auto-subscribed to get regular updates on the weather forecast for the destination city.
To set up an alert subscription service, follow the below steps:

  1. Open the Component Properties tab of the service node to which you want to associate the alert.
  2. Under the General Settings section, select Auto Subscription Service from the Service Type drop-down list.
  3. Click Define Request.
    Note: To create an alert subscription service, you must base it on an existing alert task. Users are auto-subscribed to the alert task on reaching the associated service node in the dialog.
  4. On the Smart/Automatic Alerts dialog box, select an alert task from the Choose Alert drop-down list. The list consists of only the published alert tasks related to your bot.
  5. Enter the necessary information as explained below.

Alert Subscription (Smart Alert) Configurations

In a typical alert setup, the alert parameters, filters, and other necessary details are entered by the bot users. Since this is an auto-subscription for alerts, you need to configure those details as a developer.

Alert Parameters

These vary according to the alert you select. Provide the default parameter values to use for the Alert Subscription service.
In this example, the parameters defined for the alert are Topic Name and News Region. Since the idea is to send weather forecasts to the user for the destination city, you can set the parameter values as Weather Forecast and context.entity.destinationcity respectively.

Filters

These vary according to the alert you select. Provide the filter criteria to use for the Alert Subscription service.

Alert Frequency

Provide the frequency to send alert notifications. You need to select a Scheme, Frequency, and Time Frame.

  • From the Select Scheme drop-down list, select daily, weekday, or weekend, depending on when you want to send the alert.
  • From the Select Frequency drop-down list, select Every if you want to send multiple alerts at regular intervals of time in a day or select at to send one alert at a specific time of the day.
  • From the Select Time drop-down list, select an interval time value or a time of the day, depending on the frequency value chosen above.

In this example, we have selected Daily At 6 a.m. which means an alert is sent to the user every day at 6 a.m.

Smart Alert Expiry

Configure when to expire sending alerts to the users from one of the following options:

  • Duration: Stops sending notification after the entered number of days from the date of subscription.
  • Number of Notifications: Stops sending alerts after an entered number of notifications are sent.
Alert Upgrades

Define the expected behavior of this alert if an upgraded version of the underlying alert task (the published alert that you have selected at the beginning) is published.

  • Remove Existing Instances
    All existing subscriptions of this smart alert are removed and users will no longer receive notifications. Users are auto-subscribed to the upgraded alert task only when they execute the dialog and reach the service node in the dialog journey.
  • Allow Users To Manually Upgrade Subscription
    Users will receive an upgrade notification on the selected channel which is a link that guides them through to upgrade their auto-subscription. If the upgrade is successful, the user will receive a success notification.

Define a Data Service

  1. When you select Data Service in the Service Type, the Type setting provides two options:
    • Table – choose this option to perform CRUD operations on the data table.
    • View – choose this option to fetch data from a table view.

    Note: Your bot should have permission to access the table/view. The owner of the table/view has to grant this permission, click here for how.

  2. In the Request Definition section, click Define Request to specify the operation you want to perform. Click here for details.

Next Steps

For the Service Node you set up, you might want to: