확장점을 사용하여 상호 작용 로그 저장 사용자 지정

참고: 이 문서는 Salesforce용 Genesys Cloud에 적용됩니다.

확장점을 사용하여 Genesys Cloud for Salesforce에서 상호 작용 로그 저장을 사용자 정의할 수 있습니다. 확장 지점은 Salesforce Apex 프로그래밍 언어를 사용합니다.

참고: 이 고급 사용자 정의 문서는 Salesforce에 익숙한 개발자를 대상으로 합니다.

전제 조건

  • 확장 지점 설정 섹션이 포함된 관리 패키지 버전입니다. 자세한 내용은 확장 지점 구성.

Salesforce에서 다음을 구현하는 Apex 클래스가 있는 단일 Apex 파일을 만듭니다. purecloud.CTIExtension.SaveLog 상호 작용. 통합에서 코드를 호출할 수 있도록 Apex 클래스를 전역으로 정의합니다.

purecloud.CTIExtension.SaveLog 인터페이스

Genesys Cloud for Salesforce에서 저장 로그를 사용자 정의하기 위해 정의할 수 있는 메서드 서명이 포함되어 있습니다.

사용

메소드 서명을 사용하십시오. purecloud.CTIExtension.SaveLog 로그 저장이 작동하는 방식을 정의하는 인터페이스.

onSaveLog 메서드

상호 작용 로그 정보를 저장하는 데 사용됩니다.

이 메서드는 통합이 특정 상호 작용 또는 사용자 이벤트에서 상호 작용 로그의 변경 사항을 감지할 때마다 호출됩니다. 메서드는 작업 레코드에 대해 저장되지 않은 상호 작용 로그 데이터를 수신합니다.

메서드가 데이터를 성공적으로 저장하면 레코드의 ID를 반환합니다. 메서드가 데이터를 저장하지 않으면 빈 문자열을 반환합니다.

참고: onSaveLog 메서드는 null 값 반환을 지원하지 않습니다.

입력 속성

메서드에 전달되는 JSON 데이터에는 다음 속성이 포함됩니다.

이름 데이터 유형 설명 설명
이벤트 이름 문자열 트리거된 상태를 나타냅니다. onSaveLog 값: interactionChanged, interactionDisconnected, interactionChangedAfterDisconnect, interactionACWCompleted, interactionRemoved, openCallLog, appDisconnected.
인터랙션 개체 상호 작용의 상태를 나타냅니다. 자세한 내용은 의 데이터 개체 형식을 참조하세요. 압축된 대화 정보.
통화 기록 개체 Salesforce에 정의된 활동 필드에 대해 변경된 값이 있는 상호 작용 로그 데이터입니다. 변경된 통합 로그의 일부만 제공합니다.

출력 매개변수

이름 데이터 유형 설명 설명
{반환 값} 문자열 저장되거나 업데이트된 상호 작용 로그의 ID입니다.  

자세한 내용은 상호작용 로그 그리고 상호 작용 로그 보기 및 편집.

중요한:
  • 통합에서 코드를 호출할 수 있도록 Apex 클래스를 전역으로 정의합니다.
  • 둘 이상의 확장점(또는 인터페이스)을 구현하는 경우 모두 동일한 Apex 파일에 배치합니다.
global class MyCTIExtensions implements purecloud.CTIExtension.SaveLog {
    public String onSaveLog(String data) {
        // Example: Save interaction log as Task record after interaction is disconnected.
        Map<String, Object> saveLogData = (Map<String, Object>) JSON.deserializeUntyped(data);
        Map<String, Object> interaction = ( Map<String, Object>) saveLogData.get('interaction');
        Map<String, Object> callLog = ( Map<String, Object>) saveLogData.get('callLog');
        Boolean isDisconnected = (Boolean) interaction.get('isDisconnected');
        String callLogId = '';
        if (isDisconnected) {
            Task t = (Task) JSON.deserialize(JSON.serialize(callLog), Task.class);
            upsert t;
            callLogId = t.Id;
        }
        return callLogId; 
    }
}

자세한 내용은 Salesforce용 Genesys Cloud의 확장 지점.

통합에 대한 자세한 내용은 다음을 참조하십시오. Salesforce용 Genesys Cloud 정보.