질문
JavaScript API로 웹 위젯(클래식) 의 기본 동작을 수정하고 싶습니다. 헬프 센터를 읽고 많은 다른 구현을 찾았습니다. 이러한 웹 위젯(클래식) API 워크플로우를 결합하려면 어떻게 해야 하나요?
답변
적시에 위젯 설정을 적용하세요. 일부 워크플로우는 부서 업데이트 후에 실행되어야 하며, 다른 워크플로우는 위젯이 처음 연결되거나 다시 연결될 때 실행되어야 합니다. 채팅 세션이 존재하기 전에 위젯이 로드될 수 있고, 세션 시간 제한 또는 페이지 새로 고침 후에 방문자가 다시 연결할 수 있기 때문에 이는 중요합니다. 페이지 로드 시 코드가 한 번만 실행되는 경우에는 활성 채팅 세션에서 일부 설정을 놓치거나 위젯이 다시 연결한 후 이러한 설정을 잃을 수 있습니다.
이 예에서는 CRM 부서를 설정하는 방법을 보여줍니다. 이 예에서 "CRM"은 Chat 위젯 설정에서 구성하는 Chat 부서의 이름입니다(예: 영업팀이나 계정 팀에서 사용하는 부서). "CRM"을 계정에 있는 부서의 정확한 이름으로 바꿉니다.
<script id="ze-snippet"
src="https://static.zdassets.com/ekr/snippet.js?key=ACCOUNT_KEY"> </script>
<script>
// first hide the widget on page load
zE('webWidget', 'hide');
// whenever an unread message appears unhide and open the widget
zE('webWidget:on', 'chat:unreadMessages', function(number) {
zE('webWidget', 'show');
zE('webWidget', 'open');
});
// this callback runs whenever chat first connects (or reconnects)
zE('webWidget:on', 'chat:connected', function() {
// put any code you only want run once here
});
// this callback runs whenever a department status changes
zE('webWidget:on', 'chat:departmentStatus', function(dept) {
// only set the widget online for chat if this department was online
if (dept.name === 'CRM' && dept.status === 'online') {
// apply the chat widget settings
zE('webWidget', 'updateSettings', {
webWidget: {
chat: {
departments: {
enabled: [''],
select: 'CRM'
},
suppress: false
}
}
});
} else if (dept.name === 'CRM' && dept.status !== 'online') {
// or suppress chat (optional: apply contact form settings here)
zE('webWidget', 'updateSettings', {
webWidget: {
chat: {
suppress: true
}
}
});
}
});
</script>
다음은 스크립트에 대한 두 가지 사항입니다. 스크립트의 나머지 부분을 변경하지 않고 읽지 않은 메시지에 초기 숨기기 및 후속 표시를 생략할 수 있습니다. 이러한 호출은 위젯이 로드되자마자 실행되므로 스크립트가 맨 위에 배치합니다. 선택 사항입니다.
일부 사용자 지정 워크플로우는 updateSettingsAPI 블록을chat:connected콜백에 넣을 수 있지만chat:departmentStatus콜백에 넣을 수도 있습니다. 위젯은 처음 연결될 때 또는 세션 시간 제한으로 인해 다시 연결한 후에 적용합니다. 일반적으로 설정이 적용되어야 하는 이벤트에 워크플로우를 연결합니다.
- 사용
chat:connected모든 부서 상태를 새로 고칠 때마다 반복되어서는 안 되는 초기 구성과 같이 채팅 세션당 한 번 실행되어야 하는 논리의 경우 - 사용
chat:departmentStatus부서 상태가 변경되고 위젯이 초기화될 때 실행될 수 있으므로 부서 가용성 또는 라우팅 변경과 동기화 상태를 유지해야 합니다.
다양한 웹 위젯(클래식) API 워크플로우에 대한 자세한 내용은 다음을 참조하세요.
- 특정 부서가 온라인 상태일 때에만 웹 페이지에 Chat을 표시하도록 웹 위젯(클래식) 구성할 수 있나요?
- 시간이 초과된 채팅 방문자가 다시 연결한 후 부서를 다시 적용할 수 있나요?
- 방문자가 시간이 초과되었지만 다시 연결되는 경우 채팅 전 양식 표시되도록 하려면 어떻게 해야 하나요?
번역 고지 사항: 본 문서는 콘텐츠에 대한 기본적인 이해를 제공하기 위해 자동 번역 소프트웨어를 사용하여 번역되었습니다. 정확한 번역을 제공하고자 합당한 노력을 기울였으나 Zendesk는 번역의 정확성을 보장하지 않습니다.
번역된 문서에 포함된 정보의 정확성과 관련하여 질문이 있으시면 문서의 공식 버전인 영문 버전을 참조하시기 바랍니다.