propform forms are publicly accessible by default — which makes sense for enquiries, customer feedback and lead generation. However, some forms should only be opened or submitted under certain conditions. Here are the available protection mechanisms.
Every propform form has built-in bot protection — without you having to configure anything:
Find out more under Spam Protection & Bot Defence.
If a form is to be accessible only from specific IP ranges (e.g. an internal staff form accessible only from the office):
Setup:
192.168.1.10, 91.42.42.42)Limits: max. 2000 characters → several hundred IPs possible
What happens: Anyone not on the whitelist will see an error message stating “Your IP is not authorised to access this form”.
> 💡 Tip: Find out your own IP via whatismyip.com or similar services. For dynamic home IPs, it is better to specify an IP range or use a VPN.
Protects access to the form. Without the correct password, the form will not be displayed at all.
Setup:
Call:
https://formular.deine-domain.de/dein-formular?password=geheim123
Use cases:
> ⚠️ Security note: The password appears in plain text in the URL and is currently also stored unencrypted in the database. Suitable for light protection, not for highly sensitive data. Genuine user+password authentication with access details configurable per account is on the roadmap.
Unlike the form password, the form key checks a dynamic value — e.g. a field from the onOffice record that may only be set once (anti-double-submit).
Setup:
_reservierung_aufgerufenCall:
https://formular.deine-domain.de/reservierung?key=ja
→ The value after key= must match the resolved macro value exactly.
Use case: Reservation workflow:
_reservierung_aufgerufen is empty in onOffice → The form cannot be calledja (e.g. when the customer reaches the reservation step)nein → Form is locked to prevent repetitionA form should only be accessible until a specific date. You append the expiry date as a URL parameter to your form link and enable “Expiry date required” in the form settings.
https://formular.deine-domain.de/bewerbung?exp=2030-12-31 23:59:59
The ?exp= parameter requires date AND time — using the date alone will result in an error: “Expiry date invalid”.
Correct:
?exp=2030-12-31 23:59:59
Incorrect (fails):
?exp=2030-12-31
DateAdd macroIn onOffice mail templates, you can calculate the expiry date dynamically — e.g. “Link valid for 14 days from today”:
?exp=_calculate(DateAdd(now;14;days)) 23:59:59
Units for DateAdd: days, weeks, months, years. You append the time as a fixed string at the end, because DateAdd itself only provides the date.
Use cases:
A clever workaround if you want to link the submission of the form to an additional condition — without separate authentication:
Pattern:
passwort1234Use cases:
> 💡 Difference from Honeypot: Honeypot blocks automatically filled fields. Here, the value must be entered manually.
If a form can load or edit records (e.g. address edit or property edit form), you can restrict access to an onOffice filter — critical for public forms.
Setup:
More on this in the separate FAQ: Filter per form.
> ⚠️ Security aspect for public forms: Without a filter, a user can access any records visible to the API user by manipulating the UUID in the URL. The filter restricts this to the desired range.
Prevents a form from being called at all without a valid record UUID in the URL. Important for edit and download forms, which always require a specific record.
Setup:
What happens without a UUID:
Use cases:
> 💡 Combination tip: UUID requirement + filter per form + address duplicate check results in a very robust security stack for public editing forms.
| Protection | Protects against | Setup effort | Application |
|---|---|---|---|
| Honeypot + CSRF | Bots, replay attacks | automatic | always active |
| IP whitelist | Public access | low | internal staff form |
| Form password | Anonymous access | low | private test link |
| Form Key | Double submission, replay | medium | Reservations/one-off actions |
| Expiry Date | Expired links | low | Time-limited forms |
| Valid Values | Unauthorised submission | low | Spam code, supplementary protection |
| Filters per form | UUID manipulation, data record leakage | medium | public editing forms |
| UUID requirement | Access without data record, empty attachments | low | download and editing forms |