Checklisten in Zammad können dazu verwendet werden, eine Reihe von Aufgaben abzuarbeiten, bevor ein Ticket geschlossen wird. Für wiederkehrende Aufgaben können Checklist-Templates erstellt und Tickets Checklisten basierend auf solchen Templates zugewiesen werden. Mit Hilfe von Webhooks und Trigger kann die Zuweisung von solchen Checklist-Templates automatisiert werden.
So könnte zum Beispiel der Tickettyp "Standard-Change" erstellt werden und mittels Core Workflow für Tickets dieses Typs ein Select-Feld mit verfügbaren Standard-Changes angezeigt werden. Durch die Wahl eines Standard-Changes kann ein Trigger dem aktuellen Ticket eine Checklist basierend auf einem passenden Checklist-Template zuweisen.
Ermitteln der ID des gewünschten Checklist-Templates
Zunächst müssen Sie die ID des gewünschten Checklist Templates ermitteln. Es gibt verschiedene Methoden die ID eines Checklist-Templates herauszufinden. Eine Möglichkeit ist die Zammad API abzufragen. Wollen Sie zum Beispiel die ID des Checklist-Templates mit dem Namen "Resize Linux Partition" wissen können Sie folgenden curl Befehl nutzen um alle Checklist-Templates abzurufen und mit jq zu selektieren:
curl -H "Content-Type: application/json" \
-X GET -H "Authorization: Token token=[Token to access Zammad API]" \
"https://zammad.example.tld/api/v1/checklist_templates" \
| jq '.[] | select(.name == "Resize Linux Partition") | {id, name}'
Wenn ein Checklist-Template mit diesem Namen existiert wird die Antwort so aussehen:
{
"id": 42,
"name": "Resize Linux Partition"
}Webhook zur Zuweisung eines Checklist-Templates
Erstellen Sie einen neuen Webhook. Als Endpunkt geben Sie die URL Ihrer Zammad Installation mit dem Pfad "/api/v1/checklists" ein, als Request Method wählen Sie "POST" und als Authentifizierungsmethode wählen Sie "Baerer Token". Im Feld für den Baerer Token fügen Sie einen Token ein, der über die entsprechenden Rechte verfügt um einem Ticket eine Checklist anzufügen. Schalten Sie den Schalter "Eigene Nutzlast" ein und fügen folgenden JSON Code ein:
{
"ticket_id":"#{ticket.id}",
"template_id":"42"
}Ersetzen Sie die ID des Checklist-Templates durch die zuvor ermittelte ID.
Dieser Webhook kann nun von einem Trigger verwendet werden, um einem Ticket eine Checklist, basierend auf dem Checklist-Template zuzuweisen.