시작
Kore.ai 대화형 플랫폼
챗봇 개요
자연어 처리(NLP)
봇 개념 및 용어들
빠른 시작 가이드
봇 빌더 접근 방법
사용 고지 사항 (영어)
Kore.ai 봇 빌더로 작업하기
봇 구축 시작하기
릴리스 정보
현재 버전 (영어)
이전 버전 (영어)

개념
디자인
스토리보드
대화 작업
개요
Using the Dialog Builder Tool
노드 유형
사용자 의도 노드
대화 노드
엔티티 노드
양식 노드
확인 노드
서비스 노드
봇 조치 노드
Service Node
WebHook 노드
스크립트 노드
노드 그룹화하기
Agent Transfer Node
사용자 프롬프트
음성 통화 속성
대화 관리
노드 및 전환
구성 요소 전환
컨텍스트 개체
이벤트 기반 봇 조치
지식 그래프
소개
지식 추출
지식 그래프 생성
봇에 지식 그래프 추가
그래프 생성
지식 그래프 작성
FAQ 추가
작업 실행
기존 소스에서 FAQ 구축
특성, 동의어 및 불용어
변수 네임스페이스 관리
수정
용어 편집 및 삭제
용어 편집 및 삭제
질문과 응답 편집
Knowledge Graph Training
지식 그래프 분석
봇 온톨로지 가져오기 및 내보내기
지식 그래프 가져오기
지식 그래프 내보내기
지식 그래프 생성
CSV 파일에서
JSON 파일
지식 그래프 생성
경고 작업
스몰 토크
Digital Skills
디지털 양식
Views
Digital Views
Panels
Widgets
기차
봇 성능 향상 – NLP 최적화
기계 학습
소개
모델 검증
기초 의미
지식 그래프 학습
특성
순위 및 해결
고급 NLP 설정
NLP 설정 및 지침
봇 인텔리전스
소개
컨텍스트 관리
컨텍스트 관리
대화 관리
다중 – 의도 탐지
엔티티 수정
기본 대화
정서 관리
어조 분석
Test & Debug
봇과 대화
발화 테스트
배치 테스트하기
대화 테스트
배포
채널 활성화
봇 게시
분석
봇 분석하기
Conversations Dashboard
Performance Dashboard
사용자 정의 대시보드
소개
맞춤형 메타 태그
사용자 정의 대시보드 생성 방법
Conversation Flows
NLP 지표
Containment Metrics
사용량 지표
스마트 봇
소개
범용 봇
소개
범용 봇 정의
범용 봇 생성
범용 봇 학습
범용 봇 커스터마이징
범용 봇용 추가 언어 활성화
스토어
Manage Assistant
플랜 및 사용량
Overview
Usage Plans
Support Plans
플랜 관리
봇 인증
다국어 봇
개인 식별 정보 삭제하기
봇 변수 사용
IVR 통합
일반 설정
봇 관리

방법
간단한 봇 생성하기
Design Conversation Skills
뱅킹 봇 생성
뱅킹 봇 – 자금 이체
뱅킹 봇 – 잔액 업데이트
Knowledge Graph (KG) 구축
스마트 경고를 예약하는 방법
Design Digital Skills
디지털 양식 설정 방법
디지털 보기 설정 방법
데이터 테이블에 데이터를 추가하는 방법
데이터 테이블 내 데이터 업데이트 방법
UI 양식에서 데이터 테이블에 데이터를 추가하는 방법
Train the Assistant
특성 사용 방법
의도와 엔티티에 대한 패턴 사용 방법
컨텍스트 전환 관리 방법
Deploy the Assistant
상담사 전환을 설정하는 방법
봇 기능 사용 방법
콘텐츠 변수 사용 방법
전역 변수 사용 방법
Kore.ai 웹 SDK 튜토리얼
Kore.ai 위젯 SDK 튜토리얼
Analyze the Assistant
사용자 정의 대시보드 생성 방법
사용자 지정 태그를 사용하여 봇 메트릭을 필터링하는 방법

API 및 SDK
API 참조
Kore.ai API 사용
API 목록
API 컬렉션
koreUtil Libraries
SDK 참조
상담사 전환을 설정하는 방법
봇 기능 사용 방법
콘텐츠 변수 사용 방법
전역 변수 사용 방법
소개
Kore.ai 웹 SDK 튜토리얼
Kore.ai 위젯 SDK 튜토리얼

관리
소개
봇 관리자 콘솔
대시보드
사용자 관리
사용자 관리
그룹 관리
역할 관리
봇 관리 모듈
등록
사용자 초대
사용자 등록을 위한 대량 초대 보내기
사용자 및 사용자 데이터 가져오기
Active Directory에서 사용자 동기화
보안 및 준수
싱글 사인 온 사용
보안 설정
Kore.ai 커넥터
봇 관리자용 분석
Billing (지원하지 않음)
  1. Docs
  2. Virtual Assistants
  3. Channel Enablement
  4. Unblu 채널 추가

Unblu 채널 추가

Unblu는 금융 서비스를 위한 대화형 플랫폼입니다.

Unblu를 채널로 설정하려면 Unblu에서 외부 통합 봇을 생성하고 '명명된 영역'을 생성하여 이 명명된 영역을 Kore.ai 봇에 매핑해야 합니다.

채널 통합

1단계: 명명된 영역 생성

Unblu의 명명된 영역은 웹 사이트에서 채팅 요청의 출처를 식별하는 데 사용됩니다. Kore.ai 봇은 명명된 영역에 연결된 웹 사이트의 섹션에서 채팅이 시작된 경우에만 사용자에게 응답하게 하려면 명명된 영역에 연결해야 합니다. 단일 Kore.ai 봇에 대한 Unblu 채널을 활성화하는 경우 매핑은 선택사항입니다. 

  1. Unblu 계정 관리자에 Login하세요.
  2. 명명된 영역 모듈에서 '새 명명된 영역' 옵션을 선택합니다.
  3. 모든 필수 정보를 입력합니다.
  4. 생성한 명명된 영역의 이름을 기록합니다.

2단계: Unblu 봇 생성

Kore.ai 봇과 통합하기 위해 Unblu 계정에 봇을 생성해야 합니다

Unblu 봇은 Kore.ai 봇 플랫폼에서 직접 생성할 수 있습니다.

  1. Kore.ai 플랫폼에서 봇을 생성하거나 엽니다.
  2. 왼쪽 탐색 메뉴에서 Channels 옵션을 선택합니다
  3. 채널 페이지에서Unblu를 클릭하여 봇에 동일하게 활성화합니다.
  4. Configurations tab으로 이동하여 Unblu 계정에 봇을 생성하기 위한 다음 세부 정보를 입력하세요:
    • Unblu Host URL -Unblu 애플리케이션의 URL입니다. 예를 들어, Unblu 클라우드에는 https://www.unblu.com/를 사용합니다.
    • Unblu Account UsernameUnblu 계정 사용자 이름을 입력하세요.
    • Unblu Account PasswordUnblu 사용자 이름과 연결된 암호를 입력하세요.
    • Unblu Bot NameUnblu 봇에 사용할 이름을 지정하세요.
    • Unblu Bot DescriptionUnblu 봇의 간단한 설명을 입력하세요.
    • Bot Person사용자에게 Unblu 봇을 나타낼 이름을 입력하세요.
    • Secret KeyUnblu와 Kore.ai 봇 간의 통신을 보호하기 위한 비밀키를 입력하세요.
    • Named AreaKore.ai 봇과 연결하고자 하는 명명된 영역을 입력합니다. Kore.ai는 여기서 선택한 명명된 영역에서 시작된 사용자 채팅에만 응답합니다. 단일 Kore.ai 봇에 대한 Unblu 채널을 활성화하는 경우 필드는 선택사항입니다. 
  5. 채널을 Enable합니다.

추가 지시 사항

Unblu에서 Kore.ai로의 원활한 정보 교환을 위해, 다음과 같은 수행 해야 하는 추가 단계가 몇 가지 있습니다:

  • Unblu SDK가 호스팅 될 host URL은 Unblu 계정의 Domain 섹션에 추가되어야 합니다.
  • Unblu 계정의 API Keys 섹션에서 API Keys를 기록합니다.
  • Unblu SDK를 설정하여 Kore.ai 봇에 액세스를 할당하고 아래 주어진 단계를 따릅니다.
  • Unblu SDK HTML 파일을 엽니다. 다음 속성이 반드시 설정되어야 합니다:
    • <head>에서 메타 태그는 다음과 같습니다: <meta name="unblu:named-area" content="<your-namedArea-Id>" /> 이것은 위의 1단계에서 생성한 명명된 영역입니다.
    • 방문자 정보를 추가할 스크립트 태그는 Unblu 호스트를 가리켜야 합니다. <script src="<your-unblu-host>/unblu/js-api/v2/visitor/visitor-api.min.js"></script>
    • 기능 setVisitorData를 호출하여 방문자 데이터를 Kore.ai 봇으로 보냅니다. visitorData는 문자열 형식이어야 하며 개체를 전달해야 하는 경우 Stringify를 사용합니다.
      • 다음 섹션으로 이동하여 apiKey와 serverUrl 필드를 위에 언급된 값으로 채웁니다.
        window.unblu.api
        .configure({
           apiKey: "<your-unblu-apikey>",
           serverUrl: "<your-unblu-host>"
          })
    • 다음 스크립트 태그에서, Unblu 호스트 URL과 API 키를 추가합니다:
      <script type="text/javascript" defer="defer" src="<your-unblu-host>/unblu/visitor.js?x-unblu-apikey=<your-unblu-apikey>"></script>
    • 전체 Unblu SDK HTML 파일은 다음과 같이 보입니다:
      <!DOCTYPE html>
      <html>
      
      <head>
      
         <meta name="unblu:named-area" content="<your-namedArea-Id>" />
      
         <script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>
         <script src="<your-unblu-host>/unblu/js-api/v2/visitor/visitor-api.min.js"></script>
      
       <script>
         function setVisitorData(engagementType, visitorData) { 
            return Promise.resolve(JSON.stringify({ name: "John", about: "Tester" })); 
             }
           window.unblu.api
            .configure({
               apiKey: "<your-unblu-apikey>",
               serverUrl: "<your-unblu-host>"
             })
            .initialize().then(function (api) {
              console.log("API initialized successfully!");
              api.setNewConversationInterceptor(setVisitorData);
       
                  }).catch(e => {
                      console.log("------error : ", e);
                      if (e.type === 'INITIALIZATION_TIMEOUT') {
                        //retry
                       } else if (e.type === 'UNSUPPORTED_BROWSER') {
                        // display unsupported browser dialog
                      } else {
                       // show generic error message
                       }
                 });
      
      </script>
      
      <script type="text/javascript" defer="defer"
      src="<your-unblu-host>/unblu/visitor.js?x-unblu-apikey=<your-unblu-apikey>"></script>
      </head>
      
      <body>
      </body>
      
      </html>
    • 사용자 정보와 함께 usercontext.customData에서 Unblu의 각 메시지에 대한 방문자 정보에 액세스할 수 있으며,
    • 다음은 구조입니다 usercontext.customData
      {
      "timestamp" : 1594113137065.0,
      "eventType" : "bot.dialog.opened",
      "accountId" : "wZvcAnbBSpOps9oteH-Oxw",
      "dialogToken" : "qG8dFE7ZQPW1p6qcI293hQ-c-QY7P7MNqTCuM6FHT-m-FSQ",
      "dialogType" : "ONBOARDING",
      "counterpartPerson" : {
         "type" : "PersonData",
         "id" : "xZHnVmhxQNKvyf5ybxyLoQ",
         "accountId" : "wZvcAnbBSpOps9oteH-Oxw",
         "personSource" : "VIRTUAL",
         "sourceId" : "awhFjUq1RQCvdMDoV5OW2Q",
         "sourceData" : null,
         "firstName" : null,
         "lastName" : null,
         "username" : null,
         "nickname" : null,
         "displayName" : "Visitor - xZHnV",
         "personType" : "VISITOR",
         "authorizationRole" : "ANONYMOUS_USER",
         "email" : null,
         "phone" : null,
         "teamId" : null,
         "teamName" : null,
         "avatar" : null
         },
      "conversation" : {
         "type" : "ConversationData",
         "id" : "qG8dFE7ZQPW1p6qcI293hQ",
         "accountId" : "wZvcAnbBSpOps9oteH-Oxw",
         "topic" : null,
         "recipient" : {
         "type" : "NamedAreaData", 
         "id" : "WkUGFqcORCCor3bxHa3I5A",
         "accountId" : "wZvcAnbBSpOps9oteH-Oxw",
         "displayName" : "testlocal",
         "avatar" : null
        },
      "participants" : [
       {
         "type" : "ParticipantData",
         "state" : "ACTIVE",
         "personId" : "yb8ALAiGQOWlCoBahUCfgQ",
         "connectedViaExternalMessenger" : false,
         "hidden" : true
       }
       ],
       "assigneePersonId" : null,
       "contextPersonId" : "xZHnVmhxQNKvyf5ybxyLoQ",
       "state" : "ONBOARDING",
       "initialEngagementType" : "CHAT_REQUEST",
       "locale" : "en",
       "tokboxSessionId" : null,
       "visitorData" : "{\"name\":\"John\",\"about\":\"Tester\"}",
       "conversationTemplateId" : "R6W3x2uzQ1KXzARnIqdNZw",
       "links" : [
       {
         "type" : "OPEN_IN_VISITOR_DESK",
         "url" : "https://kore.dev.unblu-test.com/unblu/visitordesk/#/conversation/qG8dFE7ZQPW1p6qcI293hQ"
       },
       {
        "type" : "OPEN_IN_AGENT_DESK",
        "url" : "https://kore.dev.unblu-test.com/unblu/desk/#/conversation/qG8dFE7ZQPW1p6qcI293hQ"
       },
      {
        "type" : "OPEN_IN_AGENT_SINGLE_VIEW",
        "url" : "https://kore.dev.unblu-test.com/unblu/single/#/conversation/qG8dFE7ZQPW1p6qcI293hQ"
       }
       ],
       "externalMessengerChannelId" : null,
       "sourceId" : null,
       "configuration" : null,
       "text" : null
      },
      "presencePersonInfo" : {
        "id" : "OuG04Q0WSFe3-iaIA1GlLw",
        "creationTimestamp" : 1594112743472.0,
        "modificationTimestamp" : 1594112743472.0,
        "accountId" : "wZvcAnbBSpOps9oteH-Oxw",
        "joinedTimestamp" : 1594112743472.0,
        "leftTimestamp" : null,
        "personId" : "xZHnVmhxQNKvyf5ybxyLoQ",
        "deviceInfo" : {
          "id" : "fx7Q8qZyQXmnf62xpoePWg",
          "creationTimestamp" : 1594112743454.0,
          "modificationTimestamp" : 1594112743454.0,
          "accountId" : "wZvcAnbBSpOps9oteH-Oxw",
          "osName" : "Ubuntu",
          "osVersion" : "Other",
          "browserName" : "Chromium",
          "browserVersion" : "81.0",
          "userAgent" : null,
          "screenWidth" : null,
          "screenHeight" : null,
          "screenPixelRatio" : null,
          "type" : "DESKTOP",
          "identifier" : "awhFjUq1RQCvdMDoV5OW2Q",
          "identifierSource" : "COOKIE",
          "pushToken" : null,
          "ownerPersonId" : "xZHnVmhxQNKvyf5ybxyLoQ"
        },
       "touchTimestamp" : 1594113153628.0,
       "impersonationType" : "NONE",
       "impersonatedFromUserId" : null,
       "impersonatedFromAccountId" : null,
       "additionalInfo" : null,
       "authInfo" : null,
       "propagated" : false
       }
      }

특별 참고 사항

여러 기능이 Kore.ai 봇과 Unblu 채널의 통합으로 인해 가능합니다.

  • 봇에 명명된 영역을 매핑하는 경우, multiple named areas이 매핑될 수 있습니다. 이러한 방법으로 단일 Kore.ai 봇은 SDK 또는 명명된 영역과 같은 다양한 출처의 Unblu 대화 제안 요청을 수락할 역량을 가집니다.
  • 또한, 명명된 영역 매핑은 단일 Kore.ai 봇에 대한 Unblu 채널을 활성화하는 경우 선택사항입니다. 
  • Dialogflow에 agent transfer 노드를 추가하여 에이전트에 사용자 대화를 리디렉션할 수 있습니다. 이 채널에 대해 특별히 에이전트 전송 또는 BotKit를 활성화 할 필요는 없습니다. 에이전트 전송 노드가 있으면 충분합니다.
  • Unblu에서 각 메시지에 대한 사용자 정보는 usercontext.customData에서 사용할 수 있으며 이를 향후 진행 시 사용할 수 있습니다. 이 정보는 사용자의 deviceInfo, authInfo, joinedTime이 포함됩니다. 컨텍스트 개체 사용 방법은 여기를 참조하세요.

메시지 템플릿이 지원되는 Unblu 사용

기본값으로, 다음 메시지 템플릿이 사용됩니다 – 버튼/다중 선택, 목록 템플릿. 카드 메시지, 목록 메시지, 다중 선택/버튼 메시지와 같은 템플릿을 재정의할 수 있습니다. 다음은 위에 언급된 템플릿을 사용하는 방법에 대한 코드 예시이며, 필요에 따라 맞게 이를 바꿉니다:

  • Card Template:
    var unbluCardTemplate = {
        "$_type": "CardPostMessageData",
        "type": "CARD",
        "imageUrl": "data:image/png;base64,",
        "imageAltText": "test image",
        "title": "Title",
        "body": "This is the **body text** with markdown",
        "bodyTextType": "MARKDOWN",
        "actions": [
          {
            "$_type": "MessageAction",
            "actionType": "LINK_INTERNAL",
            "label": "Unblu homepage",
            "value": "https://unblu.com"
          },
          {
            "$_type": "MessageAction",
            "actionType": "LINK_EXTERNAL",
            "label": "Wikipedia",
            "value": "https://www.wikipedia.org/"
          },
          {
            "$_type": "MessageAction",
            "actionType": "REPLY_MESSAGE",
            "label": "More info",
            "value": "Could you provide me with more info?"
          }
        ]
      };
    
    print(JSON.stringify(unbluCardTemplate));
    
  • List Template:
    var unbluListTemplate = {
        "$_type": "ListPostMessageData",
        "type": "LIST",
        "header": {
          "$_type": "MessageHeader",
          "imageUrl": "data:image/png;base64,",
          "imageAltText": "test image",
          "title": "Title",
          "body": "This is the **body text** with markdown",
          "bodyTextType": "MARKDOWN"
        },
        "items": [
          {
            "$_type": "PostListMessageCardItemData",
            "imageUrl": "data:image/png;base64,",
            "imageAltText": "test image",
            "title": "Title",
            "body": "This is the **body text** with markdown",
            "bodyTextType": "MARKDOWN",
            "action": null
          },
          {
            "$_type": "PostListMessageCardItemData",
            "imageUrl": "data:image/png;base64,",
            "imageAltText": "test image",
            "title": "Title",
            "body": "This is the **body text** with markdown",
            "bodyTextType": "MARKDOWN",
            "action": {
              "$_type": "MessageAction",
              "actionType": "LINK_INTERNAL",
              "label": "Unblu homepage",
              "value": "https://unblu.com"
            }
          }
        ],
        "actions": [
          {
            "$_type": "MessageAction",
            "actionType": "LINK_INTERNAL",
            "label": "Unblu homepage",
            "value": "https://unblu.com"
          },
          {
            "$_type": "MessageAction",
            "actionType": "LINK_EXTERNAL",
            "label": "Wikipedia",
            "value": "https://www.wikipedia.org/"
          },
          {
            "$_type": "MessageAction",
            "actionType": "REPLY_MESSAGE",
            "label": "More info",
            "value": "Could you provide me with more info?"
          }
        ]
    }
    print(JSON.stringify(unbluListTemplate));
    
  • Multi Choice Template:
    var unbluMultiChoiceTemplate =  {
        "$_type": "MultichoiceQuestionPostMessageData",
        "type": "MULTICHOICE_QUESTION",
        "text": "Choose one of the options",
        "textType": "MARKDOWN",
        "options": [
          {
            "$_type": "MultichoiceQuestionOption",
            "label": "Option 1",
            "value": "1",
            "primary": true
          },
          {
            "$_type": "MultichoiceQuestionOption",
            "label": "Option 2",
            "value": "2",
            "primary": false
          }
        ]
      };
    print(JSON.stringify(unbluMultiChoiceTemplate));
    

Unblu 채널 편집

Unblu 채널을 편집하려면, 수정하기 위해 채널 위로 마우스를 이동한 후 Settings 아이콘을 클릭하여 명령 메뉴를 표시합니다. 채널을 수정하려면 다음과 같은 명령 중 하나를 선택하세요.

  • Disable/EnableDisable을 클릭하여 봇의 Unblu 사용을 일시적으로 비활성화합니다. Unblu 채널 사용을 활성화하려면, Enable을 클릭하세요.
  • DeleteDelete를 클릭한 후 Delete Confirmation 대화창의 OK을 클릭하여 봇 채널 설정을 영구적으로 삭제합니다.
Warning: 이 작업은 영구적이므로, 취소할 수 없습니다.

Unblu 채널 추가

Unblu는 금융 서비스를 위한 대화형 플랫폼입니다.

Unblu를 채널로 설정하려면 Unblu에서 외부 통합 봇을 생성하고 '명명된 영역'을 생성하여 이 명명된 영역을 Kore.ai 봇에 매핑해야 합니다.

채널 통합

1단계: 명명된 영역 생성

Unblu의 명명된 영역은 웹 사이트에서 채팅 요청의 출처를 식별하는 데 사용됩니다. Kore.ai 봇은 명명된 영역에 연결된 웹 사이트의 섹션에서 채팅이 시작된 경우에만 사용자에게 응답하게 하려면 명명된 영역에 연결해야 합니다. 단일 Kore.ai 봇에 대한 Unblu 채널을 활성화하는 경우 매핑은 선택사항입니다. 

  1. Unblu 계정 관리자에 Login하세요.
  2. 명명된 영역 모듈에서 '새 명명된 영역' 옵션을 선택합니다.
  3. 모든 필수 정보를 입력합니다.
  4. 생성한 명명된 영역의 이름을 기록합니다.

2단계: Unblu 봇 생성

Kore.ai 봇과 통합하기 위해 Unblu 계정에 봇을 생성해야 합니다

Unblu 봇은 Kore.ai 봇 플랫폼에서 직접 생성할 수 있습니다.

  1. Kore.ai 플랫폼에서 봇을 생성하거나 엽니다.
  2. 왼쪽 탐색 메뉴에서 Channels 옵션을 선택합니다
  3. 채널 페이지에서Unblu를 클릭하여 봇에 동일하게 활성화합니다.
  4. Configurations tab으로 이동하여 Unblu 계정에 봇을 생성하기 위한 다음 세부 정보를 입력하세요:
    • Unblu Host URL -Unblu 애플리케이션의 URL입니다. 예를 들어, Unblu 클라우드에는 https://www.unblu.com/를 사용합니다.
    • Unblu Account UsernameUnblu 계정 사용자 이름을 입력하세요.
    • Unblu Account PasswordUnblu 사용자 이름과 연결된 암호를 입력하세요.
    • Unblu Bot NameUnblu 봇에 사용할 이름을 지정하세요.
    • Unblu Bot DescriptionUnblu 봇의 간단한 설명을 입력하세요.
    • Bot Person사용자에게 Unblu 봇을 나타낼 이름을 입력하세요.
    • Secret KeyUnblu와 Kore.ai 봇 간의 통신을 보호하기 위한 비밀키를 입력하세요.
    • Named AreaKore.ai 봇과 연결하고자 하는 명명된 영역을 입력합니다. Kore.ai는 여기서 선택한 명명된 영역에서 시작된 사용자 채팅에만 응답합니다. 단일 Kore.ai 봇에 대한 Unblu 채널을 활성화하는 경우 필드는 선택사항입니다. 
  5. 채널을 Enable합니다.

추가 지시 사항

Unblu에서 Kore.ai로의 원활한 정보 교환을 위해, 다음과 같은 수행 해야 하는 추가 단계가 몇 가지 있습니다:

  • Unblu SDK가 호스팅 될 host URL은 Unblu 계정의 Domain 섹션에 추가되어야 합니다.
  • Unblu 계정의 API Keys 섹션에서 API Keys를 기록합니다.
  • Unblu SDK를 설정하여 Kore.ai 봇에 액세스를 할당하고 아래 주어진 단계를 따릅니다.
  • Unblu SDK HTML 파일을 엽니다. 다음 속성이 반드시 설정되어야 합니다:
    • <head>에서 메타 태그는 다음과 같습니다: <meta name="unblu:named-area" content="<your-namedArea-Id>" /> 이것은 위의 1단계에서 생성한 명명된 영역입니다.
    • 방문자 정보를 추가할 스크립트 태그는 Unblu 호스트를 가리켜야 합니다. <script src="<your-unblu-host>/unblu/js-api/v2/visitor/visitor-api.min.js"></script>
    • 기능 setVisitorData를 호출하여 방문자 데이터를 Kore.ai 봇으로 보냅니다. visitorData는 문자열 형식이어야 하며 개체를 전달해야 하는 경우 Stringify를 사용합니다.
      • 다음 섹션으로 이동하여 apiKey와 serverUrl 필드를 위에 언급된 값으로 채웁니다.
        window.unblu.api
        .configure({
           apiKey: "<your-unblu-apikey>",
           serverUrl: "<your-unblu-host>"
          })
    • 다음 스크립트 태그에서, Unblu 호스트 URL과 API 키를 추가합니다:
      <script type="text/javascript" defer="defer" src="<your-unblu-host>/unblu/visitor.js?x-unblu-apikey=<your-unblu-apikey>"></script>
    • 전체 Unblu SDK HTML 파일은 다음과 같이 보입니다:
      <!DOCTYPE html>
      <html>
      
      <head>
      
         <meta name="unblu:named-area" content="<your-namedArea-Id>" />
      
         <script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>
         <script src="<your-unblu-host>/unblu/js-api/v2/visitor/visitor-api.min.js"></script>
      
       <script>
         function setVisitorData(engagementType, visitorData) { 
            return Promise.resolve(JSON.stringify({ name: "John", about: "Tester" })); 
             }
           window.unblu.api
            .configure({
               apiKey: "<your-unblu-apikey>",
               serverUrl: "<your-unblu-host>"
             })
            .initialize().then(function (api) {
              console.log("API initialized successfully!");
              api.setNewConversationInterceptor(setVisitorData);
       
                  }).catch(e => {
                      console.log("------error : ", e);
                      if (e.type === 'INITIALIZATION_TIMEOUT') {
                        //retry
                       } else if (e.type === 'UNSUPPORTED_BROWSER') {
                        // display unsupported browser dialog
                      } else {
                       // show generic error message
                       }
                 });
      
      </script>
      
      <script type="text/javascript" defer="defer"
      src="<your-unblu-host>/unblu/visitor.js?x-unblu-apikey=<your-unblu-apikey>"></script>
      </head>
      
      <body>
      </body>
      
      </html>
    • 사용자 정보와 함께 usercontext.customData에서 Unblu의 각 메시지에 대한 방문자 정보에 액세스할 수 있으며,
    • 다음은 구조입니다 usercontext.customData
      {
      "timestamp" : 1594113137065.0,
      "eventType" : "bot.dialog.opened",
      "accountId" : "wZvcAnbBSpOps9oteH-Oxw",
      "dialogToken" : "qG8dFE7ZQPW1p6qcI293hQ-c-QY7P7MNqTCuM6FHT-m-FSQ",
      "dialogType" : "ONBOARDING",
      "counterpartPerson" : {
         "type" : "PersonData",
         "id" : "xZHnVmhxQNKvyf5ybxyLoQ",
         "accountId" : "wZvcAnbBSpOps9oteH-Oxw",
         "personSource" : "VIRTUAL",
         "sourceId" : "awhFjUq1RQCvdMDoV5OW2Q",
         "sourceData" : null,
         "firstName" : null,
         "lastName" : null,
         "username" : null,
         "nickname" : null,
         "displayName" : "Visitor - xZHnV",
         "personType" : "VISITOR",
         "authorizationRole" : "ANONYMOUS_USER",
         "email" : null,
         "phone" : null,
         "teamId" : null,
         "teamName" : null,
         "avatar" : null
         },
      "conversation" : {
         "type" : "ConversationData",
         "id" : "qG8dFE7ZQPW1p6qcI293hQ",
         "accountId" : "wZvcAnbBSpOps9oteH-Oxw",
         "topic" : null,
         "recipient" : {
         "type" : "NamedAreaData", 
         "id" : "WkUGFqcORCCor3bxHa3I5A",
         "accountId" : "wZvcAnbBSpOps9oteH-Oxw",
         "displayName" : "testlocal",
         "avatar" : null
        },
      "participants" : [
       {
         "type" : "ParticipantData",
         "state" : "ACTIVE",
         "personId" : "yb8ALAiGQOWlCoBahUCfgQ",
         "connectedViaExternalMessenger" : false,
         "hidden" : true
       }
       ],
       "assigneePersonId" : null,
       "contextPersonId" : "xZHnVmhxQNKvyf5ybxyLoQ",
       "state" : "ONBOARDING",
       "initialEngagementType" : "CHAT_REQUEST",
       "locale" : "en",
       "tokboxSessionId" : null,
       "visitorData" : "{\"name\":\"John\",\"about\":\"Tester\"}",
       "conversationTemplateId" : "R6W3x2uzQ1KXzARnIqdNZw",
       "links" : [
       {
         "type" : "OPEN_IN_VISITOR_DESK",
         "url" : "https://kore.dev.unblu-test.com/unblu/visitordesk/#/conversation/qG8dFE7ZQPW1p6qcI293hQ"
       },
       {
        "type" : "OPEN_IN_AGENT_DESK",
        "url" : "https://kore.dev.unblu-test.com/unblu/desk/#/conversation/qG8dFE7ZQPW1p6qcI293hQ"
       },
      {
        "type" : "OPEN_IN_AGENT_SINGLE_VIEW",
        "url" : "https://kore.dev.unblu-test.com/unblu/single/#/conversation/qG8dFE7ZQPW1p6qcI293hQ"
       }
       ],
       "externalMessengerChannelId" : null,
       "sourceId" : null,
       "configuration" : null,
       "text" : null
      },
      "presencePersonInfo" : {
        "id" : "OuG04Q0WSFe3-iaIA1GlLw",
        "creationTimestamp" : 1594112743472.0,
        "modificationTimestamp" : 1594112743472.0,
        "accountId" : "wZvcAnbBSpOps9oteH-Oxw",
        "joinedTimestamp" : 1594112743472.0,
        "leftTimestamp" : null,
        "personId" : "xZHnVmhxQNKvyf5ybxyLoQ",
        "deviceInfo" : {
          "id" : "fx7Q8qZyQXmnf62xpoePWg",
          "creationTimestamp" : 1594112743454.0,
          "modificationTimestamp" : 1594112743454.0,
          "accountId" : "wZvcAnbBSpOps9oteH-Oxw",
          "osName" : "Ubuntu",
          "osVersion" : "Other",
          "browserName" : "Chromium",
          "browserVersion" : "81.0",
          "userAgent" : null,
          "screenWidth" : null,
          "screenHeight" : null,
          "screenPixelRatio" : null,
          "type" : "DESKTOP",
          "identifier" : "awhFjUq1RQCvdMDoV5OW2Q",
          "identifierSource" : "COOKIE",
          "pushToken" : null,
          "ownerPersonId" : "xZHnVmhxQNKvyf5ybxyLoQ"
        },
       "touchTimestamp" : 1594113153628.0,
       "impersonationType" : "NONE",
       "impersonatedFromUserId" : null,
       "impersonatedFromAccountId" : null,
       "additionalInfo" : null,
       "authInfo" : null,
       "propagated" : false
       }
      }

특별 참고 사항

여러 기능이 Kore.ai 봇과 Unblu 채널의 통합으로 인해 가능합니다.

  • 봇에 명명된 영역을 매핑하는 경우, multiple named areas이 매핑될 수 있습니다. 이러한 방법으로 단일 Kore.ai 봇은 SDK 또는 명명된 영역과 같은 다양한 출처의 Unblu 대화 제안 요청을 수락할 역량을 가집니다.
  • 또한, 명명된 영역 매핑은 단일 Kore.ai 봇에 대한 Unblu 채널을 활성화하는 경우 선택사항입니다. 
  • Dialogflow에 agent transfer 노드를 추가하여 에이전트에 사용자 대화를 리디렉션할 수 있습니다. 이 채널에 대해 특별히 에이전트 전송 또는 BotKit를 활성화 할 필요는 없습니다. 에이전트 전송 노드가 있으면 충분합니다.
  • Unblu에서 각 메시지에 대한 사용자 정보는 usercontext.customData에서 사용할 수 있으며 이를 향후 진행 시 사용할 수 있습니다. 이 정보는 사용자의 deviceInfo, authInfo, joinedTime이 포함됩니다. 컨텍스트 개체 사용 방법은 여기를 참조하세요.

메시지 템플릿이 지원되는 Unblu 사용

기본값으로, 다음 메시지 템플릿이 사용됩니다 – 버튼/다중 선택, 목록 템플릿. 카드 메시지, 목록 메시지, 다중 선택/버튼 메시지와 같은 템플릿을 재정의할 수 있습니다. 다음은 위에 언급된 템플릿을 사용하는 방법에 대한 코드 예시이며, 필요에 따라 맞게 이를 바꿉니다:

  • Card Template:
    var unbluCardTemplate = {
        "$_type": "CardPostMessageData",
        "type": "CARD",
        "imageUrl": "data:image/png;base64,",
        "imageAltText": "test image",
        "title": "Title",
        "body": "This is the **body text** with markdown",
        "bodyTextType": "MARKDOWN",
        "actions": [
          {
            "$_type": "MessageAction",
            "actionType": "LINK_INTERNAL",
            "label": "Unblu homepage",
            "value": "https://unblu.com"
          },
          {
            "$_type": "MessageAction",
            "actionType": "LINK_EXTERNAL",
            "label": "Wikipedia",
            "value": "https://www.wikipedia.org/"
          },
          {
            "$_type": "MessageAction",
            "actionType": "REPLY_MESSAGE",
            "label": "More info",
            "value": "Could you provide me with more info?"
          }
        ]
      };
    
    print(JSON.stringify(unbluCardTemplate));
    
  • List Template:
    var unbluListTemplate = {
        "$_type": "ListPostMessageData",
        "type": "LIST",
        "header": {
          "$_type": "MessageHeader",
          "imageUrl": "data:image/png;base64,",
          "imageAltText": "test image",
          "title": "Title",
          "body": "This is the **body text** with markdown",
          "bodyTextType": "MARKDOWN"
        },
        "items": [
          {
            "$_type": "PostListMessageCardItemData",
            "imageUrl": "data:image/png;base64,",
            "imageAltText": "test image",
            "title": "Title",
            "body": "This is the **body text** with markdown",
            "bodyTextType": "MARKDOWN",
            "action": null
          },
          {
            "$_type": "PostListMessageCardItemData",
            "imageUrl": "data:image/png;base64,",
            "imageAltText": "test image",
            "title": "Title",
            "body": "This is the **body text** with markdown",
            "bodyTextType": "MARKDOWN",
            "action": {
              "$_type": "MessageAction",
              "actionType": "LINK_INTERNAL",
              "label": "Unblu homepage",
              "value": "https://unblu.com"
            }
          }
        ],
        "actions": [
          {
            "$_type": "MessageAction",
            "actionType": "LINK_INTERNAL",
            "label": "Unblu homepage",
            "value": "https://unblu.com"
          },
          {
            "$_type": "MessageAction",
            "actionType": "LINK_EXTERNAL",
            "label": "Wikipedia",
            "value": "https://www.wikipedia.org/"
          },
          {
            "$_type": "MessageAction",
            "actionType": "REPLY_MESSAGE",
            "label": "More info",
            "value": "Could you provide me with more info?"
          }
        ]
    }
    print(JSON.stringify(unbluListTemplate));
    
  • Multi Choice Template:
    var unbluMultiChoiceTemplate =  {
        "$_type": "MultichoiceQuestionPostMessageData",
        "type": "MULTICHOICE_QUESTION",
        "text": "Choose one of the options",
        "textType": "MARKDOWN",
        "options": [
          {
            "$_type": "MultichoiceQuestionOption",
            "label": "Option 1",
            "value": "1",
            "primary": true
          },
          {
            "$_type": "MultichoiceQuestionOption",
            "label": "Option 2",
            "value": "2",
            "primary": false
          }
        ]
      };
    print(JSON.stringify(unbluMultiChoiceTemplate));
    

Unblu 채널 편집

Unblu 채널을 편집하려면, 수정하기 위해 채널 위로 마우스를 이동한 후 Settings 아이콘을 클릭하여 명령 메뉴를 표시합니다. 채널을 수정하려면 다음과 같은 명령 중 하나를 선택하세요.

  • Disable/EnableDisable을 클릭하여 봇의 Unblu 사용을 일시적으로 비활성화합니다. Unblu 채널 사용을 활성화하려면, Enable을 클릭하세요.
  • DeleteDelete를 클릭한 후 Delete Confirmation 대화창의 OK을 클릭하여 봇 채널 설정을 영구적으로 삭제합니다.
Warning: 이 작업은 영구적이므로, 취소할 수 없습니다.
메뉴