Перейти к содержимому
Начать

Property management data import: rent rolls, tenants, units

Это содержимое пока не доступно на вашем языке.

Every new customer of a property management product arrives with a rent roll. A tenancy schedule from a previous system, a hand-grown Excel with one row per unit, a Mieterliste exported years ago — and somewhere in it, everything your product needs: properties, units, tenants, landlords, leases. Onboarding lives or dies on how much of that file survives the import.

Property data is the hardest kind of tabular data to import, for three compounding reasons:

  • One row, many records. A single rent-roll row routinely describes a property, a unit, a tenant, an owner, and a lease at once. Column-by-column matching has no idea that Nachname belongs to the tenant and not the landlord.
  • Several addresses per row. The property’s address, the tenant’s mailing address, the owner’s billing address — three street columns, three city columns, all waiting to be silently swapped.
  • The language gap. In the DACH market the file says Mieter, Vermieter, Objekt, Wohnung, Kaltmiete; your schema says tenant, landlord, property, unit, rent. Not one shared letter.

Most importers treat all three as edge cases. Mildport treats them as the normal case a property file is.

  • Record-type awareness. Columns are matched to the right entity, not just the right word: Mieter Vorname finds the tenant’s first name, Vermieter Name the landlord’s — and a tenant column is actively kept off landlord fields. Property, unit, tenant, landlord, lease, and broker vocabulary is understood out of the box, in six languages. See multilingual CSV import.
  • Address blocks stay whole. The property’s street stays with the property’s city; the owner’s with the owner’s. A genuinely ambiguous block — address1 vs address2 with nothing saying which is which — becomes one clear question, not six.
  • Your fields, your schema. Rents, deposits, service charges, notice periods — whatever your product stores, you declare in your target schema (in a no-code editor or as code), and Mildport matches by labels, your declared aliases, and the actual cell values. Dates, postal codes, emails, and phone numbers are recognized by their shape, whatever the header says.
  • Asks once, remembers. Anything uncertain becomes an explicit question with its evidence attached, answerable in the flow. The answer teaches the importer: the next file from the same property manager maps automatically. Repeated onboardings converge to zero questions.
  • Linked records resolve. Rows can point at records that already exist in your product — a unit referencing its property, a lease referencing its tenant. Mildport resolves those references against your data instead of creating duplicates.
  • More than one file, one dataset. Units in one file, tenants in another? Upload both and join on a key before anything is imported.
  • Even PDFs and scans. Table extraction and OCR turn a PDF rent roll or a scanned tenancy schedule into reviewable rows — confirmed by a person before anything is applied.

Every mapping is shown with its score in a review grid before import; nothing is applied silently. That’s the same explainable mapping every Mildport import gets.

A tenant list carries names, addresses, birth dates, bank details — data your security review (and your customers’ property managers) will ask hard questions about. Mildport runs fully self-hosted: files and records stay inside your infrastructure, licensing is verified offline with no phone-home, and air-gapped deployments are supported. A managed EU cloud — built in Germany, data on EU infrastructure under the GDPR — opens with commercial access.

How do I add rent-roll import to my property management software? Embed the import wizard, point it at your schema, and let customers upload their files as-is. Mildport maps, the user reviews, your API or webhook receives clean records.

Can it read German property files (Mieterliste, Objektliste)? Yes — Mieter, Vermieter, Objekt, Wohnung, and Mietvertrag columns land on tenant, landlord, property, unit, and lease fields of an English schema, with no translation step.

One row has the property, the tenant, and the owner — how is that mapped? By record type: each column lands on the right entity, each address block stays together, and a genuinely ambiguous block is one remembered question.

Is tenant data safe during import? Run Mildport self-hosted and the data never leaves your infrastructure; the EU cloud option opens with commercial access.

What about my product’s own fields — rents, deposits, notice periods? Declare them in your schema; they’re matched by label, your aliases, and cell values — and confirmed mappings are remembered for the next file.


See the embeddable importer this runs in, or try a rent-roll style file in the live demo at mildport.com.