質問
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
1回だけ実行したいコマンド専用のAPIと chat:departmentStatus
ページが読み込まれた後、指定された部門が変更されたときに起動するコマンドのAPI。
さまざまな Web Widget(クラシック)APIワークフローの詳細については、以下の記事を参照してください。
- 特定の部門がオンラインのときにのみWebページにChatを表示するようにWeb Widget(Classic)を設定できますか?
- タイムアウトしたチャット訪問者が再接続した後に部門を再適用できますか?
- 訪問者がタイムアウトして再接続した場合に、プリチャットフォームが確実に表示されるようにするにはどうすればよいですか?
翻訳に関する免責事項:この記事は、お客様の利便性のために自動翻訳ソフトウェアによって翻訳されたものです。Zendeskでは、翻訳の正確さを期すために相応の努力を払っておりますが、翻訳の正確性については保証いたしません。
翻訳された記事の内容の正確性に関して疑問が生じた場合は、正式版である英語の記事を参照してください。
0 コメント
サインインしてコメントを残してください。