Comandi Rails
Zammad usa Ruby on Rails quindi puoi usare la console Rails.
WARNING
Controlla attentamente i tuoi comandi prima di eseguirli, poiché alcuni di questi comandi potrebbero causare danni.
Avviare la console Rails di Zammad
Esegui un singolo comando
INFO
Sostituisci {COMMAND} con il comando che vuoi eseguire.
TIP
Se inserisci una p davanti al tuo comando (ad esempio come rails r 'p Delayed::Job.count'),
docker compose run --rm zammad-railsserver bundle exec raiEsegui la console Rails interattiva
docker compose run --rm zammad-railsserver bundle exec raiModalità sicura della console Rails
Normalmente, l'avvio della console Rails richiede che determinati servizi di terze parti siano attivi e in esecuzione.
Tuttavia, è possibile avviare la console Rails in modalità sicura impostando una speciale variabile d'ambiente.
ZAMMAD_SAFE_MODE=1 zammad run rails cComandi ticket
Ottieni l'email grezza
Il seguente comando ti aiuta a controllare i file EML ricevuti che Zammad ha recuperato. Questo comando.
Per ottenere il file EML del primo articolo, puoi usare il seguente comando. Nel nostro esempio.
Ticket.find_by(number:'101234').articles.first.as_raw.contentSe necessario, puoi anche ottenere il contenuto grezzo di articoli successivi (dovrai trovare l'ID corrispondente).
Nel primo passaggio otteniamo tutti gli ID degli articoli del ticket:
Ticket.find_by(number:'101234').article_idsOutput:
[4, 3, 2]Dall'elenco ottenuto, possiamo quindi ottenere il contenuto degli articoli:
Ticket::Article.find(3).as_raw.contentINFO
Se usi semplicemente Ticket::Article.find(3) puoi vedere ulteriori informazioni (come chi ha inviato).
Aggiorna tutti i ticket di un cliente specifico
WARNING
Tieni presente che questa azione può essere costosa in termini di risorse, se hai molti ticket, questa.
Ticket.where(customer_id: 4).update_all(customer_id: 1)Ottieni i tipi di stato ticket
Questo mostrerà tutti i tipi di stato necessari per creare nuovi stati ticket:
Ticket::StateType.pluck(:id, :name)Quanto sopra restituirà sia l'ID che il nome del tipo - ad esempio:
`[[1, "new"], [2, "open"], ...`.Comandi utente
Trova utente
Per lavorare sulle informazioni utente o controllare informazioni specifiche, dovrai.
ID utente già conosciuto:
User.find(4)Ricerca dell'utente tramite il suo indirizzo email:
User.find_by(email: 'your@email')Ricerca dell'utente tramite il suo login:
User.find_by(login: 'john.doe')Sblocca un account utente bloccato
TIP
Sbloccare un account utente bloccato è supportato anche dall'interfaccia web di Zammad!
A volte capita che un utente si blocchi da solo provando ripetutamente la password sbagliata più volte.
L'utente non può più accedere (per sempre) se non cambia la password o tu non resetti.
u=User.find(**USERID**)u.login_failed=0u.save!Puoi anche verificare se l'account è bloccato eseguendo il seguente comando (risultato.
User.find(**USERID**).login_failedCambia/aggiorna indirizzo email dell'utente
Se necessario, puoi semplicemente cambiare l'indirizzo email dell'utente.
INFO
Tieni presente che l'attributo login non viene influenzato da questo e Zammad potrebbe quindi mostrare informazioni diverse.
u = User.find(**USERID**)u.email = 'user@exmaple.com'u.save!Devi prima trovare l'ID dell'utente per questo.
Cambia/aggiorna nome di accesso dell'utente
Cambia il nome utente dell'utente (ad esempio se vuoi accedere con un nome utente più breve invece di).
u = User.find(**USERID**)u.login = 'user@exmaple.com'u.save!Devi prima trovare l'ID dell'utente per questo.
Imposta diritti di amministratore per l'utente
Non hai più accesso a Zammad? Concedi a te stesso o a un altro utente diritti amministrativi.
u = User.find_by(email: 'you@example.com')u.roles = Role.where(name: ['Agent', 'Admin'])u.save!Imposta password per l'utente
Tu o l'utente avete dimenticato la password? Nessun problema! Reimpostala semplicemente a mano se necessario.
User.find_by(email: 'you@example.com').update!(password: 'your_new_password')Rimuovi password per l'utente
Se hai aggiunto un secondo metodo di autenticazione (ad esempio LDAP) dopo il lancio, potrebbe esserci ancora.
User.find_by(email: 'you@example.com').update!(password: nil)Comandi gruppo
Trova un gruppo
Group.find_by(name: 'Users').follow_up_possibleComandi chat
Rimuovi i log degli indirizzi IP
Usa il seguente comando per rimuovere tutti i record degli indirizzi IP dalle chat chiuse che non sono.
Chat::Session.where(state: 'closed').where('updated_at < ?', 7.days.ago).each do |session|session.preferences.delete('geo_ip')session.preferences.delete('remote_ip')session.save!(touch: false)
endImpostazioni Zammad
In questa sezione, puoi trovare alcune impostazioni che puoi impostare anche nell'interfaccia di Zammad.
Impostazione spegnimento automatico
Definisce se viene eseguito uno spegnimento automatico di Zammad quando il database è stato modificato.
Impostare questo su false potrebbe avere senso solo in casi molto rari e dovrai riavviare.
Setting.set('auto_shutdown', 'true')Impostazione ticket_hook
Questo ti darà l'hook del ticket che troverai all'interno di [] davanti al numero del ticket.
Setting.get('ticket_hook')Impostazione FQDN
Ottieni l'impostazione FQDN corrente di Zammad e, se necessario, regolala.
INFO
Questa impostazione non ha effetto sui certificati SSL o su qualsiasi configurazione del server web.
Ottieni l'FQDN corrente:
Setting.get('fqdn')Imposta un nuovo FQDN:
Setting.set('fqdn', 'new.domain.tld')Impostazione HTTP(s)
Questa impostazione appartiene indirettamente alla tua impostazione FQDN ed è rilevante per gli URL basati su variabili.
WARNING
Questa impostazione influisce anche sul comportamento del token CSRF di Zammad. Se imposti questo su HTTPs ma.
Ottieni il tipo http corrente:
Setting.get('http_type')Cambia il tipo http in HTTPs:
Setting.set('http_type', 'https')Impostazione provider di archiviazione
L'impostazione del provider di archiviazione è impostata su DB nelle installazioni predefinite.
Ottieni l'archiviazione allegati corrente:
Setting.get('storage_provider')Cambia l'archiviazione allegati nel database
Setting.set('storage_provider', 'DB')Se hai già file memorizzati e vuoi spostarli, puoi usare il seguente esempio.
Sposta i file dal DB al File con un ritardo specificato dopo ogni file in secondi:
Store::File.move('DB', 'File', delay_in_sec)Le seguenti impostazioni sono disponibili in un'installazione predefinita:
DB(database)File(Filesystem (/opt/zammad/storage/))
Configurazione di Elasticsearch
Se la tua installazione Elasticsearch cambia, puoi usare i seguenti comandi per assicurarti che.
Cambia l'URL di Elasticsearch:
Setting.set('es_url', 'http://127.0.0.1:9200')Cambia l'utente Elasticsearch (ad esempio per l'autenticazione):
Setting.set('es_user', 'elasticsearch')Cambia la password di Elasticsearch per l'autenticazione:
Setting.set('es_password', 'zammad')Cambia il nome dell'indice:
Setting.set('es_index', Socket.gethostname + '_zammad')Ignora l'indicizzazione dei file in base all'estensione:
Setting.set('es_attachment_ignore', %w[.png .jpg .jpeg .mpeg .mpg .mov .bin .exe .box .mboLimita la dimensione dell'allegato:
Setting.set('es_attachment_max_size_in_mb', 50)Attiva o disattiva la verifica SSL:
Setting.set('es_ssl_verify', 'false')Abilita proxy
Imposta un proxy da usare da Zammad:
Setting.set('proxy', 'proxy.example.com:3128')Setting.set('proxy_username', 'some user')Setting.set('proxy_password', 'some pass')Disabilita Asciifold
Questa funzionalità è attiva per impostazione predefinita. Nel caso tu abbia bisogno di una ricerca più precisa, puoi disattivarla.
Setting.set('es_asciifolding', false)Dopo aver modificato l'impostazione, assicurati di [ricostruire l'indice di ricerca](/it/tutorials/connect-config-elasticsearch#costruisci-ricostruisci- l-indice-di-ricerca).
Impostazioni nascoste
In questa sezione puoi trovare alcune impostazioni che non troverai nell'interfaccia di Zammad.
Invia tutte le email in uscita a una casella BCC
Questa opzione ti permette di inviare tutte le email in uscita (non le notifiche) a una specifica casella email.
Setting.set('system_bcc', 'alias@domain.tld')Puoi facilmente controllare l'impostazione BCC corrente eseguendo:
Setting.get('system_bcc')Attiva contatore sulle panoramiche raggruppate
Questo abilita un valore del numero di ticket in ogni intestazione per gli elementi raggruppati.
Abilita il contatore per le panoramiche raggruppate:
Setting.set('ui_table_group_by_show_count', true)Disabilita il contatore per le panoramiche raggruppate:
Setting.set('ui_table_group_by_show_count', false)Ottieni l'impostazione corrente (nil è false):
Setting.get('ui_table_group_by_show_count')Tipo di ticket predefinito alla creazione
Zammad ti permette di definire il tipo di articolo predefinito alla creazione del ticket. Per impostazione predefinita questo è.
Puoi scegliere tra
phone-in(chiamata in entrata, predefinito),phone-out(chiamata in uscita) eemail-out(invio di un'email).
Setting.set('ui_ticket_create_default_type', 'email-out')Per controllare quale impostazione è attualmente impostata, esegui semplicemente:
Setting.get('ui_ticket_create_default_type')Mostra una nota durante la creazione dell'articolo
Se devi mostrare ai tuoi agenti una nota con informazioni importanti durante la creazione dell'articolo.

Creazione ticket
Setting.set('ui_ticket_create_notes', {
:"phone-in" => "Stai per annotare una chiamata inNuovo articolo in ticket esistenti
Setting.set('ui_ticket_add_article_hint', {
:"note-internal" => "Stai scrivendo unControlla la configurazione corrente
Setting.get('ui_ticket_create_notes')Setting.get('ui_ticket_add_article_hint')Opzioni di markup
Per applicare la formattazione del testo, usa il seguente markup:
||corsivo|||grassetto|_sottolineato_//barrato//§tasto§(rende un tasto della tastiera come tasto)¶(nuova riga)[testo link](/example.com)
Mostra l'indirizzo email del cliente nella selezione cliente (creazione ticket)
Per impostazione predefinita, Zammad non mostrerà gli indirizzi email dei clienti. L'opzione seguente.
Setting.set('ui_user_organization_selector_with_email', true)Ottieni lo stato corrente di questa impostazione con:
Setting.get('ui_user_organization_selector_with_email')Cambia le impostazioni del font per le email HTML in uscita
INFO
Alcuni client (come Outlook) potrebbero passare ad altre impostazioni mentre potrebbe funzionare per altri.
L'impostazione seguente ti permette di regolare l'impostazione del font email di Zammad. Questa impostazione non.
Setting.set("html_email_css_font", "font-family:'Helvetica Neue', Helvetica, Arial, GenevaOttieni lo stato corrente di questa impostazione con:
Setting.get('html_email_css_font')Evidenzia il conteggio dei ticket aperti del cliente
Questa opzione migliora il conteggio dei ticket aperti del cliente selezionato. Evidenzia il conteggio.
Setting.set('ui_sidebar_open_ticket_indicator_colored', true)Le impostazioni sopra hanno soglie specifiche come segue. Non puoi regolare queste soglie.
| Situazione / Visualizzazione | nessuna indicazione | avviso (arancione) | pericolo (rosso) | |-------------
Attiva scheda allegati nella barra laterale
Questa opzione attiva una nuova scheda nella barra laterale destra nella visualizzazione ticket che mostra tutti gli allegati.
Setting.set('ui_ticket_zoom_sidebar_article_attachments', 'true')Periodo di tempo per mostrare il profilo cliente su nuove chiamate
Zammad mostra la finestra di dialogo del profilo cliente quando arriva una chiamata di questo cliente e c'è.
Imposta il periodo di tempo a 90 giorni:
Setting.set('cti_customer_last_activity', '90')Imposta le "note" pubbliche come rilevanti per SLA
Normalmente, le note non sono rilevanti per SLA. Usa il seguente comando per includere quelle visibili pubblicamente.
INFO
Per impostazione predefinita, i clienti non vengono notificati quando vengono aggiunte note pubbliche a un ticket.
Abilita SLA a contare le note come comunicazione:
Ticket::Article::Type.find_by(name:'note').update!(communication: true)Abilita SLA a ignorare le note come comunicazione:
Ticket::Article::Type.find_by(name:'note').update!(communication: false)Attiva icona priorità
Per attivare icone aggiuntive che rappresentano la priorità, usa il comando seguente:
Setting.set('ui_ticket_priority_icons', true)Altri comandi utili
Rimuovi la funzionalità AI
La funzionalità AI di Zammad è completamente opzionale e richiede una configurazione prima che qualsiasi richiesta AI.
Disabilita qualsiasi provider AI, nel caso tu l'abbia già configurato:
Setting.set('ai_provider', false)Disabilita il permesso di nascondere le impostazioni dall'interfaccia:
Permission.where("name LIKE 'admin.ai%'").update!(active: false)Per riattivarlo, imposta il flag active su true.
Recupera email
Il comando seguente eseguirà un recupero manuale dei canali email. Mostrerà anche gli errori che.
Channel.fetchRiprocessa email fallite
Quando Zammad recupera un'email che non riesce ad analizzare (ad esempio a causa di un bug del parser o di un messaggio malformato).
Nel caso di un messaggio malformato (ad esempio un indirizzo email non valido in uno dei campi di intestazione).
Esporta tutte le email fallite in una cartella locale
rake zammad:email_parser:failed_email:export_all`Puoi trovare la posizione dell'email esportata nell'output della tua console. Ogni volta.
Modifica l'email
L'email è stata esportata nel passaggio sopra. Ora puoi darle un'occhiata e provare a.
Importa e riprocessa l'email modificata localmente
Dopo aver modificato l'email, esegui:
rake zammad:email_parser:failed_email:import path/to/your/email.emlQuesto applicherà le tue modifiche dal file al database. Puoi anche passare l'intera cartella.
TIP
Assicurati di eseguire questi comandi solo dalla cartella principale di Zammad /opt/zammad. Potrebbero esserci.
Elimina email indesiderate
In caso di email indesiderate come spam, puoi eliminarle dal database dopo l'esportazione.
rake zammad:email_parser:failed_email:delete path/to/your/email.emlSe passi la cartella di esportazione come argomento, tutte le email contenute verranno rimosse.
Mostra e riprova i job sulla privacy dei dati falliti
In rari casi, i job sulla privacy dei dati di Zammad potrebbero fallire. Per mostrarli, puoi usare il seguente.
rake zammad:data_privacy:failed:showPer riprovare i job sulla privacy dei dati falliti, puoi usare il seguente comando. Tuttavia, senza modifiche.
rake zammad:data_privacy:failed:retryRiempi un sistema di test con dati di test
DANGER
Non eseguire questo in un ambiente di produzione! Questo può rallentare Zammad ed è difficile da annullare.
Il comando seguente aggiungerà 50 agenti, 1000 clienti, 20 gruppi, 40 organizzazioni,
FillDb.load(agents: 50,customers: 1000,groups: 20,organizations: 40,overviews: 5,tickets:Eliminazione record
DANGER
☠️ I comandi elencati qui causano una perdita di dati irrecuperabile! Procedi solo se sai cosa stai facendo.
Rimozione ticket (e i loro articoli)
Elimina un ticket (specificato tramite ID database):
Ticket.find(4).destroyElimina tutti i ticket:
Ticket.destroy_allMantieni alcuni ticket (specificati tramite ID database); elimina il resto:
tickets_to_keep = [1, 2, 3]Ticket.where.not(id: tickets_to_keep).destroy_allRimozione utenti
WARNING
I clienti non possono essere eliminati mentre hanno ticket rimanenti nel sistema.
Comè tale
TIP
Se non sei sicuro di cosa fare e devi saperne di più su cosa fa Zammad quando rimuove.
Rimuovere utenti è possibile in 2 modi: un singolo utente e in blocco.
Rimuovi un singolo utente:
User.find_by(email: '<email address>').destroyRimuovi più utenti:
User.where(
email: ['<email address 1>', '<email address 2>']
).destroy_allRimozione organizzazioni
INFO
Rimuovere un'organizzazione non elimina i clienti associati.
Passo 1: Seleziona organizzazioni
Per stato "attivo":
organizations = Organization.where(active: false)Per nome:
organizations = Organization.where(name: 'Acme')Per corrispondenza parziale sulle note:
organizations = Organization.where('note LIKE ?', '%foo%')Passo 2: Anteprima delle organizzazioni interessate
puts organizations.map { |org| "ORGANIZATION #{org.name}" }.join("\n")Passo 3: Procedi con l'eliminazione
organizations.each do |org|
puts %{Preparazione eliminazione organizzazione "#{org.name}"...org.members.each do |member|
puts " Rimozione di #{member.fullname} dall'organizzazione..." puts " Eliminazione di #{org.name}..."
org.destroy
endRimozione record di sistema
Rimuovi tutte le notifiche online:
OnlineNotification.destroy_allRimuovi tutte le voci dall'Activity Stream (dashboard):
ActivityStream.destroy_allRimuovi le voci per tutti gli oggetti visualizzati di recente (ticket, utenti, organizzazioni):
RecentView.destroy_allRimuovi tutte le informazioni di cronologia da ticket, utenti e organizzazioni (pericoloso!):
History.destroy_allReimposta installazione Zammad
DANGER
I comandi seguenti sono intenzionalmente incompleti, gli output di errore ti guideranno!
Tronca il database:
rake zammad:db:truncateMigra il database:
rake db:migrateCarica i dati seed:
rake db:seedSvuota la cache e ricarica le impostazioni:
rake zammad:db:rebuildTIP
Puoi anche usare il comando zammad:db:reset per reimpostare la tua istanza. Questo task troncherà.