가져오기>파일 선택을 선택한 다음 4단계에서 저장한 CopilotForServiceConfig.xml 파일을 찾아 선택합니다.
가져오기를 선택합니다.
편집을 선택한 다음 CTI 어댑터 URL 필드에 1단계에서 저장한 서비스용 Copilot 위젯 URL의 URL을 붙여넣습니다.
저장을 선택합니다.
Salesforce 사용자를 추가하려면 다음 단계를 수행합니다.
Salesforce Service 콘솔에서 콜센터 사용자 관리>사용자 추가를 선택합니다.
서비스용 Copilot 위젯에 액세스하려는 각 Salesforce 사용자를 추가합니다.
다음 단계를 수행하여 소프트폰 유틸리티를 추가합니다.
설정을 선택한 후, 앱 관리자를 검색하여 선택하세요.
서비스 콘솔 앱을 찾아 같은 행에 있는 역삼각형을 선택한 후 편집을 선택합니다.
유틸리티 항목>유틸리티 항목 추가를 선택하세요.
CTI 소프트폰 열기를 검색하여 선택합니다.
"서비스용 Microsoft Copilot"과 같은 위젯 이름을 입력합니다.
너비를 450으로 설정하고 높이를 600으로 설정합니다.
저장을 선택합니다.
팝업을 활성화하려면 다음 단계를 수행합니다.
Salesforce의 앱 페이지에서 서비스 콘솔로 이동합니다.
<URL>에서 항상 팝업 및 리디렉션 허용을 선택하여 팝업을 활성화합니다.
완료를 선택합니다.
브라우저를 새로 고칩니다. 이제 에이전트 콘솔의 도구 모음에서 서비스용 Copilot 추가 기능을 사용할 수 있습니다.
Salesforce에서 서비스용 Copilot 위젯을 구성하려면 다음 단계를 수행합니다.
Salesforce Service Console을 열고 톱니바퀴 아이콘을 선택합니다.
드롭다운에서 개발자 콘솔을 선택합니다. 로드되지 않으면 팝업 창에서 URL을 복사하여 새 탭에서 엽니다.
개발자 콘솔에서 파일>새로 만들기>Apex 클래스를 선택합니다. 이름을 ObjectService로 지정하고 만들기를 선택한 후 다음 코드를 편집기에 붙여넣습니다.
public class ObjectService {
@AuraEnabled
public static String getObjectType(String objectId) {
Id conId = objectId;
return String.valueOf(conId.getSobjectType());
}
}
라이트닝 구성 요소를 만들려면 다음 단계를 수행합니다.
파일>새로 만들기>라이트닝 구성 요소를 선택합니다.
구성 요소의 이름을 지정합니다.
CopilotForService를 예로 들 수 있습니다.
구성 요소가 생성될 때 표시되는 번들 패널에서 컨트롤러를 선택하고 다음 코드를 붙여넣습니다.
({
onTabFocused : function(component, event, helper) {
var currentTabId = event.getParam('currentTabId');
var previousTabId = event.getParam('previousTabId');
var workspaceAPI = component.find("workspace");
if(currentTabId) {
workspaceAPI.getTabInfo({
tabId : currentTabId
}).then(function(response) {
var action = component.get("c.getObjectType");
var recordId = response.recordId;
action.setParams({"objectId": recordId});
action.setCallback(this, function(response) {
var state = response.getState();
if(state === "SUCCESS") {
component.set("v.objectType",response.getReturnValue());
var type = response.getReturnValue();
console.log("Object details:", recordId, type);
var objectType = 0;
if (type == 'Case') {
objectType = 1;
} else if (type == 'EmailMessage') {
objectType = 2;
} else if (type == "LiveChatTranscript") {
objectType = 8;
}
console.log("iframe: ", document.querySelector('iframe.CFSLightning'));
// Invoke adapter to navigate based on objectid and objecttype
document.querySelector('iframe.CFSLightning').contentWindow.postMessage({
messageType: "onPageNavigateFromSFLightningComponent",
messageData: JSON.stringify({
value: JSON.stringify({
objectId: recordId,
objectType: objectType,
sourceId: "b54abfa8-3d78-4aa0-ae3f-1e2ffbc56850"
})
})
}, "*");
} else {
console.log('Problem updating the case, response state: ' + state);
}
});
$A.enqueueAction(action);
});
} else {
// When user navigates to the entity list page, switch to global session
console.log("global!");
document.querySelector('iframe.CFSLightning').contentWindow.postMessage({
messageType: "onPageNavigateFromSFLightningComponent",
messageData: JSON.stringify({
value: JSON.stringify({
objectId: "",
objectType: 0,
sourceId: "b54abfa8-3d78-4aa0-ae3f-1e2ffbc56850"
})
})
}, "*");
}
}
})