> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Zendesk

## Übersicht

Verbinden Sie Ihre ElevenLabs-KI-Agenten mit [Zendesk](https://www.zendesk.com/), um Support-Tickets, Benutzer und Organisationen zu verwalten. Mit dieser Integration können Ihre Agenten Tickets erstellen und aktualisieren, nach vorhandenen Datensätzen suchen, Benutzer verwalten und auf eingehende Ticket-Kommentare antworten.

## Funktionen

| Funktion                  | Unterstützung                                                                                                                                                                                                             |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Zero Retention Mode (ZRM) | Nicht unterstützt                                                                                                                                                                                                         |
| Anhänge in Triggern       | Bilder (PNG, JPEG, GIF, WebP) und PDF-Dateien in eingehenden Ticket-Kommentaren, wenn **Dateianhänge zulassen** in den Agenteneinstellungen aktiviert ist und das LLM des Agenten Bild- oder Dokumenteingaben unterstützt |
| Anhänge in Tools          | Nicht unterstützt — Tools wie `zendesk_show_ticket` und `zendesk_list_ticket_comments` geben Textfelder zurück und laden keine Anhänge herunter                                                                           |

## Einrichtung

Diese Integration unterstützt drei Authentifizierungsmethoden: die ElevenLabs-OAuth-App, Ihren eigenen OAuth-Client und ein API-Token.

> **Note**
>
> Zendesk [stellt API-Token ein](https://support.zendesk.com/hc/en-us/articles/10851263566234)
> und wechselt zu einem Zugriff ausschließlich über OAuth. Bestehende Zendesk-Integrationen auf Basis von API-Token
> funktionieren noch bis zum 30. April 2027. ElevenLabs arbeitet daran, diese
> Migration zu unterstützen, und wird betroffene Kunden proaktiv kontaktieren, um vor diesem Zeitpunkt beim Wechsel zu OAuth
> zu helfen. Sie können jederzeit zur Methode **Benutzerdefinierter OAuth-Client** unten wechseln.

#### OAuth

#### Subdomain ermitteln

Ihre Zendesk-Subdomain ist der erste Teil Ihrer Zendesk-URL, z. B. `mycompany` aus `mycompany.zendesk.com`.

#### In ElevenLabs verbinden

Wählen Sie in der ElevenLabs-Integrationseinrichtung die Anmeldedaten **OAuth2** aus, geben Sie Ihre **Subdomain** ein und klicken Sie auf **Verbinden**.

#### Verbindung autorisieren

Zendesk zeigt eine Autorisierungsseite mit den Zugriffsrechten an, die die ElevenLabs-App anfordert: Lesezugriff für Ihr gesamtes Konto sowie Schreibzugriff auf Tickets, Benutzer, Webhooks und Trigger. Melden Sie sich als Benutzer mit den Berechtigungen an, die Ihr Agent benötigt, und klicken Sie auf **Zulassen**. Zendesk leitet Sie zurück zu ElevenLabs weiter und die Verbindung wird erstellt.

Autorisieren Sie als Administrator, wenn Sie Zendesk-Trigger verwenden möchten — das Erstellen von Webhooks und Bearbeiten von Triggern ist auf Zendesk-Administratoren beschränkt.

#### API-Token

#### Zugriff per API-Token aktivieren

Gehen Sie im [Zendesk Admin Center](https://support.zendesk.com/hc/en-us/articles/4581766374554-Using-Admin-Center) zu **Apps and integrations > APIs > Zendesk API** und aktivieren Sie **Token Access**.

#### API-Token generieren

Gehen Sie zu **Apps and integrations > APIs > API tokens** und klicken Sie auf **Add API token**. Kopieren Sie das Token sofort — nach dem Schließen des Dialogs wird es nicht erneut angezeigt.

#### Subdomain ermitteln

Ihre Zendesk-Subdomain ist der erste Teil Ihrer Zendesk-URL, z. B. `mycompany` aus `mycompany.zendesk.com`.

#### In ElevenLabs verbinden

Geben Sie in der ElevenLabs-Integrationseinrichtung Ihre **E-Mail-Adresse**, Ihr **API-Token** und Ihre **Subdomain** ein.

#### Benutzerdefinierter OAuth-Client

#### Weiterleitungs-URL kopieren

Kopieren Sie in der ElevenLabs-Zendesk-Integrationseinrichtung die **Weiterleitungs-URL**.

#### OAuth-Client in Zendesk erstellen

Gehen Sie im [Zendesk Admin Center](https://support.zendesk.com/hc/en-us/articles/4581766374554-Using-Admin-Center) zu **Apps and integrations > APIs > OAuth clients** und klicken Sie auf **Add Client**. Geben Sie einen **Namen** und eine eindeutige **Kennung** ein.

#### Weiterleitungs-URL hinzufügen

Fügen Sie die aus ElevenLabs kopierte **Weiterleitungs-URL** in die OAuth-Client-Konfiguration ein.

#### Secret speichern

Speichern Sie den OAuth-Client. Zendesk zeigt ein **Secret** an — kopieren Sie es und speichern Sie es sicher. Nach dem Schließen des Dialogs wird es nicht erneut angezeigt.

#### In ElevenLabs verbinden

Geben Sie in der ElevenLabs-Integrationseinrichtung die **Kennung** als Client-ID ein und hinterlegen Sie das **Secret**. Zendesk leitet Sie weiter, um die Verbindung zu autorisieren.

## OAuth-Bereiche

Die Verbindung mit den Anmeldedaten **OAuth2** gewährt ElevenLabs die folgenden [Zendesk-OAuth-Bereiche](https://developer.zendesk.com/api-reference/ticketing/oauth/grant_type_tokens/). Lesezugriff wird kontoweit gewährt, während Schreibzugriff pro Ressource angefordert wird, damit das Token keine Ressourcen ändern kann, die die Integration nicht verwendet.

| Bereich          | Zweck                                                                                                                                                                                                                                                                                                                  |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `read`           | Lesezugriff auf GET-Endpunkte. Wird verwendet, um Tickets, Ticket-Kommentare und deren Anhänge, Benutzer, Organisationen, Problem-Tickets und Suchergebnisse abzurufen sowie — wenn ein Trigger verbunden ist — den Zendesk-Trigger zu suchen und das Signatur-Secret des von ElevenLabs erstellten Webhooks zu lesen. |
| `tickets:write`  | Erstellt, aktualisiert, löscht und führt Tickets zusammen, veröffentlicht öffentliche und interne Kommentare und fügt Tags hinzu oder entfernt sie. Wird von den Ticket-Tools verwendet und um die Antwort des Agenten zu veröffentlichen, wenn ein Zendesk-Trigger ausgelöst wird.                                    |
| `users:write`    | Erstellt, aktualisiert und löscht Benutzer, einschließlich Massen-Erstellung oder -Aktualisierung. Wird von den Tools zur Benutzerverwaltung verwendet.                                                                                                                                                                |
| `webhooks:write` | Erstellt den Webhook, der Ticket-Ereignisse an Ihren Agenten übermittelt, wenn Sie einen Zendesk-Trigger aktivieren, und löscht diesen Webhook, wenn Sie den Trigger deaktivieren.                                                                                                                                     |
| `triggers:write` | Fügt die ElevenLabs-Webhook-Aktion zum von Ihnen benannten Zendesk-Trigger hinzu und entfernt diese Aktion, wenn Sie den Trigger deaktivieren.                                                                                                                                                                         |

Ein Token überschreitet niemals die Berechtigungen des Benutzers, der ihn autorisiert hat — der effektive Zugriff ist die Schnittmenge dieser Bereiche und der Zendesk-Rolle dieses Benutzers.

Diese Bereiche gelten nicht für die beiden anderen Authentifizierungsmethoden: Ein benutzerdefinierter OAuth-Client fordert `read` und `write` an (vollständiger Lese- und Schreibzugriff), und ein API-Token übernimmt alle Berechtigungen des zugehörigen Zendesk-Benutzers.

## Datenoffenlegung

Die folgende Tabelle listet jedes Feld auf, auf das die Integration in Ihrem Zendesk-Konto zugreift, ob ElevenLabs es speichert sowie wann und warum darauf zugegriffen wird. **Gelesen** bedeutet, dass der Wert während der Verarbeitung verwendet, aber nicht gespeichert wird. **Gelesen & gespeichert** bedeutet, dass er im ElevenLabs-Konversationsdatensatz gespeichert wird. **Geschrieben** bedeutet, dass die Integration ihn an Zendesk sendet.

| Daten                                                  | Zugriff               | Grund                                                                                                                                                                                                                                                         |
| ------------------------------------------------------ | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ticket-ID                                              | Gelesen & gespeichert | Wird in der Payload des Trigger-Webhooks übermittelt – die einzigen Ticketdaten, die Zendesk an ElevenLabs sendet. Wird als externe ID der Konversation, als dynamische Variable `integration__zendesk_ticket_id` und als Link zurück zum Ticket gespeichert. |
| Ticket-Betreff                                         | Gelesen & gespeichert | Wird aus dem Ticket gelesen, wenn ein Trigger ausgelöst wird. Wird als dynamische Variable `integration__zendesk_ticket_subject` gespeichert, damit System-Prompt und Tools auf den Inhalt des Tickets verweisen können.                                      |
| Zeitstempel der Ticketerstellung                       | Gelesen & gespeichert | Wird mit dem Ticket gelesen. Wird als dynamische Variable `integration__zendesk_ticket_created_at` zur Verwendung im Prompt gespeichert, beispielsweise um das Alter eines Tickets zu beurteilen.                                                             |
| Anforderer-ID                                          | Gelesen & gespeichert | Wird mit dem Ticket gelesen. Wird als dynamische Variable `integration__zendesk_ticket_requester_id` gespeichert und zum Zuordnen von Kommentaren verwendet – ein Anforderer, der zugleich Mitarbeitender ist, wird weiterhin als Kunde behandelt.            |
| Ticket-Tags                                            | Gelesen               | Wird bei jeder Trigger-Ausführung gelesen, um ein Tag `agent-rating-<score>` und ein Tag `force-agent` zu erkennen. Nur die daraus resultierende Bewertung wird in der Konversation gespeichert; die Tag-Liste selbst wird nicht gespeichert.                 |
| Kommentartexte, öffentlich und intern                  | Gelesen & gespeichert | Werden bei jeder Trigger-Ausführung aus den Ticket-Kommentaren gelesen. Werden als Konversationstranskript gespeichert und an das LLM des Agenten gesendet – auf diese Konversation antwortet der Agent.                                                      |
| Kommentar-IDs                                          | Gelesen & gespeichert | Werden mit den Kommentaren gelesen. Die neueste ID wird als Markierung für die letzte Verarbeitung gespeichert, sodass die nächste Trigger-Ausführung Kommentare überspringt, die der Agent bereits beantwortet hat.                                          |
| ID des Kommentarautors                                 | Gelesen & gespeichert | Wird mit den Kommentaren gelesen und verwendet, um den Autor zu ermitteln. Wird als Benutzerkennung der Transkriptnachricht gespeichert, wenn der Autor keine E-Mail-Adresse hat.                                                                             |
| Rolle des Kommentarautors                              | Gelesen               | Wird für jeden Kommentarautor gelesen, um zu entscheiden, ob ein Kommentar im Transkript zu einer Kunden- oder einer Mitarbeiternachricht wird. Die Rolle selbst wird nicht gespeichert, nur die daraus resultierende Zuordnung jeder Nachricht.              |
| E-Mail-Adresse des Kommentarautors                     | Gelesen & gespeichert | Wird für jeden Kommentarautor gelesen. Wird als Benutzerkennung in Transkriptnachrichten gespeichert, die dem Kunden zugeordnet sind, damit Konversationen ticketübergreifend einer Person zugeordnet werden können.                                          |
| E-Mail-Adresse des Anforderers                         | Gelesen & gespeichert | Wird mit dem Benutzerdatensatz des Anforderers gelesen. Wird als dynamische Variable `integration__zendesk_ticket_requester_email` gespeichert, damit Prompt und Tools den Kunden ansprechen oder nachschlagen können.                                        |
| Anhangsmetadaten: Dateiname, MIME-Typ, Größe           | Gelesen & gespeichert | Werden mit den Kommentaren gelesen, um zu prüfen, ob ein Anhang ein unterstützter Typ ist und die Größenbeschränkungen einhält. Werden in der Transkriptnachricht gespeichert, zu der der Anhang gehört.                                                      |
| Inhalt der Anhangsdatei                                | Gelesen & gespeichert | Wird nur heruntergeladen, wenn **Dateianhänge zulassen** für den Agenten aktiviert ist und sein LLM den Dateityp unterstützt. Wird als Konversationsdatei gespeichert, damit der Agent lesen kann, was der Kunde gesendet hat.                                |
| Zendesk-Subdomain                                      | Gelesen & gespeichert | Wird von Ihnen beim Verbinden angegeben. Wird in den Verbindungseinstellungen der Integration gespeichert, da sie die API-Basis-URL bildet.                                                                                                                   |
| Zendesk-Konto-E-Mail, nur API-Token-Authentifizierung  | Gelesen & gespeichert | Wird von Ihnen beim Verbinden angegeben. Wird in den Verbindungseinstellungen gespeichert, da die API-Token-Authentifizierung die Konto-E-Mail zusammen mit dem Token sendet.                                                                                 |
| API-Token, OAuth-Zugriffs- und Aktualisierungstokens   | Gelesen & gespeichert | Werden verschlüsselt gespeichert und nur zur Authentifizierung von API-Aufrufen verwendet. Sie werden niemals dem Agenten, dem Prompt oder der API zugänglich gemacht.                                                                                        |
| Geheimnis zur Webhook-Signierung                       | Gelesen & gespeichert | Wird einmal gelesen, wenn Sie einen Trigger aktivieren. Wird verschlüsselt gespeichert und verwendet, um zu prüfen, dass eingehende Webhooks tatsächlich von Ihrem Zendesk-Konto stammen.                                                                     |
| Trigger-Titel, Bedingungen und Aktionen                | Gelesen               | Werden gelesen, wenn Sie einen Trigger aktivieren, um den Trigger anhand seines Namens zu finden und seine vorhandenen Aktionen beizubehalten, wenn die ElevenLabs-Webhook-Aktion hinzugefügt wird. Nicht gespeichert.                                        |
| Agentenantwort                                         | Geschrieben           | Wird als öffentlicher Kommentar im Ticket veröffentlicht oder als interner Kommentar, wenn der Schattenmodus aktiviert ist. Das ist der Zweck der Integration.                                                                                                |
| Konversationslink                                      | Geschrieben           | Wird einmal pro Ticket als interner Kommentar veröffentlicht, damit Mitarbeitende die Konversation in ElevenLabs öffnen können.                                                                                                                               |
| Fehlermeldung zu Anhängen                              | Geschrieben           | Wird als interner Kommentar veröffentlicht, wenn ein Anhang übersprungen wurde, weil sein Typ nicht unterstützt wird, er zu groß ist oder nicht heruntergeladen werden konnte, damit Mitarbeitende wissen, dass der Agent ihn nicht gesehen hat.              |
| ElevenLabs-Webhook-Registrierung                       | Geschrieben           | Wird erstellt, wenn Sie einen Zendesk-Trigger aktivieren, und gelöscht, wenn Sie ihn deaktivieren. Dies ist der Endpunkt, den Zendesk bei Ticket-Ereignissen aufruft.                                                                                         |
| Webhook-Aktion in Ihrem Trigger                        | Geschrieben           | Wird dem von Ihnen benannten Trigger hinzugefügt, wenn Sie ihn aktivieren, und entfernt, wenn Sie ihn deaktivieren. Vorhandene Aktionen im Trigger bleiben erhalten.                                                                                          |
| Tickets, Kommentare, Tags, Benutzer und Organisationen | Geschrieben           | Werden nur durch die Zendesk-Tools geschrieben, die Sie für den Agenten aktivieren, und mit den Parametern, die der Agent während einer Konversation bereitstellt. Außerhalb eines Tool-Aufrufs oder einer Trigger-Antwort erfolgen keine Schreibvorgänge.    |

Die Integration ruft die Zendesk-API nur auf, wenn ein verbundener Trigger ausgelöst wird oder wenn ein Agent ein Zendesk-Tool aufruft. Sie fragt Ihr Zendesk-Konto nicht regelmäßig ab und exportiert keine Daten gesammelt.

Datensätze, die von Zendesk-Tools zurückgegeben werden, werden als Teil des Tool-Aufrufergebnisses im Konversationstranskript gespeichert. Ein Tool, das einen Datensatz liest, speichert ihn daher auch. Die Aufbewahrung gespeicherter Daten richtet sich nach den Datenschutzeinstellungen des Agenten, der das Ticket bearbeitet hat, einschließlich der Löschung von Transkripten und personenbezogenen Daten.

## Zendesk-Tools

Fügen Sie Ihrem Agenten Zendesk-Tools hinzu, um während Gesprächen Tickets, Benutzer und Organisationen zu verwalten. Sobald die Integration verbunden ist, können Sie einzelne Tools auf der Konfigurationsseite Ihres Agenten aktivieren.

### Verfügbare Tools

Die Integration bietet mehr als 30 Tools in folgenden Kategorien:

* **Tickets** — Tickets erstellen, aktualisieren, löschen, auflisten und suchen. Auch Massenaktionen (mehrere erstellen, aktualisieren oder löschen) sind verfügbar.
* **Kommentare und Tags** — Öffentliche oder interne Kommentare zu Tickets hinzufügen sowie Tags hinzufügen oder entfernen.
* **Benutzer** — Benutzer suchen, erstellen, aktualisieren und löschen. Die Massenerstellung oder -aktualisierung wird für die Synchronisierung von Benutzerdaten unterstützt.
* **Organisationen** — Organisationsdetails abrufen und die Tickets einer Organisation auflisten.
* **Suche** — Zendesk-Suchanfragen für Tickets, Benutzer und Organisationen ausführen (z. B. `type:ticket status:open`).

### Beispiel-Tools

#### zendesk_create_ticket

Erstellt ein neues Support-Ticket. Der Agent erfasst Details vom Anrufer und eröffnet in dessen Namen ein Ticket.

| Parameter                | Typ     | Beschreibung                                                   |
| ------------------------ | ------- | -------------------------------------------------------------- |
| `ticket.subject`         | string  | Kurze Betreffzeile für das Ticket                              |
| `ticket.comment.body`    | string  | Detaillierte Beschreibung des Problems                         |
| `ticket.requester.email` | string  | E-Mail-Adresse des Anfragenden                                 |
| `ticket.requester.name`  | string  | Vollständiger Name des Anfragenden                             |
| `ticket.priority`        | string  | `urgent`, `high`, `normal` oder `low`                          |
| `ticket.status`          | string  | `new`, `open`, `pending`, `hold`, `solved` oder `closed`       |
| `ticket.assignee_id`     | integer | Agent-ID, der das Ticket zugewiesen wird                       |
| `ticket.group_id`        | integer | Gruppen-ID, an die das Ticket weitergeleitet wird              |
| `ticket.custom_fields`   | array   | Array von `{id, value}`-Objekten für benutzerdefinierte Felder |

#### zendesk_search

Durchsucht Zendesk nach Tickets, Benutzern oder Organisationen mit der Zendesk-Suchsyntax.

| Parameter | Typ    | Beschreibung                                                                          |
| --------- | ------ | ------------------------------------------------------------------------------------- |
| `query`   | string | Suchanfrage (z. B. `type:ticket status:open` oder `type:user email:user@example.com`) |

#### zendesk_add_comment

Fügt einem bestehenden Ticket einen öffentlichen oder internen Kommentar hinzu — nützlich zum Veröffentlichen von Gesprächszusammenfassungen oder Follow-up-Notizen.

| Parameter                  | Typ     | Beschreibung                                               |
| -------------------------- | ------- | ---------------------------------------------------------- |
| `ticket_id`                | integer | Das Ticket, das kommentiert werden soll                    |
| `ticket.comment.body`      | string  | Kommentartext als Klartext                                 |
| `ticket.comment.html_body` | string  | HTML-Version des Kommentars (optional)                     |
| `ticket.comment.public`    | boolean | Gibt an, ob der Kommentar für den Anfragenden sichtbar ist |

#### zendesk_get_user

Ruft das Profil eines Benutzers ab, damit der Agent Anrufer mit Namen begrüßen oder deren Identität bestätigen kann.

| Parameter | Typ     | Beschreibung                        |
| --------- | ------- | ----------------------------------- |
| `user_id` | integer | Die abzurufende Zendesk-Benutzer-ID |

### Tools konfigurieren

#### Integrationstool hinzufügen

Klicken Sie auf der Konfigurationsseite Ihres Agenten auf **Tool hinzufügen** und wählen Sie **Integrationstool hinzufügen**.

![Integrationstool hinzufügen](/docs/_fern-img/ef3a82e0747f1b1da18fb6b4755812abe161d436582312e47836e621a44d83c7.webp)

#### Zendesk-Tools auswählen

Wählen Sie Ihre Zendesk-Verbindung aus und aktivieren Sie die Tools, die der Agent verwenden soll. Sie können so viele oder so wenige Tools wie nötig aktivieren — ein Agent zur reinen Triage benötigt beispielsweise möglicherweise nur Such- und Listentools, während ein Full-Service-Agent auch Tickets erstellen und aktualisieren kann.

![Zendesk-Tools auswählen](/docs/_fern-img/9161ae75a4c514d477174622bd4857d6faf62a11825bc7d4d191176e52a72f91.webp)

#### (Optional) Parameter angeben

Die Parameter jedes Tools werden vom Agenten während des Gesprächs anhand der Aussagen des Anrufers ausgefüllt. Sie müssen keine Parameterwerte fest codieren. Sie können jedoch optional bestimmte Parameter vorausfüllen oder einschränken — beispielsweise eine Standard-`priority` oder `group_id` festlegen —, um das Verhalten des Agenten zu steuern.

#### Einrichtung des Legacy-Webhooks

> **Note**
>
> Wenn Sie die native Zendesk-Integration verwenden, werden Tools automatisch konfiguriert. Die folgenden Schritte
> gelten nur für die manuelle Webhook-Einrichtung.

Die Legacy-Integration verwendet drei Webhook-Tools, um den Support-Agenten zu erstellen. Prüfen Sie die Konfiguration der einzelnen Tools in den folgenden Tabs.

#### zendesk_get_ticket_comments

**Name:** zendesk_get_ticket_comments
**Beschreibung:** Ruft die Kommentare eines Tickets ab.
**Methode:** GET
**URL:** `https://acmecorp.zendesk.com/api/v2/tickets/{ticket_id}/comments.json`

**Header:**

* **Content-Type:** `application/json`
* **Authorization:** *(Secret: `zendesk_key`)*

**Pfadparameter:**

* **ticket_id:** Extrahieren Sie den Wert aus dem Feld `id` in den Ergebnissen von get_resolved_tickets.

**Tool-JSON:**

```json
{
  "type": "webhook",
  "name": "zendesk_get_ticket_comments",
  "description": "Retrieves the comments of a ticket.",
  "api_schema": {
    "url": "https://acmecorp.zendesk.com/api/v2/tickets/{ticket_id}/comments.json",
    "method": "GET",
    "path_params_schema": [
      {
        "id": "ticket_id",
        "type": "string",
        "description": "Extract the value from the id field in the get_resolved_tickets results.",
        "dynamic_variable": "",
        "constant_value": "",
        "required": false,
        "value_type": "llm_prompt"
      }
    ],
    "query_params_schema": [],
    "request_body_schema": null,
    "request_headers": [
      {
        "type": "secret",
        "name": "Authorization",
        "secret_id": "zendesk_api_token"
      },
      {
        "type": "value",
        "name": "Content-Type",
        "value": "application/json"
      }
    ]
  },
  "response_timeout_secs": 20,
  "dynamic_variables": {
    "dynamic_variable_placeholders": {}
  }
}
```

#### zendesk_get_resolved_tickets

**Name:** zendesk_get_resolved_tickets
**Beschreibung:** Ruft alle gelösten Support-Tickets aus Zendesk ab.
**Methode:** GET
**URL:** `https://acmecorp.zendesk.com/api/v2/search.json?query=type:ticket+status:solved`

**Header:**

* **Content-Type:** `application/json`
* **Authorization:** *(Secret: `zendesk_key`)*

**Tool-JSON:**

```json
{
  "type": "webhook",
  "name": "zendesk_get_resolved_tickets",
  "description": "Retrieves all resolved support tickets from Zendesk.",
  "api_schema": {
    "url": "https://acmecorp.zendesk.com/api/v2/search.json?query=type:ticket+status:solved",
    "method": "GET",
    "path_params_schema": [],
    "query_params_schema": [],
    "request_body_schema": null,
    "request_headers": [
      {
        "type": "secret",
        "name": "Authorization",
        "secret_id": "zendesk_api_token"
      },
      {
        "type": "value",
        "name": "Content-Type",
        "value": "application/json"
      }
    ]
  },
  "response_timeout_secs": 20,
  "dynamic_variables": {
    "dynamic_variable_placeholders": {}
  }
}
```

#### zendesk_open_ticket

**Name:** zendesk_open_ticket
**Beschreibung:** Eröffnet ein neues Support-Ticket.
**Methode:** POST
**URL:** `https://acmecorp.zendesk.com/api/v2/tickets.json`

**Header:**

* **Content-Type:** `application/json`
* **Authorization:** *(Secret: `zendesk_key`)*

**Body-Parameter:**

* **ticket:** Ein Objekt mit folgenden Inhalten:
  * **comment:**
    * **body:** Detaillierte Beschreibung des Support-Problems.
  * **subject:** Eine kurze Betreffzeile.
  * **requester:**
    * **name:** Vollständiger Name des Anfragenden.
    * **email:** Eine gültige E-Mail-Adresse.

**Tool-JSON:**

```json
{
  "type": "webhook",
  "name": "zendesk_open_ticket",
  "description": "API endpoint to open a customer support ticket\nMake sure the authorization header is formated as \"Authorization: Basic <auth>\".",
  "api_schema": {
    "url": "https://acmecorp.zendesk.com/api/v2/tickets.json",
    "method": "POST",
    "path_params_schema": [],
    "query_params_schema": [],
    "request_body_schema": {
      "id": "body",
      "type": "object",
      "description": "Details for the support ticket",
      "required": false,
      "properties": [
        {
          "id": "ticket",
          "type": "object",
          "description": "This is the main ticket body which contains all of the information needed to open a ticket.",
          "required": true,
          "properties": [
            {
              "id": "comment",
              "type": "object",
              "description": "This is the comment with information about the issue.",
              "required": true,
              "properties": [
                {
                  "id": "body",
                  "type": "string",
                  "description": "Body of the issue. Include all relevant details for the issue. ",
                  "dynamic_variable": "",
                  "constant_value": "",
                  "required": true,
                  "value_type": "llm_prompt"
                }
              ]
            },
            {
              "id": "subject",
              "type": "string",
              "description": "Create a short subject line for the support issue. Add \"DEMO: \" before the subject.",
              "dynamic_variable": "",
              "constant_value": "",
              "required": true,
              "value_type": "llm_prompt"
            },
            {
              "id": "requester",
              "type": "object",
              "description": "The details of the support requester",
              "required": true,
              "properties": [
                {
                  "id": "email",
                  "type": "string",
                  "description": "The email address of the requester. This should look like \njohnsmith@hotmail.com\nYou MUST use the @ symbol and remove any spaces.",
                  "dynamic_variable": "",
                  "constant_value": "",
                  "required": true,
                  "value_type": "llm_prompt"
                },
                {
                  "id": "name",
                  "type": "string",
                  "description": "The full name of the requester. ",
                  "dynamic_variable": "",
                  "constant_value": "",
                  "required": true,
                  "value_type": "llm_prompt"
                }
              ]
            }
          ]
        }
      ]
    },
    "request_headers": [
      {
        "type": "secret",
        "name": "Authorization",
        "secret_id": "zendesk_api_token"
      },
      {
        "type": "value",
        "name": "Content-Type",
        "value": "application/json"
      }
    ]
  },
  "response_timeout_secs": 20,
  "dynamic_variables": {
    "dynamic_variable_placeholders": {}
  }
}
```

> **Warning**
>
> Stellen Sie sicher, dass Sie das Zendesk-Secret Ihres Workspace zu den Secrets des Agenten hinzufügen.

## Zendesk-Trigger

Konfigurieren Sie Zendesk-Trigger, damit Ihr Agent eingehende Ticket-Kommentare überwacht und darauf reagiert sowie First-Level-Support bietet.

### Einrichtung

#### Trigger in Zendesk erstellen

Gehen Sie im Zendesk Admin Center zu **Objects and rules > Business rules > Triggers** und klicken Sie auf **Add trigger**. Konfigurieren Sie die Bedingungen, die festlegen, auf welche Ticket-Ereignisse der Agent reagieren soll (z. B. neue Tickets in einer bestimmten Gruppe oder Ticket-Kommentare mit einem bestimmten Tag). Notieren Sie den Trigger-Namen — Sie benötigen ihn im nächsten Schritt.

Wenn Sie den Trigger nicht speichern können, weil eine Aktion fehlt, fügen Sie eine einfache Aktion hinzu, etwa das Hinzufügen eines Tags wie „Agent verarbeitet“ zum Ticket.

#### Trigger in ElevenLabs verbinden

Fügen Sie auf der Konfigurationsseite Ihres Agenten einen neuen Trigger hinzu und wählen Sie **Zendesk Trigger**. Konfigurieren Sie die Felder:

* **Agent**: der Agent, der eingehende Gespräche bearbeitet.
* **Trigger Rule Name**: der Name des Zendesk-Triggers, den Sie im vorherigen Schritt erstellt haben.
* **Daily Ticket Limit** (optional): maximale Anzahl an Tickets, die der Agent pro Tag bearbeitet. Für unbegrenzt leer lassen.

Wenn Sie den Trigger aktivieren, erstellt ElevenLabs einen Webhook in Ihrem Zendesk-Konto und fügt ihn dem angegebenen Trigger als Aktion hinzu. Beim Deaktivieren des Triggers werden Webhook und Aktion entfernt.

#### (Optional) Trigger in Zendesk prüfen

Gehen Sie im Zendesk Admin Center zu **Objects and rules > Business rules > Triggers** und öffnen Sie Ihren zuvor erstellten Trigger. Dort sollte eine neue Aktion angezeigt werden.

Falls Sie zuvor eine andere Aktion erstellt haben, können Sie diese jetzt wieder entfernen.

### Schattenmodus

Aktivieren Sie den Schattenmodus für einen Zendesk-Trigger, damit der Agent Antworten beobachten und entwerfen kann, ohne Kunden direkt zu antworten. Wenn der Schattenmodus aktiv ist, schreibt der Agent seine Antworten als **interne Kommentare** in das Ticket statt als öffentliche Antworten. Nur Zendesk-Agenten und -Administratoren können interne Kommentare sehen — der Endnutzer wird nicht benachrichtigt.

> **Warning**
>
> Der Schattenmodus beeinflusst nur, wie der Agent seine Antworten veröffentlicht. Wenn der Agent Tools verwendet, die
> das Ticket ändern (z. B. Status ändern, Tags hinzufügen oder das Ticket zuweisen), werden diese Änderungen weiterhin
> angewendet. Um unbeabsichtigte Änderungen zu verhindern, verwenden Sie einen separaten Agent-Branch, aus dem auf Änderungen ausgerichtete Tool-
> Aufrufe entfernt wurden.

Der Schattenmodus ist nützlich, um die Qualität des Agenten vor dem Go-live zu bewerten. Prüfen Sie die internen Kommentare zusammen mit den tatsächlichen Support-Antworten, um Genauigkeit und Ton zu vergleichen. Schalten Sie den Agenten anschließend in den aktiven Modus, sobald Sie von seinen Ergebnissen überzeugt sind.

### Schleifen vermeiden

Wenn der Agent über die Zendesk-API auf einen Ticket-Kommentar antwortet, ist diese Antwort selbst ein neuer Kommentar — dadurch kann der Agent erneut ausgelöst werden und eine Endlosschleife entsteht. Fügen Sie Ihrem Zendesk-Trigger eine der folgenden Bedingungen hinzu, um dies zu verhindern.

**Servicekonto vom Trigger ausschließen.** Erstellen Sie für die Integration einen separaten Zendesk-Benutzer (z. B. `ai-agent@yourcompany.com`) und verwenden Sie beim Verbinden in ElevenLabs die Zugangsdaten dieses Kontos. Fügen Sie dann Ihrem Zendesk-Trigger diese Bedingung hinzu:

* **Current User**, **Is Not**, **\<Ihr Servicekonto>**

**API-Aktualisierungen vom Trigger ausschließen.** Dadurch werden alle über die Zendesk-API vorgenommenen Aktualisierungen herausgefiltert, unabhängig davon, welcher Benutzer sie vorgenommen hat:

* **Ticket > Update Via**, **Is Not**, **Web Service (API)**

## Nützliche Links

* [Zendesk-API-Dokumentation](https://developer.zendesk.com/api-reference/)
* [API-Tokens verwalten](https://support.zendesk.com/hc/en-us/articles/4408889192858-Managing-API-token-access-to-the-Zendesk-API)
* [Leitfaden zu Zendesk-Triggern](https://support.zendesk.com/hc/en-us/articles/203662246-About-triggers-and-how-they-work)