Formulare

Formulare mit Vorlagen, Feldtypen und Validierung, die auf Server und Client identisch gilt; Einsendungen, Benachrichtigungen, Spam-Schutz und die Anbindung an SmartCaptcha und Hellolead.

Stand: 23.09.2026

Auf dieser Seite

Formulare sammeln Nachrichten von Besuchern: Kontakt, Rückruf, Terminanfrage, Bewerbung. Das Frontend rendert sie anhand der im Admin definierten Felder — es muss nichts doppelt gepflegt werden. Formulare gehören zur Website und werden unter Formulare verwaltet.

Vorlagen

Ein neues Formular startet wahlweise leer oder aus einer Vorlage:

Vorlage Felder
Kontakt Name, E-Mail, Telefon, Nachricht, Datenschutz-Einwilligung
Rückruf-Bitte Name, Telefon, Wunschzeit (vormittags / nachmittags / abends)
Terminanfrage Name, E-Mail, Wunschtermin, Uhrzeit, Anliegen
Angebotsanfrage Name, Firma, E-Mail, Budgetrahmen, Beschreibung
Bewerbung Name, E-Mail, Telefon, Position, Wunschtermin, Lebenslauf als Datei

Alle Beschriftungen liegen zweisprachig (DE/EN) vor und lassen sich je Sprache ändern.

Felder

Jedes Feld hat einen Namen (Schlüssel, unter dem die Antwort in Einsendungen und API erscheint), einen Typ, Beschriftung und Platzhalter je Sprache, Pflichtangabe und Validierungsregeln. Feldtypen: Text, Textarea, E-Mail, Telefon, Zahl, Datum, Auswahl, Mehrfachauswahl, Checkbox, Datei, Einwilligung, Honeypot.

Pflichtfelder sparsam setzen: Jedes Pflichtfeld kostet Absendungen. Name und eine Kontaktmöglichkeit reichen meistens.

Validierung — einmal definiert, zweimal geprüft

Die Regeln liegen je Feld als JSON und werden von derselben Engine auf dem Server (beim Absenden) und im Browser (vor dem Absenden) ausgewertet. Das Frontend bekommt die Regeln über die Delivery API mitgeliefert und zeigt Fehler sofort, der Server entscheidet endgültig.

json
{
  "required": true,
  "minLength": 2, "maxLength": 120,
  "type": "email",
  "pattern": "^[0-9]{5}$", "flags": "i",
  "patternMessage": { "de": "Bitte eine fünfstellige PLZ eingeben." },
  "sameAs": "email",
  "allowedExtensions": ["pdf", "jpg"], "maxSizeKb": 5120,
  "messages": { "required": { "de": "Bitte ausfüllen." } }
}

Typ-Voreinstellungen: email, tel, url, number, integer, date, postalCode (mit Land), iban. Der Feldtyp impliziert ein Preset (E-Mail-Feld → email), validation.type gewinnt, wenn beides gesetzt ist. Fehlermeldungen lassen sich je Regel und Sprache überschreiben.

Formular im Frontend

Definition abrufen:

bash
curl "https://entrydeck.app/api/v1/delivery/form/kontakt" \
  -H "x-api-key: $ENTRYDECK_API_KEY"

Die Antwort enthält Felder, Regeln, Beschriftungen und — falls aktiv — den öffentlichen SmartCaptcha-Site-Key samt Widget-URL. Das Secret verlässt den Server nie.

Absenden:

ts
await $fetch(`/forms/${form.id}/submissions`, {
  method: 'POST',
  baseURL: 'https://entrydeck.app/api/v1',
  headers: { 'x-api-key': apiKey },
  body: { data: { name: 'Erika Muster', email: 'erika@example.org', message: 'Hallo!' }, locale: 'de' },
})

Der Server prüft die Regeln, wertet Honeypot und Captcha aus, speichert die Einsendung und antwortet mit 201 oder einer Fehlerliste je Feld. Rate-Limits (3 pro Minute je Adresse) schützen vor Massenversand.

Einsendungen

Alles, was hereingekommen ist, liegt unter Formulare → Einsendungen — mit Zeitstempel, allen Feldern und einem Status (offen, erledigt, Spam) für die Arbeit im Team. Der CSV-Export enthält die aktuell gefilterten Einsendungen. Einsendungen enthalten meist personenbezogene Daten: Was nicht mehr gebraucht wird, sollte gelöscht werden — pro Eintrag möglich.

Benachrichtigungen

Eine Empfängeradresse je Formular sorgt dafür, dass niemand die Liste im Blick behalten muss. Ohne Empfänger liegen Einsendungen still im System.

Spam-Schutz

  • Honeypot-Feld: ein unsichtbares Feld, das nur Bots ausfüllen.
  • Mindestdauer bis zum Absenden.
  • SmartCaptcha (Add-on): unsichtbare Prüfung ohne Bilderrätsel, Entscheidung serverseitig, je Formular ein- und ausschaltbar — siehe Add-ons.

Leads weitergeben

Mit dem Add-on Hellolead wird jede Einsendung als Lead übergeben — mit Feldzuordnung je Formular und ohne Copy-und-paste. Ein Fehler bei der Übergabe blockiert nie den Eingang: Die Einsendung wird immer gespeichert, die Übergabe protokolliert.

Newsletter

Anmeldungen zum Newsletter laufen über ein eigenes Formular mit Double-Opt-in: Die Adresse wird per Bestätigungslink verifiziert, Abmeldungen bleiben als abgemeldet geführt (damit dieselbe Adresse nicht versehentlich erneut importiert wird). Der CSV-Export liefert Adresse, Status und Anmeldedatum für den Versanddienst.