확장 지점을 사용하여 화면 팝업 사용자 지정
확장점을 사용하여 Salesforce용 Genesys Cloud에서 화면 팝업 동작을 사용자 정의할 수 있습니다. 확장 지점은 Salesforce Apex 프로그래밍 언어를 사용합니다.
전제 조건
- 확장 지점 설정 섹션이 포함된 관리 패키지 버전입니다. 자세한 내용은 확장 지점 구성.
Salesforce에서 다음을 구현하는 Apex 클래스가 있는 단일 Apex 파일을 만듭니다. purecloud.CTIExtension.ScreenPop 상호 작용. 통합에서 코드를 호출할 수 있도록 Apex 클래스를 전역으로 정의합니다.
purecloud.CTIExtension.ScreenPop 인터페이스
Genesys Cloud for Salesforce에서 화면 팝업 기능을 사용자 정의하기 위해 정의할 수 있는 메서드 서명이 포함되어 있습니다.
사용
메소드 서명을 사용하십시오. purecloud.CTIExtension.ScreenPop 스크린 팝 기능이 작동하는 방식을 정의하는 인터페이스.
onScreenPop 메서드
스크린 팝 로직을 구동하는 데 사용됩니다.
이 메서드는 인바운드 경고 상호 작용에 대해 호출됩니다. 온스크린팝 각 경고 상호 작용에 대해 각 에이전트에 대해 한 번만 호출됩니다. 이 메서드는 기본 화면 팝업 동작을 변경하는 데이터를 반환할 수 있습니다.
Apex 코드가 예외를 트리거하면 통합에서 기본 화면 팝업 동작을 수행합니다. 값이 반환되지 않으면 통합이 화면 팝업 동작을 억제합니다.
입력 속성
메서드에 전달되는 JSON 데이터에는 다음 속성이 포함됩니다.
이름 | 데이터 유형 | 설명 | 설명 |
---|---|---|---|
검색값 | 문자열 | 검색 값. | 예시 값: 이메일 주소(채팅 및 이메일 상호작용용), 전화번호(음성 및 SMS 상호작용용). |
인터랙션 | 개체 | 상호 작용 데이터를 나타내는 데이터 개체입니다. | 자세한 내용은 의 데이터 개체 형식을 참조하세요. 압축된 대화 정보. |
출력 속성
이름 | 데이터 유형 | 설명 | 설명 |
---|---|---|---|
URL | 문자열 | Salesforce에 있는 페이지의 URL입니다. | 표준 Salesforce 페이지, Visualforce 페이지 또는 Architect 흐름에서 미리 채워진 데이터가 있는 새 레코드 페이지일 수 있습니다. |
검색값 | 문자열 | Salesforce 레코드에서 검색된 값입니다. |
사례 번호, 전화 번호, 연락처 이름 또는 기타 항목이 될 수 있습니다. 자세한 내용은 의 Softphone 레이아웃 설정 섹션을 참조하십시오. Salesforce용 Genesys Cloud의 화면 팝업. |
기본화면팝 | 부울 | 기본 화면 팝업을 수행하거나(true) 기본 화면 팝업을 수행하지 않습니다(false). |
자세한 내용은 기본 화면 팝업 동작 섹션을 참조하십시오. Salesforce용 Genesys Cloud의 화면 팝업. |
자세한 내용은 Salesforce용 Genesys Cloud의 화면 팝업.
예
- 통합에서 코드를 호출할 수 있도록 Apex 클래스를 전역으로 정의합니다.
- 둘 이상의 확장점(또는 인터페이스)을 구현하는 경우 모두 동일한 Apex 파일에 배치합니다.
global class MyCTIExtensions implements purecloud.CTIExtension.ScreenPop {
public String onScreenPop(String data) {
// Example: Find a recent Case record by phone number. if not found, fall back to default screen pop behavior.
Map<String, Object> screenPopData = (Map<String, Object>) JSON.deserializeUntyped(data);
Map<String, Object> dataToReturn = new Map<String, Object>();
String phoneNumber = (String) screenPopData.get('searchValue');
if (String.isNotBlank(phoneNumber)) {
List cases = [SELECT Id FROM Case WHERE ContactPhone =: phoneNumber ORDER BY LastModifiedDate DESC LIMIT 1];
if (cases.size() > 0) {
dataToReturn.put('url', cases.get(0).Id);
return JSON.serialize(dataToReturn);
}
}
dataToReturn.put('defaultScreenPop', true);
return JSON.serialize(dataToReturn);
}
}
자세한 내용은 Salesforce용 Genesys Cloud의 확장 지점.
통합에 대한 자세한 내용은 다음을 참조하십시오. Salesforce용 Genesys Cloud 정보.