Vom Meeting zum Protokoll: Ein robuster KI-Workflow mit Zoho und der Whisper API
In der heutigen Arbeitswelt sind Online-Meetings allgegenwärtig. Viele davon werden aufgezeichnet, um wichtige Entscheidungen und Diskussionen zu sichern. Die manuelle Auswertung dieser Aufnahmen ist jedoch extrem zeitaufwendig. Hier kommen KI-gestützte Transkriptionsdienste wie OpenAIs Whisper ins Spiel, die Audio in Text umwandeln. Doch was passiert, wenn diese Automatisierung fehlschlägt? Ein fehlerhaftes Transkript kann bedeuten, dass wertvolle Informationen verloren gehen. Genau hier setzen wir an: Wir zeigen dir, wie du mit dem Zoho-Ökosystem und externen APIs einen robusten, selbstprüfenden Workflow aufbaust, der nicht nur automatisiert, sondern auch die Qualität der Ergebnisse sicherstellt und bei Problemen proaktiv alarmiert.
Die Herausforderung aus der Praxis: Stille im Protokoll
Stell dir folgendes Szenario vor: Ein wichtiges, 90-minütiges Strategie-Meeting mit einem Kunden wird aufgezeichnet. Die Audiodatei wird automatisch an einen KI-Dienst zur Transkription gesendet. Doch statt eines detaillierten Protokolls erhältst du ein Dokument, das fast ausschließlich aus der Wiederholung einzelner Phrasen wie „Vielen Dank“ besteht, durchsetzt mit einigen wenigen, sinnlosen Satzfragmenten. Der gesamte Inhalt, alle besprochenen Aktionspunkte und getroffenen Vereinbarungen sind im digitalen Äther verschwunden. Dieses Problem entsteht nicht durch einen Fehler im Meeting, sondern durch eine Schwäche im Automatisierungsprozess, der die Qualität des Ergebnisses nicht validiert. Wie kannst du also sicherstellen, dass deine automatisierten Prozesse nicht nur schnell, sondern auch zuverlässig sind?
Schritt-für-Schritt: Aufbau eines intelligenten Transkriptions-Workflows
Wir bauen eine Lösung, die eine in Zoho WorkDrive abgelegte Audiodatei automatisch transkribiert, das Ergebnis auf Plausibilität prüft und je nach Ausgang unterschiedliche Aktionen in Zoho CRM und Zoho Cliq auslöst. Als Transkriptions-Engine nutzen wir die leistungsstarke API von OpenAI Whisper.
Die Architektur im Überblick:
- Datenspeicher: Ein spezieller Ordner in Zoho WorkDrive dient als Ablage für neue Audio-Aufnahmen.
- Orchestrierung: Eine Custom Function in Zoho CRM, geschrieben in Deluge, steuert den gesamten Prozess.
- KI-Transkription: Ein API-Aufruf an die OpenAI Whisper API.
- Datenmanagement: Ein benutzerdefiniertes Modul in Zoho CRM speichert die erfolgreichen Transkripte.
- Alarmierung: Bei erkannten Problemen wird eine Nachricht an einen Kanal in Zoho Cliq gesendet.
Schritt 1: Der Trigger in Zoho WorkDrive
Der Prozess startet, sobald eine neue Datei in einem bestimmten Ordner in Zoho WorkDrive hochgeladen wird. Hierfür nutzen wir die Webhook-Funktionalität von WorkDrive.
Navigiere in den Einstellungen deines WorkDrive-Team-Ordners zu „Automatisierung“ -> „Webhooks“ und erstelle einen neuen Webhook, der bei „Datei hochladen“ ausgelöst wird. Als Ziel-URL gibst du die REST-API-URL einer Custom Function in Zoho CRM an, die wir im nächsten Schritt erstellen.
Schritt 2: Die Schaltzentrale – Eine Deluge Custom Function in Zoho CRM
Das Herzstück unserer Lösung ist eine Custom Function, die den Webhook von WorkDrive empfängt, die Datei verarbeitet und die Logik steuert. Gehe in Zoho CRM zu Einstellungen > Entwicklerbereich > Funktionen > Neue Funktion erstellen.
Diese Funktion muss mehrere Aufgaben erfüllen:
- Die Daten aus dem WorkDrive-Webhook entgegennehmen (insbesondere die Datei-ID).
- Die Audiodatei von WorkDrive herunterladen.
- Die Datei an die Whisper API senden.
- Das Ergebnis der API empfangen.
- Das Ergebnis validieren.
- Basierend auf der Validierung Aktionen ausführen.
Schritt 3: Anbindung der OpenAI Whisper API via Deluge
Um die Whisper API nutzen zu können, benötigst du einen API-Key von OpenAI. Diesen solltest du sicher in den Connections von Zoho CRM hinterlegen, anstatt ihn direkt in den Code zu schreiben.
Der API-Aufruf zur Transkription einer Audiodatei mit Deluge sieht wie folgt aus. Die Funktion erwartet die Datei-ID aus dem WorkDrive-Webhook als Argument.
// Funktion, die vom WorkDrive-Webhook aufgerufen wird
void processAudioFromWorkdrive(map workdriveData)
{
// Extrahiere die ID der hochgeladenen Datei
fileId = workdriveData.get("id");
// 1. Datei von WorkDrive herunterladen
fileContent = zoho.workdrive.downloadFile(fileId);
// 2. API-Aufruf an OpenAI Whisper
// Nutze eine vordefinierte Connection "openai_whisper"
url = "https://api.openai.com/v1/audio/transcriptions";
headers = Map();
headers.put("Authorization","Zoho-oauthtoken ${conn:openai_whisper.accesstoken}");
// Wir senden die Datei als 'multipart/form-data'
files = Map();
files.put("file", fileContent, "meeting.mp3");
// Wir geben das Modell an, das wir nutzen wollen
params = Map();
params.put("model", "whisper-1");
// API-Aufruf durchführen
response = invokeurl
[
url: url
type: POST
headers: headers
parameters: params
files: files
connection: "openai_whisper" // Name deiner Connection
];
// Transkripierten Text extrahieren
transcribedText = response.get("text");
// 3. Nun rufen wir unsere Validierungsfunktion auf
validateAndStoreTranscript(transcribedText, fileId);
}
Schritt 4: Intelligente Validierung des Transkripts
Dies ist der entscheidende Schritt, um das anfangs beschriebene Problem zu vermeiden. Wir schreiben eine weitere Funktion, die das Transkript auf simple, aber effektive Weise auf Plausibilität prüft. Unsere Kriterien:
- Mindestlänge: Ein 90-Minuten-Meeting sollte mehr als nur ein paar hundert Zeichen Text produzieren.
- Wortwiederholung: Wir prüfen, ob bestimmte, oft bedeutungslose Füllwörter (wie „Vielen Dank“) einen unnatürlich hohen Anteil am Gesamttext haben.
// Funktion zur Validierung und Speicherung
void validateAndStoreTranscript(string transcript, string originalFileId)
{
isValid = true;
validationErrors = "";
// Prüfung 1: Ist das Transkript fast leer?
if(transcript.length() < 200)
{
isValid = false;
validationErrors = validationErrors + "Transkript ist zu kurz. ";
}
// Prüfung 2: Analyse der Wortwiederholung
words = transcript.toList(" ");
wordCount = words.size();
// Zähle, wie oft eine auffällige Phrase vorkommt
repetitionCount = 0;
for each word in words
{
if(word.equalsIgnoreCase("Dank")) // Beispiel für ein wiederholtes Wort
{
repetitionCount = repetitionCount + 1;
}
}
// Wenn mehr als 10% des Textes aus diesem einen Wort bestehen, ist etwas faul.
if(wordCount > 0 && (repetitionCount * 1.0 / wordCount) > 0.1)
{
isValid = false;
validationErrors = validationErrors + "Hohe Wortwiederholung festgestellt. ";
}
// 5. Verarbeitung basierend auf dem Ergebnis
if(isValid)
{
// Transkript ist gültig: In CRM-Modul "Meeting Protokolle" speichern
recordMap = Map();
recordMap.put("Name", "Protokoll für Datei " + originalFileId);
recordMap.put("Transkript", transcript);
recordMap.put("WorkDrive_File_ID", originalFileId);
createResponse = zoho.crm.createRecord("Meeting_Protokolle", recordMap);
info createResponse;
}
else
{
// Transkript ist ungültig: Alarm in Zoho Cliq senden
cliqMessage = Map();
cliqMessage.put("text", "‼️ **Fehler bei der Transkription** ‼️nnDatei-ID: " + originalFileId + "nFehler: " + validationErrors + "nnBitte manuell prüfen!");
// Sende die Nachricht an einen bestimmten Cliq-Kanal
zoho.cliq.postToChannel("general", cliqMessage);
}
}
Tipps und Best Practices
- Fehlerbehandlung: Der Code sollte um `try…catch`-Blöcke erweitert werden, um API-Fehler (z.B. wenn die OpenAI-Server nicht erreichbar sind) abzufangen und ebenfalls eine Benachrichtigung auszulösen.
- Kosten im Blick behalten: APIs wie Whisper sind kostenpflichtig. Implementiere eine Logik, die die Dateigröße oder -länge prüft, bevor die Datei an die API gesendet wird, um unerwartet hohe Kosten für sehr lange Aufnahmen zu vermeiden.
- Skalierbarkeit: Für ein sehr hohes Aufkommen an Transkriptionen könntest du diesen Workflow auf Zoho Catalyst, der serverlosen Entwicklerplattform von Zoho, aufbauen. Das entkoppelt die Logik vom CRM und bietet noch mehr Skalierungsmöglichkeiten.
- Alternative Trigger: Statt WorkDrive könntest du den Prozess auch aus Zoho Meeting direkt nach Ende einer Aufzeichnung anstoßen oder E-Mail-Anhänge aus Zoho Mail verarbeiten.
Zusätzliche Erweiterungsmöglichkeiten
Einmal digitalisiert, stehen dir die Meeting-Inhalte für weitere Automatisierungen offen:
- Action-Item-Erkennung: Nutze eine weitere KI-API (z.B. von Cohere oder Google Natural Language API), um automatisch nach Sätzen wie „Ich kümmere mich darum bis Freitag“ zu suchen und daraus Aufgaben in Zoho Projects zu erstellen.
- Sentiment-Analyse: Analysiere die Stimmung im Gespräch. War der Kunde zufrieden oder frustriert? Diese Metadaten können wertvoll für das Account Management im Zoho CRM sein.
- Business Intelligence: Leite die Metadaten (Meeting-Dauer, Sprecheranteile, Transkriptions-Erfolgsquote) an Zoho Analytics weiter, um Dashboards zu erstellen, die dir Einblicke in deine Kommunikationsmuster geben.
- Wissensdatenbank: Speichere die validierten Transkripte in einer durchsuchbaren Datenbank, z.B. mit Zoho Creator, um eine interne Wissensbasis aufzubauen.
Fazit
Die reine Automatisierung von Prozessen ist nur die halbe Miete. Eine wirklich robuste Lösung entsteht erst, wenn du Kontroll- und Validierungsmechanismen einbaust, die bei Fehlern nicht still versagen, sondern proaktiv informieren. Dieses Beispiel zeigt eindrucksvoll, wie die Kombination aus verschiedenen Zoho-Apps (Zoho WorkDrive, Zoho CRM, Zoho Cliq) und externen Diensten wie der OpenAI Whisper API über die flexible Skriptsprache Deluge zu einem intelligenten und widerstandsfähigen System wird. Du wandelst damit nicht nur Audio in Text um, sondern schaffst einen verlässlichen Prozess, der dir hilft, wertvolle Informationen zu sichern und dein Team bei Fehlern sofort handlungsfähig macht.
Verwendete Zoho Apps in dieser Lösung:
- Zoho CRM (als zentrale Steuerungseinheit)
- Zoho WorkDrive (als Dateispeicher und Auslöser)
- Zoho Cliq (für die Echtzeit-Alarmierung)
