Crea un’esperienza di assistenza personalizzata presentando ai clienti solo i moduli ticket pertinenti nel centro assistenza. In questo tutorial apprenderai come nascondere moduli ticket specifici in base all’organizzazione di un utente.
Il workflow include i passaggi seguenti.
- Passaggio 1: Trova l'ID del modulo del ticket
- Fase2: Trova il nome dell'organizzazione
- Fase 3: Modifica JavaScript
Questo workflow non funziona con gli utenti non autenticati o che non hanno un'organizzazione. Per questi utenti verranno visualizzati tutti i moduli.
Se il tuo tema usa i modelli Guide V2, devi importare jQuery. Per tutti i dettagli, leggi l'articolo: Importazione o aggiornamento di jQuery.
Passaggio 1: Trova l'ID del modulo ticket
- Nei moduli ticket, apri il modulo ticket appropriato
- Nell’URL, trova il numero ID, dopo l’ultima barra
Passaggio 2: Trova il nome dell'organizzazione
- In Support, apri la scheda Clienti
- Sfoglia o cerca le organizzazioni per trovare il nome corretto
Fase 3: Modifica JavaScript
Se il tuo tema usa i modelli Guide V2, devi importare jQuery. Per tutti i dettagli, leggi l'articolo: Importazione o aggiornamento di jQuery. Questo codice si basa sull’evento di mutazione DOMNodeInserted. Le versioni più recenti di Chrome e Chromium hanno sospeso il supporto per questo evento di mutazione. Per garantire la compatibilità con i browser che non supportano DOMNodeInserted, segui le linee guida di Mutation Observer ed esegui la migrazione a una funzione più recente.
- In Guide, fai clic sull’icona Personalizza aspetto (
) nella barra laterale
- Fai clic sul nome del tema da modificare
- Fai clic sul menu delle opzioni e seleziona Modifica codice, quindi
Script.js
- Copia il blocco di codice qui sotto:
$(document).ready(function() { var formID = 6502769669773; // Change this to the form ID you wish to remove var userOrgs = window.HelpCenter.user.organizations; var userOrgNames = userOrgs.map(org => org.name); if (!(userOrgNames.includes("ZENDESK"))) { // Specify the organization name here // If the user does not belong to the organization specified, remove the form option from the dropdown $('#request_issue_type_select option[value="' + formID + '"]').remove(); $('.nesty-panel').on('DOMNodeInserted', function(e) { $(this).children('ul').children().remove('#' + formID); }); } });
- Incolla il codice nel modello JavaScript del codice del centro assistenza
- Sostituisci la variabile
formID = 6502769669773
con l’ID del modulo ticket da nascondere - Sostituisci
"ZENDESK"
con il nome dell’organizzazione per la quale desideri sia visibile il modulo ticket - Se l’utente non copia tutti i caratteri, come
;
e}
dal modello, il codice potrebbe interrompere la pagina - Salva il modello e pubblica le modifiche
Il codice fornito conserva spazio per altre organizzazioni. Per aggiungere ulteriori moduli e organizzazioni, copia l'istruzione if
qui sopra e inseriscila sotto l'istruzione if
esistente in basso, assicurandoti di sostituire l'ID del modulo ticket con quello corretto e di inserire l'organizzazione che vuoi controllare per verificare la presenza dell’utente al suo interno. Ripeti l'operazione per tutti i moduli ticket e le organizzazioni che desideri.
Per modificare il comportamento del codice in modo da visualizzare un modulo ticket a tutte le organizzazioni tranne quella specificata, rimuovi l’operatore NOT
(!)
dalla dichiarazione if
.
for (var c in HelpCenter.user.organizations) {
if (HelpCenter.user.organizations[c].name !== "ZENDESK"){
$("#TICKT_FORM_ID").remove();
}if (HelpCenter.user.organizations[c].name !== "MYORG"){
$("#TICKET_FORM_ID2").remove();
}
1 commento
Alessandro Caldani
Buonasera, su consiglio del supporto zendesk ho provato a seguire gli step di questo articolo per ottenere esattamente l'effetto descritto nel titolo. Nello specifico:
Specifico che sto utilizzando l'ultima versione di Chrome dato che ho letto che questo può fare differenza. Se qualcuno che ha già implementato questa personalizzazione volesse supportarmi mi farebbe sarebbe fantastico.
0