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.

Avvertenza: Questo articolo viene fornito solo a scopo didattico. Zendesk non offre alcun supporto o garanzia per il codice. Inoltre, Zendesk non supporta tecnologie di terzi come JavaScript, jQuery o CSS. Se riscontri eventuali problemi, lascia un commento o prova a cercare una soluzione online.

Passaggio 1: Trova l'ID del modulo ticket

  1. Nei moduli ticket, apri il modulo ticket appropriato
  2. Nell’URL, trova il numero ID, dopo l’ultima barra

ID modulo ticket

Passaggio 2: Trova il nome dell'organizzazione

  1. In Support, apri la scheda Clienti
  2. 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.

  1. In Guide, fai clic sull’icona Personalizza aspetto () nella barra laterale
  2. Fai clic sul nome del tema da modificare
  3. Fai clic sul menu delle opzioni e seleziona Modifica codice, quindi Script.js
  4. 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);
          });
        }
      });
  5. Incolla il codice nel modello JavaScript del codice del centro assistenza
  6. Sostituisci la variabile formID = 6502769669773 con l’ID del modulo ticket da nascondere
  7. Sostituisci "ZENDESK" con il nome dell’organizzazione per la quale desideri sia visibile il modulo ticket
  8. Se l’utente non copia tutti i caratteri, come ; e } dal modello, il codice potrebbe interrompere la pagina
  9. 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();
}
Powered by Zendesk