Rails commands
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.
Starting Zammad's Rails console
Execute a single command
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 raiRun interactive Rails console
docker compose run --rm zammad-railsserver bundle exec raiRails console safe mode
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 cTicket commands
Get the RAW email
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).
Update all tickets of a specific customer
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)Get ticket state types
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"], ...`.User commands
Find user
To work on user information or to check for specific information, you'll need to find it first.
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')Unlock a locked user account
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_failedChange / update email address of user
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.
Change / update login name of user
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.
Set admin rights for user
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!Set password for user
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')Remove password for user
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)Group commands
Find a group
Group.find_by(name: 'Users').follow_up_possibleChat commands
Remove IP address logs
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)
endZammad settings
In questa sezione, puoi trovare alcune impostazioni che puoi impostare anche nell'interfaccia di Zammad.
Auto shutdown setting
Defines if an automatic shutdown of Zammad is performed when the database has been changed (e.g. after custom attributes have been created in the object manager). The underlying system (Systemd, Docker, Kubernetes) will then restart the processes/containers after this shutdown. The default setting is true.
Impostare questo su false potrebbe avere senso solo in casi molto rari e dovrai riavviare.
Setting.set('auto_shutdown', 'true')Ticket_hook setting
Questo ti darà l'hook del ticket che troverai all'interno di [] davanti al numero del ticket.
Setting.get('ticket_hook')FQDN setting
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')HTTP(s) setting
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')Storage provider setting
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')Enable 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).
Hidden settings
In questa sezione puoi trovare alcune impostazioni che non troverai nell'interfaccia di Zammad.
Send all outgoing emails to a BCC-mailbox
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')Activate counter on grouped overviews
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')Default ticket type on creation
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')Show a note during article creation
Se devi mostrare ai tuoi agenti una nota con informazioni importanti durante la creazione dell'articolo.

Ticket creation
Setting.set('ui_ticket_create_notes', {
:"phone-in" => "Stai per annotare una chiamata inNew article in existing tickets
Setting.set('ui_ticket_add_article_hint', {
:"note-internal" => "Stai scrivendo unCheck current configuration
Setting.get('ui_ticket_create_notes')Setting.get('ui_ticket_add_article_hint')Markup options
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)
Show email address of customer on customer selection (ticket creation)
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')Change font settings for outgoing HTML emails
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')Highlight customer's open ticket count
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.
| Situation / View | no indication | warning (orange) | danger (red) |
|---|---|---|---|
| Ticket detail view | < 2 | 2 | >= 3 |
| New Ticket dialog | 0 | 1 | >= 2 |
Activate attachment tab in sidebar
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')Time period for showing customer profile on new calls
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')Set public "notes" as SLA relevant
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)Activate priority icon
Per attivare icone aggiuntive che rappresentano la priorità, usa il comando seguente:
Setting.set('ui_ticket_priority_icons', true)Other useful commands
Remove AI feature
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.
Fetch emails
Il comando seguente eseguirà un recupero manuale dei canali email. Mostrerà anche gli errori che.
Channel.fetchReprocess failed emails
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).
Export all failed emails to a local folder
rake zammad:email_parser:failed_email:export_all`Puoi trovare la posizione dell'email esportata nell'output della tua console. Ogni volta.
Edit the email
L'email è stata esportata nel passaggio sopra. Ora puoi darle un'occhiata e provare a.
Import and reprocess locally modified email
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.
Delete unwanted emails
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.
Show and retry failed data privacy jobs
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:retryFill a test system with test data
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:Deleting records
DANGER
☠️ I comandi elencati qui causano una perdita di dati irrecuperabile! Procedi solo se sai cosa stai facendo.
Removing tickets (and their articles)
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_allRemoving users
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_allRemoving organizations
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")Step 3: Proceed with deletion
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
endRemoving system records
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_allReset Zammad installation
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à.