Zoho Desk, Deluge und API: Externe ITAM-Daten für Tickets integrieren

  • Beitrags-Autor:

Zoho als zentrales Nervensystem: Wie Du externe Systeme per API und Deluge anbindest

Die Stärke des Zoho-Ökosystems liegt nicht nur in der Vielfalt seiner über 50 Apps, sondern vor allem in ihrer Fähigkeit, nahtlos miteinander zu kommunizieren. Doch was passiert, wenn kritische Daten in externen Systemen, Branchenlösungen oder eigenentwickelten Datenbanken liegen? Viele Unternehmen stehen vor der Herausforderung, diese Datensilos aufzubrechen und eine wirklich einheitliche Systemlandschaft zu schaffen. Hier zeigt sich die wahre Mächtigkeit von Zoho: als offene Plattform, die sich über APIs, Webhooks und die eigene Skriptsprache Deluge tief in deine bestehende IT-Infrastruktur integrieren lässt. Dieser Artikel zeigt dir praxisnah, wie Du eine solche Brücke baust und Zoho zum zentralen Nervensystem deines Unternehmens machst.

Die typische Herausforderung: Isolierte Daten im Tagesgeschäft

Stell dir ein typisches Szenario bei einem IT-Dienstleister oder einem Managed Services Provider (MSP) vor. Das Unternehmen nutzt Zoho CRM für die Kundenverwaltung, Zoho Desk für den Support und vielleicht Zoho Books für die Abrechnung. Parallel dazu existiert jedoch ein spezialisiertes, vielleicht sogar selbst entwickeltes System für das IT-Asset-Management (ITAM). In dieser externen Datenbank sind alle Kundengeräte – Laptops, Server, Drucker – mit Seriennummern, Garantiedaten und Wartungshistorie erfasst.

Meldet nun ein Kunde per Ticket in Zoho Desk ein Problem mit seinem Laptop, beginnt für den Support-Mitarbeiter ein umständlicher Prozess: Er muss das Ticketsystem verlassen, sich in das externe ITAM-System einloggen, den Kunden und das entsprechende Gerät suchen und die relevanten Informationen manuell abgleichen. Das kostet Zeit, ist fehleranfällig und verhindert einen schnellen, kontextbezogenen Service. Das Ziel muss also sein, die relevanten Asset-Informationen direkt im Zoho Desk Ticket anzuzeigen.

Schritt-für-Schritt: Externe Asset-Daten in Zoho Desk integrieren

Wir lösen dieses Problem, indem wir eine Custom Function in Zoho Desk erstellen. Diese Funktion ruft per API-Anfrage die Daten aus dem externen ITAM-System ab und stellt sie direkt in der Ticket-Ansicht dar. Dafür nutzen wir die Skriptsprache Deluge.

Schritt 1: Vorbereitung und Analyse der externen API

Zuerst musst Du die API des externen Systems verstehen. Die meisten modernen Systeme bieten eine REST-API an. Finde Antworten auf folgende Fragen:

  • Endpunkt-URL: Wie lautet die genaue URL, um Daten zu einem bestimmten Asset abzurufen (z.B. https://api.dein-itam-system.com/v1/assets/{asset_id})?
  • Authentifizierung: Wie authentifizierst Du dich? Meistens geschieht dies über einen API-Key, der im Header der Anfrage mitgesendet wird (z.B. Authorization: Bearer DEIN_API_SCHLUESSEL).
  • Datenformat: Die Antwort kommt in der Regel als JSON. Schau dir die Struktur an, um zu wissen, welche Felder (z.B. `deviceName`, `serialNumber`, `warrantyEndDate`) Du später auslesen möchtest.

In Zoho CRM oder Zoho Desk solltest Du außerdem ein benutzerdefiniertes Feld anlegen, z.B. „Asset ID“, in dem die eindeutige Kennung des Geräts aus dem ITAM-System gespeichert wird. Diese ID ist der Schlüssel für die Verknüpfung.

Schritt 2: Die Verbindung in Zoho sicher einrichten

Speichere niemals API-Schlüssel direkt im Code! Zoho bietet dafür eine sichere Lösung: Connections. Gehe in den Einstellungen deines Zoho-Produkts (z.B. Desk) zu Entwicklerbereich → Verbindungen → Neue Verbindung erstellen.

  1. Wähle den Dienst „Custom Service“ aus.
  2. Vergib einen Namen, z.B. „ITAM_System_API“.
  3. Wähle als Authentifizierungstyp „Custom“ und füge einen Parameter hinzu. Nenne ihn z.B. api_key, wähle als Ort „Header“ und gib als Header-Name „Authorization“ an.
  4. Beim Erstellen der Verbindung wirst Du aufgefordert, den Wert für den api_key einzugeben. Gib hier `Bearer DEIN_ECHTER_API_SCHLUESSEL` ein.

Zoho speichert diesen Schlüssel nun sicher und verschlüsselt. In deinem Deluge-Skript verweist Du nur noch auf den Namen der Verbindung („ITAM_System_API“).

Schritt 3: Die Deluge Custom Function in Zoho Desk schreiben

Jetzt kommt das Herzstück der Integration. Wir erstellen in Zoho Desk eine Custom Function, die bei jedem Öffnen eines Tickets ausgeführt wird und die Asset-Daten abruft. Gehe zu Einstellungen → Entwicklerbereich → Custom Functions und erstelle eine neue Funktion.

Diese Funktion nimmt die Ticket-ID als Argument, holt sich die darin gespeicherte Asset-ID und ruft die externe API auf.


// Funktion, um Asset-Details von einer externen API abzurufen
// @param ticketId - Die ID des aktuellen Zoho Desk Tickets

map getAssetDetailsFromITAM(int ticketId)
{
    // 1. Ticket-Details abrufen, um die Asset-ID zu erhalten
    ticketDetails = zoho.desk.getRecordById(ticketId, "tickets");
    assetId = ticketDetails.get("cf_asset_id"); // Annahme: Das Custom Field heißt 'cf_asset_id'
    
    // Prüfen, ob eine Asset-ID im Ticket hinterlegt ist
    if(assetId != null && assetId != "")
    {
        // 2. API-Endpunkt-URL zusammenbauen
        apiUrl = "https://api.dein-itam-system.com/v1/assets/" + assetId;
        
        // 3. API-Aufruf mit der sicheren Verbindung durchführen
        // "ITAM_System_API" ist der Name der in Zoho erstellten Connection
        response = invokeurl
        [
            url: apiUrl
            type: GET
            connection: "ITAM_System_API"
        ];
        
        // 4. JSON-Antwort in eine Deluge Map umwandeln und zurückgeben
        if(response.get("responseCode") == 200)
        {
            assetData = response.get("response").toJSON();
            // Erstelle eine saubere Map mit den benötigten Infos
            resultMap = Map();
            resultMap.put("deviceName", assetData.get("deviceName"));
            resultMap.put("serialNumber", assetData.get("serialNumber"));
            resultMap.put("warrantyEndDate", assetData.get("warrantyEndDate"));
            resultMap.put("status", "Success");
            return resultMap;
        }
        else
        {
            // Fehlerbehandlung: API nicht erreichbar oder Asset nicht gefunden
            errorMap = Map();
            errorMap.put("status", "Error");
            errorMap.put("message", "Asset nicht gefunden oder API-Fehler: " + response);
            return errorMap;
        }
    }
    
    // Keine Asset-ID im Ticket gefunden
    infoMap = Map();
    infoMap.put("status", "Info");
    infoMap.put("message", "Keine Asset-ID im Ticket hinterlegt.");
    return infoMap;
}

Schritt 4: Daten im Frontend anzeigen mit einem Widget

Die reine Datenabfrage reicht nicht – die Informationen müssen für den Mitarbeiter sichtbar sein. Die eleganteste Lösung hierfür ist ein Widget in Zoho Desk. Ein Widget ist quasi eine kleine Web-Anwendung (HTML, CSS, JavaScript), die im rechten Panel eines Tickets angezeigt wird.

Dein Widget-Code würde die soeben erstellte Deluge-Funktion aufrufen und die zurückgegebenen Daten in einer übersichtlichen Tabelle oder Liste darstellen.

Der JavaScript-Teil deines Widgets könnte so aussehen:


// In der widget.js Datei deines Zoho Desk Widgets
ZOHO.embeddedApp.on("PageLoad", function(data) {
    // Rufe die ID des aktuell geladenen Tickets ab
    var ticketId = data.EntityId;

    // Rufe unsere Deluge-Funktion auf
    ZOHO.CRM.FUNCTIONS.execute("getAssetDetailsFromITAM", {"ticketId": ticketId})
        .then(function(response) {
            // Verarbeite die Antwort der Deluge-Funktion
            var assetData = response.details.output;
            var result = JSON.parse(assetData);
            
            if(result.status == "Success") {
                // Baue das HTML, um die Daten anzuzeigen
                var content = "<h4>Asset-Informationen</h4>";
                content += "<p><strong>Gerätename:</strong> " + result.deviceName + "</p>";
                content += "<p><strong>Seriennummer:</strong> " + result.serialNumber + "</p>";
                content += "<p><strong>Garantie bis:</strong> " + result.warrantyEndDate + "</p>";
                document.getElementById("asset-info-container").innerHTML = content;
            } else {
                document.getElementById("asset-info-container").innerText = result.message;
            }
        });
});

Mit diesen Schritten hast Du eine Live-Verbindung zwischen Zoho Desk und deinem externen System hergestellt. Dein Support-Team spart bei jedem Ticket wertvolle Minuten.

Tipps und Best Practices

  • Fehlerbehandlung ist Pflicht: Was passiert, wenn die externe API nicht erreichbar ist oder die Asset-ID falsch ist? Dein Code muss diese Fälle abfangen und eine verständliche Fehlermeldung ausgeben, anstatt einfach abzubrechen.
  • Achte auf API-Limits: Jede API hat ein Nutzungslimit (z.B. 1000 Anfragen pro Stunde). Stelle sicher, dass deine Integration nicht zu „gesprächig“ ist. Caching von Daten kann hier eine Lösung sein, falls sich die Asset-Daten nicht ständig ändern.
  • Das Staging-Problem: Eine bekannte Herausforderung, insbesondere bei Zoho Books und Zoho Inventory, ist das Fehlen einer vollwertigen Sandbox- oder Staging-Umgebung. Teste neue Skripte daher immer zuerst mit Test-Datensätzen und niemals direkt im produktiven Betrieb mit Echtdaten. Bei Zoho CRM und Creator gibt es hierfür bessere Sandboxing-Möglichkeiten.
  • Sicherheit geht vor: Nutze immer die „Connections“ für API-Schlüssel und andere sensible Daten. Beschränke die Rechte des API-Users im externen System auf das absolute Minimum (nur Lesezugriff, wenn mehr nicht nötig ist).

Weitere Integrationsmöglichkeiten im Zoho-Ökosystem

Diese Art der Integration ist nur der Anfang. Denk den Prozess weiter:

  • Prozessautomatisierung mit Zoho Flow: Statt alles in Deluge zu programmieren, könntest Du einen Webhook aus dem externen System nutzen. Wenn sich dort der Garantiestatus eines Assets ändert, sendet das System einen Webhook an Zoho Flow. Flow kann dann automatisch ein Ticket in Desk zur Überprüfung erstellen, eine Aufgabe in Zoho Projects für den Vertrieb anlegen („Kunde wegen Garantieverlängerung kontaktieren“) und eine Nachricht im relevanten Zoho Cliq Channel posten.
  • Umfassende Auswertungen mit Zoho Analytics: Synchronisiere die Daten aus deinem ITAM-System regelmäßig nach Zoho Analytics. Dort kannst Du sie mit den Ticket-Daten aus Desk und den Umsatzdaten aus CRM verknüpfen. So findest Du Antworten auf Fragen wie: „Welche Gerätetypen verursachen die meisten Support-Anfragen?“ oder „Bei welchen Kunden laufen demnächst die meisten Garantien aus?“.
  • Eigene Apps mit Zoho Creator: Wenn dein externes System veraltet ist oder keine API bietet, könntest Du das gesamte IT-Asset-Management direkt in einer maßgeschneiderten Anwendung mit Zoho Creator nachbauen. Damit bleibt die gesamte Logik und Datenhaltung innerhalb des Zoho-Ökosystems.

Fazit: Mehr als nur die Summe seiner Teile

Die wahre Stärke von Zoho One und dem gesamten Ökosystem entfaltet sich erst, wenn Du die Grenzen der einzelnen Apps sprengst. Die Integration mit externen Systemen über Deluge und APIs ist kein „Nice-to-have“, sondern ein entscheidender Schritt zur Schaffung effizienter, automatisierter und kontextbezogener Prozesse. Indem Du Daten dort verfügbar machst, wo sie gebraucht werden, reduzierst Du manuellen Aufwand, minimierst Fehler und schaffst einen echten Mehrwert für Mitarbeiter und Kunden. Der gezeigte Anwendungsfall ist ein Paradebeispiel dafür, wie Du mit gezielter Entwicklungsarbeit Datensilos einreißt und Zoho zur zentralen Datendrehscheibe deines Unternehmens ausbaust.


In diesem Beispiel verwendete Zoho Apps: