The Import module is how property data enters the 8020REI platform. It handles Excel and CSV files, applies validations, matches or creates properties, and updates related fields such as tags, status, phone numbers, and opt-outs. This guide walks through file formats, matching rules, the import wizard, monitoring, and BuyBox Data Updates.
Two Ways Data Enters the Platform
Every load falls into one of two categories. They complement each other — they don’t replace each other.
| Type | How it starts | Example |
|---|---|---|
| Manual Import | You upload a CSV or Excel file from the Importer screen. A wizard guides you through file selection, options, column mapping, and confirmation. | Loading externally-generated leads, tagging a batch of properties, importing opt-outs from a marketing agency. |
| Data Update | Triggered from the BuyBox dashboard (manually) or by the system on a schedule. Recalculates the BuyBox score and refreshes the property universe attached to a BuyBox. | Monthly refresh of a BuyBox after new criteria are configured; incremental refresh of qualifying properties. |
Use Manual Import for one-off data operations on properties you already know. Use Data Updates to keep BuyBox scoring and property membership in sync.
How the Platform Identifies a Property
Before any update can be applied, the platform must uniquely identify each property in your file. The Folio alone is not enough — it must be paired with the Zipcode. Valid combinations, from most reliable to most ambiguous:
| Folio + Address + Zipcode — highest confidence, no ambiguity. |
| Folio + Zipcode — reliable when the zip is accurate. |
| APN + Address + Zipcode — good alternative when Folio isn’t available. |
| APN + Zipcode — minimum viable with APN. |
| Address + Zipcode — fallback; most ambiguous. |
The Folio + Zipcode pair is what makes a property unique. Two rows sharing the same address but different folios are treated as two different properties — to merge them you must go through the Property View; you cannot fix this via Import.
No Folio in your file? The platform standardizes addresses automatically, so typos like “St.” vs “Street” or extra spaces won’t create duplicates. But if the database already holds multiple properties with the same standardized address and zip but different folios, the system can’t tell which one to update. That row is flagged as Not Identified in the downloadable report — it’s never applied to the wrong property.
Import Types
The Importer home screen shows a grid of tiles, each a distinct import type with its own required columns. One update type per file — to update both Leads and Deals, upload two separate files.
| Tile | Purpose | Minimum columns |
|---|---|---|
| Leads | Marks the property as Lead to pause marketing and flag for follow-up. | Property Address, Property Zip (Lead date optional) |
| Appointments | Records a scheduled appointment with the homeowner. | Property Address, Property Zip (Appointment date optional) |
| Deals | Uploads deal history to improve future prospect quality. | Property Address, Property Zip, Gross profit, Sale date, Exit strategy |
| DM opt out | Removes the property from direct mail campaigns. | Property Address, Property Zip (reason optional) |
| SMS opt out / CC opt out | Removes from SMS or cold-call campaigns. | Property Address, Property Zip (reason optional) |
| Number status | Tags phone numbers with a status (Decision Maker, DNC, Wrong Number…). | Property Address, Property Zip, Phone number (status optional) |
| Skip trace | Loads skip trace results (numbers, types, statuses). | Property Address, Property Zip, Phone number |
| Niche list | Adds or removes distress indicators (divorce, incarceration, etc.). | Property Address, Property Zip |
| Returned mail | Records returned mail; at 3 returns the property leaves DM lists. | Folio, Property Address, Property Zip, Returned Mail Counter |
| Tags | Applies tags to properties. | Property Address, Property Zip |
| Advanced import | Generic import with flexible mapping of multiple columns at once. | Depends on the use case |
The Manual Import Wizard, Step by Step
Clicking a tile opens a wizard. Here’s a typical flow using Leads as the example:
| 1. Choose the type | From Importer, click the tile (e.g. Leads). A modal opens titled “Update lead status”. |
| 2. Upload the file | Drag or select an .xls, .xlsx, or .csv file. You can also upload a .zip of multiple files — but all must share the same columns. |
| 3. Configure options | A yellow banner shows the required columns. Type-specific options appear here (opt-out direction, counter behavior, distress selection, etc.). You can also add tags — type a name and press Enter; if a tag doesn’t exist it’s created on the fly. |
| 4. New properties | Pick one: Create new properties (unmatched rows get created — later updates handled manually) or Ignore new properties (only existing ones update, the rest are skipped). |
| 5. Column matching | Assign each column in your file to the corresponding system field. Required fields are highlighted; unused columns can be marked “do not use”. |
| 6. Wait for completion | The import is queued and appears in History. You can keep working; a notification is sent when it finishes. |
Manual imports never recalculate the BuyBox score. They update property data (leads, deals, tags, phone numbers, opt-outs) but don’t touch the score. If a manual change should affect scoring — for example, adding a distress indicator via Niche list — launch a Data Update on the affected BuyBox afterward.
File Format & Limits
Accepted formats: Excel (.xls, .xlsx), CSV (.csv), or a ZIP archive of any of these (all files inside must share the same columns).
| Format | Max per file | Notes |
|---|---|---|
| Excel (.xls, .xlsx) | 1,000,000 rows | Only the first sheet is read; additional sheets are ignored. |
| CSV | 1,000,000 rows | Processes faster than Excel for large files. |
If your dataset is larger than 1M rows, split it into multiple files. The platform detects addresses in several layouts — address and zip in separate columns, address with embedded zip, address with city/state combined or separate, or APN + county + state.
Empty Cell Behavior — a Critical Distinction
How the platform handles empty cells depends entirely on where the file comes from. This has real operational consequences.
| Context | Rule |
|---|---|
| Manual Import | Empty cell → the existing value is preserved. Changes apply only to cells that carry a value. Safe to upload partial files. Cannot be used to clear a value. |
| Data Update | Empty cell → for many fields the value is overwritten with empty. The BuyBox file is treated as an authoritative snapshot; missing data can mean “no longer applies.” Verify the source before troubleshooting. |
Manual import example: a property has Absentee = 1. You upload a file with the Absentee column empty for that property. Result: Absentee stays 1 — the value is preserved. To actually clear a value, edit it from the Property View or use a dedicated import (for example, “Add back to marketing lists” to reverse an opt-out).
In a Data Update, behavior varies by field. Most fields are safe (an empty cell preserves the stored value), but a few groups behave differently — these are the ones to check when a value disappears after an update:
| Field group | Empty cell in the file | Non-empty value |
|---|---|---|
| Most property fields (characteristics, financials, valuations, property address…) | Kept — stored value preserved | Overwritten |
| Owner First Name, Owner Last Name, LTV | Cleared | Overwritten |
| Distress fields & scores — not manually edited | Cleared | Overwritten |
| Distress fields & scores — manually edited by a user | User’s value kept | Overwritten only if the file brings a different value |
| Owner + mailing address, when a user edited the owner | Kept | Kept — unless the file also confirms a new sale |
Two things worth remembering: manually-edited distress fields and owner data are protected — a Data Update only overrides them when it brings a different, confirmed value. And a confirmed new sale resets every distress field to 0 and lifts the owner-edit protection, since those signals belonged to the previous owner and the record starts clean for the new one.
BuyBox Data Updates
A Data Update recalculates the BuyBox score — the number that measures how well a property matches a BuyBox’s criteria (property type, distress, LTV, motivation, and so on). A score above 0 means the property qualifies and appears in that BuyBox’s marketing lists; a score of 0 keeps it out.
Launch one manually from the BuyBox card’s overflow menu, or let the system run it on schedule. Either way, it comes in two flavors:
| Flavor | Behavior |
|---|---|
| Total update | Updates every property in the BuyBox scope and recomputes the score for the entire universe — even rows that end at score 0. Propagates to BuyBoxes that share counties. Slower and heavier. |
| Partial update | Updates only properties that qualify (score above 0), recomputing a subset. Skips non-qualifying rows and doesn’t propagate to related BuyBoxes. Fast and safe for concurrent BuyBoxes. |
You don’t need to launch a Data Update after editing a BuyBox. Saving a change to the criteria schedules a recalculation of the affected properties on its own — but that job starts one hour after the change, not immediately, so the scores you see right after saving are still the old ones. Launch a Total update only if you want the entire universe recomputed without waiting.
Watch out with Total updates across BuyBoxes that share counties. They run sequentially, not in parallel — and each one recomputes the score against its own criteria, so a later Total update can overwrite the scores set by an earlier one. For example, a property scoring 85 in “Florida Mobile Homes” could drop to 0 when a Total update on “Florida SFH” runs next, if it’s not an SFH. When counties overlap, prefer Partial updates — each BuyBox keeps its own score independently.
History & Monitoring
The History screen is where you monitor imports in progress, paused, completed, and failed. A top toolbar lets you search by file name, hide automatic (BuyBox-triggered) imports, and download an empty template. A live panel shows each import’s state:
| State | What it means | Action |
|---|---|---|
| In Progress | Being processed right now | Pause |
| Queued | Waiting to be picked up | Pause |
| Paused | Manually paused | Resume |
| Failed | Failed imports | View errors |
The history table records, per import: file name (click to download the original), date, who launched it (or “Automatic”), type, properties updated, new properties added, duplicates (last row wins — downloadable), phone entries updated, status, progress, and rows not identified (also downloadable).
Errors don’t always mean failure. An import can finish as Completed and still show row-level errors — check “View errors” to inspect them.
Best Practices & Common Pitfalls
| Include Folio + Address + Zipcode when possible. The Folio lives in column A of the monthly prospect list and guarantees unambiguous matching. |
| Verify required columns before uploading. The yellow banner lists them — missing one means the import completes as incomplete and must be redone. |
| Prefer CSV for large files. Both support up to 1M rows, but CSV parses faster and uses less memory. |
| Don’t use multiple sheets or merged cells. Only the first sheet is read; merged cells leave the joined cells empty and produce incomplete rows. Unmerge before saving. |
| Don’t leave formulas in cells. The file is read literally — a formula is imported as its text, not its result. Paste as Values only before saving. |
| Don’t close the browser during Column Match. The mapping is lost and the file must be re-uploaded from scratch. |
Imports cannot be undone.
Once an import completes, the changes are applied and there is no undo. The only way to restore previous values is to run another import with the old values. To reduce risk: keep a backup before large operations, start with small test files, and review the column mapping carefully before continuing.
Quick Answers
| Question | Answer |
|---|---|
| My file doesn’t appear in History. | Make sure you completed the wizard through Column Match and clicked Continue. Closing the modal early means the import was never dispatched. Otherwise, refresh — it can take a few seconds. |
| What’s a “Not identified” property? | A row that couldn’t be matched or created — usually an unrecognizable address, a malformed zip, or a folio not in the database. Download the report, fix the entries, and re-upload. |
| Why did my file create new properties? | You chose “Create new properties” in step 4 and some rows didn’t match — often from address typos, properties outside your markets, or non-standard extensions. Choose “Ignore new properties” to avoid it. |
| My import ended in “Failed.” | Click the error icon to read the message. Common causes: corrupt file, incorrect mapping, row limit exceeded, or unusual encoding. Fix and re-upload; contact support if it persists. |
| Why is my import “blocked” or not starting? | Imports queue when a fulfillment is running, another import of the same type is queued, or a Total update is running on an overlapping BuyBox. Wait for the previous one to finish; contact support if it lasts more than a few hours. |
| Can I run multiple imports at once? | You can upload several, but they process one at a time in a queue, showing as Queued until their turn. |