사전 요구 사항

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

Webex Contact Center을(를) ServiceNow CRM 콘솔과 통합하기 전에 다음이 있는지 확인합니다.

  • Webex Contact Center에 액세스합니다.

  • https://admin.webex.com 및 Webex Contact Center 관리 포털에 있는 Control Hub에 대한 관리자 액세스. 관리 포털의 URL은 해당 지역에 따라 다릅니다.

  • 데스크톱에 액세스할 수 있는 상담원입니다. 데스크톱의 URL은 지역에 따라 다릅니다.

  • 콘텐츠 보안 정책 허용 목록에 추가된 다음 도메인에 대한 에이전트 액세스:

    • *.service-now.com

    허용 목록을 정의하는 방법에 대한 자세한 내용은 Webex Contact Center에 대한 보안 설정 문서를 참조하세요.

  • ServiceNow 개발자 포털 계정. 계정을 만들려면 ServiceNow 개발자 포털( https://developer.servicenow.com/dev.do )로 이동하여 등록 및 빌드 시작을 클릭합니다.

  • https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow 에서 다음 파일에 액세스합니다.

    • ServiceNow 업데이트 집합(XML)

    • ServiceNow JSON(Contact Center Desktop Layout)

  • Webex Contact Center에서 지원하는 ServiceNow 버전은 Vancouver, Utah, Tokya, Washington 및 Xanadu입니다. 자세한 내용은 Webex Contact Center 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

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 인스턴스의 왼쪽 위에 있는 필터 탐색기 필드에서 시스템 업데이트 집합 > 커밋 할 집합 업데이트로 이동합니다 .

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

3

Import Update Set from XML (#에서 업데이트 세트 가져오기) 링크를 클릭합니다.

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

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'에 대한 '모두' Tab 검색을 표시하는 ServiceNow 개발자 인스턴스

2

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

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

3

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

4

필드에 작업 지역에 따라 Webex Contact Center 데스크톱의 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 Contact Center

  • 너비: 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 관리 포털로 이동합니다.

4

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

Webex Contact Center 왼쪽 탐색에서 바탕 화면 레이아웃이 강조 표시된 관리 포털 프로비저닝 페이지# Management Portal provisioning page with Desktop Layout in the left navigation.

5

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

6

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

7

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

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

8

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

Webex Contact Center Agent Desktop가 ServiceNow와 통합된 ServiceNow Home 페이지입니다.

다음 섹션에서는 사용이 허가된 엔터프라이즈 인스턴스용 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'에 대한 '모두' Tab 검색을 표시하는 ServiceNow 개발자 인스턴스

2

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

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

3

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

4

필드에 작업 지역에 따라 Webex Contact Center 데스크톱의 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 Contact Center

  • 너비: 550(권장)

  • 높이: 600(권장)

4

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

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

5

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

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

6

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

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

7

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

Webex Contact Center Agent Desktop가 ServiceNow와 통합된 ServiceNow Home 페이지입니다.

8

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

9

OpenFrame 휴대폰을 사용하기 전에 ServiceNow 사용자 지정 데스크톱 레이아웃 JSON 파일을 Webex Contact Center Management Portal에 업로드해야 합니다. 자세한 내용은 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 관리 포털로 이동합니다.

4

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

Webex Contact Center 왼쪽 탐색에 바탕 화면 레이아웃이 강조 표시된 관리 포털 프로비저닝 페이지

5

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

6

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

7

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

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

8

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

Webex Contact Center Agent Desktop가 ServiceNow와 통합된 ServiceNow Home 페이지입니다.

1

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

2

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

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

3

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

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

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

4

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

Webex Contact Center Agent Desktop가 ServiceNow와 통합된 ServiceNow Home 페이지입니다.

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

ServiceNow 콘솔의 Agent Desktop

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

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

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

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

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

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

Webex Contact Center Agent Desktop가 ServiceNow와 통합된 ServiceNow Home 페이지입니다.

Desktop 사용 방법에 대한 자세한 내용은 Webex Contact Center 도움말의 Agent Tab를 참조하십시오 .

개요

이 문서에서는 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. 이름 을 필터링하고 검색하세요 프로프유틸리티.

  3. 방법을 변경하세요 사용자GetSysId 대본에서.

    현재:

    UserGetSysId: 함수 () { 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= 'phone'; 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('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.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= opened_for; var sysid=grInt.Insert(); sysidlist.sysid=sysid; return 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('field', 'phone'); gaout.addParam('value', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ entity: 'interaction', query: 'sys_id='+sysid });

    사고에 대한 샘플 코드:

    // 화면 팝 함수 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({ 엔티티: '사건', 쿼리: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); } }

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

CRM에 발신자 정보가 없는 경우 애플리케이션에서 새 인시던트가 열립니다.

CRM에 발신자 정보가 있는 경우 애플리케이션은 미리 채워진 세부 정보로 새 인시던트를 엽니다.

개요

이 사용 사례에서는 ServiceNow CRM Connector용 Webex CC 설치 시 ServiceNow 테이블에 추가 열인 webexcc_imp_activity를 추가하고 sn_openframe_phone_log를 생성하는 프로세스를 자세히 설명합니다.

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

WebexCC Flow Designer 내에서 비즈니스별 변수(CAD 변수)를 추가로 생성하고, ServiceNow POST 호출 활동 로그 내부에 CAD 변수를 추가할 수 있으며, 이를 POST 호출 활동 테이블 데이터에 유지할 수 있습니다.

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

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

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

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

WebexCC IMP 활동에 열 추가

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

    ServiceNow 개발자 인스턴스 WebexCC IMP 활동 표.

  2. 필터 탐색기로 가서 스튜디오를 검색하세요.

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

    선택 Webex Contact Center

    ServiceNow용 Studio 앱에서 Select Application 창이 열립니다.

    또는

    ServiceNow용 Studio 앱에서 '애플리케이션 선택' 창이 열리고 '사용자 정의할 스토어 앱 선택'이 선택되어 있습니다.

    ServiceNow용 Studio 앱에서 '사용자 정의할 스토어 앱 선택' 창이 열리고 'Webex Contact Center'가 선택되었습니다.

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

  3. 선택하세요 WebexCC IMP 활동 테이블

    ServiceNow WebexCC IMP 활동 테이블을 위한 스튜디오 앱입니다.

  4. 예를 들어 새 열을 추가합니다. 고객 이름

    ServiceNow WebexCC IMP 활동 테이블의 새로운 열 예시를 위한 Studio 앱입니다.

    ServiceNow WebexCC IMP 활동 테이블에 대한 Studio 앱의 새 열 예시에 새 열이 추가되었습니다.

전화 기록에 열 추가

  1. 전화 기록 표를 편집합니다.

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

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

  2. 예를 들어 새 열을 추가합니다. 고객 이름.

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

    ServiceNow 개발자 인스턴스 전화 로그 테이블에 새 열이 추가된 예시입니다.

WebexCC 활동 변환 맵

ServiceNow WebexCC 활동 변환 맵을 위한 스튜디오 앱입니다.

예를 들어 새 열을 추가합니다. 고객 이름 현장 매핑.

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

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

목록 열 개인화

팝업 창을 통해 개인화된 목록 열을 보여주는 ServiceNow WebexCC 활동 변환 맵을 위한 스튜디오 앱입니다. 선택 작업 옵션은 선택됨 열에서 강조 표시됩니다.

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

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

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

전화 기록 목록 구성

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

스크립트 포함으로 이동

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

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

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

샘플 스크립트

다음 줄을 보세요: webexcc.u_customername=actInfo.고객이름; 지지하는 의견과 함께.

var propUtils = 클래스.create(); propUtils.prototype = Object.extendsObject(전역. AbstractAjaxProcessor,{ getWebexccProp: function () { 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: 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;//return user.sys_id; else // null을 반환합니다. var grInt = 새로운 GlideRecord('interaction'); grInt.초기화(); grInt.assigned_to= gs.getUserID(); grInt.type= '전화'; grInt.opened_for= opened_for; var sysid=grInt.Insert(); 반환 sysid; }, setWebexcctable: 함수() { 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 = 새로운 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(actInfoString),null,2); inc.comments =jsonPretty; inc.update(); } } } 반환 sys_id; }, 유형: 'propUtils' });

흐름 디자이너에서 CAD 변수 만들기

Webex Contact Center CustomerName에 대한 흐름 변수 추가 팝업이 있는 CAD 변수 흐름 디자이너.

CAD 변수를 데스크탑 레이아웃에 추가합니다

예제

"CadName1:SnowField1,CadName2:SnowField2" CadName1은 CustomerName입니다. SnowField1은 "actInfo.CustomerName" 위의 샘플 scirpt showen의 일부인 CustomerName으로도 사용됩니다.

CAD 변수를 데스크탑 레이아웃에 추가하기 위한 소스 코드의 예입니다.

데모 스크린샷

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

Cisco WebexCC 팝업에 '고객 이름'을 표시하고 있는 WebexCC 활동 테이블에 새로 추가된 CAD 변수의 ServiceNow 예시.

'활동' 및 '시스템 관리자' 아래의 주석 섹션에 'CustomerName'이 표시된, WebexCC 활동 테이블에 새로 추가된 CAD 변수의 ServiceNow 예시.

'CustomerName' 열을 나타내는 WebexCC 활동 테이블에 새로 추가된 CAD 변수에 대한 ServiceNow 개발자 인스턴스 예제입니다.

흐름 디자이너에 대한 CAD 변수 만들기

인시던트 긴급성

Webex Contact Center 흐름 디자이너는 인시던트 긴급 흐름 변수에 대한 흐름 변수 편집 팝업을 보여 주는 CAD 변수 만들기 화면을 만듭니다.

인시던트 영향

Webex Contact Center 흐름 디자이너가 인시던트 긴급성 흐름 변수에 대한 흐름 변수 편집 팝업을 표시하는 CAD 변수 생성 화면.

Service Now 스크립트 업데이트

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

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

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

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

  2. propUtils를 사용하여 이름을 필터링합니다.

    ServiceNow 개발자 인스턴스 스크립트 'propUtils'에 의한 이름 필터 포함

  3. 방법 변경 사용자GetSysId 를 입력합니다 .

    ServiceNow 개발자 인스턴스 스크립트 포함 – propUtils 세부 정보 페이지.

    현재 스크립트:

    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.urgency=this.getParameter('IncUrgency'); inc.impact=this.getParameter('Impact'); 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);//sysid; },

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

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

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

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

    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('필드', '전화'); gaout.addParam('값', callerani); gaout.getXMLWait(); var sysid = gaout.getAnswer(); openFrameAPI.openServiceNowForm({ 엔터티: 'interaction', 쿼리: '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) 처리가 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.
예제

'name '함수이름인 sysparm_cti_rule=name 은 기본 스크립트를 사용하는 대신 CTI 처리를 위해 호출됩니다.

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

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

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

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

참조

사용자 정의 # 2-Webex Contact Center 활동 테이블에 CAD 변수 추가

개요

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

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

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

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

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

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

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

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

    ServiceNow developer instance Table – WebexCC Activity page.
  2. 스튜디오 > Webex Contact Center 이동합니다.

    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.