Studios in MotionProjektkartei

Terminbuchung Probetraining

Aktiv

Terminwahl für Probetraining und Beratungsgespräch aus Google-Kalender, Magicline, aidoo und Agilea, mit Erinnerung, Umbuchung, Absage und Begleitperson

Bereich
Zentrale
Start
07.08.2026
Zuletzt
09.10.2026
Am Zug
René
Nächster Schritt, René

Formular „Terminanfrage“ (sim2026) in der Zentrale aktivieren und eine Ende-zu-Ende-Probebuchung mit der eigenen Adresse machen

Screenshots 2

SIM Beratungsgespräch buchen (Golf, preprod)
SIM Beratungsgespräch buchen (Golf, preprod)
SimGym Probetraining mit Terminwahl (preprod)
SimGym Probetraining mit Terminwahl (preprod)

Worum es geht

Interessenten wählen im Probetraining-Formular einen freien Termin, statt nur eine Anfrage zu schicken. Die Zentrale kennt mehrere Terminquellen (Google-Kalender, Magicline, aidoo, Agilea, manuell geplant) und liefert die Slots als einen quellen-neutralen Feed. Dazu kommen Erinnerung, Umbuchung und Absage per Token-Link und die Begleitperson beim Probetraining. Seit Oktober nutzt auch die eigene Website den Weg für Beratungsgespräche mit Golfclubs.

Stand

  • Terminquellen-Adapter im Hub seit 07.08.2026: Tabelle termin_quellen, öffentlicher Feed GET /portal/probetraining.json?k=[&f=<formular-key>][&s=<standort>]. Buchung über POST /portal/lead/<key> mit termin{beginn,ende}; der Lead wird immer zuerst gespeichert, das Ergebnis steht in leads.termin_json.
  • Quelle Magicline (Connect) und Magicline-Angebot (Open API, Duplikat-Weiche, Adresse-Pflicht-Wächter), Google-Kalender (Service-Account, Modus „belegt“ oder „frei“, Kalender anlegen und einladen), aidoo (Tschann, Terminquellen je Standort seit v0.263.0), Agilea (Probetrainings, seit v0.294.0).
  • Website-Baustein SimTerminwahl.astro im SimStandardformular: Monatskalender, Uhrzeit-Panel, Modal „Dein gewählter Termin“, Glas-Optik hell und dunkel, Signalfarbe, Handy-Fixes. Eingebaut in Template v1 und v2, SimGym, Impuls, ProAktiv.
  • Termin-Service seit 09.09. (Hub v0.260.2 bis v0.261.1): Erinnerung 24 h mit .ics, Umbuchung und Absage per Token-Link auf termin.sim-tools.cloud (Google-Quelle voll, Magicline-Angebot per DELETE und Neubuchung), Verlauf im Lead. Standard aus, je Quelle schaltbar. Pilot SimGym.
  • Begleitperson beim Probetraining seit 15.09. (Hub v0.309.0): ein Termin für zwei, Frage nach jeder Buchung im Chat, Erinnerung „Mit dabei: …“, Begleitperson wird 2 Stunden nach dem Termin eigener Lead.
  • SIM-Terminbuchung für Beratungsgespräche (08.10.): /kontakt/#termin-buchen ersetzt das alte Simbooking, neue Seite /golf/termin/ mit Du-Ansprache; Hub-Quelle #24 (Google, Kalender „SIM Website-Termin“, Frei-Titel „Beratungs-Gespräch“, Formular #2 Terminanfrage) liefert 48 echte Slots. Hub v0.368.0 (57b4d64) erkennt „Titel, 10:15“ als freien Slot (lokal, nicht deployt).
  • Die Seite /golf/termin/ ist am 11.10. auf www erreichbar und zeigt die Fassung mit vollen Imperativformen, die Freigabe preprod nach main ist also durch (Datum nicht belegt).
  • Service-Account sim-tools-booking@sim-bookings.iam.gserviceaccount.com hat Zugriff auf SimGym Terminbuchung, Impuls Starttermin-Buchung und seit 08.10. auf „SIM Website-Termin“ (Lesen geprüft 09.10.).

Offen

  • René Formular #2 „Terminanfrage“ von sim2026 in der Zentrale aktivieren (Akte sim2026 › Leads › Formulare). Solange es inaktiv ist, zeigt die Website „Danke“, aber es entsteht kein Lead, keine Mail, kein Kalendereintrag (Stand 09.10., prüfen, ob erledigt).
  • René Mit den zwei Golfclubs sprechen, deren Buchungsversuche am 09.10. verloren gingen (Holger Wietschenk, Auf Gut Berge, Lead 336; Gerd Rothfuchs, Rheine Golf, Lead 339), und die Termine neu abstimmen.
  • ich Quelle #23 (Testkalender) und den Testkalender „SIM Terminbuchung TEST“ löschen, sobald Quelle #24 abgenommen ist.
  • ich Hub v0.368.0 mit der nächsten Sammel-Auslieferung deployen (Titel mit Uhrzeit), sonst zählen Renés Einträge mit Uhrzeit erst nach dem Deploy.
  • ich Schutz bauen, damit ein inaktives Formular keine Terminbuchung mit „Danke“ vortäuscht (Website blendet das Formular bei aktiv:false aus, Feed prüft das Formular).
  • René Sandbox-Konfig bei Magicline: Adresse auf „optional“ stellen, damit der Magicline-Angebot-E2E (Umbuchung, Absage) laufen kann (seit 20.08. bekannt).
  • ich E3 Einbettung von sim-termin.js auf Kundenseiten (/termin/aendern/), aidoo-Storno (Antwort von Jens), zweite Erinnerungsstufe, Erinnerung für im Studio erfasste Termine.
  • René Impuls-Magicline pausiert (Kunde ungeklärt): vor dem Livegang eigener Kalender oder Magicline entscheiden (Impuls nutzt derzeit Google-Quelle #9).
  • René iPhone-Gegentest der Terminwahl-Optik, dann preprod nach main für SimGym, Impuls, ProAktiv (Stand 20.08., prüfen).
  • ich Terminwahl auch in Template v1 bis v3 und weitere Kunden-Repos ausrollen (Template v3 hat sie nicht, Scouting-Landingpage bewusst ohne).
  • ich WhatsApp-Erinnerung an die Begleitperson (braucht Opt-in) ist nicht gebaut.

Entscheidungen und Regeln

  • 2026-08-07: Terminquellen sind mehrquellenfähig (Magicline, Google, manuell). Kein Extra-Formular: Der Termin-Schritt steckt im SimStandardformular, Flag je Einbindung.
  • 2026-08-14: Personendaten sind anfangs unsichtbar, nur der Kalender; Uhrzeitwahl öffnet ein Modal; ausgebucht erscheint grau wie vorbei.
  • 2026-08-15: Standard der Google-Quelle ist Modus „belegt“ (Wochenraster minus Belegung minus eigene Buchungen). René will das Kalender-Schreiben zwingend, wie bei OsteoAthletik.
  • 2026-09-07: Umbuchung und Absage je Quelle, Standard aus; 24 h Erinnerung, Frist 12 h, maximal 2 Umbuchungen; .ics automatisch; Pilot SimGym.
  • 2026-09-15: Begleitperson gilt als ein Termin, keine zweite Buchung in der Studiosoftware.
  • 2026-10-08: Terminbuchung immer per Du, auch wenn /golf/ selbst Sie bleibt; Beratungsgespräch kostenlos und unverbindlich, Teams-Einladung per Mail im Anschluss.
  • 2026-10-09: Keine verkürzten Imperative in der Buchungsstrecke („Wähle“, „Suche dir“, „Nenne uns“).
  • Vor jeder Kundenaussendung eine Ende-zu-Ende-Probebuchung mit der eigenen Adresse machen.
  • Beim Bearbeiten der studio-config immer integrations.customerKey mitprüfen; ohne ihn bleibt die Terminwahl still aus.
  • Astro-scoped <style> greift nicht auf JS-erzeugte Elemente: Komponenten mit Laufzeit-DOM brauchen is:global.
  • Nach Zentrale-Änderungen mit Service-Worker sw.js-Cache-Namen mitbumpen (3 Stellen bei Versionsnummern).

Verlauf

  1. Störung: Formular „Terminanfrage“ inaktiv, zwei Buchungsversuche von Auf Gut Berge und einer von Rheine Golf gingen still verloren; Quelle #24 auf den echten Kalender; Schriftfarben-Fix (devel 8e6a42e, preprod 0ffce43) und Imperativ-Fix (devel e738137, preprod a90c4fb).
  2. SIM-Terminbuchung auf der SIM-Website gebaut (devel d461f11, preprod 785cca4); Hub v0.368.0 (57b4d64) lokal; Bestätigungsmail des Formulars #2 mit Teams-Hinweis.
  3. Hub v0.309.0 (c13de7d): Begleitperson beim Probetraining.
  4. Hub v0.294.0 (3c41db3): Agilea als Terminquelle.
  5. Hub v0.260.0 bis v0.261.1 (6055095, f7d7532, abe007f): Erinnerung, Umbuchung, Absage; E3 teilweise (v0.263.0, 2b9d574): Terminquellen je Standort, aidoo-Terminwahl bei Tschann. Renés Test mit Fake Filler wurde als Bot verworfen.
  6. Impuls-Magicline pausiert, Termin-Modal-Schließen-Fix flottenweit.
  7. Hub v0.215.0/v0.215.1: Magicline-Angebot, Duplikat-Weiche, Quelle je Formular; Impuls-Quelle #7 auf Google-Dummy; Glas-Optik hell und dunkel (simgym eca653b), Modal-Fix für iOS (8fdc126), Handy-Feinschliff.
  8. Hub v0.183.0 bis v0.186.0: Google-Kalender als Quelle, Modus „belegt“, Kalender anlegen und einladen; Vollbetrieb bei SimGym (Quelle 4, Lead 55).
  9. Runde 3 live auf www (Modal, Kalender), neue Seite /starttermin/; Regression gefunden: integrations.customerKey fehlte seit 09.08.
  10. Terminquelle sim2026 und fitmax aktiv (78 Slots), Monatskalender nach dem Vorbild osteoathletik.de/termin-buchen.
  11. Hub-Adapter P1 fertig und E2E bewiesen (Sandbox-Buchung 1210123602), Website-Baustein P2 (99d4938).

Wo liegt was

  • Hub-Code: /root/sim-ops/hub/src/terminQuellen.ts und terminQuellenCore.ts (Adapter, quelleWaehlen, istGoogleFreiTitel), terminService.ts (Umbuchung, Absage), terminErinnerungen.ts (Tick 60 s), agileaTermineCore.ts, aidooKursplan.ts für aidoo; Widget public/sim-termin.js.
  • Tabellen: termin_quellen (mit formular_id und location_key), termin_links; Termin-Ergebnis in leads.termin_json.
  • Zentrale: Kundenakte › Leads und Verkauf › Karte „Probetraining-Terminbuchung“ (Eingerichtete Quellen, Erinnerung und Umbuchung je Quelle, Neue Terminquelle, Technik). Hilfe: hub/hilfe/terminquellen.admin.md.
  • Öffentlich: /portal/probetraining.json, /termin/:token, /portal/termin/:token.json|slots.json|umbuchen|absagen, Host termin.sim-tools.cloud (HUB_TERMIN_BASE).
  • Google: Service-Account-Schlüssel /root/sim-ops/data/google-sa.json (600), HUB_GOOGLE_SA_JSON, HUB_GOOGLE_API_KEY in /root/sim-ops/.env. Kalender „SIM Website-Termin“ nur über die Kalender-ID abrufbar, nicht über calendarList. Kalender „SimGym Terminbuchung“ und „Impuls Starttermin-Buchung“ sind per Zentrale-Knopf angelegt.
  • Website: src/components/SimStandardformular.astro und SimTerminwahl.astro (Kopie aus golfwebsite-template-v1/open9 in website-sim2026), src/pages/golf/termin.astro, src/pages/kontakt.astro; Doku _WIKI/sim-terminwahl.md.
  • Doku: Wiki 00-Home/Stand 2026-08-07 Probetraining-Terminbuchung.md, 20-Tools/Terminbuchung Google-Kalender.md, 40-Projekte/Terminbuchung Erinnerung und Umbuchung Konzept.md, 40-Projekte/Magicline-API.md.