質問
Javascript API を使用して、Web Widget (Classic) のネイティブ動作を変更したいと考えています。ヘルプ センターを読んだところ、さまざまな実装が見つかりました。これらの異なる Web Widget (Classic) API ワークフローをどのように組み合わせることができますか?
回答
注意すべき最も重要なことは、ウィジェット設定をいつ適用するかです。部門が更新されるたびに実行する必要があるワークフローもあれば、ウィジェットが最初に接続または再接続するときに実行する必要があるワークフローもあります。これはこの簡単な設定例 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>
上記のスクリプトには、議論する価値のあることがいくつかあります。まず、スクリプトの残りの機能を変更することなく、ウィジェットを非表示にし、未読メッセージを受信したときにそれを表示する最初の手順を完全に省略できます。ウィジェットが読み込まれるとすぐに使用されるため、スクリプトの先頭に配置されています。これは厳密には必要ありません。
次に、一部のカスタム ワークフローは updateSettings API ブロックをchat:connectedコールバックに配置しますが、これをchat:departmentStatusに配置することもでき、ウィジェットが最初に接続 (または再接続) したときにも適用されることに注意してください。セッションのタイムアウト後)。このため、chat:connected
一度だけ実行したいコマンド専用の API と、chat:departmentStatus
ページの読み込み後に指定された部門が変更されるたびに起動するコマンドの API。
さまざまなWeb Widget (Classic) API ワークフローの詳細については、次の記事を参照してください。
- 特定の部門がオンラインの場合にのみ Web ページにチャットを表示するように Web Widget (Classic) を構成できますか?
- タイムアウトしたチャット訪問者が再接続した後、部門を再申請できますか?
- 訪問者がタイムアウトして再接続した場合、訪問者に事前チャット フォームが表示されるようにするにはどうすればよいですか?
翻訳に関する免責事項:この記事は、お客様の利便性のために自動翻訳ソフトウェアによって翻訳されたものです。Zendeskでは、翻訳の正確さを期すために相応の努力を払っておりますが、翻訳の正確性については保証いたしません。
翻訳された記事の内容の正確性に関して疑問が生じた場合は、正式版である英語の記事を参照してください。
0件のコメント