자주 묻는 질문 중 하나는 봇에서 인간 상담사에게 채팅을 전송하는 방법입니다. 이 작업은 봇이 고객 서비스 공간에 있는 경우 특히 필요합니다. 챗봇은 인간을 완전히 대체하기 위한 것이 아닙니다. 챗봇이 만족스럽게 대답하지 못하거나 사용자가 처음부터 사람과 대화하고 싶을 때가 많습니다. 이 경우 챗봇은 채팅을 인간 상담원이나 고객 관리 담당자에게 전송해야 합니다. 하지만 어떻게 할 수 있을까요? 본 문서에서는 Kore.ai 상담사 전환을 사용하여 라이브 채팅을 봇에 통합하는 방법에 대해 간략하게 설명합니다. 상담사 전환용 소스 코드는 Kore.ai github repo에서 사용할 수 있습니다: https://github.com/Koredotcom/BotKit
개요
봇이 전체 솔루션의 핵심 요소가 될 것입니다. 봇은 정상적인 기능을 모두 수행하는 것 외에도 사용자와 상담사 간의 대리인 역할을 합니다.
- 봇: 사용자가 상호 작용하는 채팅 봇.
- 사용자: 사용자는 이 봇을 사용하는 고객입니다.
- 상담사: 상담사는 사용자와 채팅하는 사람입니다. 상담사는 채팅 창도 필요합니다. 이를 위해 liveprson/livechat 소프트웨어를 사용합니다.
전제 조건
- 완벽한 기능을 갖춘 봇(뱅킹 봇을 사용하겠습니다).
- Kore의 github에서 BotKit SDK를 다운로드
- Node.js를 다운로드 및 설치합니다. BotKit SDK를 사용하려면 SDK가 설치된 서버에서 node.js를 실행해야 합니다.
https://nodejs.org/en/download/
로 이동하여 Mac의 경우 .pkg 파일 유형으로 OS를 선택하고 Windows의 경우 .msi 파일 유형을 선택합니다.- 터미널 창에서
node -v
명령을 실행하여 설치 및 버전을 확인합니다(예: v6.10.2).
- 테스트 콜백 서버 애플리케이션입니다. 콜백 서버 애플리케이션을 시뮬레이션하기 위해 https://dl.equinox.io/ngrok/ngrok/stable의 NGROK를 사용할 것입니다. 다음은 NGROK를 설치하는 단계입니다.
- https://dl.equinox.io/ngrok/ngrok/stable를를 엽니다.
- 운영 체제에 맞는 ngrok 파일을 다운로드하고 설치합니다.
- Windows에서 NGROK 다운로드:
- Windows 시스템에 32비트 또는 64비트용 zip 파일 다운로드
- 압축을 풀고
ngrok.exe
를 실행하여 ngrok를 설치합니다.
- Mac에서 NGROK 다운로드:
Command+Space
키를 누르고 Terminal을 입력한 다음 enter/return 키를 누릅니다.- 터미널 앱에서 실행:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
및 enter/return 키를 누릅니다. 화면에 암호를 입력하라는 메시지가 나타나면 Mac의 사용자 암호를 입력하여 계속 진행하세요. 암호를 입력할 때 화면에 표시되지 않지만, 시스템에서 암호를 허용합니다. 암호를 입력하고 Enter/Return 키를 누르면 됩니다. 그런 다음 명령이 완료될 때까지 기다립니다. - Run
brew cask install ngrok
- Windows에서 NGROK 다운로드:
- 라이브 에이전트 소프트웨어. LiveChatInc.com을 사용할 것입니다. 본인 소유의 LiveChat 구독을 사용하거나, LiveChatInc.com에서 Start using LiveChat now!에 회사 이메일을 입력하여 무료 30일 평가판 계정을 설정할 수 있습니다. 가입하고 계정을 생성합니다.
설계 및 설정
- 봇 개발자로 Kore.ai 봇 빌더(https://bots.kore.ai/botbuilder)를 엽니다.
- 상담사 전환을 설정해야 하는 봇을 선택합니다.
- 대화 작업(콜백 지원)을 열거나 생성하고 상담사 전환 노드를 추가합니다.
- 이름(LiveChat) 및 설명을 입력하고 저장을 클릭합니다.
- ‘SDK가 현재 설정/구독되지 않았습니다. API 확장으로 이동하여 SDK를 설정하세요.‘라는 메시지를 보게 될 겁니다. SDK를 설정하는 방법은 본 문서에서 나중에 보여드릴 것이기 때문에 현재 이 메시지는 무시하세요.
- 봇 빌더 화면에서 API 확장 -> 상담사 전환으로 이동
- 앱 이름 섹션에서 목록의 기존 앱을 선택하거나 앱 생성 옵션을 사용하여 새 앱을 생성합니다.
- 봇 ID, 클라이언트 ID, 클라이언트 시크릿 키를 기록합니다.
- BotKit SDK 이벤트가 호출할 애플리케이션의 콜백 URL을 입력합니다. NGROK를 사용하고 있으므로 콜백 URL을 얻는 방법을 보여드리겠습니다:
- 상담사 전환은 대화 수준에서 설정됩니다. 대화 작업을 열고 상담사 전환 노드를 열어 설정이 아래와 보이는 것과 같이 저장되었는지 확인할 수 있습니다. 필수 이벤트를 선택할 수 있습니다(자세한 내용은 아래 참조).
- 엔터프라이즈 요건 및 라이선스 가용성에 따라 LiveChat, LivePerson, Concentrix, Vayusphere 등과 같은 라이브 에이전트 소프트웨어를 설치합니다. LiveChat을 사용하고 있기 때문에 상담사 전환에 필요한 라이선스 세부 정보를 얻는 방법을 알려드리겠습니다.
- LiveChat 계정에 로그인합니다.
- 왼쪽 탐색에서 설정으로 이동하여 채팅 링크를 선택합니다.
- URL을 복사하고 라이선스 코드를 기록합니다. URL이
https://lc.chat/now/104xx297/
라면 라이선스 코드는 다음과 같습니다.104xx297
- 다운로드한 BotKit SDK 폴더를 열고 다음을 수행합니다.
- 편집
livechatapi.js:
- 편집
config.json
- 클라이언트 ID, 클라이언트 시크릿 키, 실행 중인 각 서버 포트 및 타사 서버의 liveagent 라이선스가 여기에 표시됩니다.
- 클라이언트 ID, 클라이언트 시크릿은 이벤트 및 확장에서 복사할 수 있습니다 – 상담사 전환
- ngrok 포워딩 URL은 ngrok 실행 인스턴스에서 복사할 수 있습니다. 이것은 콜백 URL입니다. 이것은 URL 엔트리여야 합니다.
- Liveagentlicense는 livechat의 채팅 링크에 주어진 코드입니다
- 편집
LiveChat.js
- app.js를 편집
- 편집
실행
- 터미널 창을 열고 다음 명령을 입력하여 BotKit SDK를 실행합니다.
node app.js
- 아래 보이는 대로 오류 없이 서버를 실행하기 위해 누락된 모듈을 모두 설치하세요. 예를 들어, "method url-template, node-schedule is missing" 오류가 표시되면 Windows의 경우
npm install <module-name>
을 사용하여 위의 모듈을 설치하고 Mac의 경우sudo npm install <module-name>
을 사용합니다. - ngrok 및 node.js 서버가 서로 다른 터미널에서 실행됩니다.
- 사용자가 봇에서 채팅을 시작하면 봇은 호출을 상담사에게 전송하고 사용자에게 메시지를 전송합니다
- 상담사는 livechat에서 이에 대한 알림을 받습니다
- 이제 상담사와 사용자 간의 연결이 설정되고 대화가 계속됩니다.
이벤트
참고 사항: 사용자, BOT에서 메시지를 보내고 상담사에게 전송하는 데 필요한 이벤트 및 방법은 LiveChat.JS에 설명되어 있습니다.
- on_user_message 이벤트는 사용자가 메시지를 보내고 sendBotMessage 메서드를 사용하여 이 메시지를 봇에 보낼 때 트리거 됩니다.
- on_bot_message는 봇이 메시지를 보낼 때 트리거 되고 SendUserMessage 메서드를 사용하여 이 메시지를 사용자에게 보냅니다.
- on_agent_transfer 이벤트는 서비스 agentTransfer 노드가 봇에서 트리거 될 때 트리거 됩니다. 그리고 이 이벤트는 내부적으로 initChat API를 호출하는 connectToAgent 메서드를 사용하여 에이전트에 연결됩니다.
- gethistory 메서드는 봇과 사용자의 채팅 기록을 전환된 상담사에게 제공합니다
- scheduleJob은 5초마다 실행되며 내부적으로 getPendingMessages를 호출하는 상담사에서 보류 중인 메시지를 폴링합니다
- getPendingMessages는 상담사에서 보류 중인 모든 메시지를 가져와서 이를 사용자에게 전달합니다.
- chat_closed는 상담사가 사용자와 채팅을 종료할 때 트리거 됩니다.