Fields can be pre-filled in several ways — and existing onOffice records can be loaded into your form so you can edit them rather than creating new ones.
If a field is pre-filled in multiple ways, the following order applies — from weakest to strongest:
> Default-Wert ← overwritten by ← Wert aus onOffice-Datensatz ← overwritten by ← URL-Parameter ← overwritten by ← Erzwungener Wert
This means: Forced values always take precedence. URL parameters override the loaded onOffice value. The onOffice value overrides the default. If all sources are empty, the field is also empty.
In the field settings, you can specify a default value. If the form is called up empty (no record loaded, no URL parameter), this value appears pre-filled.
Examples:
haus;, e.g. interessent;eigentuemer> 🔑 For single/multiselect fields, you must use the internal key names from the onOffice administration — e.g. ind_Schl_2759 instead of “House”.
You can use URL parameters in the form URL to populate fields when the form is called up. Prerequisite: “Allow pre-filling with URL parameters” must be enabled in the field settings (default: on).
URL parameters are appended to the URL with ?, and subsequent ones with &:
https://propform.io/form/dein-slug?estate[objektart]=haus&estate[objekttyp]=einfamilienhaus
> 💡 You can find the specific URL parameter for each field in the field settings under the “Allow pre-filling with URL parameters” tick box as a small note.
modul[feldname]=wert
| Module | URL parameter prefix |
|---|---|
| Property | estate |
| Address | address |
| Activity | agentsLog |
| Task | task |
| Appointment | calendar |
| Search criterion | searchcriteria |
| Project | project |
For multi-select fields, you need to use square brackets and specify each value individually:
?address[ArtDaten][]=Eigentuemer&address[ArtDaten][]=Investor
For search criteria fields with from/to values, use double underscores:
?searchcriteria[wohnflaeche__von]=50&searchcriteria[wohnflaeche__bis]=80
Boolean fields accept only 1 (for ‘active’/‘true’) and 0 (for ‘inactive’/‘false’) via URL parameters:
?address[opt_in]=1
?address[newsletter_einwilligung]=1
> ⚠️ Values such as ?feld=true, ?feld=WAHR, ?feld=ja are not recognised as truth values — the field will then remain empty. Always use the integer 1.
If you want to edit an existing onOffice record, load it using its UUID (universal unique identifier) as a URL parameter. UUIDs cannot be guessed — nobody can open a different record by manipulating the URL.
https://propform.io/form/dein-slug?address[ID]=f4059f75-8155-4869-b244-d036c3babfd1
uuid in the Addresses module AND uuid in the Properties module| Module | URL parameter |
|---|---|
| Address | address[ID] (uppercase I, uppercase D) |
| Property | estate[Id] (uppercase I, lowercase d) |
If you send the form link via onOffice email, the UUIDs are accessible via the following macros:
_Uuidaddress → UUID der verknüpften Adresse
_Uuidestate → UUID der verknüpften Immobilie
For example, an edit link in an onOffice email template:
https://propform.io/form/dein-slug?address[ID]=_Uuidaddress&estate[Id]=_Uuidestate
You can also create a link field in your onOffice address or property form and enter the URL using a formula:
="https://propform.io/form/dein-slug?address[ID]="&[uuid]
or for properties:
="https://propform.io/form/dein-slug?estate[Id]="&[uuid]
> 💡 In the form settings under “Edit existing records”, propform displays the complete links and formulas ready for copying.
In the field settings, you can set a forced value. This:
Separate multiple values with ;.
> 💡 Example: You are building a “one-click newsletter sign-up” form. Set a forced value of aktiv for the newsletter field and combine this with “Hide field” + “Auto-submit”. The visitor clicks the link once, the form submits immediately and the newsletter status is set to aktiv.
When you load a property via UUID, propform can automatically load the linked address — e.g. the owner.
In the form settings, you’ll find a selection for this under “Edit existing records”:
| Selection | Meaning |
|---|---|
| Do not load linked address | Default |
| Load owner | Address with “owner” link |
| Owner with contact type X | Owner address, filtered by contact type multi-select key |
| Conversely, you can also load the linked property alongside a loaded address: |
| Selection | Meaning |
|---|---|
| First / Second / Third property | First/second/third “Owned” link |
| First / Second / Third purchased property | “Bought” link |
| First / Second / Third rented property | “Rented” link |
| First / Second / Third tipped property | “Tipped” link |
> ⚠️ Only works if explicitly only one side (address OR property) is loaded via UUID. If you load both via UUID, the explicitly specified UUIDs take precedence.
To ensure that not just any record can be edited using the form, you can apply restrictions in the form settings under “Filter settings”:
The filters must first be created in your onOffice administration (filters are a standard onOffice feature).
> 💡 Use case: You are creating a tenant self-disclosure form that should only be usable for active rental listings. Create a filter called “Active rental listings” in onOffice and select it in the form settings — this ensures that inactive properties cannot be loaded via the form link, even if someone knows the UUID.
📖 More on filter protection: Filters per form.
If you embed the form into your website via an iFrame, the ?param=value URL parameters must be included in the iFrame URL, not in the parent website URL:
<!-- ✓ Richtig: Parameter im iframe-src -->
<iframe src="https://formular.deine-domain.de/dein-formular?address[ID]=_Uuidaddress&estate[Id]=_Uuidestate"></iframe>
<!-- ✗ Falsch: Parameter in Eltern-URL kommen NICHT im iFrame an -->
<iframe src="https://formular.deine-domain.de/dein-formular"></iframe>
If you have a dynamic iFrame setup (where parameters change depending on the data record), your website logic must dynamically generate the src attributes of the iFrame.
URL parameters are visible in plain text — users can manipulate them at will before submitting the form:
?searchcriteria[kaufpreis_bis]=500000 can be changed to ?searchcriteria[kaufpreis_bis]=999999999?address[Sonstige1]=info@firma.de can be changed to any other email addressConsequences:
When long URL parameters (e.g. complex pre-filled links) are sent in emails, some email providers may flag links as suspicious and, for example, automatically remove or redirect them (Microsoft Defender, Google Safe Browsing).
Solution options: