Webinar-Daten clever integrieren: Von WebinarGeek zu Zoho CRM mit Custom Modules und API
Du nutzt Zoho CRM und externe Tools wie WebinarGeek für Dein Marketing und Deinen Vertrieb? Dann stehst Du vielleicht vor der Herausforderung, die Daten aus diesen verschiedenen Quellen sinnvoll zusammenzuführen. Einfach nur einen neuen Kontakt anzulegen, wenn sich jemand für ein Webinar anmeldet, reicht oft nicht aus. Wie behältst Du den Überblick, wer an welchem Webinar teilgenommen hat? Wie triggerst Du gezielte Follow-ups basierend auf dem Teilnahmeverhalten? Genau hier setzen wir an.
Dieser Artikel zeigt Dir einen praxisnahen Weg, wie Du Webinar-Anmeldungen und -Statistiken von Plattformen wie WebinarGeek nicht nur oberflächlich, sondern tief und strukturiert in Dein Zoho CRM integrierst. Wir nutzen dafür Custom Modules, die WebinarGeek API und Automatisierungstools wie Zapier oder Zoho Flow. Das Ziel: Ein sauberer Datenbestand, automatisierte Prozesse und eine echte 360-Grad-Sicht auf Deine Kontakte.
Das Praxisbeispiel: Webinar-Chaos vermeiden
Stell Dir vor, Dein Unternehmen führt regelmäßig Online-Webinare durch, um Leads zu generieren oder Kunden zu schulen. Die Anmeldung erfolgt über eine Landingpage, die vielleicht mit einem Tool wie OnePage erstellt wurde. Als Webinar-Plattform kommt WebinarGeek zum Einsatz.
Die typische Herausforderung: Jede Anmeldung soll im Zoho CRM landen. Ein einfacher Ansatz wäre, über Zapier bei jeder Anmeldung einen neuen Kontakt zu erstellen oder einen bestehenden zu aktualisieren und vielleicht ein Kontrollkästchen „Webinar XY teilgenommen“ zu setzen. Das wird aber schnell unübersichtlich:
- Was passiert, wenn sich ein Kontakt für mehrere Webinare anmeldet? Das Kontaktmodul wird mit Feldern überladen.
- Wie trackst Du, ob jemand wirklich teilgenommen hat, wie lange er dabei war oder welche Fragen er gestellt hat? Diese wertvollen Infos aus WebinarGeek gehen verloren.
- Wie steuerst Du automatisierte E-Mails gezielt an Teilnehmer vs. No-Shows für ein *spezifisches* Webinar?
Genau diese Probleme lösen wir mit einem strukturierteren Ansatz.
Schritt-für-Schritt zur integrierten Webinar-Verwaltung
Wir bauen eine Lösung, die Anmeldungen als eigene Datensätze verwaltet und diese sauber mit Kontakten und Webinaren verknüpft. Später reichern wir diese Daten über die WebinarGeek API an.
Schritt 1: Custom Modules in Zoho CRM anlegen
Das Herzstück unserer Lösung sind zwei Custom Modules, die Du über Zoho Creator (oft im Hintergrund bei der Modulerstellung in CRM genutzt) oder direkt in den CRM-Einstellungen erstellst:
-
Modul: „Webinare“
Dieses Modul repräsentiert jedes einzelne Webinar, das Du durchführst.
- Feld: Webinar-Name (Text, Pflichtfeld)
- Feld: Webinar-Datum (Datum/Uhrzeit)
- Feld: WebinarGeek ID (Text oder Zahl, eindeutig, Pflichtfeld) – Das ist der Schlüssel für die API-Integration! Du findest diese ID in Deinem WebinarGeek-Account.
- Feld: Status (Auswahlliste: Geplant, Durchgeführt, Abgesagt)
- Weitere Felder nach Bedarf (z.B. Thema, Referent, Link zur Aufzeichnung)
-
Modul: „Anmeldungen“
Dieses Modul speichert jede einzelne Anmeldung zu einem Webinar.
- Feld: Anmeldungs-Name (z.B. Auto-Nummer oder „Anmeldung [Kontaktname] – [Webinarname]“)
- Feld: Kontakt (Lookup-Feld zum Modul „Kontakte“, Pflichtfeld)
- Feld: Webinar (Lookup-Feld zum Modul „Webinare“, Pflichtfeld)
- Feld: Anmeldedatum (Datum/Uhrzeit, automatisch gesetzt)
- Feld: Status (Auswahlliste: Angemeldet, Teilgenommen, Nicht teilgenommen) – Wird später per API aktualisiert.
- Feld: Teilnahmedauer (Zahl, in Minuten) – Wird später per API aktualisiert.
- Feld: WebinarGeek Registrierungs-ID (Text) – Optional, falls von der API benötigt/geliefert.
- Weitere Felder nach Bedarf (z.B. Gestellte Fragen, Umfrageantworten)
Mit dieser Struktur hältst Du Dein Kontaktmodul sauber und hast alle anmeldungsrelevanten Daten zentral im „Anmeldungen“-Modul.
Schritt 2: Anmeldungen erfassen (Option A: Zapier)
Für den Start kannst Du Zapier nutzen, um neue Anmeldungen von Deiner Landingpage (z.B. OnePage Formular) ins CRM zu bringen.
- Trigger: „New Submission“ in Deinem Landingpage-Tool (z.B. OnePage, Typeform, etc.).
- Action 1: „Find or Create Contact“ in Zoho CRM.
- Suche anhand der E-Mail-Adresse.
- Wenn gefunden, nutze die ID des bestehenden Kontakts.
- Wenn nicht gefunden, erstelle einen neuen Kontakt mit den übermittelten Daten (Name, E-Mail, Firma, etc.).
- Action 2: „Create Module Entry“ in Zoho CRM für das Modul „Anmeldungen“.
- Kontakt: Nutze die ID aus Action 1.
- Webinar: Hier musst Du den richtigen Webinar-Datensatz aus Deinem „Webinare“-Modul auswählen.
- Tipp: Du kannst entweder die Zoho CRM ID des Webinars fest im Zap hinterlegen (musst den Zap dann für jedes Webinar kopieren/anpassen) oder, falls möglich, die WebinarGeek ID vom Landingpage-Formular mit übergeben und dann eine „Find Module Entry“-Action in Zapier nutzen, um den passenden Webinar-Datensatz anhand der WebinarGeek ID zu finden, bevor Du die Anmeldung erstellst.
- Status: Setze den Status initial auf „Angemeldet“.
- Anmeldedatum: Setze das aktuelle Datum/Uhrzeit.
Dieser Zap sorgt dafür, dass jede Anmeldung sauber erfasst und verknüpft wird.
Schritt 3: Anmeldungen erfassen (Option B: Zoho Flow mit Webhooks)
Eine elegantere Alternative, besonders wenn Du bereits Zoho One nutzt, ist Zoho Flow. Anstatt für jedes Webinar einen neuen Zap zu konfigurieren, kannst Du einen generischen Flow erstellen, der über einen Webhook ausgelöst wird.
- Webhook erstellen: Generiere in Zoho Flow eine Webhook-URL.
- Landingpage konfigurieren: Konfiguriere Dein Landingpage-Tool (falls es Webhooks unterstützt, wie z.B. viele Formular-Builder oder auch OnePage oft über Umwege/Integrationen) so, dass bei einer neuen Anmeldung die Daten an die Zoho Flow Webhook-URL gesendet werden. Wichtig: Stelle sicher, dass die WebinarGeek ID des betreffenden Webinars mitgesendet wird (z.B. als verstecktes Feld im Formular).
- Flow in Zoho Flow erstellen:
- Trigger: „Webhook“.
- Action 1 (Custom Function / Deluge): Extrahiere die Daten aus dem Webhook (E-Mail, Name, WebinarGeek ID etc.).
- Action 2: „Fetch Entry“ im Modul „Webinare“ in Zoho CRM. Suche den Webinar-Datensatz anhand der übermittelten WebinarGeek ID.
- Action 3: „Create or Update Contact“ in Zoho CRM (ähnlich wie bei Zapier, basierend auf E-Mail).
- Action 4: „Create Entry“ im Modul „Anmeldungen“ in Zoho CRM. Verknüpfe den Kontakt (aus Action 3) und das Webinar (aus Action 2). Setze Status auf „Angemeldet“.
Der Vorteil von Zoho Flow: Du brauchst nur einen Flow, der für alle Webinare funktioniert, solange die WebinarGeek ID korrekt übergeben wird. Das spart Administrationsaufwand.
Schritt 4: Statistiken holen mit der WebinarGeek API und Zoho Functions (Deluge)
Jetzt kommt der spannende Teil: Wir wollen die echten Teilnahme-Daten aus WebinarGeek holen und unsere „Anmeldungen“-Datensätze im CRM aktualisieren.
Das geht am besten mit einer Custom Function in Zoho CRM (geschrieben in Deluge), die Du entweder manuell nach einem Webinar für das spezifische Webinar startest oder, noch besser, über einen geplanten Workflow (Scheduler) oder via Zoho Flow triggerst.
Konzept der Funktion:
- Die Funktion benötigt die Zoho CRM ID des Webinar-Datensatzes, dessen Statistiken abgerufen werden sollen.
- Sie liest die WebinarGeek ID aus diesem Webinar-Datensatz.
- Sie stellt eine Anfrage an die WebinarGeek API, um die Teilnehmerdaten (Subscriptions/Viewers) für diese spezifische WebinarGeek ID abzurufen. Dafür benötigst Du einen API-Key von WebinarGeek.
- Die API liefert eine Liste von Teilnehmern mit E-Mail-Adressen und Statistiken (z.B. teilgenommen ja/nein, Dauer).
- Die Funktion iteriert durch die API-Antwort. Für jeden Teilnehmer:
- Sie sucht den entsprechenden „Anmeldungen“-Datensatz im CRM (via E-Mail und der verknüpften Webinar-ID).
- Sie aktualisiert den gefundenen „Anmeldungen“-Datensatz mit den Daten aus der API (Status auf „Teilgenommen“ / „Nicht teilgenommen“, Teilnahmedauer etc.).
Beispielhaftes Deluge-Skript (Konzept):
// Funktion erwartet die Zoho CRM ID des Webinars als Argument
void fetchWebinarGeekStats(int webinarCrmId)
{
// 1. Webinar-Datensatz aus CRM holen, um die WebinarGeek ID zu bekommen
webinarDetails = zoho.crm.getRecordById("Webinare", webinarCrmId);
if(webinarDetails != null && webinarDetails.containsk("WebinarGeek_ID"))
{
webinarGeekId = webinarDetails.get("WebinarGeek_ID");
webinarGeekApiKey = "DEIN_WEBINARGEEK_API_KEY"; // Sicher speichern, z.B. in Organization Variables
// 2. API-Aufruf an WebinarGeek vorbereiten (Endpunkt und Parameter prüfen!)
// Beispielhafter Endpunkt - Bitte die WebinarGeek API Doku konsultieren!
apiUrl = "https://api.webinargeek.com/v2/webinars/" + webinarGeekId + "/subscriptions"; // oder /viewers o.ä.
headers = Map();
headers.put("Authorization","Bearer " + webinarGeekApiKey);
headers.put("Content-Type","application/json");
// 3. API aufrufen
try
{
apiResponse = invokeurl
[
url :apiUrl
type :GET
headers:headers
];
// info "API Response: " + apiResponse; // Zum Debuggen
// 4. API-Antwort verarbeiten (angenommen, es ist eine Liste von Teilnehmern)
// Die genaue Struktur hängt von der WebinarGeek API ab! Prüfen!
if(apiResponse != null && apiResponse.get("data") != null) // Beispielhafte Struktur
{
participants = apiResponse.get("data"); // Annahme: 'data' ist eine Liste
for each participant in participants
{
email = participant.get("email"); // Annahme: Feld heißt 'email'
attended = participant.get("attended"); // Annahme: boolean 'attended'
duration = participant.get("viewing_time_seconds"); // Annahme: Feld für Dauer
if(email != null)
{
// 5. Passenden Anmeldungs-Datensatz im CRM suchen
searchCriteria = "((Kontakt.Email:equals:" + email + ") and (Webinar:equals:" + webinarCrmId + "))";
potentialAnmeldungen = zoho.crm.searchRecords("Anmeldungen", searchCriteria);
if(potentialAnmeldungen != null && potentialAnmeldungen.size() > 0)
{
anmeldungId = potentialAnmeldungen.get(0).get("id");
updateData = Map();
// Status und Dauer aktualisieren
if(attended == true)
{
updateData.put("Status", "Teilgenommen");
if(duration != null) {
updateData.put("Teilnahmedauer", (duration / 60).round(0)); // In Minuten
}
} else {
updateData.put("Status", "Nicht teilgenommen");
updateData.put("Teilnahmedauer", 0);
}
// 6. Anmeldungs-Datensatz aktualisieren
updateResp = zoho.crm.updateRecord("Anmeldungen", anmeldungId, updateData);
// info "Updated Anmeldung ID " + anmeldungId + ": " + updateResp;
}
else
{
info "Keine Anmeldung gefunden für Email: " + email + " und Webinar ID: " + webinarCrmId;
}
}
}
}
} catch(e) {
error "Fehler beim Abrufen/Verarbeiten der WebinarGeek Daten: " + e;
}
} else {
error "Webinar mit CRM ID " + webinarCrmId + " nicht gefunden oder keine WebinarGeek ID hinterlegt.";
}
}
// Beispielaufruf der Funktion (z.B. aus einem Workflow oder manuell)
// fetchWebinarGeekStats(123456789012345678); // Hier die echte CRM ID des Webinars einsetzen
Wichtig: Das obige Skript ist ein konzeptionelles Beispiel. Du musst die genauen API-Endpunkte, die Struktur der API-Antwort von WebinarGeek und die Feldnamen in Deinem CRM anpassen!
Tipps und Best Practices
- Eindeutige IDs: Nutze immer die eindeutige WebinarGeek ID zur Identifizierung von Webinaren, nicht nur den Namen oder Link.
- API Keys sicher verwalten: Speichere Deinen WebinarGeek API Key nicht direkt im Code, sondern nutze sichere Speicherorte wie die „Organization Variables“ in Zoho CRM.
- Fehlerbehandlung: Baue eine robuste Fehlerbehandlung in Deine Deluge-Skripte und Flows ein (Try-Catch-Blöcke, Logging). Was passiert, wenn die API nicht erreichbar ist oder ungültige Daten liefert?
- Rate Limits: Beachte eventuelle API Rate Limits sowohl von WebinarGeek als auch von Zoho. Verarbeite große Datenmengen ggf. in Batches.
- Skalierbarkeit: Der Ansatz mit Custom Modules ist sehr gut skalierbar. Du kannst problemlos tausende Anmeldungen über hunderte Webinare verwalten.
- Zoho Flow vs. Zapier: Wenn Du Zoho One nutzt, ist Zoho Flow oft die kostengünstigere und nahtloser integrierte Wahl im Vergleich zu Zapier, insbesondere wenn Du viele Tasks benötigst.
- Datenqualität: Achte auf saubere E-Mail-Adressen bei der Anmeldung, da diese oft der Schlüssel zur Verknüpfung sind. Implementiere ggf. Validierungen auf Deiner Landingpage.
- Testen: Teste den gesamten Prozess gründlich mit Test-Anmeldungen und echten API-Daten, bevor Du ihn live schaltest.
Zusätzliche Hinweise und Erweiterungen
Diese strukturierte Datenerfassung im „Anmeldungen“-Modul eröffnet viele weitere Möglichkeiten im Zoho-Ökosystem:
- Automatisierte Follow-ups: Erstelle Workflows in Zoho CRM, die E-Mails (z.B. über Zoho Campaigns oder Zoho Marketing Automation) basierend auf dem Status („Teilgenommen“, „Nicht teilgenommen“) im Anmeldungs-Datensatz versenden.
- Aufgabenmanagement: Lege automatisch Aufgaben in Zoho CRM oder Zoho Projects für das Sales-Team an, um Teilnehmer nachzufassen.
- Reporting & Analytics: Nutze Zoho Analytics, um detaillierte Berichte über Deine Webinare zu erstellen. Welche Webinare haben die höchste Teilnahmequote? Welche generieren die meisten qualifizierten Leads?
- Andere Integrationen: Das Konzept lässt sich auf andere Event- oder Webinar-Plattformen übertragen, solange diese eine API oder Webhook-Möglichkeiten bieten (z.B. Eventbrite, GoToWebinar, Zoom).
- Telefonie-Integration (z.B. 3CX): Obwohl im Ursprungsdokument von Problemen bei der 3CX-Integration die Rede war, ist eine funktionierende Telefonie-Integration (egal welcher Anbieter) generell wertvoll. Anrufe bei Webinar-Teilnehmern können direkt aus dem CRM gestartet und protokolliert werden.
- E-Mail-Tracking: Das Tracking von E-Mail-Öffnungen und Klicks funktioniert am zuverlässigsten, wenn E-Mails direkt über die Zoho-Infrastruktur (z.B. via Workflow, Campaigns oder direkt aus dem CRM mit Zoho Mail als Backend) gesendet werden. Bei Versand über externe Konten wie Gmail via IMAP-Integration ist das Tracking oft eingeschränkt.
Fazit: Strukturierte Daten sind Gold wert
Die Integration externer Tools wie WebinarGeek in Dein Zoho CRM muss nicht bei der einfachen Kontaktsynchronisation enden. Durch den Einsatz von Custom Modules („Webinare“, „Anmeldungen“) schaffst Du eine klare, skalierbare Datenstruktur.
Die Kombination aus Zoho CRM, Zoho Flow (oder Zapier), Deluge und der WebinarGeek API ermöglicht es Dir, Anmeldeprozesse zu automatisieren und wertvolle Teilnahme-Statistiken direkt im CRM verfügbar zu machen. Das Ergebnis ist eine verbesserte Sicht auf Deine Kontakte, die Möglichkeit für gezieltere Marketing- und Vertriebsaktionen und letztendlich eine effizientere Nutzung Deiner Tools.
Auch wenn die Einrichtung initial etwas Aufwand bedeutet, zahlt sich die Investition in eine saubere Datenintegration langfristig aus. Du gewinnst tiefere Einblicke und kannst Deine Prozesse auf eine solide Datenbasis stellen. Trau Dich, die Möglichkeiten von APIs und Custom Modules zu nutzen!