09 – Öffentliche Anfrage und Online-Buchung
nutriam hat zwei Seiten, die ohne Login erreichbar sind: ein Anfrageformular und eine Terminbuchung, beide unter deinem eigenen Praxis-Kürzel. Beide gibt es zusätzlich als Snippet für die eigene Website. Dieses Kapitel beschreibt, was Interessierte dort sehen, was du einstellen kannst und wie aus einem Klick ein Lead oder ein Termin wird.
1. Die vier Kanäle im Überblick
Jede Praxis hat ein festes Kürzel im Link, den Slug. Er steckt in allen öffentlichen Adressen.
| Kanal | Adresse | Was entsteht | Freischaltung |
|---|---|---|---|
| Anfrageformular | /t/<slug>/anfrage |
Lead | sofort aktiv |
| Anfrage-Snippet | eigene Website, /embed/inquiry.js |
Lead | sofort aktiv |
| Online-Buchung | /t/<slug>/termin |
Lead und Termin | Opt-in nötig |
| Buchungs-Snippet | eigene Website, /embed/booking.js |
Lead und Termin | Opt-in nötig |
Alle vier Links und beide Snippets stehen gebündelt auf /leads/new im
einklappbaren Block „Leads kommen auch über dein öffentliches Formular
rein". Das ist die einzige Stelle im Workspace, an der dein Slug auftaucht.
Achtung: Den Slug können Team-Admins in der Verwaltung ändern (Verwaltung → Website & Formulare, Feld Kürzel (Slug) ändern). Nach einer Änderung gelten sofort neue Adressen — alte Links, eingebaute Snippets und „Termin verwalten"-Links aus versendeten E-Mails laufen ins Leere, eine Weiterleitung gibt es nicht. Details in 08 – Verwaltung.
Ist dein Mandant deaktiviert, liefern alle vier Adressen einen 404.
2. Das Anfrageformular /t/<slug>/anfrage
Die schlichtere der beiden Seiten: ein Kontaktformular, sonst nichts. Oben steht das Eyebrow „Erstkontakt", darunter dein Praxisname als Überschrift und der Satz „Beschreibe kurz dein Anliegen. Wir melden uns per E-Mail oder Telefon mit den nächsten Schritten."

| Feld | Pflicht? | Grenze |
|---|---|---|
| Vorname | ✓ | max. 80 Zeichen |
| Nachname | ✓ | max. 80 Zeichen |
| ✓ | muss eine gültige Adresse sein | |
| Telefon | – | max. 40 Zeichen |
| Dein Anliegen | – | Freitext, fünf Zeilen hoch |
Abgeschickt wird mit „Anfrage senden". Direkt darunter steht der Einwilligungshinweis „Mit dem Absenden willigst du in die Kontaktaufnahme durch ein." Ganz unten führen zwei Links auf Datenschutz und Impressum.
Nach dem Absenden bleibt die Person auf derselben Seite und sieht einen grünen Kasten „Danke!" mit dem Text „Danke, deine Anfrage ist eingegangen. Wir melden uns per E-Mail." Geht etwas schief, erscheint stattdessen ein roter Kasten „Anfrage fehlgeschlagen" mit der Fehlermeldung.
Zusätzlich geht eine kurze Eingangsbestätigung per E-Mail an die angegebene Adresse — „Anfrage eingegangen", mit Eingangszeitpunkt, im Branding deiner Praxis. Sie bestätigt nur den Eingang; die eingetippte Nachricht wird bewusst nicht zurückgeschickt. Abschalten kannst du sie unter 08 – Verwaltung im Tab „Termine & Buchung".
Achtung: Die Bestätigung sagt nur „angekommen", nicht „bearbeitet". Wer nach zwei Tagen nichts Persönliches von dir hört, hält die Anfrage für verloren — plane das Nachfassen also fest ein (siehe Abschnitt 6).
3. Die Online-Buchung /t/<slug>/termin
Hier wählen Interessierte selbst einen freien Slot. Die Seite führt in drei
Schritten durch die Buchung; oben sitzen dein Praxisname mit der Initiale als
Avatar, die Zeile „Ernährungsberatung · Termin buchen" und eine Pille
nutriam.app.
a) Schritt 1 von 3 — „Was möchtest du buchen?"
Angeboten werden die Terminarten, die du im Leistungskatalog als Öffentlich buchbar (Buchungsseite) markiert hast — jede mit ihrer dort gepflegten Termindauer online. Ist kein Produkt markiert, greift diese Ersatzliste:
| Karte | Beschreibung auf der Karte | Dauer |
|---|---|---|
| Erstgespräch | Kennenlernen, Ziele & Ist-Zustand klären. | 60 Min |
| Folgegespräch | Verlauf besprechen, Plan justieren. | 45 Min |
| Bedarfsanalyse | Energie- & Makrobedarf detailliert berechnen. | 60 Min |
Rechts auf jeder Karte steht „N Termine frei" oder — wenn nichts frei ist — „Warteliste".
Tipp: Willst du eigene Terminarten anbieten, setz im Leistungskatalog beim Produkt den Haken Öffentlich buchbar (Buchungsseite) und trag die Termindauer online (Minuten) ein — siehe 07 – Praxis. Sobald mindestens ein Produkt markiert ist, ersetzt deine Auswahl die Ersatzliste komplett.
b) Schritt 2 von 3 — „Wähle einen Termin"
Unter der Zeile „Nächste freie Termine" liegt eine Kachelreihe mit maximal sieben Tagen (Wochentag, Datum, „N frei"). Ein Klick auf einen Tag öffnet darunter die Uhrzeiten-Kacheln. Zusätzlich gibt es immer den Knopf „Kein passender Slot? Auf die Warteliste setzen".
Gibt es überhaupt keine freien Slots, steht dort der Text „Aktuell sind keine freien Termine online buchbar. Setze dich auf die Warteliste — wir melden uns, sobald ein Slot frei wird." mit dem Knopf „Auf die Warteliste setzen".
Tipp: Die Buchungsseite lädt pro Leistung höchstens 10 Slots aus den nächsten 28 Tagen. „10 Termine frei" heißt also nicht, dass du nur zehn freie Zeiten hast — es ist die Obergrenze der Anzeige.
c) Schritt 3 von 3 — „deine Angaben"
Oben eine Zusammenfassung mit den Zeilen Leistung (z. B. „Erstgespräch · 60 Min") und Termin (z. B. „Di, 5. August · 10:30 Uhr" oder „Warteliste — wir melden uns"). Darunter dieselben Felder wie im Anfrageformular: Vorname*, Nachname*, E-Mail*, Telefon und „dein Anliegen (optional)". Der Knopf heißt „Termin anfragen →" bzw. „Auf Warteliste setzen →".
Danach erscheint die Abschlussseite: „Anfrage gesendet!" (oder „du stehst auf der Warteliste"), die Statuszeile „Wartet auf Bestätigung" und der Link „Neue Buchung starten". Im Text steht „Wir bestätigen deinen Wunschtermin in der Regel innerhalb eines Tages."
Die Bestätigungs-Mail bringt zwei Dinge mit: eine ICS-Datei
(nutriam-termin.ics), mit der die Interessent:in den Termin per Klick in
den eigenen Kalender legt, und den Link „Termin online absagen". Der
Link führt auf die öffentliche Seite /t/<slug>/termin/verwalten, die den
Termin (Praxis, Datum, Uhrzeit, Status) zeigt und eine Absage mit optionalem
Grund erlaubt — ganz ohne Portal-Zugang, abgesichert allein über das geheime
Token im Link. Es gilt dieselbe Storno-Frist wie im Kundenportal
(Storno-Frist Kundenportal, leer = 24 Stunden); ist sie unterschritten
oder der Termin vorbei, verweist die Seite freundlich auf den direkten
Praxis-Kontakt. Nach einer Absage wird dein Team per Posteingang-Glocke und
Push informiert.
d) Wie nutriam die freien Slots berechnet
- Angeboten werden nur Zeiten an den buchbaren Wochentagen, innerhalb des Zeitfensters dieses Wochentags (jeder Tag hat sein eigenes), im eingestellten Raster und frühestens nach dem eingestellten Vorlauf (Abschnitt 5).
- Belegt ist eine Zeit, wenn die Beratungsperson dort einen Termin im Status Geplant oder Bestätigt hat — oder wenn der angebundene externe Kalender (Microsoft 365, Google, iCal-Abo) etwas meldet.
- Kandidaten sind alle aktiven Personen mit der Rolle Coach oder Team-Admin. Pro Slot nimmt nutriam die erste freie Person, alphabetisch nach Anzeigename. Aussuchen kann sich die Interessent:in niemanden.
Achtung: Lässt sich ein externer Kalender nicht lesen, gilt die betroffene Person im gesamten Fenster als belegt. Das ist Absicht (lieber kein Slot als eine Doppelbuchung), sieht von außen aber aus wie „alles ausgebucht". Prüfe bei plötzlich leerer Buchungsseite zuerst die Kalender-Verbindung im eigenen Profil.
Zwei Personen können denselben Slot nicht doppelt belegen: Wer zu spät kommt, bekommt „Der gewaehlte Slot ist nicht mehr verfuegbar." Schickt dagegen dieselbe Person (gleicher Vor- und Nachname, gleiche E-Mail) dieselbe Buchung ein zweites Mal ab, erkennt nutriam das und legt keinen zweiten Termin an.
4. Beide Formulare auf der eigenen Website einbetten
Statt zu verlinken kannst du Anfrage und Buchung direkt in deine Website
hängen. Beide Snippets bestehen aus einem leeren <div> mit deinem Slug und
einem Skript:
<div data-nutriam-inquiry data-tenant="dein-slug"></div>
<script src="https://nutriam.app/embed/inquiry.js" async defer></script>
<div data-nutriam-booking data-tenant="dein-slug"></div>
<script src="https://nutriam.app/embed/booking.js" async defer></script>
Was das Skript tut: Es sucht auf der Seite alle divs mit dem Attribut
data-nutriam-inquiry bzw. data-nutriam-booking, liest den Slug aus
data-tenant und hängt dort ein iFrame auf /embed/inquiry/<slug> bzw.
/embed/booking/<slug> hinein. Die eingebettete Seite meldet ihre Höhe
laufend zurück, sodass das iFrame mitwächst — du musst keine feste Höhe
setzen. Startwert sind 520 Pixel (Anfrage) und 640 Pixel (Buchung), die
Breite ist immer 100 %.
| Punkt | Verhalten |
|---|---|
| Mehrere Blöcke | Alle passenden divs auf einer Seite werden bestückt |
| Fehlender Slug | Ohne data-tenant passiert gar nichts |
| Rahmen | Das iFrame ist rahmenlos und transparent hinterlegt |
| Zwischenspeicher | Das Skript wird eine Stunde lang gecacht |
| Freischaltung | Keine — das Snippet läuft auf jeder Website, du musst deine Domain nirgends melden |
Welche Adresse im src des Skripts steht, bestimmt auch, von wo das
Formular geladen wird — Skript und iFrame kommen immer von derselben Stelle.
Ein weiterer Grund, das Snippet nicht abzutippen.
Tipp: Kopier die Snippets nicht aus dem Handbuch, sondern von
/leads/new— dort stehen sie bereits mit deinem echten Slug und der richtigen Domain.
Die eingebettete Anfrage wird als eigene Quelle geführt
(tenant_embed_form), du siehst also im Lead, ob jemand über deine Website
oder über den Direktlink kam. Bei der Buchung gilt das nicht — beide
Wege schreiben dieselbe Quelle.
Achtung: Im Embed fehlen die Fußzeilen-Links auf Datenschutz und Impressum, die die Vollseite hat. Auf deiner eigenen Website musst du beides selbst bereitstellen.
5. Freischalten und einstellen
Die Online-Buchung ist ein Opt-in. Solange sie aus ist, liefern
/t/<slug>/termin und das Buchungs-Embed einen 404 — und zwar unabhängig
davon, ob jemand den Link kennt. Das Anfrageformular ist davon nicht
betroffen und immer erreichbar.
Zu finden unter System → Einstellungen, Tab „Termine & Buchung"
(/verwaltung?tab=booking). Der Tab trägt den Titel „Online-Buchung &
Terminregeln".
| Feld | Werte | Standard |
|---|---|---|
| Öffentliche Online-Buchung | Aus / Aktiv | Aus |
| Buchbare Wochentage | Häkchen Mo bis So | Mo–Fr |
| Buchbar von | Uhrzeit | 09:00 |
| Buchbar bis | Uhrzeit | 17:00 |
| Slot-Raster | 15 / 20 / 30 / 45 / 60 Minuten | alle 30 Minuten |
| Vorlauf (Stunden) | 0–168 | 12 |
| Storno-Frist Kundenportal (Stunden) | 0–720, leer = Standard | 24 |
| Terminerinnerung Vorlauf (Stunden) | 1–336, leer = Standard | 24 |
| Zweite Erinnerung (Stunden vor Termin) | 1–336, leer = aus | aus |
Gespeichert wird mit „Speichern". Alle Felder sind für Coaches schreibgeschützt; unter dem Knopf steht dann „Nur Team-Admins können Buchungseinstellungen ändern."
Zum Verständnis der drei Fristen:
- Vorlauf betrifft die öffentliche Buchung: So kurzfristig darf ein Slot frühestens gebucht werden. Bei 12 Stunden verschwindet der heutige Nachmittag am Vormittag aus der Liste.
- Storno-Frist Kundenportal betrifft bestehende Kund:innen im Portal,
nicht die öffentliche Buchung.
0heißt: keine Frist, Absage bis zuletzt. - Terminerinnerung und zweite Erinnerung steuern die automatischen Erinnerungsmails vor Terminen, siehe 05 – Aufgaben, Termine, Nachrichten.
Achtung: Nimmst du bei den Wochentagen alle Häkchen heraus und speicherst, passiert nichts — die bisherige Auswahl bleibt stehen. Mindestens ein Tag ist Pflicht. Zum Abschalten der Buchung nutzt du den Schalter ganz oben, nicht die Wochentage.
Achtung: Der Hinweistext auf
/leads/newsagt bei der Online-Buchung „Aktivierbar unter Einstellungen → Stammdaten". Das stimmt nicht — der Schalter sitzt im Tab Termine & Buchung.
6. Der Weg von der Anfrage zum Lead
a) Anfrageformular und Anfrage-Snippet
Es entsteht ein Lead mit Status Neu und Phase Neu — ohne zugeordneten Coach und ohne verantwortliche Person. Direkt danach laufen:
- der Workflow „Lead-Qualifizierung Standard", der die Team-Aufgaben „Lead innerhalb eines Werktags kontaktieren" (fällig in 1 Tag) und „Passendes Angebot vorbereiten" (fällig in 2 Tagen) anlegt,
- der Abgleich der Follow-up-Aufgabe zum Lead.
Benachrichtigt wird trotzdem: Weil niemand zugewiesen ist, gehen Eintrag in der Posteingang-Glocke und Push-Nachricht („Neue Anfrage: ") an alle aktiven Coaches und Team-Admins des Mandanten — mit Direktlink auf den Lead. Die Push-Nachricht folgt der Zeile Buchung deiner Benachrichtigungs-Matrix und respektiert Ruhezeiten.
Achtung: Ohne Zuweisung fühlt sich niemand zuständig. Die Team-Aufgaben sind die verbindliche Erinnerung — schau also täglich in Kund:innen → Leads und in die Aufgaben.
b) Buchung mit gewähltem Slot
Hier entstehen zwei Datensätze in einem Rutsch:
| Objekt | Was gesetzt wird |
|---|---|
| Lead | Status und Phase Neu; zugeordneter Coach und Verantwortlich = die Person des Slots |
| Termin | Status Geplant, Betreff nach Leistung, „dein Anliegen" als Agenda, im Kundenportal nicht sichtbar |
Der Terminbetreff wird automatisch gebaut: „Erstgespraech: ", „Follow-up: " oder — bei der Leistung Bedarfsanalyse — „Programm-Demo: ". Diese Bezeichnung ist historisch und lässt sich nicht umstellen; du kannst den Betreff im Termin aber jederzeit überschreiben.
Zusätzlich passiert:
- ein Timeline-Eintrag
appointment.createdam Lead, - der Workflow für gebuchte Termine,
- Posteingang und Push an die zugewiesene Person: „Neue Online-Buchung:
" mit Zeit und Namen, verlinkt auf
/appointments, - eine Bestätigungsmail an die Interessent:in. Absender ist „ über nutriam", Antworten gehen an die Support- bzw. Rechnungs-Adresse aus dem Tab Kontakt in der Verwaltung. Einen Portal-Link enthält die Mail nicht — der Lead hat noch keinen Zugang.
c) Warteliste
Wählt jemand keinen Slot, entsteht nur ein Lead, kein Termin. Der zuletzt angeklickte Tag wird als Wunschdatum mitgespeichert. Weil es keinen Termin gibt, geht auch keine Bestätigungsmail raus und niemand wird per Push informiert — Wartelisten-Anfragen musst du aktiv in der Lead-Liste abholen.
d) Diese Quellen tauchen im Lead auf
| Quelle | Herkunft |
|---|---|
tenant_public_form |
Anfrageformular /t/<slug>/anfrage |
tenant_embed_form |
Anfrage-Snippet auf deiner Website |
public_booking_page |
Online-Buchung, Direktlink und Snippet |
Mehr zur Lead-Pipeline steht in 02 – Leads und Akquise.
7. Wie eine Buchung im Workspace ankommt
Auf der Terminseite (/appointments) gibt es den Filter Alle Terminarten →
„Öffentliche Buchungen". Öffentlich gebuchte Termine tragen in der Liste
die Badges „Öffentliche Buchung" und „Public".
Öffnest du so einen Termin, steht über dem normalen Formular eine eigene Karte mit dem Self-Serve-Buchungsstatus in drei Stufen:
| Stufe | Bedeutung |
|---|---|
| Anfrage | immer erledigt — Lead, Termin und Kontext wurden übernommen |
| Bestätigung | offen, solange der Termin auf Geplant steht |
| Nachlauf | wird nach Erledigt bzw. nach einer Absage relevant |
Darunter liegt ein Faktenraster mit Lead (verlinkt), Zuständig, Formatwunsch, Zeitfenster, Wunschdatum und Alternativdatum. Bei einem frisch gebuchten Termin steht dort der Hinweis „Bestätigung ausstehend".
Achtung: Der Termin bleibt auf Geplant, bis du ihn selbst bestätigst. Die Interessent:in hat die Buchung zwar abgeschickt und eine Mail bekommen, in der ausdrücklich steht, dass die Bestätigung noch aussteht — die Zusage kommt also von dir, nicht vom System.
Auf der Lead-Detailseite taucht derselbe Termin in der Kachel Termin auf, mit der Zeile „Quelle: Öffentliche Buchung".
8. Abgrenzung: was nicht in deinen Workspace läuft
nutriam hat selbst öffentliche Seiten, die ähnlich aussehen, aber nichts mit deiner Praxis zu tun haben:
| Seite | Wem sie gehört | Was passiert |
|---|---|---|
/demo |
nutriam-Vertrieb | Live-Demo mit dem Gründer; landet in nutriams Kalender, kein Lead bei dir |
/support |
nutriam-Support | Produkt- und Supportanfragen an nutriam |
/buchung |
die Standard-Praxis der Installation | feste Praxis aus der Konfiguration, nicht dein Slug |
Achtung: Verlinke immer
/t/<slug>/termin, nie/buchung. Die Seite/buchungsieht identisch aus, bucht aber bei der in der Installation hinterlegten Standard-Praxis — in aller Regel nicht bei dir.
9. Spam-Schutz, Sichtbarkeit und Datenschutz
- Honigtopf-Feld. Beide Anfrageformulare enthalten ein unsichtbares Feld „Webseite". Füllt ein Bot es aus, sieht er eine ganz normale Erfolgsmeldung — gespeichert wird aber nichts. Menschen bekommen das Feld nie zu sehen.
- Tempolimit. Alle öffentlichen Aufrufe sind pro IP-Adresse gedrosselt (Standard: 60 Anfragen pro Minute). Wer darüber liegt, bekommt „Too many public actions." und muss warten.
- Nicht auffindbar. Anfrageseite, Buchungsseite und beide Embed-Seiten sind für Suchmaschinen auf „nicht indexieren" gestellt. Sie sind nur über deinen Link erreichbar und tauchen nicht bei Google auf.
- Einwilligung. Unter beiden Formularen steht der Satz „Mit dem Absenden willigst du in die Kontaktaufnahme durch ein."
- Kein Login, keine Konten. Wer über diese Seiten kommt, bekommt keinen Portalzugang. Der entsteht erst, wenn du den Lead in eine Kundenakte überführst — siehe 03 – Kundenakte.
Häufige Fragen
„Wo finde ich meinen Slug und meine Links?"
Auf /leads/new im aufklappbaren Block „Leads kommen auch über dein
öffentliches Formular rein". Dort stehen der Direkt-Link zur Anfrage, der
Link zur Buchung und beide Website-Snippets — jeweils mit deinem echten Slug.
Ändern können Team-Admins den Slug in Verwaltung → Website & Formulare —
Vorsicht: alte Links funktionieren danach nicht mehr (siehe oben).
„Meine Buchungsseite zeigt 404, obwohl der Link stimmt." Dann ist die Online-Buchung nicht freigeschaltet. Ein Team-Admin muss sie in der Verwaltung im Tab Termine & Buchung auf Aktiv stellen. Das Anfrageformular ist davon nicht betroffen — es funktioniert immer.
„Die Buchungsseite bietet nur die Warteliste an, obwohl ich Zeit habe." Fünf Ursachen kommen in Frage: der gewünschte Tag ist kein buchbarer Wochentag, die Zeit liegt außerhalb von „Buchbar von/bis", der Vorlauf schneidet die nächsten Stunden ab, ein angebundener externer Kalender meldet die Zeit als belegt (oder ist gerade nicht lesbar), oder es gibt keine aktive Person mit der Rolle Coach oder Team-Admin.
„Warum stehen nie mehr als zehn freie Termine da?" Weil die Seite pro Leistung höchstens zehn Slots lädt. Das ist eine Anzeigegrenze, kein Abbild deines Kalenders.
„Bekommt die Person eine Bestätigung per Mail?" Bei einer Buchung mit festem Slot ja (mit ICS-Datei), beim Anfrageformular ebenfalls — dort als kurze Eingangsbestätigung, abschaltbar in der Verwaltung unter Termine & Buchung. Nur Wartelisten-Einträge erzeugen keine Mail; da sieht die Person ausschließlich die Bestätigung auf der Seite.
„Kann sich jemand aussuchen, bei welchem Coach er bucht?" Nein. nutriam vergibt pro Slot automatisch die erste freie Person (alphabetisch nach Anzeigename). Umverteilen kannst du danach im Termin.
„Kann die Interessent:in ihren Termin selbst absagen oder verschieben?" Nein. Ohne Portalzugang gibt es keinen Weg zurück in die Buchung — Absagen laufen über eine Mail oder einen Anruf bei dir. Die Storno-Frist in den Einstellungen gilt nur für bestehende Kund:innen im Kundenportal.
„Warum heißt ein gebuchter Termin ‚Programm-Demo'?" Das ist der fest hinterlegte Betreff für die Leistung Bedarfsanalyse. Du kannst den Betreff im Termin überschreiben; die Bezeichnung auf der Buchungsseite bleibt davon unberührt.
„Ist /demo dasselbe wie meine Buchungsseite?"
Nein. /demo gehört nutriam selbst und erzeugt keinen Lead in deinem
Workspace. Deine Seite ist /t/<slug>/termin.
Was hier noch fehlt
- Warteliste ohne freie Tage schlägt fehl. Zeigt die Buchungsseite gar keine buchbaren Tage, bricht der Wartelisten-Knopf im letzten Schritt mit einer technischen Fehlermeldung ab — genau in der Situation, für die die Warteliste gedacht ist.
- Rohe Fehlermeldungen. Scheitert eine Buchung, zeigt die Seite den Antworttext des Servers an, teils englisch und technisch.
- Branding nur teilweise. Logo, Akzentfarbe und Tagline aus dem Beleg-Design tragen die öffentlichen Seiten inzwischen mit; eigene Schriften oder Layouts gibt es nicht, und in der Fußzeile steht weiterhin „Powered by nutriam.app".
- Keine Berater-Auswahl und keine Ausnahmen. Urlaube oder einzelne Sperrzeiten kennt die Buchung nur über echte Termine oder einen angebundenen externen Kalender; ein Feiertagskalender fehlt.
- Buchungs-Embed nicht unterscheidbar. Direktlink und Snippet schreiben dieselbe Quelle, eine Auswertung „wie viele kamen über meine Website" ist für die Buchung nicht möglich.
- Kein Terminwunsch im Anfrageformular. Wer nur anfragen will, kann weder ein Wunschdatum noch eine Datei mitschicken.