VoiceBot Exchange

셀프 서비스 가상 상담원닫힘 실제 상담원 대신 고객 상호작용을 처리하는 소프트웨어 애플리케이션입니다.과 음성 스크립트를 통합합니다. 이 작업은 스크립트의 루프에서 사용됩니다. 스크립트에는 최소 2개의 VoiceBot Exchange 작업이 포함되어야 합니다. 가상 상담원이 이 작업을 지원해야 합니다.

Voicebot Exchange 작업은 복잡한 가상 상담원이나 가상 상담원의 동작을 각 발언별로 사용자 정의해야 하는 경우에 사용합니다. 이 작업은 컨택과 가상 상담원 사이의 대화를 발언별로 모니터링합니다. 각 발화닫힘 컨택이 말하거나 입력하는 내용입니다.를 가상 상담원에 보냅니다. 가상 상담원은 발화의 의도닫힘 컨택이 말하거나 입력하는 내용의 의미나 목적이며 컨택이 전달하고자 하는 내용이나 원하는 내용입니다.와 컨텍스트를 분석하여 그에 대한 응답을 결정합니다. 작업이 가상 상담원의 응답을 컨택에게 반환합니다. 대화가 완료되면 작업이 스크립트를 계속 진행합니다.

이 작업은 음성 가상 상담원에 사용하기 위한 권장 작업입니다. 개입 또는 입력 없음을 구성하려면 추가 스크립팅이 필요합니다. SIP닫힘 프로토콜은 음성 및 영상 통화와 같은 멀티미디어 커뮤니케이션 세션을 신호화하고 제어하는 데 사용됩니다 백채널 연결을 사용하는 경우에는 Voicebot Conversation 작업을 사용해야 합니다.

이 작업을 두 번 클릭하면 가상 상담원 허브이(가) 열리며, 여기에서 모든 가상 상담원을 관리할 수 있습니다.

Dependencies

  • 스크립트에는 루프로 연결된 VoiceBot Exchange 작업이 최소 2개 이상 포함되어야 합니다.
  • 이 작업을 사용하려면 가상 상담원이 순차적 대화 사용자 정의를 지원해야 합니다.
  • 대화 턴의 정의는 다음과 같습니다.

    1. 가상 상담원에게 전송되는 컨택 발화.
    2. 가상 상담원의 발화 처리 및 모든 사용자 정의 페이로드 정보 정의.
    3. 컨택에게 다시 전달되는 응답.
    4. nextPromptBehaviors 속성에서 결정되는 진행해야 할 모든 추가 작업(예: 데이터베이스 또는 외부 API 호출). 또한 상호작용이 완료되었거나 대화가 라이브 상담원에게 이전되면 대화 루프가 중단되도록 구성할 수 있습니다.
  • 사용자 정의 페이로드에 Google Dialogflow ES 또는 Google Dialogflow CX 가상 상담원을 포함하는 경우에는 사용자 정의 페이로드 모범 사례와 가이드라인을 따르십시오.  CXES 가이드라인은 이 페이지에 제공됩니다.

Supported Script Types

The icon for the Phone script type - an old-style phone handset with curved lines indicating sound coming out of it.

전화

Comparison of Similar Actions

다음 작업에는 유사한 기능이 있지만 주요 차이점이 있습니다.

  • Textbot Conversation: This action is only suitable for very simple virtual agents. It doesn't allow for customization of the virtual agent's behavior from turn to turn. It's not currently supported in CXone.
  • Textbot Exchange: 이 action은 복잡한 가상 상담원 상호작용에 사용됩니다. 이를 통해 교환 매개변수를 포함시키고 컨택과 가상 상담원 간의 대화에서 다양한 측면을 사용자 정의할 수 있습니다.
  • Voicebot Conversation: 이 action은 아주 단순한 가상 상담원에게만 적합합니다. 턴마다 가상 상담원의 행동을 사용자 정의하는 것을 허용하지 않습니다. SIP 백채널 연결을 사용하고 싶으며 가상 상담원에서 이를 지원하는 경우에는 Voicebot Conversation을(를) 사용해야 합니다.
  • Voicebot Exchange: 이 action은 복잡한 가상 상담원 상호작용에 사용됩니다. 이를 통해 교환 매개변수를 포함시키고 컨택과 가상 상담원 간의 대화에서 다양한 측면을 사용자 정의할 수 있습니다.

Supported Virtual Agents

이 작업은 다음 가상 상담원을 지원합니다.

가상 상담원을 이 작업에 할당하기 전에 가상 상담원 허브에서 가상 상담원을 위한 앱을 추가 및 구성해야 합니다. 사용하는 각 가상 상담원에는 앱이 하나만 있으면 됩니다. 스크립트에서 여러 가상 상담원 작업에 동일한 앱을 할당할 수 있습니다. 구성 세부 정보는 사용하는 가상 상담원 제공자에 대한 도움말 페이지를 참조하십시오.

Input Properties

이러한 속성은 실행할 때 작업이 사용하는 데이터를 정의합니다.

이 작업의 속성 중 일부에는 사용자 정의 코드를 포함한 Snippet 작업이 필요합니다.

속성

설명

Caption

스크립트에서 이 작업을 고유하게 식별하는 짧은 문구를 입력합니다. 캡션은 스크립트 캔버스의 작업 아이콘 아래에 표시됩니다. The default is the action name.

virtualAgentID 가상 상담원 허브에서 선택된 가상 상담원의 이름입니다. 가상 상담원 허브에서 Studio 작업에 가상 상담원 앱을 할당하면 자동으로 이 속성이 채워집니다. 이름은 가상 상담원 허브 앱에서 Virtual Agent (Bot) Name 필드에 사용되는 이름입니다.
customPayload

사용자 정의 페이로드 데이터를 가상 상담원에게 전달해야 할 때만 이 속성을 구성하십시오. 사용자 정의 페이로드 개체가 Studio 스크립트에서 채워집니다. 이를 사용하여 환영 메시지에 사용할 CRM닫힘 컨택, 영업 정보, 지원 세부 사항 및 케이스 내역 등을 관리하는 타사 시스템입니다.의 컨택 이름 등의 정보를 전달할 수 있습니다.

스크립트의 데이터를 가상 상담원으로 전달하는 JSON 개체의 이름을 입력합니다. Snippet 작업에서 사용자 정의 페이로드 개체를 정의해야 합니다. 개체는 스니펫에 또는 customPayload 속성에 JSON 형식으로 변환해야 합니다.

특정 가상 상담원 제공자 요구사항:

가상 상담원이 스크립트로 반환하는 데이터를 처리해야 하는 경우 이 속성을 사용하지 마십시오. 대신 customPayloadVarName (out) 속성을 사용하십시오.

nextPromptSequence

컨택을 위해 재생될 가상 상담원에게서 받는 응답입니다. asJSON() 함수를 사용하여 nextPromptSequenceVarName (out)에서 지정된 변수로 이 속성을 구성하십시오. Snippet 에서 nextPromptSequenceVarName (out)의 내용을 JSON으로 변환하고 JSON을 보유하는 변수로 이 속성을 구성할 수도 있습니다.

nextPromptBehaviors

대화에서 다음 프롬프트의 구성 및 동작을 지정합니다. Snippet action을 사용하고 기본 다음 프롬프트 동작 또는 다음 프롬프트 동작 스니펫 예시를 따라 보려는 동작을 정의합니다. 이 예시에서는 편안한 소음, DTMF 수집, 오디오 재생 중 컨택의 발언 허용(개입)을 구성하기 위해 사용하는 속성에 대해 설명합니다.

스니펫 코드에서 사용한 개체의 이름으로 nextPromptBehavior 속성을 구성합니다. 이 속성과 작업에 대한 설정을 전달합니다. 예를 들어 다음 프롬프트 동작 스니펫 예시를 사용하여 이 속성에 대한 {nextPromptBehaviorsOutjson} 을(를) 입력합니다. 이 작업을 사용하여 텍스트 가상 상담원이 음성 상호작용을 처리하도록 설정하는 경우에만 이 속성을 구성하면 됩니다.

botSessionState

가상 상담원 제공자는 고유 식별자를 컨택과 가상 상담원 간의 각 대화에 할당합니다. 식별자는 다음 대화 차례마다 새 세션이 생성되지 않도록 막습니다. 제공자는 대화가 시작될 때 식별자를 생성하고 이를 첫 응답이 있는 스크립트로 제공합니다. 스크립트는 이 작업의 작업의 botSessionStateVarName (out) 속성에 이름이 지정된 변수에 식별자를 저장합니다. 그런 다음 식별자를 botSessionState 속성으로 전달합니다.

가상 상담원이 적절히 작동하려면 이 속성을 올바르게 구성해야 합니다. 구성 방법에 관한 자세한 정보는 봇 세션 상태 스니펫 도움말 페이지에서 확인할 수 있습니다.

automatedIntent

가상 상담원이 수집된 사용자 입력을 해석하도록 하는 대신 가상 상담원이 응답할 특정 의도를 이름으로 입력합니다. 이에 대한 일반적인 사용 사례는 가상 상담원으로부터 시작 환영 메시지를 유도하는 것입니다. Welcome은(는) 초기 인사말의 표준 문자열입니다.

Output Properties

이러한 속성에는 작업 실행에서 반환되는 데이터를 보유하는 변수가 포함됩니다. 작업이 완료될 때 참조 및 사용할 수 있습니다.

속성

설명

nextPromptBehaviorsVarName (out)

다음 대화형 턴에서 사용자를 안내하기 위한 행동을 정의합니다.

nextPromptSequenceVarName (out)

가상 상담원의 응답을 보유하며 이를 nextPromptSequence 속성으로 전달합니다.

customPayloadVarName (out)

가상 상담원에서 사용자 정의 JSON 데이터를 스크립트에 반환합니다. 스크립트가 가상 상담원이 제공하는 데이터를 처리하도록 하려면 이 변수를 사용합니다. 이행 데이터가 포함되어 있을 수 있습니다.

봇에 데이터를 제공하려면 customPayload 속성을 사용합니다.

errorDetailsVarName (out)

오류 의도 시퀀스를 표시하여, 라이브 상담원에게 전달될 수 있습니다.

intentInfoVarName (out)

현재 사용자의 의도를 나타내는 가상 상담원의 세부 정보를 가진 변수입니다.

botSessionStateVarName (out)

가상 상담원 제공자가 전송한 봇 세션 상태 식별자를 스크립트가 저장하는 변수를 가집니다. 변수의 내용은 botSessionState 속성으로 전달됩니다.

가상 상담원이 적절히 작동하려면 이 속성을 올바르게 구성해야 합니다. 구성 방법에 관한 자세한 정보는 봇 세션 상태 스니펫 도움말 페이지에서 확인할 수 있습니다.

Result Branch Conditions

결과 브랜치 조건을 사용하면 작업이 실행될 때 여러 결과를 처리하기 위해 스크립트에 브랜치를 생성할 수 있습니다.

조건

설명

Default 다른 분기를 사용하기를 요구하는 조건을 스크립트가 충족하지 않는다면 사용되는 경로입니다. 작업의 다른 분기가 정의되지 않았을 때도 사용되는 경로입니다.
OnPromptAndCollectNextResponse

가상 상담원이 상호작용을 지속하기로 결정하고 컨택이 수행하는 인간의 추가 입력에 대해 준비된 경우 사용되는 경로입니다. 대화에서 다음 턴을 시작합니다.

OnError 예기치 않은 문제(예: 연결 불량, 구문 오류 등)가 있을 때 사용되는 경로입니다. _ERR 변수는 문제의 요약 설명으로 채워져야 합니다.
OnReturnControlToScript Path taken if the virtual agent indicated that the conversation finished and gives control back to the Studio script to transfer or end the call. There may be fulfillment data to be processed in the customPayload result.
OnDTMFBreakout

스크립트에 있는 DTMF닫힘 사용자가 전화 키패드의 키를 누르거나 탭할 때 발생하는 신호화 톤입니다. 규칙이 충족되었을 때 사용되는 경로입니다.

OnUserInputTimeout

프롬프트 동작 스니펫(기본 또는 다음 프롬프트 동작 스니펫)에서 지정된 시간에 사용자가 응답하지 않을 때 사용되는 경로입니다.

Google Dialogflow의 경우, 가상 상담원 허브 Dialogflow 앱에서 발생할 이벤트를 구성할 수 있습니다. Dialogflow ES의 경우 Timeout Event 필드를 구성합니다. Dialogflow CX의 경우 Timeout Event Handler을(를) 구성합니다. 구성된 이벤트가 없으면 기본값은 Dialogflow 콘솔에 구성된 대로 기본 폴백 의도를 사용하는 것입니다.

필요한 경우, 스크립트의 다른 지점에서 다른 이벤트를 사용하도록 이 분기를 구성할 수 있습니다.

OnUserInputNotUnderstood

가상 상담원이 컨택의 응답을 이해하지 못하거나 컨택이 시간을 초과할 때 취하는 경로입니다.

Required SNIPPET Action Code

이 작업의 속성 중 한 가지 이상에는 다음과 같은 사용자 정의 코드를 포함한 Snippet action이 필요합니다.

Best Practices for Custom Payload with Google Dialogflow CX

When using this action with Google Dialogflow CX follow these best practices for integrating custom payloads:

  • Dialogflow CX는 Dialogflow ES처럼 Dialogflow 의도닫힘 컨택이 말하거나 입력하는 내용의 의미나 목적이며 컨택이 전달하고자 하는 내용이나 원하는 내용입니다.로 데이터를 전달하기 위해 컨텍스트를 사용하지 않습니다.
  • 사용자 정의 데이터는 JSON 키-값 쌍을 사용하여 Dialogflow CX로 전달할 수 있습니다. 스크립트의 Snippet action작업에서 동적 customPayload 개체를 생성하고 이 개체에 키-값 쌍을 추가합니다. 예:

    DYNAMIC customPayload
    customPayload.ani = ani
    customPayload.contactID = contactId
    customPayload.masterContactId = masterId
    customPayloadJSON = "{customPayload.asJSON()}"	
  • 스크립트의 Exchange 또는 Conversation 작업에서 asJSON() 기능을 갖는 변수를 사용하여 customPayload 속성을 구성합니다. 이 변수는 customPayload 개체에서 찾을 수 있습니다.
  • QueryParametersPayload 속성을 사용하여 가상 상담원에게 customPayload JSON을 전달합니다. Google Dialogflow CXQueryParameters 중앙에서 오른쪽 상단 모서리 바깥쪽을 가리키는 화살표가 있는 정사각형입니다.에 대해 Google 설명서를 참조하십시오.
  • QueryParameters을(를) 통해 전달된 데이터는 Dialogflow CX에서 웹후크가 수신합니다. 전달된 데이터를 처리하기 위해 Dialogflow CX 콘솔에서 코드를 작성할 수 있습니다.
  • customPayload 개체 안에 개체를 중첩하지 마십시오. 중첩된 개체는 리터럴 문자열로 전송됩니다.
  • 자신의 Dialogflow CX 가상 상담원에서 스크립트로 사용자 정의 데이터를 다시 전달하려면 Dialogflow CX 콘솔의 사용자 정의 페이로드 필드를 사용합니다. CXone와(과) 사용 중인 가상 상담원의 콘솔인지 확인합니다. 스크립트의 음성 또는 채팅 Studio 작업에서 customPayloadVarName (out) 변수를 사용하여 이를 스크립트에 매핑합니다. 예를 들어 이를 사용하여 다음 프롬프트의 행동을 설정할 수 있습니다.
  • customPayload을(를) 사용해 설정한 매개 변수는 외부 웹후크에서만 사용할 수 있습니다. 외부 웹후크 밖에서 사용할 매개 변수를 설정하려면 session_params 필드를 사용하여 Snippet 작업에서 설정해야 합니다. 예:

    {
    	"session_params":
    	{ 
    		"name": "Winnie Le Pooh"
    		"job": "Food critic"
    		"location": "Hundred Acre Wood"
    	}
    }

    다음 구문을 사용해 Dialogflow CX 상담원 의도의 세션 매개변수에 액세스:

    $session.params.name = Winnie Le Pooh

    $session.params.job = Food critic

    $session.params.location = 100 Acre Wood

    세션 매개변수는 Dialogflow CX 가상 상담원에만 사용됩니다. Dialogflow ES에서 유사한 결과를 얻으려면 컨텍스트를 사용하십시오.

  • 음성 컨텍스트 힌트speechContexts 매개변수에서 사용자 정의 페이로드와 함께 전달될 수 있습니다. speechContexts.phrases의 값은 제공하려는 힌트에 대한 Google 클래스 토큰 중앙에서 오른쪽 상단 모서리를 향하는 화살표가 있는 정사각형입니다.이어야 합니다. 토큰은 컨택의 언어 및 지역과 일치해야 합니다. 예:

    DYNAMIC customPayload
    customPayload.speechContexts.phrases="$OOV_CLASS_ALPHANUMERIC_SEQUENCE"
    customPayload.speechContexts.boost=10		
  • 말하는 중 컨택이 일시 중지 상태가 될 때 가상 상담원이 대기하는 시간을 구성하려면 Next Prompt Behaviors 또는 Default Next Prompt Behaviors Snippet 작업에 maxPostEnergySilenceMS 매개 변수를 추가합니다.

Best Practices for Custom Payload with Google Dialogflow ES

When using this action with Google Dialogflow ES, follow these best practices for integrating custom payloads:

  • CustomPayload은(는) 의도닫힘 컨택이 말하거나 입력하는 내용의 의미나 목적이며 컨택이 전달하고자 하는 내용이나 원하는 내용입니다.를 위해 컨텍스트를 전달하기 위해 사용됩니다. 컨텍스트는 가상 상담원이 사용자의 의도를 이해하는 데 도움이 됩니다. 컨텍스트가 필수는 아니지만 가상 상담원이 발화닫힘 컨택이 말하거나 입력하는 내용입니다.와 의도를 일치시키는 데 도움이 됩니다.
  • 스크립트의 Snippet 작업에서 REST 리소스: projects.agent.sessions.context에 대한 Google Dialogflow ES 설명서 링크가 외부 웹사이트로 이동함을 나타내는 아이콘에 설명된 형식을 따르는 customPayload 개체를 생성합니다. Studio 온라인 도움말은 동적 데이터 개체에 대한 추가 정보를 제공합니다.
  • 또한 컨텍스트 없이 customPayload(으)로 사용자 정의 데이터를 전달할 수 있습니다. 이를 위해 동적 데이터 개체에 표준 JSON 키-값 쌍을 포함시킵니다.
  • 음성 컨텍스트는 speech_contact 매개 변수를 통해 사용자 정의 페이로드에 전달됩니다. Studio 추적 및 애플리케이션 로그에서 이 매개 변수의 내용을 볼 수 있습니다.
  • 스크립트 예시에서와 같이 customPayload 동적 개체는 JSON 형식의 가상 상담원 매개변수로 전달됩니다.
  • 음성 컨텍스트 힌트speechContexts 매개변수에서 사용자 정의 페이로드와 함께 전달될 수 있습니다. speechContexts.phrases의 값은 제공하려는 힌트에 대한 Google 클래스 토큰 중앙에서 오른쪽 상단 모서리를 향하는 화살표가 있는 정사각형입니다.이어야 합니다. 토큰은 컨택의 언어 및 지역과 일치해야 합니다. 예:

    DYNAMIC customPayload
    customPayload.speechContexts.phrases="$OOV_CLASS_ALPHANUMERIC_SEQUENCE"
    customPayload.speechContexts.boost=10		

Tips and Tricks

가상 상담원 허브과(와) 가상 상담원 간의 음성 오디오가 들리지 않으면 스크립트 추적을 확인하여 대화 내용이 있는지 확인하세요. 있는 경우 Google Dialogflow 가상 상담원을 조정해야 합니다.

Script Example

이 예시는 완전한 스크립트가 아닙니다. 이 작업을 사용하려면 추가 스크립팅 작업이 필요합니다.

VoiceBot Exchange actions must be used in a loop. This means that you must use at least two in a script. The first action initiates the call to the virtual agent's API and must be preceded by the Default Next Prompt Behavior Snippet action. The first action is the Welcome Default, which begins the first scripted loop, or one conversational 'turn'.

An example of a script that uses the VoicebotExchange action.

Download this script.

Example Script for CustomPayload with Google Dialogflow ES

이 예시는 완전한 스크립트가 아닙니다. 이 작업을 사용하려면 추가 스크립팅 작업이 필요합니다.

이 스크립트는 사용자 정의 페이로드와 Google Dialogflow ES 가상 상담원을 통합하는 방법을 보여 주는 예시입니다. 이 스크립트는 Voicebot Exchange 작업을 사용하지만 TEXTBOT EXCHaNGE을(를) 대신 사용하는 경우에도 작동합니다.

Google Dialogflow CX을(를) 사용하여 사용자 정의 페이로드를 처리하는 방법을 보여주는 예제 스크립트.

이 스크립트 다운로드하기.

Example Script for Alternate Timeout Events

이 예시는 완전한 스크립트가 아닙니다. 이 작업을 사용하려면 추가 스크립팅 작업이 필요합니다.

스크립트의 여러 지점에서 서로 다른 시간 초과 이벤트를 사용할 수 있습니다. 예를 들어 UserInputTimeout 속성이 트리거된 첫 번째와 두 번째 시점에 서로 다른 시간 초과 이벤트를 사용할 수 있습니다. 이 예시 스크립트는 이 방식을 구현하는 한 예를 보여줍니다.

이 스크립트에서 시간 초과 카운터의 생성과 증분에 Snippet 작업을 사용합니다. 두 번째 시간 초과 후에는 Snippet 작업을 사용하여 또 다른 시간 초과 이벤트를 설정합니다. 대체 시간 초과 이벤트는 automatedIntent 속성을 통해 Snippet 작업에서 Voicebot 작업으로 전달됩니다.

이 스크립트 다운로드하기.