Domanda
Voglio modificare il comportamento nativo del Web Widget (versione classica) usando le API JavaScript. Ho letto il Centro assistenza e ho trovato molte implementazioni diverse. Come posso combinare questi diversi workflow dell'API Web Widget (versione classica)?
Risposta
La cosa più importante da sapere è quando applicare le impostazioni del widget. Alcuni workflow devono essere eseguiti ogni volta che un reparto viene aggiornato, mentre altri devono essere eseguiti alla prima connessione o riconnessione del widget. Questo è illustrato con questo esempio semplificato di impostazione del reparto 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>
Ci sono un paio di aspetti nello script precedente che vale la pena discutere. Innanzitutto, è possibile omettere completamente i passaggi iniziali per nascondere il widget e mostrarlo quando si riceve un messaggio non letto senza modificare il resto delle funzionalità dello script. Dato che vengono usate non appena il widget viene caricato, sono state posizionate all'inizio dello script. Non è strettamente necessario.
Successivamente, vale la pena notare che mentre alcuni workflow personalizzati inseriscono un blocco API updateSettings in una richiamata chat:connected , puoi anche inserirlo in un chat:departmentStatus, che verrà applicato anche quando il widget si collega (o si ricollega) dopo una sessione di timeout). Per questo motivo, usate il tasto chat:connected
API specifica per i comandi che si desidera attivare una sola volta e il chat:departmentStatus
API per comandi da attivare ogni volta che il reparto specificato cambia dopo il caricamento della pagina.
Per ulteriori informazioni sui diversi workflow dell'API Web Widget (versione classica) , consulta questi articoli:
- Posso configurare il Web Widget (versione classica) per presentare la chat sulla mia pagina web solo quando un reparto specifico è online?
- Posso presentare nuovamente domanda per il reparto dopo la riconnessione di un visitatore scaduto?
- Come posso assicurarmi che il modulo preliminare alla chat venga presentato al visitatore in caso di timeout ma si ricollega?
Avvertenza sulla traduzione: questo articolo è stato tradotto usando un software di traduzione automatizzata per fornire una comprensione di base del contenuto. È stato fatto tutto il possibile per fornire una traduzione accurata, tuttavia Zendesk non garantisce l'accuratezza della traduzione.
Per qualsiasi dubbio sull'accuratezza delle informazioni contenute nell'articolo tradotto, fai riferimento alla versione inglese dell'articolo come versione ufficiale.
0 commenti