Zoom Integration

Zoom-Meetings automatisch erstellen und verwalten

Zoom Meeting Online-Kurs Webinar API

Zoom Integration

Verbindet Ihre Online-Kurse automatisch mit Zoom. Meetings werden direkt aus WordPress erstellt - kein manuelles Kopieren von Links mehr noetig.


Status-Uebersicht

Feature Status Hinweis
API-Verbindung ✅ Funktioniert OAuth Token-Handling
Zugangsdaten speichern ✅ Funktioniert Account ID, Client ID, Secret
Verbindung testen ✅ Funktioniert AJAX in Einstellungen
Meeting manuell erstellen ✅ Funktioniert Button in Kurs-Metabox
Meeting loeschen ✅ Funktioniert Button in Kurs-Metabox
Auto-Delete bei Kurs-Loeschung ✅ Funktioniert Automatisch
Join-URL in E-Mail ✅ Funktioniert {{zoom_join_url}} Platzhalter
Automatische Meeting-Erstellung ⚠️ Deaktiviert Im Code vorbereitet
Webhook-Endpoint ⚠️ Nicht konfiguriert Erfordert Zoom Marketplace Setup
Teilnahme-Tracking ⚠️ Wartet auf Webhook Code fertig
Recording-Import ⚠️ Wartet auf Webhook Code fertig

Einrichtung

Schritt 1: Modul aktivieren

  1. Gehen Sie zu Kurs-Booking → Einstellungen → Module
  2. Aktivieren Sie "Zoom"
  3. Speichern

Schritt 2: Zoom Server-to-Server App erstellen

  1. Oeffnen Sie Zoom App Marketplace
  2. Klicken Sie auf "Build App"
  3. Waehlen Sie "Server-to-Server OAuth"
  4. Geben Sie einen Namen ein (z.B. "Kurs-Booking")
  5. Klicken Sie "Create"

Schritt 3: Zugangsdaten kopieren

In der Zoom App finden Sie drei wichtige Werte:

Feld Wo zu finden
Account ID App Credentials → Account ID
Client ID App Credentials → Client ID
Client Secret App Credentials → Client Secret

Schritt 4: In WordPress eintragen

  1. Gehen Sie zu Kurs-Booking → Einstellungen → Zoom
  2. Tragen Sie die drei Werte ein:
  3. Account ID
  4. Client ID
  5. Client Secret
  6. Klicken Sie "Verbindung testen"
  7. Bei Erfolg: Gruener Haken erscheint
  8. Speichern

Schritt 5: Scopes aktivieren (in Zoom)

In der Zoom App unter "Scopes" folgende Berechtigungen aktivieren:

Scope Beschreibung
meeting:write:admin Meetings erstellen/loeschen
meeting:read:admin Meeting-Details lesen
user:read:admin Benutzerinfo lesen

Danach App aktivieren (Activate your app).


Meeting erstellen

Manuell (Empfohlen)

Wenn ein Kurs die Produktart "online" hat (z.B. Live Webinar), erscheint eine Zoom-Metabox:

  1. Kurs bearbeiten
  2. In der Seitenleiste: "Zoom Meeting" Box
  3. Klicken Sie "Meeting erstellen"
  4. Fertig! Meeting-ID und Links werden gespeichert

Was wird erstellt?

Feld Beschreibung
Meeting-ID Eindeutige Zoom-ID
Teilnehmer-Link URL fuer Teilnehmer (in E-Mails)
Host-Link URL fuer Sie als Gastgeber
Kenncode Meeting-Passwort

Meeting-Einstellungen

Das Meeting wird mit diesen Standardeinstellungen erstellt:

  • Host-Video: An
  • Teilnehmer-Video: Aus
  • Warteraum: Aktiviert
  • Stummschaltung beim Beitritt: An
  • Aufnahme: Keine

Zoom-Metabox im Kurs

Ohne Meeting

Wenn noch kein Meeting existiert:

┌─────────────────────────────────┐
│ Zoom Meeting                    │
├─────────────────────────────────┤
│ Noch kein Zoom-Meeting          │
│                                 │
│ [Meeting erstellen]             │
└─────────────────────────────────┘

Mit Meeting

Nach dem Erstellen:

┌─────────────────────────────────┐
│ Zoom Meeting                    │
├─────────────────────────────────┤
│ ✓ Meeting aktiv                 │
│                                 │
│ Meeting-ID: 856 7890 1234       │
│ Kenncode: 123456                │
│                                 │
│ [Teilnehmer-Link] [Meeting starten]│
│                                 │
│ ─────────────────────────────── │
│ [Meeting loeschen]              │
└─────────────────────────────────┘

Wann erscheint die Metabox?

Die Zoom-Metabox erscheint nur wenn:

  1. Zoom-Modul aktiviert ist
  2. API-Zugangsdaten konfiguriert sind
  3. Kurs hat Produktart mit Art = "online"

E-Mail-Platzhalter

In Buchungsbestaetigungs-E-Mails koennen Sie Zoom-Daten einfuegen:

Platzhalter Ausgabe
{{zoom_join_url}} Teilnehmer-Link
{{zoom_password}} Meeting-Kenncode
{{zoom_meeting_id}} Meeting-ID

Beispiel E-Mail-Text

Ihr Zoom-Zugang:

Meeting-Link: {{zoom_join_url}}
Meeting-ID: {{zoom_meeting_id}}
Kenncode: {{zoom_password}}

Bitte treten Sie 5 Minuten vor Beginn bei.

Aktueller Workflow

So funktioniert die Zoom-Integration aktuell:

1. Admin aktiviert Zoom-Modul (Einstellungen → Module)
2. Admin traegt Zoom-Credentials ein (Account ID, Client ID, Secret)
3. Admin testet Verbindung
4. Admin erstellt Online-Kurs
5. Admin klickt manuell "Meeting erstellen" in der Metabox
   → Meeting wird bei Zoom erstellt
   → Join-URL wird gespeichert
6. Kunde bucht Kurs
7. Buchungsbestaetigung enthaelt {{zoom_join_url}} (wenn Template konfiguriert)
8. Kunde tritt Meeting bei ueber Link

Was NICHT passiert (ohne Webhook-Setup):

  • Keine automatische Meeting-Erstellung bei Kurs-Speicherung
  • Kein Tracking wer teilgenommen hat
  • Keine automatische Recording-Speicherung
  • Keine Registrierung der Teilnehmer bei Zoom

Webhooks (Optional/Erweitert)

Hinweis: Webhooks erfordern zusaetzliches Setup im Zoom Marketplace.

Webhook-Features (im Code vorbereitet)

Feature Status Beschreibung
Meeting gestartet ⚠️ Status-Update in WordPress
Meeting beendet ⚠️ Dauer speichern
Teilnehmer beigetreten ⚠️ Anwesenheit tracken
Aufnahme fertig ⚠️ Recording-URL speichern

Webhook einrichten

  1. In Zoom App: "Feature" → "Event Subscriptions"
  2. Webhook-URL aus Plugin-Einstellungen kopieren: https://ihre-domain.de/wp-json/kurs-booking/v1/zoom-webhook
  3. Events aktivieren:
  4. meeting.started
  5. meeting.ended
  6. meeting.participant_joined
  7. recording.completed
  8. Secret Token kopieren und in WordPress eintragen
  9. Checkbox "Teilnahme erfassen" aktivieren

Technische Einstellungen

Unter "Technische Einstellungen" (aufklappbar) finden Sie:

Feld Beschreibung
Webhook Secret Fuer Signatur-Verifizierung
Verification Token Fuer URL-Validierung
Endpoint URL Webhook-Adresse fuer Zoom

Unterstuetzte Produktarten

Zoom ist fuer alle Produktarten mit Art = "online" verfuegbar:

Produktart Art Zoom
Live Webinar online
Workshop Online online
Coaching Online online
Praesenz-Kurs praesenz
Lehrvideo digital

Hinweis: Die "Art" wird in den Dienstleistungen-Einstellungen festgelegt.


Fehlerbehebung

API-Verbindung schlaegt fehl

Problem Loesung
"Invalid credentials" Client ID/Secret pruefen
"Account not found" Account ID pruefen
"Insufficient scope" Scopes in Zoom App aktivieren
"App not activated" App in Zoom aktivieren

Meeting wird nicht erstellt

Problem Loesung
Button fehlt Produktart auf "online" setzen
"API nicht konfiguriert" Zugangsdaten eintragen
"Berechtigung fehlt" Admin-Rechte pruefen

Metabox erscheint nicht

  1. Zoom-Modul aktiviert?
  2. API-Zugangsdaten eingetragen?
  3. Kurs hat Online-Produktart?

Sicherheit

Zugangsdaten

  • Client Secret wird verschluesselt gespeichert
  • Host-Link niemals in E-Mails (nur fuer Admin!)
  • Teilnehmer-Link ist sicher zum Versenden

Best Practices

  1. Warteraum aktiviert lassen - Kontrolle ueber Teilnehmer
  2. Kenncode verwenden - Zusaetzliche Sicherheit
  3. Host-Link geheim halten - Nur Sie als Gastgeber

Haeufige Fragen

Brauche ich einen kostenpflichtigen Zoom-Account?

Fuer die API-Integration: Ja, mindestens Zoom Pro (~14€/Monat). Die Server-to-Server OAuth App erfordert einen bezahlten Account.

Was passiert wenn ich den Kurs loesche?

Das Zoom-Meeting wird automatisch mitgeloescht.

Kann ich ein bestehendes Meeting verwenden?

Aktuell werden Meetings nur ueber das Plugin erstellt. Manuelle Meeting-IDs werden nicht unterstuetzt.

Werden Serien-Termine unterstuetzt?

Recurring Meetings sind fuer eine spaetere Version geplant.

Warum keine automatische Meeting-Erstellung?

Die automatische Erstellung beim Kurs-Speichern ist im Code vorbereitet, aber bewusst deaktiviert. Grund: Manuelles Erstellen gibt mehr Kontrolle darueber, wann ein Meeting angelegt wird.


Technische Referenz

Betroffene Dateien

Datei Zweck
includes/class-zoom-api.php OAuth + API-Aufrufe
includes/class-zoom-settings.php Einstellungen-Tab
includes/class-zoom-kurs.php Kurs-Metabox + CRUD
includes/class-zoom-webhook.php Webhook-Handler
includes/class-email.php E-Mail-Platzhalter

Meta-Felder

Meta-Key Beschreibung
_kurs_zoom_meeting_id Zoom Meeting-ID
_kurs_zoom_join_url Teilnehmer-Link
_kurs_zoom_start_url Host-Link
_kurs_zoom_password Meeting-Kenncode
_kurs_zoom_status Status (none/planned/live/ended)

Letzte Aktualisierung: 24. Januar 2026 (Ehrliche Bestandsaufnahme)