Die programmgesteuerte Verwaltung von Support-Tickets ist für Teams unerlässlich, die Workflows automatisieren, in andere Systeme integrieren oder benutzerdefinierte Tools erstellen möchten. Die Zendesk Ticketing API gibt Ihnen die volle Kontrolle über Ticketaktualisierungen, von einfachen Statusänderungen bis hin zu komplexen Massenvorgängen mit benutzerdefinierten Feldern.
Dieser Leitfaden führt Sie durch alles, was Sie wissen müssen, um mit der Aktualisierung von Tickets über die API zu beginnen, mit funktionierenden Codebeispielen, die Sie für Ihre eigenen Projekte anpassen können.
Was Sie für den Anfang benötigen
Bevor Sie Ihren ersten API-Aufruf tätigen, stellen Sie sicher, dass Sie Folgendes eingerichtet haben:
- Ein Zendesk Support-Konto mit Administrator- oder Agentenzugriff. Sie benötigen Berechtigungen, um API-Token zu generieren und Ticketdaten anzuzeigen.
- API-Token-Authentifizierung aktiviert. Der Token-Zugriff muss in Ihrem Admin Center unter Apps und Integrationen > APIs > API-Token aktiviert sein.
- Grundlegende Vertrautheit mit REST-APIs. Sie sollten HTTP-Methoden (GET, PUT, POST) und JSON-Datenformate verstehen.
- Ihre bevorzugten Tools. Dieser Leitfaden enthält Beispiele in cURL und Python mit der Requests-Bibliothek, aber Sie können Postman, JavaScript oder einen beliebigen HTTP-Client verwenden.

Wenn Sie gerade erst mit der Zendesk-API beginnen, sollten Sie zuerst den API-Schnellstartleitfaden lesen. Er behandelt die Grundlagen des Sendens von Anfragen und der Verarbeitung von Antworten.
Einrichten der API-Authentifizierung
Zendesk verwendet eine Token-basierte Authentifizierung für den API-Zugriff. So richten Sie sie ein.
Generieren eines API-Tokens
- Melden Sie sich als Administrator bei Ihrem Zendesk-Konto an
- Gehen Sie zu Admin Center > Apps und Integrationen > APIs > API-Token
- Klicken Sie auf das Pluszeichen, um ein neues Token hinzuzufügen
- Geben Sie ihm einen beschreibenden Namen wie "Ticket Update Script"
- Kopieren Sie das Token sofort. Zendesk zeigt es nur einmal an.

Authentifizierungsformat
Zendesk erwartet Anmeldeinformationen in diesem Format:
{email_address}/token:{api_token}
Wenn Ihre E-Mail-Adresse beispielsweise admin@company.com lautet und Ihr Token abc123xyz ist, wäre Ihre Authentifizierungszeichenfolge:
admin@company.com/token:abc123xyz
Sichere Speicherung von Anmeldeinformationen
Codieren Sie Ihr API-Token niemals fest in Skripten. Verwenden Sie stattdessen Umgebungsvariablen:
export ZENDESK_SUBDOMAIN="yourcompany"
export ZENDESK_EMAIL="admin@company.com"
export ZENDESK_TOKEN="your_api_token_here"
Greifen Sie dann in Python darauf zu:
import os
subdomain = os.getenv('ZENDESK_SUBDOMAIN')
email = os.getenv('ZENDESK_EMAIL')
token = os.getenv('ZENDESK_TOKEN')
auth = (f"{email}/token", token)
Testen Ihrer Authentifizierung
Senden Sie eine einfache GET-Anfrage, um zu überprüfen, ob alles funktioniert:
curl "https://yourcompany.zendesk.com/api/v2/tickets.json?per_page=1" \
-u "admin@company.com/token:your_api_token"
Wenn Sie eine JSON-Antwort mit Ticketdaten erhalten, sind Sie authentifiziert und können fortfahren. Wenn Sie einen 401-Fehler erhalten, überprüfen Sie Ihr Token und Ihre E-Mail-Adresse.
Aktualisieren eines einzelnen Tickets
Der Endpunkt zum Aktualisieren von Tickets ist unkompliziert:
PUT /api/v2/tickets/{ticket_id}.json
Grundlegende Aktualisierung mit cURL
So aktualisieren Sie den Status eines Tickets und fügen einen Kommentar hinzu:
curl "https://yourcompany.zendesk.com/api/v2/tickets/12345.json" \
-X PUT \
-u "admin@company.com/token:your_api_token" \
-H "Content-Type: application/json" \
-d '{
"ticket": {
"status": "solved",
"comment": {
"body": "Dieses Problem wurde behoben. Der Fix ist jetzt live.",
"public": true
}
}
}'
Python-Implementierung
Mit der Requests-Bibliothek sieht derselbe Vorgang wie folgt aus:
import requests
import os
subdomain = os.getenv('ZENDESK_SUBDOMAIN')
email = os.getenv('ZENDESK_EMAIL')
token = os.getenv('ZENDESK_TOKEN')
url = f"https://{subdomain}.zendesk.com/api/v2/tickets/12345.json"
auth = (f"{email}/token", token)
data = {
"ticket": {
"status": "solved",
"priority": "normal",
"assignee_id": 987654321,
"comment": {
"body": "Dieses Problem wurde behoben. Der Fix ist jetzt live.",
"public": True
}
}
}
response = requests.put(url, json=data, auth=auth)
if response.status_code == 200:
print("Ticket erfolgreich aktualisiert")
updated_ticket = response.json()['ticket']
print(f"Neuer Status: {updated_ticket['status']}")
else:
print(f"Fehler: {response.status_code}")
print(response.text)
Häufige Felder, die Sie aktualisieren können
| Feld | Typ | Beschreibung |
|---|---|---|
status | string | new, open, pending, hold, solved, closed |
priority | string | urgent, high, normal, low |
assignee_id | integer | ID des zuzuweisenden Agenten |
group_id | integer | ID der zuzuweisenden Gruppe |
tags | array | Liste der Tag-Strings |
subject | string | Betreffzeile des Tickets |
Wenn Sie das Feld comment aktualisieren, macht die Einstellung "public": true es zu einer öffentlichen Antwort, die für den Anfragenden sichtbar ist. Wenn Sie dies weglassen oder auf false setzen, wird eine interne Notiz erstellt.
Arbeiten mit benutzerdefinierten Feldern
Benutzerdefinierte Felder sind in Zendesk-Setups üblich, um bestimmte Daten wie Produktkategorien, Kundenstufen oder Problemtypen zu verfolgen. Um sie über die API zu aktualisieren, müssen Sie die Feld-ID kennen.
Suchen von benutzerdefinierten Feld-IDs
Sie können benutzerdefinierte Feld-IDs auf zwei Arten finden:
- Admin Center: Gehen Sie zu Objekte und Regeln > Tickets > Benutzerdefinierte Felder. Die ID wird in der URL angezeigt, wenn Sie ein Feld bearbeiten.
- API: Listen Sie alle benutzerdefinierten Felder mit
GET /api/v2/ticket_fields.jsonauf
Aktualisieren von benutzerdefinierten Feldern
Benutzerdefinierte Felder verwenden ein bestimmtes Format in der API. Sie geben ein Array von Objekten mit den Eigenschaften id und value an:
{
"ticket": {
"custom_fields": [
{"id": 25356371, "value": "enterprise"},
{"id": 25356372, "value": 42},
{"id": 25356373, "value": "billing_issue"}
]
}
}
Hier ist ein vollständiges Python-Beispiel:
import requests
import os
subdomain = os.getenv('ZENDESK_SUBDOMAIN')
email = os.getenv('ZENDESK_EMAIL')
token = os.getenv('ZENDESK_TOKEN')
url = f"https://{subdomain}.zendesk.com/api/v2/tickets/12345.json"
auth = (f"{email}/token", token)
data = {
"ticket": {
"custom_fields": [
{"id": 360012345678, "value": "premium"}, # Dropdown
{"id": 360012345679, "value": "2026-03-15"}, # Datum
{"id": 360012345680, "value": 1500.00}, # Dezimalzahl
{"id": 360012345681, "value": True} # Kontrollkästchen
],
"comment": {
"body": "Kundenstufe und Verlängerungsdatum aktualisiert.",
"public": False
}
}
}
response = requests.put(url, json=data, auth=auth)
if response.status_code == 200:
print("Benutzerdefinierte Felder erfolgreich aktualisiert")
else:
print(f"Fehler {response.status_code}: {response.text}")

Häufige Fallstricke bei benutzerdefinierten Feldern
- Falscher Datentyp: Das Senden einer Zeichenfolge, wenn das Feld eine Zahl erwartet, gibt einen 422-Fehler zurück
- Ungültige Optionswerte: Dropdown-Felder akzeptieren nur vordefinierte Werte. Überprüfen Sie die Feldkonfiguration, wenn Aktualisierungen fehlschlagen.
- Feldberechtigungen: Einige benutzerdefinierte Felder sind schreibgeschützt oder können nur von bestimmten Rollen bearbeitet werden
Massenaktualisierung mehrerer Tickets
Wenn Sie Dutzende oder Hunderte von Tickets aktualisieren müssen, sind einzelne API-Aufrufe ineffizient. Zendesk bietet Massenaktualisierungs-Endpunkte für dieses Szenario.
Der Massenaktualisierungs-Endpunkt
PUT /api/v2/tickets/update_many.json?ids=1,2,3,4,5
Sie können Tickets nach ID angeben oder eine Suchabfrage verwenden:
PUT /api/v2/tickets/update_many.json?query=status:open+priority:high
Wann Massenaktualisierungen verwendet werden sollten
Massenaktualisierungen sind sinnvoll, wenn Sie:
- Alle Tickets eines ausscheidenden Agenten neu zuweisen müssen
- Gelöste Tickets schließen, die älter als 30 Tage sind
- Einen benutzerdefinierten Feldwert über eine Kategorie von Tickets hinweg aktualisieren
- Tickets, die bestimmten Kriterien entsprechen, Tags hinzufügen
Überlegungen zur Ratenbegrenzung
Zendesk erzwingt Ratenbegrenzungen, die je nach Plan variieren: Team-Pläne haben 200 Anfragen pro Minute, Growth- und Professional-Pläne haben 400 und Enterprise-Pläne haben 700. Massenaktualisierungen zählen als eine einzelne Anfrage, unabhängig davon, wie viele Tickets sie betreffen, was sie viel effizienter macht als einzelne Aufrufe.
Best Practices für umfangreiche Aktualisierungen
- Testen Sie zuerst mit einem kleinen Batch. Führen Sie Ihre Aktualisierung auf 5-10 Tickets aus, um die Logik zu überprüfen, bevor Sie Hunderte verarbeiten.
- Verwenden Sie Suchabfragen sorgfältig. Eine schlecht formulierte Abfrage könnte unbeabsichtigt Tausende von Tickets finden.
- Verarbeiten Sie die Paginierung. Wenn Ihre Suche viele Ergebnisse zurückgibt, verarbeiten Sie diese in Batches.
- Protokollieren Sie Ihre Änderungen. Führen Sie ein Protokoll darüber, welche Tickets wann aktualisiert wurden.
Hier ist ein Beispiel, das alle offenen Tickets aktualisiert, die einem bestimmten Agenten zugewiesen sind:
import requests
import os
import time
subdomain = os.getenv('ZENDESK_SUBDOMAIN')
email = os.getenv('ZENDESK_EMAIL')
token = os.getenv('ZENDESK_TOKEN')
auth = (f"{email}/token", token)
base_url = f"https://{subdomain}.zendesk.com/api/v2"
search_url = f"{base_url}/search.json?query=assignee:987654321+status:open"
response = requests.get(search_url, auth=auth)
results = response.json()
ticket_ids = [str(ticket['id']) for ticket in results['results']]
for i in range(0, len(ticket_ids), 100):
batch = ticket_ids[i:i+100]
ids_param = ','.join(batch)
update_url = f"{base_url}/tickets/update_many.json?ids={ids_param}"
data = {
"ticket": {
"assignee_id": 123456789, # Neuer Bearbeiter
"comment": {
"body": "Neu zugewiesen an neues Teammitglied.",
"public": False
}
}
}
response = requests.put(update_url, json=data, auth=auth)
if response.status_code == 200:
print(f"Batch {i//100 + 1} aktualisiert: {len(batch)} Tickets")
else:
print(f"Fehler in Batch {i//100 + 1}: {response.text}")
# Seien Sie nett zur API
time.sleep(1)
Fehlerbehandlung und Fehlerbehebung
Auch bei sorgfältiger Planung schlagen API-Aufrufe manchmal fehl. Wenn Sie wissen, wie Sie Fehlerantworten interpretieren, sparen Sie Zeit bei der Fehlersuche.
Häufige HTTP-Fehlercodes
| Code | Bedeutung | Was zu überprüfen ist |
|---|---|---|
| 401 | Nicht autorisiert | Ihr Token oder Ihre E-Mail-Adresse ist falsch |
| 404 | Nicht gefunden | Die Ticket-ID existiert nicht |
| 422 | Nicht verarbeitbare Entität | Ungültiger Feldwert oder fehlende erforderliche Daten |
| 429 | Zu viele Anfragen | Sie haben die Ratenbegrenzung erreicht |
Behandeln von Validierungsfehlern
Ein 422-Fehler bedeutet normalerweise, dass Ihre Daten nicht mit dem übereinstimmen, was Zendesk erwartet. Der Antworttext enthält Details:
{
"error": "RecordInvalid",
"description": "Record validation errors",
"details": {
"custom_fields": [
{
"description": "Field value cannot be blank",
"error": "BlankValue"
}
]
}
}
Tipps zur Fehlersuche
- Aktivieren Sie die ausführliche Protokollierung in Ihrem HTTP-Client, um vollständige Anfrage- und Antwortdetails anzuzeigen
- Überprüfen Sie die Zendesk-API-Protokolle im Admin Center auf fehlgeschlagene Anfragen
- Validieren Sie Ihr JSON, bevor Sie es senden. Ein nachgestelltes Komma oder ein fehlendes Anführungszeichen verursacht Fehler.
- Testen Sie in Postman oder mit cURL, bevor Sie Code schreiben, um Syntaxprobleme zu isolieren
Wann Sie den Zendesk-Support kontaktieren sollten
Die meisten API-Probleme können behoben werden, indem Sie die Dokumentation überprüfen und Ihr Anfrageformat verifizieren. Kontaktieren Sie den Zendesk-Support, wenn Sie Folgendes feststellen:
- Konsistente 500-Fehler (serverseitige Probleme)
- Unerwartete Ratenbegrenzung, obwohl Sie unter den dokumentierten Grenzwerten liegen
- Verhalten, das der offiziellen API-Dokumentation widerspricht
Optimieren von Ticketaktualisierungen mit eesel AI
Das Erstellen und Verwalten von API-Integrationen kostet Zeit und Engineering-Ressourcen. Für Teams, die eine automatisierte Ticketverwaltung benötigen, ohne Code zu schreiben, bietet eesel AI einen anderen Ansatz.

Warum Teams Automatisierung der manuellen Skripterstellung vorziehen
Benutzerdefinierte API-Skripte funktionieren gut für bestimmte, einmalige Aufgaben. Sie werden jedoch zu einer Belastung, wenn Sie:
- Tickets basierend auf sich ändernden Bedingungen kontinuierlich aktualisieren müssen
- Integrationen verwalten, während sich Ihr Workflow weiterentwickelt
- Teammitglieder für die Verwendung und Änderung des Codes schulen
- Automatisierung über mehrere Tickettypen und Kanäle hinweg skalieren
So verbindet sich eesel AI mit Zendesk
Anstatt API-Aufrufe zu schreiben, laden Sie eesel AI als KI-Agenten in Ihr Team ein. Es lernt von Ihren vergangenen Tickets, Hilfeartikel und Makros und verarbeitet dann Routineaktualisierungen automatisch.
So sieht das in der Praxis aus:
- Auto-Tagging: eesel liest eingehende Tickets und wendet relevante Tags basierend auf dem Inhalt an
- Intelligentes Routing: Tickets werden dem richtigen Team oder Agenten ohne manuelle Triage zugewiesen
- Statusaktualisierungen: eesel kann den Ticketstatus ändern, wenn bestimmte Bedingungen erfüllt sind
- Eskalationsbehandlung: Komplexe Probleme werden automatisch mit Kontext an menschliche Agenten eskaliert

Anwendungsfälle für die automatisierte Ticketverwaltung
Teams verwenden die Zendesk-Integration von eesel AI für Szenarien, die sonst eine komplexe API-Skripterstellung erfordern würden:
- Sofortiges Weiterleiten von VIP-Kunden-Tickets an leitende Agenten
- Automatisches Schließen von Spam- oder "Danke"-Nachrichten
- Aktualisieren von benutzerdefinierten Feldern basierend auf der Ticketinhaltsanalyse
- Zusammenführen doppelter Tickets desselben Kunden
Erste Schritte mit eesel AI
Wenn Ihr Team mehr Zeit mit der Wartung von API-Skripten verbringt als mit dem Nutzen der Automatisierung, bietet eesel AI's Preisgestaltung eine No-Code-Alternative. Die Pläne beginnen bei 239 US-Dollar pro Monat bei jährlicher Abrechnung, mit einer 7-tägigen kostenlosen Testversion, um zu testen, wie sie in Ihren Workflow passt.
Der Unterschied liegt im Ansatz. Anstatt Code zu schreiben, um Tickets zu aktualisieren, beschreiben Sie in einfachem Deutsch, was Sie möchten. eesel lernt Ihr Unternehmen kennen, beginnt mit der Anleitung und steigt auf, um autonom zu arbeiten, sobald es sich bewährt hat.
Häufig gestellte Fragen
Diesen Beitrag teilen

Article by
Stevia Putri
Stevia Putri is a marketing generalist at eesel AI, where she helps turn powerful AI tools into stories that resonate. She’s driven by curiosity, clarity, and the human side of technology.



