リアルタイムシグナルの送信
Salesforce がパートナーのテレフォニーシステムからシグナルを取り込めるように、リアルタイムシグナルの送信のサポートを追加します。
このドキュメントの手順を実行すると、リアルタイムのシグナル送信がサポートされ、管理者が会話インテリジェンスルールを設定するときにインテリジェンスシグナルを設定できるようになります。次の手順では、リアルタイムシグナルの送信のサポートを追加し、IntelligenceServiceProvider Apex インターフェースと関連クラスを実装してから、顧客に配布する管理パッケージを作成してリリースします。
管理パッケージを組織にリリースすれば、会話インテリジェンスルールを作成する際に、新しいインテリジェンスシグナルソースとシグナル種別を設定できるようになります。
リアルタイムシグナルの送信のサポートを追加する手順は、次のとおりです。
- ConversationVendorInfo レコードをインポートするときに、[CapabilitiesSupportsIntelligence] 項目を true に設定して、この機能を有効化します。
- 次のコードブロックをガイドとして使用し、service_cloud_voice.IntelligenceServiceProvider Apex インターフェースと関連クラスを実装します。
IntelligenceServiceProvider Apex インターフェース。リアルタイムシグナルの送信のサポートを追加するために、次のインターフェースを実装します。
1global interface IntelligenceServiceProvider { 2 /** 3 * This method is to get a map of supported intelligence services and corresponding signal types 4 * @return IntelligenceServiceResponse 5 */ 6 IntelligenceServiceResponse getSupportedIntelligenceServicesAndSignalTypes(IntelligenceServiceRequest intelligenceServiceRequest); 7}IntelligenceServiceRequest Apex クラス。次のクラス定義は、IntelligenceServiceResponse getSupportedIntelligenceServicesAndSignalTypes メソッドで必要な要求ペイロードの形式を表します。
1global with sharing class IntelligenceServiceRequest { 2 private ContactCenterInfo contactCenterInfo; 3 /** 4 * Constructor for creating IntelligenceServiceRequest 5 * @param contactCenterInfo contact center info 6 */ 7 global IntelligenceServiceRequest(ContactCenterInfo contactCenterInfo) { 8 this.contactCenterInfo = contactCenterInfo; 9 } 10 global ContactCenterInfo getContactCenterInfo() { 11 return contactCenterInfo; 12 } 13}IntelligenceServiceResponse Apex クラス。次のクラス定義は、IntelligenceServiceResponse getSupportedIntelligenceServicesAndSignalTypes メソッドから返される応答の形式を表します。
1global with sharing class IntelligenceServiceResponse extends PartnerResponse { 2 private List<IntelligenceServiceAndSignalsInfo> intelligenceServiceAndSignalsInfos; 3 /** 4 * Constructor for creating IntelligenceServiceResponse 5 * @param intelligenceServiceInfos Map of supported intelligence services and corresponding signal types 6 */ 7 global IntelligenceServiceResponse(boolean success, String errorMessage, List<IntelligenceServiceAndSignalsInfo> intelligenceServiceAndSignalsInfos) { 8 super(success, errorMessage); 9 this.intelligenceServiceAndSignalsInfos = intelligenceServiceAndSignalsInfos; 10 } 11 /** 12 * @return supported intelligence services and corresponding signal types 13 */ 14 global List<IntelligenceServiceAndSignalsInfo> getIntelligenceServiceAndSignalsInfos() { 15 return this.intelligenceServiceAndSignalsInfos; 16 } 17}IntelligenceServiceAndSignalsInfo Apex クラス。次のクラス定義は、インテリジェンスサービスの個別インスタンスと、サポートされるシグナル種別のリストを表します。このクラスは、IntelligenceServiceResponse クラスに含まれます。
1global with sharing class IntelligenceServiceAndSignalsInfo { 2 private String service; 3 private String masterLabel; 4 private Set<IntelligenceSignalType> signalTypes; 5 /** 6 * Constructor for creating IntelligenceServiceInfo. 7 * @param List of Services and Supported SignalTypes for the Service. 8 */ 9 global IntelligenceServiceAndSignalsInfo(String service, String masterLabel, Set<IntelligenceSignalType> signalTypes) { 10 this.service = service; 11 this.masterLabel = masterLabel; 12 this.signalTypes = signalTypes; 13 } 14 global String getService() { 15 return this.service; 16 } 17 global String getMasterLabel() { 18 return this.masterLabel; 19 } 20 global Set<IntelligenceSignalType> getSignalTypes() { 21 return this.signalTypes; 22 } 23}IntelligenceSignalType Apex クラス。この列挙は、サポートされるインテリジェンスシグナル種別のリストを表します。このクラスは、IntelligenceServiceAndSignalsInfo Apex クラスで使用されます。
1global enum IntelligenceSignalType { 2 Category, 3 Sentiment 4}実装例。次の例を使用して、自分の実装を IntelligenceServiceProvider クラスに追加してください。
1/** 2* Adds support for sending real-time signals, 3* <INTELLIGENCE SERVICE> represents the intelligence service that the partner is using. This name is unique to each partner. . For example, if the partner telephony vendor is NICE, set <INTELLIGENCE SERVICE> to CXoneAgentAssistService. If the partner telephony is another vendor, reach out to your PM to find the value for <INTELLIGENCE SERVICE>. 4* <INTELLIGENCE SERVICE NAME> is the label name describing the intelligence service that the partner uses. For example, if the intelligence service is CXone, set <INTELLIGENCE SERVICE NAME> to CXone Agent Assist Service. 5*/ 6global class intelligenceService implements service_cloud_voice.IntelligenceServiceProvider { 7 global service_cloud_voice.IntelligenceServiceResponse getSupportedIntelligenceServicesAndSignalTypes(service_cloud_voice.IntelligenceServiceRequest intelligenceServiceRequest) { 8 List<service_cloud_voice.IntelligenceServiceAndSignalsInfo> intelligenceServiceAndSignalsInfos = new List<service_cloud_voice.IntelligenceServiceAndSignalsInfo>(); 9 10 Set<service_cloud_voice.IntelligenceSignalType> signalTypes = new Set<service_cloud_voice.IntelligenceSignalType>(); 11 signalTypes.add(service_cloud_voice.IntelligenceSignalType.Sentiment); 12 13 intelligenceServiceAndSignalsInfos.add(new service_cloud_voice.IntelligenceServiceAndSignalsInfo(‘<INTELLIGENCE SERVICE>’, ‘<INTELLIGENCE SERVICE NAME>’, signalTypes)); 14 15 return new service_cloud_voice.IntelligenceServiceResponse(true, null, intelligenceServiceAndSignalsInfos); 16 } 17} - 管理パッケージを準備します。
- Service Cloud Voice の管理パッケージをリリースしたことがない場合は、この時点で管理パッケージをリリースしてください。
- Service Cloud Voice の管理パッケージをリリースしたことがある場合は、自分の IntelligenceServiceProvider クラスの実装で管理パッケージを更新してください。
管理パッケージが準備できたら、URL をコピーして顧客に送信し、顧客がその URL を使用して管理パッケージを自分の組織にインストールできるようにします。