Booking-Modul · Benutzeranleitung
Kunden buchen ihre Termine selbst
Der Terminfinder lässt Deine Kunden selbst einen freien Termin wählen, statt hin und her zu schreiben. Du legst fest, welche Terminarten es gibt und wann gebucht werden kann; jede Mitarbeiterin entscheidet für sich, ob sie solche Termine annimmt und in welchem Kalender sie landen.
Angeboten werden nur Zeiten, die wirklich frei sind. Ein privater Termin im Kalender blockiert genauso wie ein Kundentermin, und ein Kunde erfährt nie, warum eine Zeit fehlt.

Drei Orte, drei Fragen
Die Einstellungen liegen bewusst an drei Stellen, weil sie drei verschiedene Fragen beantworten und zu drei verschiedenen Personen gehören:
| Ort | Frage | Wer entscheidet |
|---|---|---|
Verwalten → Terminfinder | Was wird angeboten | eine Administratorin |
Einstellungen → Öffnungszeiten | Wann kann gebucht werden | eine Administratorin |
Ihr Profil → Terminfinder | Wer nimmt Termine an | jede Person für sich |
Der dritte ist der wichtige. Welche Terminarten es gibt, legt die Verwaltung fest — ob Du persönlich solche Termine annimmst und in welchem Deiner Kalender eine Buchung landet, ist Deine Entscheidung. Dasselbe Prinzip wie bei der Kalenderfreigabe daneben.
Auf derselben Seite findest Du auch Deine eigene Buchungsseite: einen Satz über Dich, den direkten Link und die zwei Zeilen für Deine Website. Bild und Name kommen aus Deinem FreeScout-Profil, sie werden hier nicht ein zweites Mal gepflegt.
Terminarten
Eine Terminart beschreibt einen Anlass: Name, Beschreibung, Dauer, Ort. Dazu drei Angaben, die den Kalender in Ruhe lassen:
Jede Terminart bekommt ihre eigene öffentliche Adresse unter /termin/{name}. Und Du legst fest, ob eine bestimmte Person zuständig ist oder ob der Kunde «egal wer» wählen darf — wer den Termin dann tatsächlich übernimmt, wird beim Buchen gegen eine frische Verfügbarkeitsprüfung entschieden.
Öffnungszeiten
Die Vorgabe ist Montag bis Freitag, 08:00–11:45 und 13:15–17:30. Ein Wochentag, den Du leer lässt, ist ein geschlossener Tag.
Einzelne Personen können eigene Zeiten haben. Wo es sie gibt, ersetzen sie die allgemeine Zeit für diesen Wochentag vollständig — sie kommen nicht dazu. Das ist die Regel, an der man sich sonst verrechnet.
Was eine Zeit blockiert
Alles Folgende wird von den Öffnungszeiten abgezogen, bevor eine einzige Zeit angeboten wird:
| Quelle | Wirkung |
|---|---|
| Ein Termin in irgendeinem Kalender der Person | diese Zeit ist belegt |
| Reisezeit an einem Termin | die Zeit davor ist ebenfalls belegt |
| Eine Terminserie | jedes Vorkommen im Zeitfenster |
| Ganztägige Einträge | der ganze Tag |
| Eine andere Buchung über dieses Modul | diese Zeit |
| Abstand davor und danach der Terminart | gilt als belegt |
| Feiertag aus dem HR-Modul | der ganze Tag |
| Ferienantrag, bewilligt oder offen | der ganze Zeitraum |
| Abwesenheit, bewilligt oder offen | der ganze Zeitraum |
Dass ein offener Antrag wie ein bewilligter zählt, ist eine Entscheidung und keine Ableitung: ein Kundentermin, der in einen einen Tag später bewilligten Urlaub fällt, ist schwerer zu bereinigen als eine Zeit, die während eines offenen Antrags nicht angeboten wurde. Ein abgelehnter Antrag blockiert nichts.
Der Kunde erfährt von all dem nichts. Ein fehlender Tag ist einfach nicht da — ob dahinter ein Feiertag, ein voller Kalender oder eine Abwesenheit steht, geht niemanden von aussen etwas an. Eine Abwesenheit ist eine Tatsache über einen Menschen, nicht über ein Angebot.
Auf der eigenen Website einbauen
Zwei Zeilen, dort wo der Terminfinder erscheinen soll:
- Ein leeres Element als Platz, zum Beispiel
<div id="terminfinder"></div> - Dazu das Skript
widget.jsDeiner Installation, mitdata-typefür die Terminart unddata-targetfür den Platz
Lässt Du data-type weg, wählt der Besucher aus allen öffentlichen Terminarten. Lässt Du data-target weg, erscheint der Terminfinder genau dort, wo das Skript steht — dann ist es eine Zeile. Die genauen zwei Zeilen für Deine Installation stehen fertig bei Ihr Profil → Terminfinder.
Es ist kein iframe. Der Terminfinder wächst mit seinem Inhalt, bringt keine zweite Bildlaufleiste mit und übernimmt die Farbe Deiner Seite über die CSS-Variable --latf-accent. Umgekehrt kann von Deiner Seite nichts hineinwirken: Schrift, Grösse und Abstände sind alle ausdrücklich gesetzt, weil der Terminfinder nicht wissen kann, wo er landet.
Preise
Eine Terminart ist entweder kostenlos oder sie zeigt auf einen Bexio-Artikel. Einen eigenen Preis trägt sie nicht — das wäre eine zweite Stelle für dieselbe Zahl, und am Tag, an dem jemand den Artikel ändert, würde der Terminfinder weiter den alten Preis versprechen.
Kostenlos ist dabei ausdrücklich anzugeben und wird nicht daraus geschlossen, dass kein Artikel gesetzt ist. «Kein Artikel eingetragen» und «kostenlos» sind verschiedene Aussagen: das eine ist eine Lücke in der Einrichtung, das andere eine Entscheidung.
Trägt der Artikel einen Steuersatz, wird der Bruttopreis gezeigt und als solcher bezeichnet. Trägt er keinen, wird der Preis so gezeigt, wie er am Artikel steht — ohne Behauptung darüber, ob Steuer enthalten ist. Alles andere wäre geraten, und bei Preisen rät man nicht.
Was eine Buchung auslöst
Der Reihe nach, und jeder Schritt für sich abgesichert:
- Der Eintrag in der Datenbank. Zuerst, weil hier die Sperre gegen Doppelbuchungen sitzt: klicken zwei Personen dieselbe Zeit im selben Augenblick, bekommt eine den Termin und die andere eine Meldung.
- Der Kalendereintrag, im Kalender, den die Mitarbeiterin gewählt hat. Erst nach dem Eintrag, denn ein Kalendereintrag ohne Datensatz wäre ein Termin, den niemand absagen kann.
- Der kMeet-Raum, wenn die Terminart ein Videotermin ist — unter dem Infomaniak-Konto dieser Person, denn dort findet der Termin statt.
- Ein Ticket, damit die Buchung im gewohnten Ablauf auftaucht und nicht nur in einem Kalender, in den niemand schaut.
- Die Bestätigungsmail, mit Link, Preis und einer Absageadresse, die ohne Konto funktioniert.
Die letzten drei Schritte nehmen den Termin nie mit sich. Eine Buchung, die scheitert, weil Infomaniak gerade nicht erreichbar ist, wäre die schlechtere Seite des Fehlers. Klappt der Raum nicht, sagt die Bestätigung das ausdrücklich — sonst wartet jemand zur vereinbarten Zeit auf eine Adresse, die nie kam.
Gut zu wissen
Das Kalender-Modul wird gebraucht
Verfügbarkeit, Zielkalender und die kMeet-Anbindung kommen alle von dort. Ohne das Kalender-Modul kann der Terminfinder nicht arbeiten.
HR, Bexio und das Kundenportal sind freiwillig
Ohne das HR-Modul gibt es keine Feiertage, Ferien und Abwesenheiten — dann blockieren sie eben nichts, und sonst ändert sich nichts. Ohne Bexio gibt es keine kostenpflichtigen Terminarten. Mit dem Kundenportal-Modul werden dieselben Terminarten auch angemeldeten Kunden angeboten, aus derselben Verfügbarkeitsrechnung und mit bereits bekannter Identität.
Eine Absage räumt in der richtigen Reihenfolge auf
Beim Absagen wird zuerst der Infomaniak-Eintrag entfernt und dann der Termin gelöscht. Umgekehrt wäre die Kennung des Eintrags weg, bevor ihn etwas aufräumen könnte — und er würde für immer im Kalender dieser Person stehen bleiben.