Getting Started
Importing your property roster
How to bulk-import every property in your community with AI Import - from a spreadsheet, a PDF, or a photo. Covers the columns that matter, what the AI infers, how to fix mis-parsed rows, and how to replace a roster you already loaded.
Last updated August 14, 2026
The property roster is the foundation. Once it’s loaded, every other feature - dues, residents, ledger, violations - has something to attach to. This is usually a 5-15 minute job depending on the size of your community.
What you’re importing
You’re creating a Property record for every lot, unit, or townhome in your community. Each property holds:
- Address (or unit number)
- Lot / block (if your community uses them)
- Monthly or annual dues amount
- An initial balance (if the property already owes money from a previous system)
- A status (active by default)
Residents are not part of this import. You’ll connect them after the import is done. See Inviting residents.
What format to use
Whatever you actually have. AI Import reads three kinds of file:
- A spreadsheet - CSV, XLS, XLSX, and the other common spreadsheet formats. This is the cleanest input and the one to use if you have a choice.
- A PDF - an owner directory, an export from your old management company, a printed roster someone scanned.
- A photo - a picture of a printed list or a page from a binder, taken on your phone. Herald reads it the same way it reads a spreadsheet.
There’s no template to match. Herald parses headers and layout on its own, then shows you what it found before anything is created.
Recommended columns if you’re building the file yourself:
| Column | Required? | Notes |
|---|---|---|
Address | Yes | Full street address. The AI handles minor formatting differences. |
Lot | If you use them | Lot number - typically 1, 2, 3… |
Block | If you use them | Block letter or number, usually for larger communities |
Monthly Dues | Recommended | Dollar amount, e.g. 225 or $225.00. If your dues are annual, see below. |
Annual Dues | If applicable | Use this instead of monthly. The system stores the annual amount as-is. |
Initial Balance | If migrating | Carry-over balance from your old system. Positive = owes, negative = credit. |
Owner Name | Optional | Becomes an Owner record under Residents & contacts on the property, shown until someone claims the home. Also pre-fills resident invitations. |
Owner Email | Optional | Stored on that record and pre-approved to claim the property. If this person signs up later with the same email, they join the home automatically and the record links to their account. |
Owner Phone | Optional | Same as the email, by phone: stored on the record and pre-approved, so someone who signs up on their phone with no email still lands on the right home. |
Tenant Name / Tenant Email / Tenant Phone | Optional | A second person on the same home - renter, occupant, spouse, co-owner. Creates a second record on the property, pre-approved the same way. Header variants like Renter, Occupant, Second Owner are recognized too. |
Billing Contact | Optional | Who gets the dues notices for this home: Owner, Tenant, or Yes for the owner on the row. Left blank, nobody is flagged and notices go to the resident - HomeHerald never assumes the owner is the billing contact. |
Don’t worry about column names. The importer recognizes common variants (Property Address, Street, Unit #, etc.). If it can’t tell, it asks.
Step-by-step
- Log in as admin
- Go to Properties in the admin sidebar
- Open AI Import. There are two doors into it:
- A brand-new community with no properties yet shows a Bring in your roster card at the top of the Properties tab. Click Open AI Import.
- Otherwise, click Add in the Properties header, then AI Import in the top corner of the Add New Property window.
- Click Choose File and pick your spreadsheet, PDF, or photo
- Wait ~10 seconds while Herald reads it
- Review the preview. This is the important part - see below
- Fix anything wrong, then click the import button at the bottom right (it counts the rows for you: Import 84 properties)
The Bring in your roster card is a one-time nudge. Dismiss it with the X and it stays gone for that community, and it never appears once a single property exists. AI Import itself is always available from Add.
After you confirm, the system creates a Property record for each selected row. You’ll see them under Properties in the admin sidebar.
What Herald pulls out
The upload screen lists what it’s hunting for: property address (required), lot and block number, monthly dues, current balance, and the resident or owner name and email. An imported owner email is pre-approved to claim the property when that person signs up, so importing emails now saves you approving people one by one later.
Before you commit, the preview gives you two levers:
- Columns to include in import. Every detected column shows as a chip. Click one to skip it for every row - useful when your source file has a balance column you don’t trust, or owner emails you’d rather add later. Second person is one chip covering the tenant name, email, and phone together.
- Herald’s read on your data. A short AI sanity-check on what it parsed, flagging rows that look off. If it spots address formatting inconsistencies, it offers a one-click Apply N address formatting fixes button.
Row selection is per-row too, so you can uncheck anything you don’t want.
Reviewing the preview (don’t skip this)
The AI gets it right ~95% of the time, but the 5% can bite you. Things to scan for:
- Duplicate addresses. If you see “123 Maple St” twice, the source spreadsheet probably had a header row mid-file or a stray empty row. The importer will flag it; just remove duplicates.
- Missing dues amounts. Properties with
$0or blank dues will be created - but they won’t be charged anything when dues run. If that’s intentional (e.g., a developer-held lot), fine. If not, fix the source data. - Wrong dues frequency. If your community runs annual dues but the importer parsed it as monthly, every charge will be 12× too small. Check a few rows.
- Initial balances. If you put
$50for a property that owes$50, that’s fine. If your spreadsheet had(50)or-50for a credit, confirm the system parsed it as negative. - Lot vs. address. If your community uses lot numbers and the spreadsheet had them in a column called something weird (“Property #” or “Site”), make sure they didn’t end up in the address field.
Common import problems
“It didn’t pick up my dues amounts.”
Likely the column header was unusual (like “HOA Fee” or “Quarterly Pmt”). Rename it to something obvious like Monthly Dues and re-upload.
“My addresses got split weirdly across columns.”
The source spreadsheet probably had street, city, state, zip in separate columns. The importer combines them, but if the columns aren’t labeled it can guess wrong. Combine them into a single Address column before uploading.
“I have 50 properties but only 47 imported.” Three rows were probably skipped because they had no address. Check the source for empty rows or rows with only a lot number and no address.
“Some properties are duplicates of ones I already had.” They were skipped. Addresses already on file are detected and left alone, so re-uploading the same file doesn’t double your roster. The preview counts them for you under Already exist. If you meant to start the roster over rather than top it up, see the next section.
Adding to your roster vs. replacing it
Once a community already has properties, the preview grows a section headed How should this import land? with two choices:
Add to existing properties (the default) Your current properties stay exactly as they are. Addresses already on file are skipped, and only genuinely new rows are created. This is what you want almost every time - a new phase, a handful of missed lots, a batch of corrections.
Replace everything Start the roster over from this file. Use this when the roster you loaded was wrong, or when you’re clearing out practice data. It is a real deletion, so read the next section before you pick it.
The choice only appears when there is something to replace. A community with no properties in it goes straight to a plain import.
What “Replace everything” actually does
Choosing it opens a red panel that spells out the consequences before you can proceed:
- Every property in this community is deleted, along with every balance, charge, and payment record attached to those properties.
- Your settings, documents, covenants, and user accounts are not touched.
- A full backup of the community is taken automatically before anything is deleted. It lands in Community Backups under Settings → Community Settings, so the previous roster is recoverable.
- Only this community is affected. If you run more than one community on HomeHerald, the others are untouched.
- The rows you selected in the preview become your new roster.
Two things stand between you and an accident:
- You have to type the community’s name into the confirmation box. Until it matches exactly, the import button stays locked.
- Real payment history blocks it entirely. If a resident has ever paid online through HomeHerald, the replace is refused before anything is deleted and you’re pointed at Herald Support, who will correct the import without touching a single payment. Reach the team through Support in the app, or at hello@homeherald.ai.
That second guard is deliberate and there is no way around it from the admin side. It exists so a bulk import can never quietly erase money that actually moved. Practically, it means “Replace everything” is a first-week tool: use it while you’re still setting up, not after residents have started paying.
If something fails partway, the app tells you which half ran. A failed backup means nothing was deleted. A successful clear followed by a failed import leaves you on the preview with the old roster already cleared and a note saying so, so you can finish the import rather than starting over.
After the import
You should now have:
- A property under Properties (admin sidebar) for every lot in your community
- Each property showing the correct dues amount
- An initial balance on any properties that were carrying one over
What you don’t have yet:
- Residents. No one is linked to any property. That’s the next step.
- Pending dues charges. Dues won’t generate until you configure the dues schedule under Settings → Community Settings → Dues & Assessments panel. See Configuring dues.
Re-importing or updating in bulk
You generally don’t re-import - you edit individual properties as things change. But if you need to do a bulk update (e.g., a community-wide dues increase), there are three options:
- Bulk edit in the UI. Select all properties and apply a change.
- Run AI Import again in “Add to existing properties” mode. Existing addresses are skipped, so this is safe for topping up a roster.
- Email support. For larger restructures (renumbering lots, splitting properties), support@homeherald.ai is faster than fighting the UI.
If you started your trial with Start with practice data, this article is also your exit ramp: import your real roster with Replace everything and the practice records - plus the amber Practice data chip under your community name - go away for good. See Starting without a spreadsheet.
Where to go next
- Configuring dues - turn the imported amounts into recurring charges
- Inviting residents - link people to the properties
- Editing a property - fix individual records after import
- Starting without a spreadsheet - if you don’t have a roster file yet