Erste Schritte (immer zuerst)
- Plugin-Version: MeetFlow 2.2.11+ (Free oder Pro; mindestens 2.2.7).
- PHP 8.0+ und WordPress 5.8+.
- Permalinks: Einstellungen → Permalinks → «Beitragsname» speichern (REST).
- Cache leeren: Browser Strg+F5, Page-Cache-Plugin, Object-Cache.
- Setup-Assistent: unten rechts — Thema wählen (Teams, Zoom, SMS …).
Plugin lässt sich nicht aktivieren
Symptom: «Fatal error» oder weisse Seite bei Aktivierung.
- Free-ZIP: Darf keinen Ordner
pro/enthalten (WordPress.org-Build). - Pro-ZIP: Nur ein KITech-Buchungsplugin gleichzeitig — kein zweites Plugin mit identischen
KITech_*-Klassen. - Speicher: PHP memory_limit mindestens 128M.
- Debug: In
wp-config.phpkurzWP_DEBUG_LOGaktivieren undwp-content/debug.logprüfen.
Shortcode / Formular fehlt
- Shortcode:
[meetflow_booking](Legacy:[kitech_booking]). - Block-Editor: Block «Shortcode» verwenden, nicht als Plaintext in HTML-Block.
- Theme muss
wp_footer()laden (JavaScript für Slots). - Konsole (F12): Fehler bei
/wp-json/meetflow/v1/timeslots?
Keine Zeitslots / «No available time slots»
- Geschäftszeiten: MeetFlow → Einstellungen → Allgemein — Wochentag aktiviert?
- MeetFlow → Kalender: Tag nicht gesperrt?
- Datum in der Zukunft, Zeitzone WordPress korrekt?
- Termindauer passt in den konfigurierten Block (z. B. 15 Min in 09:00–12:00).
- REST testen:
/wp-json/meetflow/v1/timeslots?date=2026-07-15
E-Mail & ICS
- Free: Mails via
wp_mail— SMTP-Plugin empfohlen (FluentSMTP, WP Mail SMTP). - Tab «E-Mail»: Benachrichtigungs-Adresse, Verteiler, Admin-Kopie, Erinnerungen, Texte anpassen (Free & Pro).
- Verteiler: mehrere Adressen kommagetrennt — erhalten Admin-Kopien und Erinnerungs-Kopien.
- Spam: SPF/DKIM der Absender-Domain prüfen.
- Keine Mail: Server mail() / SMTP-Log prüfen, Test mit «E-Mail senden» im SMTP-Plugin.
Pro / Lizenz
- Free muss aktiv sein, dann Pro-ZIP mit
pro/installieren. - MeetFlow → License → Key eingeben → «Activate».
- Domain-Limit: Lizenz nur für registrierte Domain(s) — Inhaber-Domain prüfen.
- API erreichbar:
api.kitech.ai(Firewall/Outbound HTTPS). - Tabs Video Conference / SMS erscheinen erst bei gültiger Pro-Lizenz.
OAuth / Redirect URI mismatch
- Redirect-URL exakt aus MeetFlow → Videokonferenz kopieren.
- Parameter
auth=zoom|google|webex|microsoftmuss übereinstimmen. - Kein Slash am Ende hinzufügen/entfernen.
- Google: Weiterleitungs-URIs in Cloud Console — siehe Google Troubleshooting.
- Zoom: App muss «Activated» sein, korrekte Scopes.
- Microsoft Teams: siehe ausführliche Anleitung bei AADSTS-Fehlern.
- Nach Fehler: Disconnect → Credentials speichern → erneut Connect.
Microsoft Teams / Azure (AADSTS-Fehler)
Symptom: Login schlägt fehl mit AADSTS700016, AADSTS90002, AADSTS900023 oder AADSTS50194 — die App wurde im falschen Mandanten registriert oder Client-ID, Tenant-ID und Secret stammen nicht aus derselben App-Registrierung.
Microsoft Entra Admin Center App registrieren (Microsoft Learn) Dokumentation — Teams Setup
Häufige Fehlercodes
| Code | Bedeutung | Lösung (Kurz) |
|---|---|---|
AADSTS700016 |
App mit dieser Client-ID existiert nicht im konfigurierten Mandanten (z. B. «KITech»). | App im richtigen Tenant neu registrieren; alle drei Werte aus derselben Übersicht kopieren. |
AADSTS90002 / AADSTS900023 |
Tenant nicht gefunden oder falsche Authority/Endpoint-Konfiguration. | Verzeichnis-ID (Mandant) als Tenant-ID — keine Tippfehler, kein falscher GUID. |
AADSTS50194 |
Single-Tenant-App, aber common als Endpoint verwendet. |
Verzeichnis-ID statt common; oder App auf Multi-Tenant umstellen. |
Schritt 1: Im richtigen Tenant anmelden
Melde dich im Microsoft Entra Admin Center mit dem Konto an, das Zugriff auf den gewünschten Mandanten hat — z. B. ingo.zimmermann@KITechai.onmicrosoft.com.
- Oben rechts im Portal prüfen: Organisation = KITech (nicht persönliches Konto, nicht anderer Mandant).
- Bei mehreren Mandanten: Organisation wechseln → KITech wählen, bevor du die App-Registrierung anlegst.
Schritt 2: Neue Registrierung anlegen
- Microsoft Entra ID → App-Registrierungen → + Neue Registrierung.
- Name: z. B.
MeetFlow(zur späteren Wiedererkennung; Name muss nicht eindeutig sein). - Unterstützte Kontotypen: Nur Konten in diesem Organisationsverzeichnis (Single tenant).
Schritt 3: Umleitungs-URI setzen
- Plattform: Web.
- Umleitungs-URI exakt eintragen (Microsoft prüft Zeichen für Zeichen):
https://dev.lireno.ch/wp-admin/admin.php?page=meetflow-settings&auth=microsoft - Produktion: URI aus MeetFlow-Feld Redirect-URI kopieren — pro Domain anpassen.
Schritt 4: IDs aus der Übersicht kopieren
Nach Registrieren öffnet sich die Übersicht der App.
| In Azure (Übersicht) | In MeetFlow |
|---|---|
| Anwendungs-ID (Client) | Client-ID |
| Verzeichnis-ID (Mandant) | Tenant-ID |
Beide Werte stammen von derselben Übersichtsseite — nicht aus verschiedenen Tenants mischen.
Schritt 5: Geheimen Clientschlüssel erstellen
- Zertifikate & Geheimnisse → + Neuer geheimer Clientschlüssel.
- Beschreibung + Ablauf wählen → Hinzufügen.
- Spalte Wert sofort kopieren — Microsoft zeigt ihn nur einmal.
| In Azure | In MeetFlow |
|---|---|
| Wert (geheimer Clientschlüssel) | Client Secret (Passwortfeld) |
Schritt 5b: API-Berechtigungen (einmalig)
- API-Berechtigungen → + Berechtigung hinzufügen → Microsoft Graph → Delegierte Berechtigungen.
Calendars.ReadWrite,OnlineMeetings.ReadWrite,User.Readaktivieren.- Administratorzustimmung für … erteilen (Global Admin oder berechtigter Admin).
Schritt 6: In MeetFlow eintragen
MeetFlow → Einstellungen → Videokonferenz → Microsoft Teams
- Client-ID ← Anwendungs-ID (Client)
- Tenant-ID ← Verzeichnis-ID (Mandant)
- Client Secret ← Wert des geheimen Clientschlüssels
- Einstellungen speichern → Mit Microsoft verbinden
Schritt 7: Mit dem richtigen Konto testen
- Beim OAuth-Dialog mit
ingo.zimmermann@KITechai.onmicrosoft.comanmelden (oder einem anderen Konto im gleichen KITech-Mandanten). - Provider Microsoft Teams wählen → Verbindung testen.
- Bei Erfolg: Status Mit Microsoft verbunden — keine AADSTS700016 / 90002 / 900023 mehr.
common bei Single-Tenant). Wenn du die App sauber im richtigen Tenant neu registrierst und alle drei Werte aus derselben App übernimmst, ist das die stabilste Lösung.
Schnell-Check vor erneutem Verbinden
- App-Registrierung sichtbar unter KITech → App-Registrierungen?
- Anwendungs-ID in MeetFlow = Anwendungs-ID auf der Übersicht dieser App?
- Tenant-ID = Verzeichnis-ID auf derselben Übersichtsseite?
- Umleitungs-URI in Azure = Redirect-URI in MeetFlow (Zeichen für Zeichen)?
- Login-Konto gehört zum Mandanten KITech (
@KITechai.onmicrosoft.comoder verknüpfte Domain)?
Google Meet / Google Calendar (OAuth)
Symptom: redirect_uri_mismatch, access_denied, kein Meet-Link nach Buchung oder OAuth bricht ab — Calendar API fehlt, Consent Screen unvollständig, Testnutzer nicht hinterlegt oder Weiterleitungs-URI stimmt nicht exakt mit MeetFlow überein.
Google Cloud Console Google Calendar API aktivieren OAuth 2.0 (Google) Dokumentation — Google Meet Setup
Häufige Fehler
| Fehler / Symptom | Ursache | Lösung (Kurz) |
|---|---|---|
redirect_uri_mismatch |
Weiterleitungs-URI in Google ≠ Redirect-URI in MeetFlow. | URI 1:1 aus MeetFlow kopieren; kein Slash am Ende ändern. |
access_denied / App im Testmodus |
Google-Konto ist kein Testnutzer auf dem Consent Screen. | OAuth-Zustimmungsbildschirm → Testnutzer → dein Gmail-Konto hinzufügen. |
| Kein Meet-Link in Bestätigung | Calendar API nicht aktiv oder OAuth nicht verbunden. | API aktivieren → Mit Google verbinden → Provider «Google Meet» wählen. |
Schritt 1: Google Cloud-Projekt
- Google Cloud Console öffnen → Projekt wählen oder Neues Projekt anlegen.
- APIs und Dienste → Bibliothek → «Google Calendar API» → Aktivieren.
- Falls noch nicht geschehen: OAuth-Zustimmungsbildschirm einrichten (APIs und Dienste → OAuth-Zustimmungsbildschirm).
- Tests mit normalen Google-Konten: Nutzertyp = Extern (nicht «Intern», sofern kein Google Workspace).
Schritt 2: OAuth-Zustimmungsbildschirm
| Feld in Google | Beispielwert |
|---|---|
| App-Name | MeetFlow |
| E-Mail-Adresse des Nutzersupports | deine Kontaktadresse (z. B. ingo.z.ch@gmail.com) |
| Autorisierte Domains | lireno.ch (ohne https://) |
| Testnutzer (im Testmodus) | Google-Konto, mit dem du OAuth testest |
Schritt 3: OAuth-Client anlegen
- APIs und Dienste → Anmeldedaten → Anmeldedaten erstellen → OAuth-Client-ID.
- Anwendungstyp: Webanwendung.
- Name: z. B.
MeetFlow Google OAuth. - Autorisierte JavaScript-Quellen:
https://dev.lireno.ch - Autorisierte Weiterleitungs-URIs:
https://dev.lireno.ch/wp-admin/admin.php?page=meetflow-settings&auth=google
(1:1 aus MeetFlow-Feld Redirect-URI kopieren)
Schritt 4: Werte kopieren
Nach dem Erstellen zeigt Google Client-ID und Clientschlüssel — Clientschlüssel nur einmal vollständig sichtbar.
| In Google (OAuth 2.0-Client) | In MeetFlow |
|---|---|
| Client-ID | Client-ID |
| Clientschlüssel | Client Secret |
Einstellungen speichern in MeetFlow.
Schritt 5: MeetFlow verbinden und testen
- Mit Google verbinden klicken.
- Mit dem Google-Konto anmelden, das als Testnutzer eingetragen ist (solange App im Testmodus).
- Provider Google Meet als aktiven Provider wählen.
- Test-Termin anlegen → prüfen, ob Meet-Link in Bestätigung/E-Mail erscheint.
conferenceData). Ohne Calendar API und gültiges OAuth gibt es keinen automatischen Meet-Link — auch wenn «Google Meet» als Provider gewählt ist.
Schnell-Check
- Calendar API im gleichen Projekt wie der OAuth-Client aktiviert?
- Weiterleitungs-URI = MeetFlow Redirect-URI (Zeichen für Zeichen)?
- JavaScript-Quelle = Site-Origin ohne Pfad (
https://dev.lireno.ch)? - Testnutzer = Konto beim «Mit Google verbinden»?
- Status in MeetFlow: Mit Google verbunden?
Meeting-Link wird nicht erstellt
- Pro-Lizenz aktiv?
- Provider als «Active provider» gewählt und verbunden (grüner Status)?
- Testbuchung im Admin unter MeetFlow → Buchungen — Spalte Meeting-URL?
- Teams: Admin consent erteilt? Falscher Mandant? → Microsoft Troubleshooting
- Google: OAuth verbunden? Calendar API aktiv? → Google Troubleshooting
- Zoom: Pro-Account?
SMS / Twilio
- Tab SMS Reminder:
sms_reminder_enabledodersms_on_bookingaktiv? - Twilio SID, Token, Absender-Nummer (+E.164) korrekt.
- SMS-Anbieter Twilio: Keine API-URL nötig — MeetFlow nutzt automatisch
https://api.twilio.com/2010-04-01. - Custom API: Nur bei Anbieter «Custom API» — URL in
custom_sms_api_urlmuss erreichbar sein (eigener Gateway, nicht Twilio-Standard). - Twilio Console → Logs: Fehlercode 21211 = ungültige Nummer.
WhatsApp Webhook
- Nur Plan «Grow» oder «Scale».
- Webhook:
https://IHRE-DOMAIN/wp-json/meetflow/v1/whatsapp/webhook - Verify Token in MeetFlow = Meta Developer Console.
- Permalinks nicht «Einfach» — sonst 404 auf REST.
Reports: Buchungen fehlen (Grow+)
Symptom: MeetFlow → Reports zeigt «No bookings in this period», obwohl Buchungen existieren — oder eine neue Buchung erscheint nicht.
- Pro-Version: 2.2.42+ verwenden — ältere Versionen filterten nur vom Monatsanfang bis heute, sodass zukünftige Termine fehlten.
- Filter «Appointment date» vs. «Created date»: Eine heute erstellte Buchung mit Termin nächste Woche zählt beim Termindatum-Filter unter dem zukünftigen Datum. Auf Created date umschalten, um nach Erstellung zu filtern.
- Zeitraum erweitern: «From»/«To» grosszügig setzen (Standard seit 2.2.42: ±1 Jahr).
- Stornierte Buchungen sind immer enthalten (Karte «Cancelled» + Status-Tabelle + Buchungsliste).
- Plan prüfen: Reports benötigen Grow oder Scale — bei «Reports require a Grow or Scale plan» unter MeetFlow → License den Plan kontrollieren.
- REST-Check (als Admin eingeloggt):
/wp-json/meetflow/v1/stats?date_from=2025-01-01&date_to=2027-01-01
Webhooks & Automation (Grow+/Scale)
Symptom: «Request failed» beim Test-Button, Zapier/n8n/Make empfängt nichts, oder der REST-Endpoint liefert 401/403/404.
«Request failed» bei «Send test webhook»
- Pro 2.2.43+ installieren — in 2.2.37–2.2.42 schlug die Nonce-Prüfung der Buttons «Send test webhook» und «Regenerate API key» immer fehl (Fix in 2.2.43).
- Nach dem Update: Seite mit Strg+Shift+R neu laden (JS-Cache).
- Als Administrator eingeloggt? Die Buttons erfordern
manage_options.
«Add at least one webhook URL first»
- URLs eintragen und Einstellungen speichern — der Test-Button liest nur gespeicherte URLs.
- Nur gültige http(s)-URLs, eine pro Zeile.
Automation-Tool empfängt keine Daten (Zapier / n8n / Make)
- Webhook-URL exakt kopiert?
- Zapier:
https://hooks.zapier.com/hooks/catch/…/…/ - n8n:
https://deine-n8n.ch/webhook/…— Workflow muss aktiv sein - Make:
https://hook.eu1.make.com/…— Szenario muss ON sein
- Zapier:
- Event «Booking created» aktiviert und gespeichert?
- Erst «Send test webhook» in MeetFlow, dann Test im Tool:
- Zapier: «Test trigger»
- n8n: Execution-Log / «Listen for test event»
- Make: «Determine data structure» / «Redetermine»
- Test-Payload hat
event: webhook.test— echte Buchungen sendenbooking.createdmit vollembooking-Objekt. - Automation muss aktiv sein (Zap published, n8n-Workflow aktiv, Make-Szenario ON).
Setup-Anleitungen: Zapier · n8n · Make
n8n: Webhook kommt nicht an
- Webhook-Node auf POST gestellt?
- Workflow aktiviert (nicht nur gespeichert)?
- Self-Hosted n8n: TLS-Zertifikat gültig? WordPress kann die URL per HTTPS erreichen?
- In n8n unter Executions prüfen, ob ein Request ankam (auch fehlgeschlagene).
Make: Webhook kommt nicht an
- Nach Test-Webhook in Make «Determine data structure» ausführen — sonst fehlen Felder beim Mapping.
- Szenario-Schalter ON (nicht nur Entwurf)?
- Richtige Make-Region (EU vs. US) — Hook-URL muss zur Instanz passen.
REST-Polling schlägt fehl (Zapier / n8n / Make)
- 401/403: API-Key als Header
X-MeetFlow-API-Keyoder Queryapi_keymitsenden; Key aus Einstellungen → Integrations kopieren. Nach «Regenerate» gilt nur der neue Key. - 404: Endpoint
/wp-json/meetflow/v1/integrations/bookingsexistiert nur mit Scale-Lizenz; Permalinks nicht «Einfach». - Schnelltest:
curl -s "https://IHRE-DOMAIN/wp-json/meetflow/v1/integrations/bookings?limit=5" -H "X-MeetFlow-API-Key: KEY"
WaNotifier: WhatsApp kommt nicht an
- Aktion «Send Message Template» statt «Within Active Session» nutzen — letztere braucht ein offenes 24-h-Fenster.
- Empfängernummer mit Ländercode (
+41…) — bei Kundennummern muss das Buchungsformular die Nummer entsprechend erfassen. - Template muss von Meta genehmigt sein; Notification in WaNotifier auf «On-going».
- Zapier Zap History prüfen: wurde die Action ausgeführt, was war die Antwort?
WaNotifier: API-Key nicht gefunden (Zapier-Popup)
Symptom: In Zapier erscheint beim Hinzufügen der WaNotifier-Action ein Popup «Connect to Zapier» mit Feld «Enter API Key (required)» — du findest den Key in WaNotifier nicht.
WaNotifier — API-Key (offiziell) Dokumentation — WaNotifier Setup
So findest du den Key
- app.wanotifier.com öffnen und einloggen (gleiches Konto wie deine Nummer
+41 76 739 91 88). - Sidebar: Automations → Integrations.
- Direct Integrations → API Integration → Manage.
- Tab API Keys → Feld My API Key → Copy.
- Key in Zapier-Popup einfügen → Connect.
Alternativer Pfad
Sidebar: WhatsApp-Nummer aufklappen → Settings (Zahnrad) → Tab API / API Keys.
Immer noch kein Key?
- Richtiges WaNotifier-Konto? (Organisation mit verbundener Business-Nummer)
- WhatsApp-Nummer vollständig verbunden und verifiziert?
- Seite neu laden / anderen Browser testen.
- Optional: Add New Key im API-Keys-Tab — neuen Key nur für Zapier erzeugen.
- WaNotifier-Hilfe: help.wanotifier.com
Transactional Notification: «No options are available»
Symptom: In Zapier beim Feld Transactional Notification steht «No options are available» — Dropdown bleibt leer.
Checkliste (in dieser Reihenfolge)
- Utility Message Template genehmigt? WaNotifier → Message Templates → Status Approved (nicht Pending/Rejected). Ohne Template keine Transactional Notification.
- Notification angelegt? WaNotifier → Notifications → Add New:
- Type: Transactional / Integration / API (nicht Broadcast/Marketing)
- Trigger: API request to a Webhook URL
- Template auswählen → Save
- Status: On-going
- Richtiges WaNotifier-Konto in Zapier? Gleicher Account wie die Notification. Account trennen und mit korrektem API-Key neu verbinden.
- Zapier aktualisieren: WaNotifier-Step → Account Reconnect oder Seite neu laden → Dropdown erneut öffnen.
- Kurz warten: Nach dem Speichern in WaNotifier kann Zapier 1–2 Minuten brauchen.
Schnelltest in WaNotifier
Unter Notifications solltest du mindestens einen Eintrag sehen mit Typ «Transactional» und Status «On-going». Wenn die Liste leer ist, fehlt Schritt 1 oder 2.
Vollständige Anleitung: Dokumentation WaNotifier · WaNotifier Zapier-Guide · Meta vs Zapier
White Label: Branding bleibt sichtbar
- Plan Scale erforderlich (Tab zeigt sonst Upgrade-Hinweis).
- Häkchen gesetzt und Einstellungen speichern geklickt?
- Frontend-Cache leeren (Page-Cache-Plugin, CDN, Browser Strg+F5).
- Vorschau im Tab «White label» zeigt den Server-Zustand — weicht das Frontend ab, ist es ein Caching-Problem.
REST API 404 / JSON-Fehler
- Permalinks neu speichern.
- Security-Plugin blockiert
/wp-json/? Whitelist setzen. - Test:
GET /wp-json/meetflow/v1/timeslots?date=2026-08-01
Cache & Theme-Konflikte
- Mit Standard-Theme (Twenty Twenty-Four) testen.
- Page-Builder: Shortcode in native WP-Seite einbetten.
- Minify/Combine JS deaktivieren für Admin- und Frontend-Scripts.
- Design-Anpassungen: Einstellungen → Design → Eigenes CSS statt Theme-Dateien patchen (gilt Free & Pro).
Übersetzungen / falsche Sprache
Symptom: MeetFlow bleibt Englisch oder zeigt gemischte Sprachen.
- Site-Sprache: Einstellungen → Allgemein → Sprache der Website (z. B. Deutsch).
- Admin-Sprache: Benutzer → Profil → Sprache (überschreibt im Backend).
- Polylang/WPML: Shortcode auf der sprachrichtigen Seite platzieren; Sprache im Frontend umschalten und Seite neu laden.
- Loco Translate: Textdomain
kitech-meetflow— nach Änderungen Cache leeren. - Alte ZIP: Free/Pro 2.2.9+ enthält vollständige
languages/*.mo(de, fr, it). - Pro nutzt denselben Free-Core — keine separate Pro-Übersetzungsdatei nötig.
Details: Dokumentation Sprachen
Weiterhin Probleme?
E-Mail an info@kitech.ai mit:
- MeetFlow-Version (Free/Pro)
- WordPress + PHP-Version
- Provider (Teams, Zoom, …)
- Fehlermeldung / Screenshot
- Relevante Zeilen aus
debug.log(ohne Secrets)
