Weiteren Status in Zammad einfügen
Einleitung
Bei der Installation und Konfiguration eines Zammad-Servers kommt einem vielleicht der Wunsch, einen weiteren Status einzufügen, um Tickets besser kategorisieren zu können. Wie wir so einen Status einfügen können, erkläre ich in den nachfolgenden Schritten:
Status in Zammad einfügen
Wenn wir den Status erstellen möchten, müssen wir im ersten Schritt schauen, welche ID wir unserem Status vergeben. Dazu fragen wir die API des Zammad-Servers ab. Dazu geben wir den folgenden Link im Browser ein:
https://<URL des Zammad-Servers>/api/v1/ticket_states
Dort schauen wir, welche IDs alle vergeben sind. In einer Standard-Installation sind die IDs 1 - 7 schon vergeben. Unser Status erhält dann die ID 8.
Die Informationen zum Status müssen wir für Zammad im JSON-Format definieren.
{
"id": 8,
"state_type_id": 5,
"name": "in Arbeit",
"next_state_id": null,
"ignore_escalation": true,
"default_create": false,
"default_follow_up": false,
"note": "in Arbeit",
"active": true
}
Diese Daten fügen wir dann in dem folgenden Befehl ein, um die Daten an den Zammad-Server zu übermitteln.
# Mit Zertifikatsüberprüfung
curl -u admin:<Kennwort> -H "Content-Type: application/json" -X POST -d '{"id": 8, "state_type_id": 5, "name": "in Arbeit", "next_state_id": null, "ignore_escalation": false, "default_create": false, "default_follow_up": false, "note": "in Arbeit", "active": true }' https://<URL Zammad-Server>/api/v1/ticket_states
# Ohne Zertifikatsüberprüfung
curl -k -u admin:<Kennwort> -H "Content-Type: application/json" -X POST -d '{"id": 8, "state_type_id": 5, "name": "in Arbeit", "next_state_id": null, "ignore_escalation": false, "default_create": false, "default_follow_up": false, "note": "in Arbeit", "active": true }' https://<URL Zammad-Server>/api/v1/ticket_states
Jetzt sind die Einträge in der Datenbank von Zammad eingetragen. Jetzt im letzten Schritt müssen wir die Einträge noch für die Weboberfläche verfügbar machen.
Dazu müssen wir die Rails-Shell von Zammad in unserer Terminal-Sitzung mit dem Zammad-Server öffnen.
zammad run rails c
Dort geben wir den folgenden Befehl ein:
ObjectManager::Attribute.add(
force: true,
object: 'Ticket',
name: 'state_id',
display: 'State',
data_type: 'select',
data_option: {
relation: 'TicketState',
nulloption: true,
multiple: false,
null: false,
default: Ticket::State.find_by(default_follow_up: true).id,
translate: true,
filter: Ticket::State.by_category(:viewable).pluck(:id),
},
editable: false,
active: true,
screens: {
create_middle: {
'ticket.agent' => {
null: false,
item_class: 'column',
filter: Ticket::State.by_category(:viewable_agent_new).pluck(:id),
},
'ticket.customer' => {
item_class: 'column',
nulloption: false,
null: true,
filter: Ticket::State.by_category(:viewable_customer_new).pluck(:id),
default: Ticket::State.find_by(default_create: true).id,
},
},
edit: {
'ticket.agent' => {
nulloption: false,
null: false,
filter: Ticket::State.by_category(:viewable_agent_edit).pluck(:id),
},
'ticket.customer' => {
nulloption: false,
null: true,
filter: Ticket::State.by_category(:viewable_customer_edit).pluck(:id),
default: Ticket::State.find_by(default_follow_up: true).id,
},
},
},
to_create: false,
to_migrate: false,
to_delete: false,
position: 40,
)
Jetzt melden wir uns in Zammad neu an, und der neue Status sollte jetzt auswählbar sein.