📥 Download fields
Download fields allow you to make files from onOffice directly available for download to the person filling in the form — e.g. a tenancy agreement, the current property brochure, handover reports or a collection of owner documents. This field type is the counterpart to the file upload field and can also be combined with it.
Contents
Use cases
- Tenant documents: Landlord clicks link → form displays all tenant documents (ID card, payslips) for download
- Owner status page: Owner opens link → views current property brochure PDF + activity report
- Reservation confirmation: Buyer opens link → can download signed reservation agreement as a PDF
- Draft contract download: Notary/seller opens form → receives current draft purchase contract
- Bulk download: Multiple files from a tab are offered bundled as a ZIP file
Set up field
- Form Editor → Add field → Special type “Download file”
- Assign field name (e.g. “Download draft contract”)
- Select file source (see next section)
- Optional: Configure selector (newest / oldest / all / filtered)
- Optional: Enable “Hide field if no file found” — prevents empty buttons
---
File sources
For each download field, you select where the file should come from:
| Source |
Purpose |
Where does propform find the file? |
| Document attribute |
Standard workflow for structured documents |
“Files” tab of the address / property, filtered by document attribute |
| File name pattern |
If no attribute is to be assigned |
“Files” tab, “File name contains …” filter |
| File type (e.g. cover image) |
Specific onOffice file type |
“Files” tab, filter by onOffice file type |
| All files from tab |
Entire tab content as bulk download |
Complete file tab inventory |
| PDF property description on-the-fly |
Current property description always freshly generated |
propform requests property description via onOffice API, forwards as download |
| Fixed URL |
External link (e.g. Terms and Conditions on own website) |
Static URL entry in field |
> 💡 Combining multiple sources: “Document attribute AND filename contains 2024” → returns only the 2024 version of the selected document.
---
Selectors: which file?
If multiple files match the source (e.g. three versions of a contract), the selector decides:
| Selector |
Returns |
| Newest (default) |
File with the most recent upload date |
| Oldest |
File with the oldest upload date |
| All |
All matching files (see ZIP bundling below) |
Additionally: “File name contains string” filter — e.g. only files with “contract” in the name.
## Multi-file → ZIP bundling
If the selector returns multiple files:
- propform automatically packs them into a ZIP file
- The ZIP filename can be configured (using macros, e.g.
Unterlagen_<Vorname>_<Nachname>.zip)
- On mobile browsers, the ZIP is downloaded like any other file (default behaviour)
Hybrid: Upload + Download in the same field
A file upload field can also be given a download function — useful for “download contract document, sign, upload again” workflows.
Setup:
- Existing file upload field → Field settings
- Set mode to “Change + Download” (instead of “Upload only” or “Download only”)
- Both source configurations are available (upload destination + download source)
In the form, the user sees:
- Download button for the existing file
- Upload area for a new/replacement file
## Activity on download
Optionally, you can create an activity in onOffice for every download — for audit trails and reporting:
- Configurable like other activities (action type, action category, custom text)
- Optional: Record file hash — proves that exactly this file version was downloaded
- Can be combined with “Activity on form call” (see Form Settings) — then you will have both “User opened document” and “User downloaded document” in the history
Limitations
File fields in the onOffice form
Files located in file fields of the address/property form (i.e. directly within the record, not in the “Files” tab) are not accessible via the onOffice API — see FAQ: File upload fails.
Consequence:
- For the Property module: only files originally uploaded via propform are accessible (with File ID reference)
- For the Addresses module: all files from the “Files” tab are accessible (the API is complete here)
File size limit
- Per file: 128 MB (corresponds to the upload limit on the nginx side)
- ZIP bundles: no hard limit, but performance is slow with very large numbers of files (>100)
Security
Download fields should always be combined with additional security measures:
- UUID requirement (see Form protection) — prevents URL tampering
- Filter per form (see FAQ: Filter per form) — restricted to specific data records
- Optional IP whitelist or form key
Related