사전 요구 사항

현재 이 기능은 상담원에게만 해당됩니다.

Webex Contact Center를 ServiceNow CRM 콘솔과 통합하기 전에 다음 항목이 있는지 확인하십시오.

아래 두 가지 방법 중 하나를 따르십시오.

개발자 인스턴스의 경우 개발자 인스턴스 안내서의 단계를 따르는 것이 좋습니다.

엔터프라이즈 라이선스 인스턴스를 소유하고 있는 경우, 엔터프라이즈 라이선스 인스턴스에 대한 지침을 따르십시오.

엔터프라이즈 라이선스 앱을 개발자 샌드박스 인스턴스와 혼합하는 것은 권장하지 않습니다.

다음 섹션에서는 개발자 인스턴스용 ServiceNow 커넥터를 설치하는 단계를 설명합니다.

1

ServiceNow 개발자 포털 계정에 로그인하고 관리 콘솔을 엽니다 .

2

[계정 ] 메뉴의 [내 인스턴스 ] 영역에서 [빌드 시작]을 클릭합니다.

'빌드 시작' 단추가 강조 표시된 ServiceNow 개발자 포털 스크린샷입니다.

3

개발자 인스턴스의 창 왼쪽 상단에 있는 Filter navigator(필터 탐색기 ) 필드에서 Plugins(플러그인)로 이동합니다.

'plugins' 필터 탐색기에 대한 검색을 보여주는 ServiceNow 개발자 인스턴스입니다.

4

Openframe이라는 제목 의 Openframe 플러그인을 검색합니다. 목록을 스크롤해야 할 수도 있습니다.

애플리케이션 화면의 ServiceNow 개발자 인스턴스, 'OpenFrame'에 대한 검색 및 결과 표시

5

Install(설치 )을 클릭하여 Openframe 플러그인을 설치합니다.

6

Activate Plugin( 플러그인 활성화) 대화 상자에서 Activate(활성화 )를 클릭합니다.

'활성화' 버튼이 강조 표시된 OpenFrame 플러그인 팝업을 보여주는 ServiceNow 개발자 인스턴스입니다.

7

플러그인 활성화가 완료되면 플러그인 활성화(Plugin Activation ) 대화 상자에서 Close & Reload Form(양식 닫기 및 다시 로드)을 클릭합니다 .

OpenFrame 플러그인 활성화 로드를 보여주는 ServiceNow 개발자 인스턴스입니다.

'양식 닫기 및 다시 로드' 단추가 강조 표시된 OpenFrame 플러그인 활성화 성공 창을 보여주는 ServiceNow 개발자 인스턴스입니다.

8

플러그인 활성화를 확인하려면 창의 왼쪽 상단에 있는 필터 탐색기 필드에서 OpenFrame 으로이동합니다.

9

구성을 클릭하고 OpenFrame 플러그인이 OpenFrame 구성 목록에 나타나 는지 확인합니다.

필터 탐색기 검색에 OpenFrame 구성을 표시하는 ServiceNow 개발자 인스턴스입니다.

1

Github 리포지토리에서 사용할 수 있는 최신 시스템 업데이트 집합 XML 파일 (https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow)을 다운로드합니다.

파일 이름: webexcc-servicenow-update-setV(X).xml

Webex Contact Center CRM 통합에 대한 Github 리포지토리 스크린샷 – ServiceNow.

2

ServiceNow 인스턴스의 창 왼쪽 위에 있는 필터 탐색기 필드에서 시스템 업데이트 집합 > 커밋할 집합 업데이트로 이동합니다 .

'업데이트 집합' 및 '커밋할 집합 업데이트' 옵션이 강조 표시된 '모두' 탭의 필터 탐색기에서 검색을 보여 주는 ServiceNow 개발자 인스턴스입니다.

3

[업데이트 세트 가져오기XML 링크를 클릭합니다.

업데이트 집합 결과 페이지의 ServiceNow 개발자 인스턴스('관련 링크: XML에서 업데이트 집합 가져오기'가 강조 표시되어 있습니다.

4

Choose File(파일 선택)을 클릭하고System Update Set XML 파일을 선택한 다음 Upload(업로드 )를 클릭합니다.

ServiceNow 개발자 인스턴스 가져오기 XML 화면.

ServiceNow 개발자 포털에서 검색 업데이트 세트 목록을 검색했습니다.

업데이트 세트가 검색된 업데이트 세트 목록에 나타나 며 로드상태입니다.
5

검색된 업데이트 세트 목록에서 업데이트 세트 파일 이름(링크)을 클릭하여 업데이트 세트를 엽니다.

ServiceNow 개발자 포털에서 업데이트된 파일에 대한 업데이트 집합 목록을 검색했습니다.

6

창의 오른쪽 상단에서 업데이트 세트 미리보기를 클릭하여 업데이트 세트에 문제가 있는지 확인합니다.

ServiceNow 개발자 포털에서 '업데이트 세트 미리 보기' 단추가 강조 표시된 업데이트된 파일에 대한 업데이트 세트 목록을 검색했습니다.

7

미리 보기가 완료되면 업데이트 세트 미리 보기 대화 상자에서 닫기 를 클릭합니다 .

업데이트 세트 미리 보기 성공 알림이 있는 ServiceNow 개발자 포털입니다.

8

Commit Update Set(업데이트 세트 커밋)를 클릭합니다.

ServiceNow 개발자 포털은 '업데이트 집합 커밋' 단추가 강조 표시된 업데이트된 파일에 대한 업데이트 집합 목록을 검색했습니다.

9

Update Set Commit 커밋이 완료되면 Update Set Commit(집합 커밋 업데이트) 대화 상자에서 Close(닫기 )를 클릭합니다 .

업데이트 집합 커밋 성공 알림이 있는 ServiceNow 개발자 포털입니다.

1

창의 왼쪽 위에 있는 필터 탐색기 필드에 sys_properties.list 를 입력하고 Enter 키를 누릅니다.

'sys_properties.list'에 대한 '모두' 탭의 필터 탐색기에서 검색을 표시하는 ServiceNow 개발자 인스턴스

2

시스템 속성 페이지에서 업데이트된 날짜별로 속성을 정렬합니다. 다음과 같은 Webex Contact Center 등록 정보를 볼 수 있는지 확인합니다.

ServiceNow 개발자 인스턴스 시스템 속성 페이지.

3

agentdesktop_url 클릭하여 시스템 속성 agentdesktop_url 페이지를 엽니다 .

4

필드에 작업 지역에 따라 Webex Contact Center Desktop의 URL을 입력합니다.

agentdesktop_url 대한 ServiceNow 개발자 인스턴스 시스템 속성 세부 정보입니다.

5

업데이트를 클릭하여 변경 사항을 저장합니다.

6

(선택 사항) 활동 테이블 이름을 변경하려면 필요에 따라 webexccactivitytable 속성을 편집 합니다.

시스템 속성 페이지에서 webexccactivitytable 클릭합니다.

필요에 따라 값 필드를 변경합니다.

webexactivitytable에 대한 ServiceNow 개발자 인스턴스 시스템 속성 세부 정보입니다.

7

(선택 사항) 다음과 같은 방법으로 사용자 그룹을 추가합니다.

  1. 창의 왼쪽 상단에 있는 필터 탐색기 필드에서 시스템 보안 아래의 그룹으로 이동합니다 .

    ServiceNow developer instance filter navigator search for ‘Groups’ under ‘System Security’
  2. 새 사용자 그룹을 만들거나 기존 사용자 그룹을 사용합니다.

    WebexccAgentsGroup에 대한 ServiceNow 개발자 인스턴스 그룹 페이지입니다.

  3. 편집을 클릭합니다.

  4. 모음 에서 sn_openframe_user 검색하고 사용자 그룹으로 이동합니다.

    컬렉션에 대한 검색을 보여 주는 ServiceNow 개발자 인스턴스 그룹 멤버 편집 페이지입니다.

    역할 목록으로 이동된 컬렉션을 보여 주는 ServiceNow 개발자 인스턴스 그룹 멤버 편집 페이지입니다.

  5. 저장을 클릭합니다.

  6. 사용자를 그룹 구성원으로 추가합니다.

    사용자 역할이 할당된 ServiceNow 개발자 인스턴스 그룹 페이지입니다.

1

필터 탐색기 필드에서 OpenFrame > Configurations 이동합니다.

ServiceNow 개발자 인스턴스는 검색 필드에 'openframe'이 있고 결과에서 강조 표시된 'OpenFrame' 아래의 '구성'이 있는 내비게이터를 필터링합니다.

2

새로 만들기를 클릭합니다.

'새로 만들기'가 강조 표시된 ServiceNow 개발자 인스턴스 OpenFrame 구성 페이지입니다.

3

URL에 대해 다음 속성을 입력합니다.

  • 이름: Webex Contact Center Desktop

  • 제목: Webex 컨택 센터

  • 너비: 550(권장)

  • 높이: 600(권장)

4

URL 필드 오른쪽 에서 잠금 버튼을 클릭하고 agentdesktop.do 를 URL로 추가합니다 . (구성이 UI 페이지를 가리키도록 이 단계를 수행합니다.)

ServiceNow 개발자 인스턴스 OpenFrame 구성 – 잠금 아이콘이 강조 표시된 새 레코드 페이지입니다.

5

(선택 사항) 구성을 할당할 사용자/에이전트 그룹을 선택합니다.

ServiceNow 개발자 인스턴스 OpenFrame 구성 – 새 레코드 사용자 그룹 선택.

6

제출을 클릭합니다. URL이 링크로 나타납니다.

ServiceNow 개발자 인스턴스 OpenFrame 구성 – 사용자 그룹 선택 항목을 제출한 후 표시되는 URL 링크를 보여 주는 새 레코드 페이지입니다.

7

OpenFrame 전화기를 사용하기 전에 ServiceNow 사용자 지정 데스크톱 레이아웃 JSON 파일을 Webex Contact Center 관리 포털에 업로드해야 합니다. 자세한 내용은 Webex Contact Center 에서 ServiceNow 데스크톱 레이아웃 설정을 참조하십시오.

1

https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow 에서 ServiceNow의 데스크톱 레이아웃을 다운로드합니다.

Webex Contact Center CRM 통합 – 데스크톱 레이아웃 – ServiceNow에 대한 Github 화면.

2

필요한 경우, 데스크톱 레이아웃 파일의 속성을 업데이트합니다.

3

Webex Contact Center Management Portal로 이동합니다.

4

관리 포털 탐색 모음에서 구축 > 데스크톱 레이아웃을 선택합니다 .

Webex 왼쪽 탐색에 강조 표시된 데스크톱 레이아웃이 있는 Contact Center Management Portal 프로비저닝 페이지

5

새 레이아웃을 클릭하고 데스크톱 레이아웃에 대한 세부 정보를 입력합니다.

6

ServiceNow 데스크톱 레이아웃 JSON 파일을 업로드합니다.

7

Save(저장 )를 클릭하여 구성을 저장합니다.

이제 ServiceNow 콘솔 내에서 Webex Contact Center Desktop을 시작할 수 있습니다.

8

필터 탐색기 필드에서 서비스 운영 작업 영역으로 이동합니다.

ServiceNow와 통합된 Webex Contact Center Agent Desktop 있는 ServiceNow 홈 페이지입니다.

다음 섹션에서는 사용이 허가된 엔터프라이즈 인스턴스용 ServiceNow 커넥터를 설치하는 단계를 설명합니다.

1

ServiceNow 개발자 포털 계정에 로그인하고 관리 콘솔을 엽니다 .

2

[계정 ] 메뉴의 [내 인스턴스 ] 영역에서 [빌드 시작]을 클릭합니다.

'빌드 시작' 단추가 강조 표시된 ServiceNow 개발자 포털 스크린샷입니다.

3

개발자 인스턴스의 창 왼쪽 상단에 있는 Filter navigator(필터 탐색기 ) 필드에서 Plugins(플러그인)로 이동합니다.

'plugins' 필터 탐색기에 대한 검색을 보여주는 ServiceNow 개발자 인스턴스입니다.

4

Openframe이라는 제목 의 Openframe 플러그인을 검색합니다. 목록을 스크롤해야 할 수도 있습니다.

애플리케이션 화면의 ServiceNow 개발자 인스턴스, 'OpenFrame'에 대한 검색 및 결과 표시

5

Install(설치 )을 클릭하여 Openframe 플러그인을 설치합니다.

6

Activate Plugin( 플러그인 활성화) 대화 상자에서 Activate(활성화 )를 클릭합니다.

'활성화' 버튼이 강조 표시된 OpenFrame 플러그인 팝업을 보여주는 ServiceNow 개발자 인스턴스입니다.

7

플러그인 활성화가 완료되면 플러그인 활성화(Plugin Activation ) 대화 상자에서 Close & Reload Form(양식 닫기 및 다시 로드)을 클릭합니다 .

OpenFrame 플러그인 활성화 로드를 보여주는 ServiceNow 개발자 인스턴스입니다.

'양식 닫기 및 다시 로드' 단추가 강조 표시된 OpenFrame 플러그인 활성화 성공 창을 보여주는 ServiceNow 개발자 인스턴스입니다.

8

플러그인 활성화를 확인하려면 창의 왼쪽 상단에 있는 필터 탐색기 필드에서 OpenFrame 으로이동합니다.

9

구성을 클릭하고 OpenFrame 플러그인이 OpenFrame 구성 목록에 나타나 는지 확인합니다.

필터 탐색기 검색에 OpenFrame 구성을 표시하는 ServiceNow 개발자 인스턴스입니다.

1

창의 왼쪽 위에 있는 필터 탐색기 필드에 sys_properties.list 를 입력합니다.

'sys_properties.list'에 대한 '모두' 탭의 필터 탐색기에서 검색을 표시하는 ServiceNow 개발자 인스턴스

2

시스템 속성 페이지에서 업데이트된 날짜별로 속성을 정렬합니다. 다음과 같은 Webex Contact Center 등록 정보를 볼 수 있는지 확인합니다.

ServiceNow 개발자 인스턴스 시스템 속성 페이지 결과.

3

agentdesktop_url 클릭하여 시스템 속성 agentdesktop_url 페이지를 엽니다 .

4

필드에 작업 지역에 따라 Webex Contact Center Desktop의 URL을 입력합니다.

agentdesktop_url 대한 ServiceNow 개발자 인스턴스 시스템 속성 세부 정보 페이지입니다.

5

업데이트를 클릭하여 변경 사항을 저장합니다.

6

(선택 사항) 활동 테이블 이름을 변경하려면 필요에 따라 x_caci_webexcc.webexccactivitytable 속성을 편집 합니다.

  1. 시스템 속성 페이지에서 x_caci_webexcc.webexccactivitytable 클릭합니다.

    x_caci_webexcc.webexccactivitytable에 대한 ServiceNow 개발자 인스턴스 시스템 속성 페이지 결과입니다.

  2. 필요에 따라 값 필드를 변경합니다.

    x_caci_webexcc.webexccactivitytable에 대한 ServiceNow 개발자 인스턴스 시스템 속성 페이지입니다.

7

(선택 사항) 다음과 같은 방법으로 사용자 그룹을 추가합니다.

  1. 창의 왼쪽 상단에 있는 필터 탐색기 필드에서 시스템 보안 아래의 그룹으로 이동합니다.

    '그룹'에 대한 ServiceNow 개발자 인스턴스 필터 탐색기 결과.

    webexccagentsgroup에 대한 SeviceNow 개발자 인스턴스 그룹 페이지입니다.

  2. 편집을 클릭하고 다음 역할을 추가합니다.

    • sn_openframe_user

    • x_caci_webexcc.에이전트

    • agent_workspace_user

    • x_caci_webexcc.webexcc_imp_활동_사용자

    • x_caci_webexcc.webex_contact_center

    롤이 추가된 webexccagentsgroup에 대한 SeviceNow 개발자 인스턴스 그룹 페이지입니다.

1

필터 탐색기 필드에서 OpenFrame > Configurations 이동합니다.

ServiceNow 개발자 인스턴스는 검색 필드에 'openframe'이 있고 결과에서 강조 표시된 'OpenFrame' 아래의 '구성'이 있는 내비게이터를 필터링합니다.

2

새로 만들기를 클릭합니다.

'새로 만들기'가 강조 표시된 ServiceNow 개발자 인스턴스 OpenFrame 구성 페이지입니다.

3

URL에 대해 다음 속성을 입력합니다.

  • 이름: Webex Contact Center Desktop

  • 제목: Webex 컨택 센터

  • 너비: 550(권장)

  • 높이: 600(권장)

4

URL 필드 오른쪽 에서 잠금 버튼을 클릭하고 x_caci_webexcc_agentdesktop.do 를 URL로 추가합니다 . (구성이 UI 페이지를 가리키도록 이 단계를 수행합니다.)

ServiceNow 개발자 인스턴스 OpenFrame 구성 – 잠금 아이콘이 강조 표시된 새 레코드 페이지입니다.

5

(선택 사항) 구성을 할당할 사용자/에이전트 그룹을 선택합니다.

ServiceNow 개발자 인스턴스 OpenFrame 구성 – 새 레코드 사용자 그룹 선택.

6

제출을 클릭합니다. URL이 링크로 나타납니다.

ServiceNow 개발자 인스턴스 OpenFrame 구성 – URL이 추가된 새 레코드입니다.

7

필터 탐색기 필드에서 서비스 운영 작업 영역으로 이동합니다.

ServiceNow와 통합된 Webex Contact Center Agent Desktop 있는 ServiceNow 홈 페이지입니다.

8

(선택 사항) 사용자 그룹 목록에서 Webex Contact Center 데스크톱에 액세스할 수 있는 사용자 그룹을 사용 가능 에서 선택됨 으로이동합니다.

9

OpenFrame 전화기를 사용하기 전에 ServiceNow 사용자 지정 데스크톱 레이아웃 JSON 파일을 Webex Contact Center 관리 포털에 업로드해야 합니다. 자세한 내용은 Webex Contact Center 에서 ServiceNow 데스크톱 레이아웃 설정을 참조하십시오.

1

https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow 에서 ServiceNow의 데스크톱 레이아웃을 다운로드합니다.

Webex Contact Center CRM 통합 – 데스크톱 레이아웃 – ServiceNow에 대한 Github 화면.

2

필요한 경우, 데스크톱 레이아웃 파일의 속성을 업데이트합니다.

3

Webex Contact Center Management Portal로 이동합니다.

4

관리 포털 탐색 모음에서 구축 > 데스크톱 레이아웃을 선택합니다.

Webex 왼쪽 탐색에 강조 표시된 데스크톱 레이아웃이 있는 Contact Center Management Portal 프로비저닝 페이지

5

새 레이아웃을 클릭하고 데스크톱 레이아웃에 대한 세부 정보를 입력합니다.

6

ServiceNow 데스크톱 레이아웃 JSON 파일을 업로드합니다.

7

Save(저장 )를 클릭하여 구성을 저장합니다.

이제 ServiceNow 콘솔 내에서 Webex Contact Center Desktop을 시작할 수 있습니다.

8

필터 탐색기 필드에서 서비스 운영 작업 영역으로 이동합니다.

ServiceNow와 통합된 Webex Contact Center Agent Desktop 있는 ServiceNow 홈 페이지입니다.

1

필터 탐색기 필드에서 인시던트 > 열기 인시던트로 이동합니다 .

2

caller(발신자) 필드를 마우스 오른쪽 단추로 클릭하고 Configure Dictionary(사전 구성)를 클릭합니다.

디렉터리 구성 옵션이 강조 표시된 ServiceNow 개발자 인스턴스 인시던트 창입니다.

3

쉼표로 구분된 특성 추가"ref_contributions=show_phone,.

디렉터리 항목에 대한 ServiceNow 개발자 인스턴스 호출 인시던트 창입니다.

이제 ServiceNow 콘솔 내에서 Webex Contact Center Desktop 사용을 시작할 수 있습니다.

4

필터 탐색기 필드에서 서비스 운영 작업 영역으로 이동합니다.

ServiceNow와 통합된 Webex Contact Center Agent Desktop 있는 ServiceNow 홈 페이지입니다.

Salesforce용 WebRTC(SFDC) 및 Microsoft Dynamics(MS Dynamics) 커넥터만 사용하여 Agent Desktop에 로그인할 수 있습니다.

ServiceNow 콘솔의 Agent Desktop

아웃다이얼 통화를 걸기 전에 다음을 수행해야 합니다.

  • 아웃다이얼 진입점을 생성하고 아웃다이얼 진입점 전략을 설정합니다.

  • 상담원 프로파일에 대해 아웃다이얼 ANI를 활성화합니다.

  • 아웃다이얼 ANI를 다이얼 번호-진입점 매핑으로 설정합니다.

자세한 내용은 Cisco Webex Contact Center Setup and Administration Guide 설정 장을 참조하십시오.

필터 탐색기 필드에서 서비스 운영 작업 영역으로 이동합니다.

ServiceNow와 통합된 Webex Contact Center Agent Desktop 있는 ServiceNow 홈 페이지입니다.

데스크톱 사용 방법에 대한 내용은 Webex 컨택 센터 도움말에서 에이전트 탭을 참조하십시오 .

개요

이 문서에서는 ServiceNow CRM 커넥터에 대한 비즈니스 규칙을 사용자 지정하는 몇 가지 방법을 설명합니다. ServiceNow와 관련된 비즈니스 규칙에 따라 사용 사례를 사용자 지정하는 방법에 대해 자세히 설명합니다.

고객은 ServiceNow에서 이러한 사용 사례를 자체 관리해야 합니다. 구성은 ServiceNow에만 해당되며 Webex Contact Center 소프트웨어 또는 전문 지식에는 해당되지 않습니다.

이 설명서는 비즈니스 규칙을 수정하는 데 도움이 되는 참조 설명서입니다. ServiceNow 개발자는 비즈니스 규칙을 생성 및 관리하고 지원을 제공합니다.

Cisco는 샘플 설명서만 제공합니다.

다음 섹션은 개발자 및 엔터프라이즈 인스턴스에 대한 작업 위젯을 설정, 활성화 및 관리하는 방법에 대한 세부 정보를 제공합니다.

동작에 대한 업데이트 세트 커밋 위젯

사용이 허가된 엔터프라이즈 인스턴스의 경우 ServiceNow 스토어에서 최신 Webex Contact Center 앱을설치합니다.

개발자 인스턴스에 대한 작업 위젯을 설정하려면 github 리포지토리에서 사용할 수 있는 최신 시스템 업데이트 세트 XML 파일( https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget)을 다운로드합니다. 파일 이름은 webexcc-servicenow-update-setv7-1-ActionsWidget.xml입니다. 작업 위젯에 대한 업데이트 세트를 커밋하려면 업데이트 세트 커밋의2-9단계를 참조하세요.

동작 위젯 활성화

isWidgetDisplayEnabled 속성을 사용하여 동작 위젯을 활성화합니다. 사용자 지정 데스크톱 레이아웃의 헤드리스 섹션에서 이 속성의 값을 수정해서는 안 됩니다. 이 속성은 사용자 지정 데스크톱 레이아웃의 헤드리스 섹션에서 항상 false로 설정됩니다. 사용자 지정 데스크톱 레이아웃의 패널 섹션에서만 속성 값을 업데이트해야 합니다.

사용자 정의 데스크탑 레이아웃에서 작업 위젯을 활성화하면 다음 작업을 수행할 수 있습니다.

  • 활동 레코드 관리 - 활동 레코드 보기/편집을 클릭하여 발신자와 연결된 활동 레코드 목록을 봅니다.
  • CRM 개체 연결 - 활동 레코드 에 연결을 클릭하여 통화 유형(인바운드 또는 아웃바운드), 통화 개체, 통화 메모 등과 같은 CRM 개체를 활동 레코드에 추가합니다.
  • 인시던트 관리 - 인시던트 만들기를 클릭합니다 . 발신자 세부 정보가 미리 채워진 새 인시던트가 생성됩니다. 인시던트에 필요한 업데이트를 수행할 수 있습니다. 요구 사항에 따라 레코드 종류를 인시던트에서 서비스 케이스, HR 모듈 등으로 수정하도록 선택할 수 있습니다. 레코드 유형을 변경하려면 [액션] 위젯 구성에서 typeOfRecord 속성의 값을 수정합니다. 예:
    { "comp": "md-tab-panel", "attributes": { "slot": "패널", "class": "위젯 창" }, "children": [ { "comp": "agentx-custom-desktop", "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js", "properties": { "isWidgetDisplayEnabled": true, "typeOfRecord" : "인시던트 생성" }, "래퍼": { "title": "스노우 액션!", "maximizeAreaName": "앱 최대화 영역" } } ] }
  • 실시간 통화 메모 추가 - 텍스트 영역에 통화에 대한 추가 정보를 캡처하고 통화를 요약할 수 있습니다. 이러한 메모가 활동 레코드에 통화 메모로 추가된 것을 볼 수 있습니다.

ServiceNow의 코드 변경

스크립트에 변경 내용이 포함됩니다.
  1. 필터 탐색기로 이동하여 스크립트에는 다음이 포함됩니다..

    시스템 UI 에서 스크립트 포함 선택합니다.

  2. 이름을 필터링하고 propUtils.

  3. 방법 변경 사용자GetSysId 스크립트 에서.

    큐렌트:

    UserGetSysId: function () { var opened_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opened_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= '전화'; grInt.opened_for= opened_for; var sysid=grInt.insert(); return sysid; },

    인시던트에 대한 새 샘플 코드:

    UserGetSysId: function () { var opened_for; //인시던트 관련 변경 사항 var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opened_for=user.sys_id;//return user.sys_id; var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opened_for); inc.addQuery('상태','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.short_description='에서 수신한 통화 '+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = 새로운 GlideRecordSecure('interaction'); grInt.초기화(); grInt.assigned_to= gs.getUserID(); grInt.type= '전화'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; 반환 JSON.stringify(sysidlist); },

UI 페이지의 메서드 변경
  1. 필터 네비게이터로 이동하여 UI 페이지를 검색합니다.

    시스템 UI 에서 UI 페이지를 선택합니다.

  2. 이름을 필터링하고 에이전트 데스크톱.

  3. 변경 스크린팝 클라이언트 스크립트 의 함수입니다.

    현재 기능:

    화면 팝 함수 screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('필드', '전화'); gaout.addParam('값', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ 엔터티: 'interaction', 쿼리: 'sys_id='+sysid });

    인시던트에 대한 샘플 코드:

    screen pop function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // 인시던트 관련 변경 var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_ id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }

발신자 정보가 CRM에 있고 이 연락처에 이미 새 인시던트가 열려 있는 경우 애플리케이션에서 진행 중인 인시던트를 엽니다

호출자 정보가 CRM에 없는 경우 응용 프로그램에서 새 인시던트를 엽니다

발신자 정보가 CRM에 있는 경우 응용 프로그램은 미리 입력된 세부 정보가 포함된 새 인시던트를 엽니다

개요

이 사용 사례에서는 ServiceNow 테이블에 추가 열을 추가하는 프로세스(ServiceNow CRM 커넥터용 Webex CC 설치 시 webexcc_imp_activity 및 sn_openframe_phone_log 만들기에 대해 자세히 설명합니다.

기본적으로 테이블에는 기본 제공 시스템 필드와 값이 포함되어 있습니다.

WebexCC 플로우 디자이너 내에서 더 많은 비즈니스 특정 변수(CAD 변수)를 생성하고 ServiceNow 통화 후 활동 로그 내에 CAD 변수를 추가할 수 있을 뿐만 아니라 통화 후 활동 테이블 데이터에 이를 유지할 수 있습니다.

이 설명서는 참조 설명서일 뿐이며, 고객 이름을 IVR 내에 저장하고 ServiceNow에 게시하는 Customer Name이라는 샘플 CAD 변수에 대해 이 작업을 수행하는 방법을 보여 줍니다.

파트너+고객 ServiceNow 개발자는 기존 커넥터에 대한 사용자 지정이므로 이 구성을 구성하고 관리할 것으로 예상됩니다.

Cisco는 커넥터를 사용자 정의하고 확장하는 방법에 대한 기술만 제공합니다.

이 문서를 기준으로 Cisco 팀은 아래에 설명된 기술을 사용하여 활동 로그 및 활동 테이블에 CAD 변수를 추가하는 것에 대한 지원을 검증했습니다.

WebexCC IMP 활동에 열 추가

  1. 개발자 버전의 ServiceNow에서 테이블을 편집합니다.

    ServiceNow 개발자 인스턴스 WebexCC IMP 활동 테이블.

  2. 필터 네비게이터로 이동하여 스튜디오를 검색합니다.

    필터에 'studio'가 입력된 모두 탭의 ServiceNow 개발자 인스턴스 필터 탐색기.

    선택 Webex Contact Center

    응용 프로그램 선택 창이 열려 있는 ServiceNow용 Studio 앱입니다.

    또는

    응용 프로그램 선택 창이 열려 있고 '사용자 지정할 스토어 앱 선택'이 선택된 ServiceNow용 Studio 앱입니다.

    '사용자 지정할 스토어 앱 선택' 창이 열려 있고 'Webex Contact Center'가 선택되어 있는 ServiceNow용 Studio 앱입니다.

    Webex Contact Center 애플리케이션 파일 세부 정보가 포함된 ServiceNow용 Studio 앱.

  3. 동일한 수준의 다른 테넌트 폴더를 트리 구조 WebexCC IMP 활동 테이블

    ServiceNow WebexCC IMP 활동 테이블용 Studio 앱.

  4. 새 열을 추가합니다(예: 고객 이름

    ServiceNow WebexCC IMP 활동용 Studio 앱 테이블 새 열 예제입니다.

    ServiceNow WebexCC IMP Activity용 Studio 앱 새 열이 추가된 새 열 예제입니다.

전화 로그에 열 추가

  1. 전화기 로그 테이블을 편집합니다.

    ServiceNow 개발자 인스턴스에서 전화기 로그 테이블을 검색합니다.

    ServiceNow 개발자 인스턴스 전화 로그 테이블.

  2. 새 열을 추가합니다(예: 고객 이름.

    ServiceNow 개발자 인스턴스 전화 로그 테이블 새 열 예제.

    ServiceNow 개발자 인스턴스 전화 로그 테이블 새 열이 추가된 새 열의 예

WebexCC 활동 변환 맵

ServiceNow WebexCC 활동 변환 맵용 Studio 앱.

새 열을 추가합니다(예: 고객 이름 필드 매핑.

ServiceNow WebexCC 활동 변환 맵을 위한 Studio 앱의 CustomerName 필드 매핑에 대한 새 열 예입니다.

ServiceNow WebexCC 활동 변환 맵을 위한 Studio 앱의 대상 필드에서 CustomeName이 선택된 새 열 예시입니다.

목록 열 개인화

팝업 창과 개인화된 목록 열이 있는 ServiceNow WebexCC 활동 변환 맵을 위한 스튜디오 앱입니다. 선택 열에 선택 작업 옵션이 강조 표시됩니다.

Service Now에서 권장하는 대로 선택 작업을 생성에서 무시로 변경하세요.

ServiceNow WebexCC 활동 변환 맵에 대한 Studio 앱의 선택 작업 열에는 '무시' 또는 '만들기'를 선택할 수 있는 드롭다운이 표시되어 있습니다.

ServiceNow WebexCC 활동 변환 맵에 대한 Studio 앱의 선택 작업 열과 고객 이름 소스 필드에 대한 '무시'가 강조 표시되어 있습니다.

전화 로그 목록 구성

ServiceNow용 Studio 앱에서 선택된 열에 CustomerName이 강조 표시된 전화 로그 목록을 구성합니다.

스크립트 포함으로 이동

한 줄만 추가하세요 webexcc.u_customername=actInfo.고객이름 propUtils로.

ServiceNow 개발자 인스턴스 필터 탐색기에서 '스크립트 포함'을 검색합니다.

ServiceNow 개발자 인스턴스 스크립트에 페이지가 포함됩니다.

샘플 스크립트

다음 줄을 참조하세요: webexcc.u_customername=actInfo.CustomerName; 지원 설명 포함.

var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{ getWebexccProp: 함수() { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); // webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); return JSON.stringify(webexccprop); }, UserGetSysId: 함수() { var opens_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opens_for=user.sys_id;//return user.sys_id; // 그렇지 않으면 // null을 반환합니다. var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opens_for; var sysid=grInt.insert(); sysid를 반환합니다. }, setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable')); webexcc.addQuery("callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis = actInfo.dnis; webexcc.queuename = actInfo.queuename; webexcc.wrapuptime = actInfo.wrapuptime; webexcc.callduration = actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.ringingtime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // 이 줄은 활동 로그에 캡처하기 위해 추가되었습니다. webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); // 인시던트 기록의 활동; var actInfoString =this.getParameter('actInfo'); var suser = new GlideRecordSecure("sys_user"); suser.addQuery("전화", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2); inc.comments =jsonPretty; inc.update(); } } } sys_id를 반환합니다. }, 유형: 'propUtils' });

Flow Designer에서 CAD 변수 생성

Webex CustomerName에 대한 흐름 변수 추가 팝업이 있는 컨택센터 CAD 변수 흐름 디자이너입니다.

데스크탑 레이아웃에 CAD 변수 추가

예제

"CadName1:SnowField1,CadName2:SnowField2" CadName1은 CustomerName이고 SnowField1은 위에 표시된 샘플 스크립트 "actInfo.CustomerName"의 일부인 CustomerName으로도 사용됩니다.

데스크톱 레이아웃에 CAD 변수를 추가하는 예제 소스 코드입니다.

데모 스크린샷

WebexCC 활동 표에서 새로 추가된 CAD 변수를 확인합니다.

Cisco WebexCC 팝업에 '고객 이름'이 표시된, WebexCC 활동 테이블에 새로 추가된 CAD 변수의 ServiceNow 예입니다.

WebexCC 활동 테이블에 새로 추가된 CAD 변수의 ServiceNow 예입니다. '활동' 및 '시스템 관리자' 아래의 댓글 섹션에 'CustomerName'이 표시됩니다.

WebexCC 활동 테이블에 새로 추가된 CAD 변수의 ServiceNow 개발자 인스턴스 예시. 'CustomerName' 열이 표시되어 있습니다.

Flow Designer에 대한 CAD 변수 생성

사건 긴급성

Webex 컨택센터 흐름 설계자는 사건 긴급 흐름 변수에 대한 흐름 변수 편집 팝업을 보여주는 CAD 변수 화면을 생성합니다.

사고 영향

Webex 컨택센터 흐름 설계자는 사건 긴급 흐름 변수에 대한 흐름 변수 편집 팝업을 보여주는 CAD 변수 화면을 생성합니다.

Service Now 스크립트 업데이트

스크립트 업데이트에는 다음이 포함됩니다.

  1. 필터 탐색기로 이동하여 script include를 검색합니다.

    시스템 UI 에서 스크립트 포함옵션을 선택하세요.

    ServiceNow 개발자 인스턴스 필터 탐색기에서 '스크립트 포함' 검색

  2. 필터링 이름 ~와 함께 프로프유틸리티.

    ServiceNow 개발자 인스턴스 스크립트에는 'propUtils'로 이름 필터링이 포함됩니다.

  3. 방법을 변경하세요 사용자GetSysId 에서 스크립트 필드.

    ServiceNow 개발자 인스턴스 스크립트에는 propUtils 세부 정보 페이지가 포함됩니다.

    현재 스크립트:

    UserGetSysId: 함수() { var opens_for; var user = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if (user.next()) opens_for=user.sys_id; var grInt = new GlideRecord('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opens_for; var sysid=grInt.insert(); return sysid; },

    사고에 대한 새로운 샘플 코드:

    UserGetSysId: 함수 () { var opens_for; var sysidlist = {}; var user = new GlideRecordSecure("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); if(user.next()) { opens_for=user.sys_id;// user.sys_id를 반환합니다. var inc = new GlideRecordSecure('incident'); inc.addQuery('caller_id', opens_for); inc.addQuery('state','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { sysidlist.incsysid=inc.getUniqueValue(); }else{ inc.initialize(); inc.caller_id=opened_for; inc.contact_type='phone'; inc.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); inc.short_description='전화 수신됨'+ this.getParameter('value'); sysidlist.incsysid=inc.insert(); } } var grInt = new GlideRecordSecure('interaction'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'phone'; grInt.opened_for= opens_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; return JSON.stringify(sysidlist);//sysid; },

UI 페이지에서 메서드 변경
  1. 필터 탐색기로 이동하여 검색하세요. UI 페이지.

    선택하세요 UI 페이지 옵션 아래 시스템 UI.

    ServiceNow 개발자 인스턴스 필터 탐색기에서 'Ui 페이지' 검색

  2. 필터링 UI 페이지 ~와 함께 이름 그리고 검색하다 에이전트데스크톱.

    ServiceNow 개발자 인스턴스 UI 페이지 이름 필터로 'agentdesktop' 검색

  3. 변경하다 스크린팝 스크립트 필드의 기능.

    ServiceNow 개발자 인스턴스 UI 페이지 – agentdesktop 세부 정보 페이지.

    현재 기능:

    // 화면 팝 함수 screenpop(callerani, callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid }); }

    인시던트에 대한 샘플 코드:

    화면 팝 함수 screenpop(callerani,callSessionInfo) { var Impact=3; if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined) { Impact=callSessionInfo.callAssociatedData.Impact.value; } var IncUrgency=3; if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != undefined) { IncUrgency=callSessionInfo.callAssociatedData.Urgency.value; } if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam ( '필드', '전화'); gaout.addParam ( '값', callerani); gaout.addParam('IncUrgency', IncUrgency); gaout.addParam ( '임팩트', 임팩트); gaout.getXMLWait(); var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ 엔터티: '인시던트', 쿼리: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ 엔터티: '인시던트', 쿼리: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); }

호출자 정보가 CRM에 있고 새 인시던트 또는 진행 중인 인시던트가 없는 경우 애플리케이션에서 새 인시던트를 엽니다

인시던트의 ServiceNow 예제입니다.

상호 작용의 ServiceNow 예제입니다.

ServiceNow에서 코드 변경

에 새 열을 추가합니다. WebexCC IMP 활동 테이블

를 엽니다. WebexCC IMP 활동 테이블

ServiceNow 개발자 인스턴스 WebexCC Activity TransformMap.

ServiceNow 개발자 인스턴스 WebexCC Activity TransformMap 세부 정보 페이지.

새 열 추가 - InteractionsNumber

ServiceNow 개발자 인스턴스 WebexCC Activity TransformMap 새 열, InteractionNumber.

ServiceNow 개발자 인스턴스 추가된 새로운 'interactionnumber' 열을 보여주는 WebexCC 활동 TransformMap 세부 정보 페이지.

새 열 추가 - IncidentNumber

ServiceNow 개발자 인스턴스 새 'incidentnumber' 열 추가를 보여주는 WebexCC 활동 TransformMap 세부 정보 페이지.

업데이트를 클릭합니다.

ServiceNow 개발자 인스턴스 IncidentNumber 열의 최대 길이 편집을 보여주는 WebexCC 활동 TransformMap 세부 정보 페이지입니다.

ServiceNow 개발자 인스턴스 추가된 새로운 'incidentnumber' 열을 보여주는 WebexCC 활동 TransformMap 세부 정보 페이지.

에 새 열을 추가합니다. 전화 로그 테이블

를 엽니다. 전화 로그 테이블

ServiceNow 개발자 인스턴스 전화 로그 테이블입니다.

새 열 추가 - InteractionsNumber

ServiceNow 개발자 인스턴스 디렉터리 항목 – InteractionsNumber에 대한 새 열을 표시하는 새 레코드 페이지입니다.

InteractionsNumber 열이 추가된 ServiceNow 개발자 인스턴스 전화 로그 테이블

새 열 추가 - IncidentNumber

ServiceNow 개발자 인스턴스 디렉터리 항목 – IncidentNumber에 대한 새 열을 표시하는 새 레코드 페이지입니다.

IncidentNumber 열이 추가된 ServiceNow 개발자 인스턴스 전화 로그 테이블

WebexCC 활동 변환 맵

열기 변환 맵 필터 탐색기에서

ServiceNow 개발자 인스턴스 필터 탐색기 '변환 맵' 검색

결과에서 WebexCC 활동 TransformMap을 보여주는 ServiceNow 개발자 인스턴스 테이블 변환 맵.

클릭 WebexCC 활동 TransformMap

ServiceNow 개발자 인스턴스 WebexCC Activity TransformMap.

새로 추가 - 상호 작용 번호 맵용

'대상 필드'에 'InteractionNumber'가 입력된 ServiceNow 개발자 인스턴스 WebexCC Activity TransformMap

'InteractionNumber'가 추가된 ServiceNow 개발자 인스턴스 WebexCC Activity TransformMap.

새로 추가 - 인시던트 번호 맵용

'대상 필드'에 'IncidentNumber'가 입력된 ServiceNow 개발자 인스턴스 WebexCC Activity TransformMap

업데이트를 클릭합니다.

ServiceNow 개발자 인스턴스 'IncidentNumber'가 추가된 WebexCC Activity TransformMap.

스크립트 포함에 대한 변경 내용

  1. 필터 탐색기로 이동하여 "스크립트 포함"을 검색합니다.

    시스템 UI 에서 스크립트 포함 선택합니다.

    'script includes'를 검색하는 ServiceNow 개발자 인스턴스 필터 탐색기

  2. 이름 필터링 기준 propUtils.

    ServiceNow 개발자 인스턴스 스크립트에는 이름 필터가 적용되어 검색에 적용되고 검색 필드에 'propUtils'가 입력되어 있습니다.

  3. 방법 변경 setWebexcctable.

    ServiceNow 개발자 인스턴스 스크립트 포함 - propUtils 페이지

    인시던트에 대한 새 샘플 코드:

    setWebexcctable: function () { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable')); webexcc.addQuery("u_callobject", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { //인시던트 레코드에 대한 활동; //var actInfoString =this.getParameter('actInfo'); var incsysid=actInfo.incident_sys_id; var interactionsysid=actInfo.interaction_sys_id; var incnum=""; var intenum=""; 삭제 행위정보['interaction_sys_id']; 삭제 actInfo['incident_sys_id']; if( interactionsysid!= null && interactionsysid != undefined){ var inte = new GlideRecordSecure('interaction'); //inte.get('sys_id', interactionsysid ); inte.addQuery('sys_id', interactionsysid ); inte.query(); if (inte.next()) { intenum=inte.number; // inte.setValue('state','Closed Complete'); inte.work_notes='상태를 닫힘으로 업데이트합니다.'; inte.update(); } } if( incsysid!= null && incsysid != undefined){ var inci = new GlideRecordSecure('incident'); inci.addQuery('sys_id', incsysid ); inci.query(); if (inci.next()) { incnum=inci.number; var jsonPretty = JSON.stringify(actInfo,null,2); //JSON.stringify(JSON.parse(actInfoString),null,2); inci.comments =jsonPretty; inci.update(); } }else{ var suser = new GlideRecordSecure("sys_user"); suser.addQuery("전화", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('인시던트'); inc.addQuery('caller_id', suser.sys_id); inc.addQuery('상태','IN','1,2'); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(actInfo,null,2); inc.comments =jsonPretty; inc.update(); } } } } webexcc.u_ani = actInfo.ani; webexcc.u_dnis =actInfo.dnis; webexcc.u_queuename =actInfo.queuename; webexcc.u_wrapuptime =actInfo.wrapuptime; webexcc.u_callduration =actInfo.CallDurationInSeconds; webexcc.u_ringingtime =actInfo.ringingtime; webexcc.u_activitydate =actInfo.ActivityDate; webexcc.u_callobject =actInfo.CallObject; webexcc.u_calltype =actInfo.CallType; webexcc.u_calldisposition=actInfo.CallDisposition; webexcc.u_incidentnumber=인턴; webexcc.u_interactionsnumber=인테넘; sys_id=webexcc.insert(); } 반환 sys_id; },

UI 페이지의 메서드 변경 내용

  1. 필터 탐색기로 이동하여 UI 페이지

    시스템 UI 에서 UI 페이지옵션을 선택합니다.

    'Ui page'를 검색하는 ServiceNow 개발자 인스턴스 필터 탐색기

  2. UI 페이지를 이름으로 필터링하고 agentdesktop 검색합니다.

    ServiceNow 개발자 인스턴스 UI 이름 필터가 적용된 페이지가 검색에 적용됩니다.

  3. 변경 nowActivities 및 screenpop 함수에 삽입할 수 있습니다.

    ServiceNow 개발자 인스턴스 UI 페이지 – agentdesktop.

    현재 기능:

    function nowActivities(actInfo, ani) { var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); }

    인시던트에 대한 샘플 코드:

    function nowActivities(actInfo, ani) { var sysObjstr = window.localStorage.getItem("screenpopinteraction"); if(sysObjstr != null && sysObjstr != undefined) { var sysObjjson=JSON.parse(sysObjstr); actInfo.interaction_sys_id=sysObjjson.sysid; actInfo.incident_sys_id=sysObjjson.incsysid; } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); } function screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = new GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'UserGetSysId'); gaout.addParam('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); // var sysid = gaout.getAnswer(); var sysObj = JSON.parse(gaout.getAnswer()); if(sysObj.incsysid){ openFrameAPI.openServiceNowForm({ entity: 'incident', query: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ 엔터티: '인시던트', 쿼리: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj)); } 

업데이트 후 결과

ServiceNow 개발자 인스턴스 전화 로그 페이지.

다음 사용자 지정은 버전 1.0.5 이하에 적용됩니다. 최신 버전 1.0.7 이상에 대한 사용자 지정의 경우 위의 단계를 따르십시오.

사용자 지정 # 1 - 통화 흐름 사용 사례에 대한 사용자 지정 비즈니스 규칙 추가

모든 통화에 대한 새 인시던트 레코드 만들기

ServiceNow에서 WebexCC CRM 커넥터로 새로 전화가 올 때마다 새 인시던트 레코드를 생성합니다.

  1. 필터 탐색기에서 비즈니스 규칙 검색

    ServiceNow developer instance Business Rules page header.
  2. 새로 만들기를 클릭합니다.

    ServiceNow developer instance Business Rule – New Record.

    참조를 위한 샘플 코드:

    function customcti() { var url = null; var name = sysparm_caller_name; eid = sysparm_caller_id; var phone = sysparm_caller_phone; var taskID = sysparm_task_id; var fQuery = sysparm_query; if (fQuery == null) fQuery = ''; var view = sysparm_view; if (view == null || view == '') view = "itil"; var userID = null; if (eid != null && eid != '') { userID = UserGetSysId("employee_number",eid); } if (userID == null && name != null && name != '') { userID = UserGetSysId("이름", 이름); } if (userID == null && phone != null && phone != '') { userID = UserGetSysId("phone", phone); } if (userID != null) { if (fQuery.length > 0) fQuery += "ˆ"; fQuery += "caller_id=" + userID; } if (url == null) { url = "incident.do?sys_id=-1"; if (fQuery != null) url += "&sysparm_query=" + fQuery; } answer = url; 반환 URL; } function UserGetSysId(field, value) { var user = new GlideRecord("sys_user"); user.addQuery(field, value); user.query(); if (user.next()) return user.sys_id; else return null; }

    비즈니스 규칙의 샘플 구성Sample configuration of the business rule

    ServiceNow developer instance Business Rule – CTI Processing For Incident page as a sample configuration of the business rule.
  3. 클라이언트 통화 가능 활성화

    ServiceNow developer instance Business Rules page with the Personalized List Columns popup screen showing ‘Client callable’ in the ‘Selected’ column.

    인시던트에 대한 CTI(Computer Telephony Integration ) 처리가 True 표시됩니다.

    ServiceNow developer instance Business Rules page showing the Client callable column with options to select ‘true’ or ‘false’
  4. 사용자 지정 CTI 규칙 " cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="로 스크린팝 URL을 업데이트합니다.

    System Property page for screenpop_url showing update to the custom CTI rule in the ‘Value’ field.
예제

sysparm_cti_rule =name 여기서 'name'은 호출될 함수 이름입니다CTI 기본 스크립트를 사용하는 대신 처리합니다 .

클라이언트 호출 가능 으로 표시된 sys_script항목에서 함수를 정의합니다.

함수에서 GlideRecords를 삽입, 업데이트 또는 삭제해야 하는 경우 별도의 비클라이언트 호출 가능 함수를 호출하여 업데이트를 수행합니다.

스크립트를 클라이언트 호출 가능으로 만들려면 sys_script 항목이 표시될 때 표시되는 양식에서 클라이언트 호출 가능 확인란을 선택해야 합니다.

클라이언트 호출 가능 확인란은 기본적으로 표시되지 않습니다. 보려면 톱니바퀴 아이콘과 슬러시 버킷 메커니즘을 사용하여 양식에 표시되는 필드를 수정해야 합니다.

참조

사용자 정의 # 2 - 컨택 센터 활동 테이블에 CAD 변수 Webex 추가

개요

이 문서에서는 ServiceNow CRM 커넥터용 Webex CC 설치 시 만들어지는 webexcc_activity ServiceNow 테이블에 열을 추가하는 프로세스에 대해 자세히 설명합니다.

기본적으로 테이블에는 기본 시스템 필드와 값이 포함되어 있습니다.

WebexCC 플로우 디자이너 내에서 더 많은 비즈니스 특정 변수(CAD 변수)를 만들어 ServiceNow 통화 후 활동 로그 내에 CAD 변수를 추가하고 이를 통화 후 활동 테이블 데이터에 유지할 수 있습니다.

  • 이 설명서는 참조 설명서일 뿐이며 고객 이름을 IVR 내에 저장하고 ServiceNow에 게시하는 Customer Name이라는 샘플 CAD 변수에 대해 이 작업을 수행하는 방법을 보여 줍니다.

  • 파트너+고객 ServiceNow 개발자는 기존 커넥터에 대한 사용자 지정이므로 이 구성을 구성하고 관리합니다.

  • Cisco는 커넥터를 사용자 정의하고 확장하는 방법에 대한 기술만 제공합니다.

  • 이 문서를 기준으로 Cisco 팀은 아래에 설명된 기술을 사용하여 활동 로그 및 활동 테이블에 CAD 변수를 추가하는 것에 대한 지원을 검증했습니다.

WebexCC 활동에 열 추가
  1. 개발자 버전의 ServiceNow에서 테이블을 편집합니다.

    ServiceNow developer instance Table – WebexCC Activity page.
  2. Studio >Webex 컨택 센터 이동합니다.

    ServiceNow developer instance filter navigator search for ‘studio’  highlighting the cross launch search result for ‘App Engine Studio’

    App Engine Studio Select Application screen showing Webex Contact Center in the search results.

    App Engine Studio Webex Contact Center screen.

  3. WebexCC 활동 테이블을 선택합니다 .

    App Engine Studio WebexCC Activity table.
  4. 예를 들면 CustomerName과 같습니다.

    App Engine Studio WebexCC Activity table column edit example for ‘CustomerName’ column.

    App Engine Studio WebexCC Activity table screen.

  5. WebexCC 활동에 대한목록 레이아웃을 선택합니다.

    App Engine Studio WebexCC Activity table list layout showing ‘CustomerName’ highlighted in the ‘Selected’ column.
새 스크립트 포함 만들기

업데이트 세트 XML 사용하는 경우 이 단계가 필요하지 않습니다. - propUtils에 "webexcc.u_customername=actInfo.CustomerName"을 추가하는 데 한 줄만 필요합니다.

ServiceNow developer instance filter navigator search for ‘script includes’

ServiceNow developer instance Script Includes page with ‘Application’ in the filter.

ServiceNow developer instance Script Includes – New Record page.

샘플 스크립트

줄을 참조하십시오.webexcc.u_customername=actInfo.CustomerName; 지원 코멘트와 함께.

var propUtils2 = 클래스.create(); propUtils2.prototype = Object.extendsObject(전역. AbstractAjaxProcessor,{ getWebexccProp: 함수() { var webexccprop = {}; webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/'; webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url'); webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url'); 반환 JSON.stringify(webexccprop); }, setWebexcctable: 함수() { var sys_id=0; var actInfo = JSON.parse(this.getParameter('actInfo')); var webexcc = 새로운 GlideRecordSecure(gs.getProperty('x_caci_ webexcc.webexccactivitytable')); webexcc.addQuery("호출 객체", actInfo.CallObject); webexcc.query(); if(!webexcc.next()) { webexcc.ani = actInfo.ani; webexcc.dnis =actInfo.dnis; webexcc.queuename =actInfo.queuename; webexcc.wrapuptime =actInfo.wrapuptime; webexcc.callduration =actInfo.CallDurationInSeconds; webexcc.ringingtime =actInfo.ringingtime; webexcc.activitydate =actInfo.ActivityDate; webexcc.callobject =actInfo.CallObject; webexcc.calltype =actInfo.CallType; webexcc.calldisposition=actInfo.CallDisposition; // 이 줄이 추가되었습니다 - 활동 로그에 캡처하기 위해 webexcc. u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); 사건 기록에 대한 활동; var actInfoString =this.getParameter('actInfo'); var suser = 새로운 GlideRecordSecure("sys_user"); suser.addQuery("전화", this.getParameter('ani')); suser.query(); if(suser.next()) { var inc = new GlideRecordSecure('인시던트'); inc.addQuery('caller_id', suser.sys_id); inc.orderByDesc('sys_created_on'); inc.query(); if (inc.next()) { var jsonPretty = JSON.stringify(JSON.parse(acting string),null,2); inc.comments =jsonPretty; inc.update(); } } } 반환 sys_id; }, 유형: 'propUtils2' });
새 스크립트 이름으로 UI 페이지 편집App Engine Studio agentdesktop UI page with new script name.

흐름 디자이너에서 CAD 변수 만들기Webex Contact Center flow designer with Add Flow Variable popup showing adding a CustomerName variable.

CAD 변수를 데스크탑 레이아웃에 추가합니다Webex Contact Center CAD variable to the desktop layout script with ‘CustomerName:CustomerName’ highlighted.

데모 스크린샷

WebexCC 활동 테이블에서 새로 추가된 CAD 변수를 봅니다.

ServiceNow developer instance showing newly added CAD variable in the WebexCC Activity table.

ServiceNow developer instance WebexCC Activities screen.