Twilio Flex를 사용하는 Salesforce 음성 통합용 Agent Assist

Twilio를 Salesforce Service Cloud Voice (SCV)와 통합하면 Salesforce 담당자가 Twilio 플랫폼의 기능을 사용하여 Salesforce에서 전화를 걸고 받을 수 있습니다.

시작하기 전에

Salesforce Voice를 Twilio Flex와 통합하려면 다음 리소스에 액세스할 수 있어야 합니다.

1단계: Twilio Service Cloud Voice 설정

Twilio 가이드의 안내에 따라 Twilio를 파트너 전화 통신 제공업체로 사용하여 Salesforce SCV를 설정합니다.

2단계: Agent Assist를 Twilio Flex와 통합

다음 단계에 따라 Agent Assist를 Twilio Flex와 통합합니다.

SIPREC 커넥터 부가기능 설치

SIPREC 커넥터 부가기능을 사용하면 Twilio Flex 계정에서 SIPREC 포크를 음성 통화 미디어 스트림의 Agent Assist로 만들 수 있습니다. 다음 단계에 따라 SIPREC 커넥터 부가기능을 설치합니다.

  1. Twilio Home 으로 이동하여 검색창에 Marketplace 를 입력합니다.

    Twilio Home

  2. 카탈로그 > 스트림 커넥터 > Siprec 커넥터 > 설치 > 인스턴스 추가 를 클릭합니다.

  3. 구성 탭으로 이동하여 다음 세부정보로 플러그인을 구성합니다.

    • 고유한 이름: SipRec1
    • 세션 녹화 서버: sip:+<GTP-provisioned-phone-number>@216.239.36.145:5672;transport=tls;secure=true;edge=umatilla
  4. 저장 을 클릭합니다.

Twilio 함수 구성

다음 단계에 따라 두 개의 Twilio 함수(conversation-namewrap-up)를 구성합니다.

  1. Twilio 콘솔로 이동하여 검색창에 함수를 입력합니다.
  2. 함수 > 서비스 만들기 를 클릭합니다.
  3. 새 서비스 이름을 ui-connector-auth로 지정하고 다음 을 클릭합니다.
  4. 추가 + > 함수 추가 를 클릭합니다.

다음 단계에 따라 conversation-name 함수를 만듭니다.

  1. 함수 이름을 conversation-name으로 지정합니다.
  2. 자물쇠를 클릭하고 함수 공개 상태를 공개 로 변경합니다.
  3. ui-connector-auth.js 코드를 복사하여 편집기에 붙여넣습니다.
  4. 저장 을 클릭합니다.

wrap-up 함수와 EventCallbackUrl을 사용하여 통화 완료 프로세스를 자동화할 수 있습니다. 이렇게 하면 Salesforce와 Twilio Flex 모두에서 통화를 수동으로 종료할 필요가 없습니다. 다음 단계에 따라 EventCallbackUrl을 통해 이벤트를 수신하는 wrap-up 함수를 만듭니다.

  1. Twilio 콘솔 > 검색창으로 이동하여 Taskrouter 작업공간을 입력합니다.
  2. Taskrouter 작업공간 을 선택합니다.
  3. 작업공간 열에서 SID를 기록해 둡니다.
  4. 편집기로 이동하여 함수 이름을 wrap-up으로 지정합니다.
  5. 다음 코드를 편집기에 추가합니다.

    /**
    * @desc A Twilio Function that wraps up a conversation automatically to avoid agents being stuck
    * in a wrap up state while in Salesforce's Service Console.
    */
    exports.handler = function(context, event, callback) {
     const response = new Twilio.Response();
     const client = context.getTwilioClient();
    
     /**
      * @TODO Add your workspaceSid to this variable.
      */
     const workspaceSid = ""
    
     response.appendHeader('Content-Type', 'application/json');
    
     if (!event.EventType) {
       response.setBody({});
        return callback(null, response);
      }
    
      /**
       * This event is dispatched with the Event Callback Url, which is assigned in a Taskrouter Workspace's
       * Settings.
       */
      if (event.EventType === 'task.wrapup') {
       client.taskrouter.v1.workspaces(workspaceSid)
          .tasks(event.TaskSid)
          .update({
           assignmentStatus: 'completed',
           reason: 'Auto-completed via Function'
          })
          .then(() => {
            response.setBody({ status: "completed" });
            callback(null, response);
          })
          .catch(err => {
           response.setStatusCode(500);
           response.setBody({ error: err.message });
           callback(null, response);
         });
      } else {
       response.setBody({ status: "ignored" });
        callback(null, response);
      }
    };
    
  6. workspaceSid 변수를 찾아 Taskrouter 작업공간 SID 단계의 작업공간 SID로 업데이트합니다.

  7. 서비스의 URL을 기록해 둡니다. 다음 단계에서 wrap-up 함수의 전체 URL을 사용해야 합니다.

  8. 저장 > 모두 배포 를 클릭합니다.

  9. Twilio 콘솔로 이동하여 검색창에 Taskrouter 작업공간 을 입력합니다.

  10. 사용 중인 작업공간 > 설정 > 이벤트 콜백 > 이벤트 콜백 URL 을 클릭합니다.

  11. 이전 단계의 wrap-up 함수 URL을 입력합니다.

  12. 콜백 이벤트 를 클릭하고 특정 이벤트 로 설정합니다.

  13. 모두 선택 > 저장 을 클릭합니다.

Flex Studio로 IVR 구성

자동 전화 메뉴를 설정하려면 Twilio Studio를 사용하여 SIPREC 포크를 시작하는 통화 흐름을 빌드합니다. 이 포크는 미디어 스트림을 Agent Assist로 직접 전송합니다. 통화 흐름은 HTTP 게시를 통해 전화번호와 대화 ID를 Agent Assist와 공유합니다.

다음 단계에 따라 Flex Studio로 대화형 음성 응답 (IVR)을 구성합니다.

  1. Twilio 콘솔로 이동하여 검색창에 Studio를 입력합니다.
  2. Studio 를 클릭하면 흐름 목록이 포함된 Studio 대시보드 페이지가 열립니다.
  3. Studio 대시보드 페이지에서 다음 작업을 수행할 수 있습니다.

    • 기존 흐름 업데이트
    • 흐름 만들기

기존 흐름 업데이트

Twilio 콘솔에서 다음 단계에 따라 기존 흐름을 업데이트합니다.

  1. 업데이트할 흐름을 선택합니다.
  2. 개발 > 전화번호 > 관리 > 활성 번호 를 클릭합니다. 표에 Flex 계정에 프로비저닝된 기본 Twilio 번호가 포함된 행이 하나 있어야 합니다.
  3. Voice - Studio 워크플로 로 이동하여 Voice IVR 을 클릭합니다.

흐름 만들기

새 흐름을 만들어 HTTP 요청을 하고, 함수를 실행하고, 스트림을 포크하고, Flex로 전송합니다. Twilio 콘솔에서 다음 단계에 따라 HTTP 요청 흐름을 만듭니다.

  1. Studio 대시보드 페이지로 이동하여 새 흐름 만들기 를 클릭합니다.
  2. 검색 위젯 으로 이동하여 HTTP 를 입력합니다.
  3. HTTP 요청 만들기 위젯을 흐름 패널로 드래그합니다.
  4. 다음 세부정보로 위젯을 구성하고 저장 을 클릭합니다.

    • 위젯 이름: register_twilio
    • 요청 메서드: POST
    • 요청 URL:
      your-ui-connector-cloud-run-url.run.app/register-app
    • 콘텐츠 유형: Application/JSON
    • 요청 본문:

      {
      "accountSid": "yourTwilioAccountSid",
      "authToken": "yourTwilioAccountAuthToken"
      }
      

다음 단계에 따라 실행 함수 흐름을 만듭니다.

  1. 검색 위젯에 함수 실행 을 입력합니다.
  2. 함수 실행 위젯을 흐름 패널로 드래그하여 register_twilio 위젯의 성공실패 출력과 연결합니다.
  3. 다음 세부정보로 실행 함수 위젯을 구성합니다.

    • 위젯 이름: conversation_name
    • 서비스: ui-connector-auth
    • 환경: ui
    • 함수: /conversation-name
    • 함수 파라미터: 다음 함수 파라미터를 입력합니다.

      • 토큰:
        {{ widgets.register_twilio.parsed.token }}
      • 엔드포인트:
        your-ui-connector-cloud-run-url.run.app/conversation-name
      • 휴대전화:
        {{ trigger.call.From | replace_first:'+','' }}
      • ConversationName:
        projects/project/locations/location/conversations/{{ trigger.call.CallSid }}
  4. 저장 을 클릭합니다.

다음 단계에 따라 포크 스트림 흐름을 만듭니다.

  1. 검색 위젯에 스트림 포크 를 입력합니다.
  2. 스트림 포크 위젯 을 흐름 패널로 이동하여 HTTP 요청 만들기 위젯의 성공실패 출력과 연결합니다.
  3. 다음 세부정보로 스트림 포크 위젯을 구성합니다.

    • 스트림 작업: 시작
    • 스트림 유형: Siprec
    • 커넥터 이름: Siprec1
    • 트랙: 두 트랙 모두
    • 스트림 파라미터: 다음 스트림 파라미터를 입력합니다.

      • : 대화
      • :
        projects/project-id/conversations/{{trigger.call.CallSid}}
  4. 저장 을 클릭합니다.

다음 단계에 따라 Flex로 전송 흐름을 만듭니다.

  1. 검색 위젯에 Flex로 전송 을 입력합니다.
  2. Flex로 전송 을 흐름 패널로 이동하고 스트림 포크다음Flex로 전송 에 연결합니다.
  3. Flex로 전송 을 클릭합니다.
  4. 다음 세부정보로 Flex로 전송 위젯을 구성합니다.

    • 워크플로: SCV에 사용 중인 워크플로를 선택합니다.
    • 작업 채널: 음성
    • 속성:
      {"agent_assist__ConversationId__c":"{{trigger.call.CallSid}}"}
    • URL 메서드: POST
  5. 저장 > 게시 를 클릭합니다.

4단계: 상담사 지원의 레코드 페이지 구성

다음 단계에 따라 Agent Assist의 레코드 페이지를 구성합니다.

  1. Agent Assist의 음성 통화 레코드 페이지를 만듭니다.
  2. 활성화 > 앱 기본값 > 앱 기본값으로 할당 을 클릭합니다.
  3. Service Cloud Voice용 Twilio 를 선택합니다.
  4. 다음 > 저장 을 클릭합니다.

5단계: Agent Assist 통합 테스트

다음 단계에 따라 Agent Assist를 테스트합니다.

  1. Salesforce로 이동합니다.
  2. 앱 런처 를 클릭합니다.
  3. 검색 필드에 Service Cloud Voice용 Twilio 를 입력합니다. 그러면 사례 페이지가 열립니다.
  4. 옴니 채널 패널로 이동하여 새로 만들기 를 클릭합니다.
  5. check_circle 확인 을 클릭하여 Twilio Flex 번호로 전화를 겁니다. 이 번호는 시작 시 기록해 두었습니다.
  6. 대화의 양쪽을 모두 테스트하고 Agent Assist 기능이 구성한 대로 작동하는지 확인합니다.