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();
}