RocketLead-Formularfelder können aus vier verschiedenen Quellen vorbefüllt werden. Dieser Artikel erklärt die Reihenfolge zwischen ihnen, was jede Quelle kann und nicht kann, und wie du Werte fixierst, die Besucher nicht überschreiben können.
Die Kaskade
Beim Mounten durchläuft das Widget vier Prefill-Quellen. Jede Schicht kann leere Slots füllen; höher priorisierte Schichten überschreiben niedriger priorisierte. Endgültige Priorität — von oben nach unten:
# | Quelle | Schlägt | Gesetzt von |
1 | Embed- | URL-Parameter, Persistierung, Defaults | Der Seite, die das Embed enthält (Entwickler-JS) |
2 | URL-Query-Parameter | Persistierung, Defaults | Der URL des Besuchers / dem Inbound-Link |
3 |
| Defaults | Dem Besucher (Wiederbesuch-Autofill) |
4 | Feld- | (unten) | Dem Formular-Editor (Konfiguration) |
Faustregel: der explizitere Kontext gewinnt. Code schlägt URL-Leiste schlägt lokales Storage schlägt statische Konfiguration. Ein Feld, für das keine Quelle einen Wert liefert, bleibt leer.
Quelle 1 — Embed-prefill (höchste Priorität)
Beim Aufruf von window.rocketlead.forms.create() aus dem JavaScript der Host-Seite gesetzt:
<div id="rl-form"></div> <script src="https://cdn.rocketlead.io/static/forms/widget.js" defer></script> <script> window.rocketlead.forms.create({ target: '#rl-form', formId: 'shared-form-id', prefill: { location: 'studio-uuid-für-diese-seite' }, hideFields: ['location'] }); </script>
Schlüssel werden zuerst gegen fieldId gematcht, dann gegen den im Editor gesetzten stabilen Namen. Unbekannte Schlüssel werden stillschweigend verworfen.
Da das Embed-Prefill die höchste Priorität hat, ist dies der Weg, um einen Wert zu fixieren, den Besucher nicht überschreiben können — auch nicht über manipulierte URLs. Siehe Versteckte Felder unten.
Quelle 2 — URL-Query-Parameter
Die URL des Besuchers füllt passende Felder automatisch vor. Zwei Schlüsselformen:
https://deine-seite.de/kontakt?fieldId=wert https://deine-seite.de/kontakt?deinFeldname=wert
Bei Kollision zwischen fieldId und einem fremden Feldnamen gewinnt fieldId.
Mehrwertige Felder (Checkbox): Schlüssel mehrfach angeben.
?days=mon&days=wed
Booking-Calendar-Felder sind ein Sonderfall — ein URL-Wert wird als Termintyp-ID zur Vorauswahl im Kalender interpretiert, nicht als Slot. Slots werden immer interaktiv gegen die Live-Verfügbarkeit gewählt.
Privacy- und Captcha-Felder können nie über URL-Parameter vorbefüllt werden — Einwilligung muss explizit erfolgen, Captcha-Tokens kommen vom Anbieter beim Absenden.
Quelle 3 — localStorage-Persistierung
Wenn im Editor Persistierung aktiviert ist, werden die als Geteilte Felder markierten Werte beim Mounten aus localStorage gelesen und bei jeder Änderung dorthin geschrieben. Das ist der "Wiederbesuch-Autofill" — Umfragen, mehrstufige Funnels, abgebrochene-und-wiederkehrende Flows.
Der Persistierungs-Bucket ist nach Formular-ID gekeyed: zwei Einbettungen desselben Formulars auf derselben Domain teilen ihren Bucket.
Quelle 4 — Feld-defaultValue (niedrigste Priorität)
Ein statischer Fallback, im Formular-Editor gesetzt. Füllt nur Slots, die keine andere Quelle gefüllt hat.
Feldtyp |
| Validierung |
|
| respektiert |
|
| muss einem der Optionswerte entsprechen |
|
| jeder Eintrag muss einer Option entsprechen |
| — | nicht unterstützt |
| — | noch nicht unterstützt (per-Kalender-Default geplant) |
| — | nicht unterstützt |
Defaults laufen auch in der Editor-Vorschau, damit der Editor das Endergebnis korrekt darstellt.
Versteckte Felder
Die Embed-Option hideFields entfernt ein Feld aus dem gerenderten Formular, behält seinen Wert aber im Submit-Payload. Kombiniert mit prefill ist das das Muster für Mehrfach-Einbettung — ein veröffentlichtes Formular, N Einbettungen, jede mit einem eigenen fixierten Wert.
window.rocketlead.forms.create({
target: '#rl-form',
formId: 'lead-form',
prefill: { location: 'studio-uuid', utm_source: 'google' },
hideFields: ['location', 'utm_source']
});
Verhalten:
Der Renderer überspringt versteckte Felder — sie tauchen weder in den Schritten noch im Review-/Zusammenfassungs-Schritt auf.
Ihre Werte bleiben intern erhalten, damit Studio-Routing (
location), Validierung und Absendung sie weiter sehen.URL-Parameter, die auf ein verstecktes Feld zielen, werden stillschweigend verworfen. Ein manipulierter
?location=anderes-studio-Link kann nicht überschreiben, was der Embedder fixiert hat. Das Embed-prefillselbst darf weiterhin schreiben — der Embedder ist die Autorität.Validierung bleibt unverändert. Ein verstecktes Pflichtfeld ohne passendes
prefillschlägt beim Absenden fehl. Das Widget loggt beim Mount einconsole.warn, wenn das der Fall ist.
Validierung & Sanitisierung
Alle Prefill-Quellen wenden dieselben defensiven Regeln an; nicht passende Werte werden stillschweigend verworfen, statt das Formular abstürzen zu lassen.
Sanitisierung — Text-Eingaben (text/email/tel) und Options-Schlüssel werden vor weiterer Verarbeitung von
<,>und ASCII-Steuerzeichen befreit. Werte, die danach leer sind, werden verworfen.Options-Match —
select-,location- undcheckbox-Werte müssen einem der veröffentlichten Optionswerte entsprechen. Veraltete oder unbekannte Werte werden verworfen.maxLength — Text-Werte, die das
maxLengthdes Feldes überschreiten, werden zur Laufzeit im Widget still gekürzt; die Veröffentlichung lehnt sie hingegen explizit ab.Type-Shape — String an Checkbox oder Array an Text-Feld → wird verworfen.
Schnellreferenz — was jeder Feldtyp akzeptiert
Feldtyp | Embed- | URL-Parameter | Persistierung |
|
| ✓ | ✓ | ✓ | ✓ |
| ✓ | ✓ | ✓ | ✓ |
| ✓ | ✓ | ✓ | ✓ |
| — | ✓ (Termintyp) | — | — |
| — | — | — | — |
| — | — | — | — |
| — | — | — | — |
Beispiele
Ein Formular, viele Standorte
Ein Franchise mit fünf WordPress-Seiten bettet dasselbe Formular auf jeder Seite ein und fixiert pro Seite einen anderen Standort:
<!-- studio1.example.de/kontakt -->
<div id="rl-form"></div>
<script>
window.rocketlead.forms.create({
target: '#rl-form',
formId: 'shared-lead-form',
prefill: { location: 'studio-1-uuid' },
hideFields: ['location']
});
</script>
<!-- studio2.example.de/kontakt — gleiches Formular, anderer Standort -->
<script>
window.rocketlead.forms.create({
target: '#rl-form',
formId: 'shared-lead-form',
prefill: { location: 'studio-2-uuid' },
hideFields: ['location']
});
</script>
Submissions landen automatisch beim richtigen Kalender / Lead-Pool des jeweiligen Standorts — das location-Feld treibt die Studio-Auflösung im Hintergrund, auch wenn es versteckt ist.
Kampagnen-Tracking aus der URL
Ein Tracking-Feld übernimmt den utm_source aus dem eingehenden Kampagnen-Link:
https://deine-seite.de/kontakt?utm_source=google&utm_campaign=spring2026
Auf Embed-Ebene als versteckte Felder durchreichen:
const params = new URLSearchParams(window.location.search);
window.rocketlead.forms.create({
target: '#rl-form',
formId: 'lead-form',
prefill: {
utm_source: params.get('utm_source') ?? 'direct',
utm_campaign: params.get('utm_campaign') ?? ''
},
hideFields: ['utm_source', 'utm_campaign']
});
Default mit Override
Das email_subject-Feld hat im Editor einen defaultValue von "Anfrage Probetraining". Eine Kampagnen-Seite verlinkt Besucher mit einem eigenen Betreff:
https://deine-seite.de/landing?email_subject=Sommer-Aktion
Ergebnis: "Sommer-Aktion" (URL schlägt Default). Kommt der Besucher später ohne URL-Parameter wieder, zeigt die Persistierung — falls aktiviert — den zuletzt eingegebenen Wert; sonst erscheint wieder der Editor-Default.
Häufige Stolperfallen
„Mein Default zeigt sich im veröffentlichten Formular nicht" — eine andere Quelle füllt den Slot. URL-Parameter und Persistierung schlagen Defaults beide. Test im Inkognito-Fenster ohne Query-String.
„Mein Embed-Prefill greift nicht" — der Schlüssel hat nicht aufgelöst. Das Widget matcht zuerst
fieldId, dann den stabilen Feldnamen. Den Namen im Editor unter Feld-Einstellungen → Name prüfen.„Validierung sagt, das Formular sei unvollständig, aber ich sehe nicht, warum" — ein verstecktes Pflichtfeld hat kein passendes
prefill. Devtools öffnen — das Widget loggt beim Mount einconsole.warnmit den betroffenen Feldern.„Mein select-/location-Prefill wird ignoriert" — der Wert ist nicht in den Optionen des Feldes. Optionen-Liste im Editor mit dem Embed-/URL-Wert abgleichen.
Verwandte Artikel
Formular auf deiner Website einbetten — Quick Start, SPA-Frameworks,
create()-API.Formular-Widget: Events, Pixel-Tracking & Webhooks — Browser-Events, GTM-Integration, Webhook-Payload.
