The importer accepts almost any column names, but the fastest path is to start from a file whose columns already match. Each template below has the header row Direct REI expects plus two or three sample rows showing what goes in every column. Open it in Excel, Numbers, or Google Sheets, replace the samples with your list, keep the header row exactly as it is, and save as CSV.
Pick the template for the tab you're importing into
- Buyers — cash buyers, builders, investors, agents. Imports on CRM → Buyers → Import CSV.
⬇ Download the buyers template — open in the app - Sellers + properties — one row per property, with the owner on the same row. Imports on CRM → Sellers → Import Sellers + Properties CSV. This is the one to use for county lists, mailing lists, and driving-for-dollars lists.
⬇ Download the sellers + properties template — open in the app - Other contacts — attorneys, title companies, lenders, contractors. Imports on CRM → Other → Import CSV.
⬇ Download the other-contacts template — open in the app - Deals — an existing pipeline. Imports on CRM → Deals → Import CSV.
⬇ Download the deals template — open in the app
How to use it
- Download the template and open it in Excel, Numbers, or Google Sheets.
- Delete the sample rows and paste your list in. Leave the header row alone. Delete any column you don't have data for — empty columns are fine too.
- Save as CSV. In Excel: File → Save As → CSV UTF-8. In Google Sheets: File → Download → Comma Separated Values. (.tsv and .txt also import.)
- Go to the matching CRM tab and click Import CSV. Every column should already show as mapped — glance down the list, then pick a campaign or add tags if you want them applied to the whole batch, and click Import.
Renamed a header? The mapper still recognizes the usual aliases ("Owner Name", "Cell", "APN", "Situs Address", "Acres"…), and anything it misses you can point at the right field with the dropdown next to it before importing.
What goes in each column
Buyers — Name, Company, Title, Type, Email, Email 2, Email 3, Phone, Phone 2, Phone 3, Market, Tags, Status, Notes, Lot Size, Price Range, Submarkets. A row needs at least a Name, an Email, or a Company. Extra emails and phones (slots 2 and 3) land on the contact card as alternates. Lot Size, Price Range, and Submarkets are the buyer's buy box — free text like 1 to 5 acres or 50000 to 250000.
Sellers + properties — the seller half is First Name, Last Name, Company, Email (1–3), Phone (1–3), Mailing Street / City / State / Zip, Market, Motivation, Reason for Selling, Tags, Status, Seller Notes; the property half is Property Address, Property City, Property State, Property Zip, County, Parcel ID, Property Type, Lot Size, Sqft, Beds, Baths, Zoning, Asking Price, Estimated Value, ARV, Property Notes, Legal Description, Links. A row needs either something identifying the seller (name, email, phone, or company) or a property address or parcel number. A single "Owner Name" column works in place of First + Last. The mailing address is the one skip tracing and direct mail use — fill it in whenever you have it, even when it matches the property address.
Other contacts — Name, Company, Title, Type, Email, Phone, Tags, Notes. Same Name-or-Email-or-Company rule as buyers.
Deals — Deal Name, Stage, Seller Name, Offer Price, Contract Price, ARV, Rehab Estimate, Assignment Fee, Earnest Money, Closing Date, DD Date, Notes. Deal Name is required. Stage is matched by name against your pipeline's stages (a name that doesn't match lands in your first stage). Seller Name is matched against sellers already in your CRM — import the sellers first, then the deals.
Values that have to be exact
- Status (buyers, sellers, other) is stored as typed, so use the code, not the label:
pending(Not started),contacted,replied,qualified,active,notinterested. Leave it blank forpending. Anything else won't match the Status filters. - Type on buyers is one of
Builder,Wholesaler,Flipper,Investor,Landlord,Agent,Broker,Owner,Lender,Attorney,TitleCompany,Inspector,Contractor,Appraiser,Surveyor,JVPartner,PropertyManager,Municipality,Other. Blank defaults toBuilder. - Type on other contacts:
Lender,Attorney,TitleCompany,Inspector,Contractor,Appraiser,Surveyor,JVPartner,PropertyManager,Municipality,Other. - Property Type:
land,sfr,multi,commercial,industrial,mixed. Blank defaults toland. - Tags: separate several with a semicolon —
wilkes-2026; absentee. Tags you add in the import dialog are combined with these. - Dates (Closing Date, DD Date):
YYYY-MM-DD, e.g.2026-10-15. - Phones can be in any format. Prices are plain numbers with no
$.
How duplicates are handled
Buyers and other contacts are skipped when a row's email, or its name + company pair, already exists in that tab — so re-importing an updated file adds only the new people. Sellers are reused when the email, the name + company pair, or the phone already matches, and the row's property is attached to that existing seller. That's also why the sellers template repeats Robert Nguyen on two rows: one owner, two parcels, one contact card.
Spreadsheet traps worth knowing
- Leading zeros vanish. Excel turns ZIP
02134into2134and a long parcel number into scientific notation. Format those columns as Text before pasting, or paste into Google Sheets, which keeps them. - Formulas don't travel. A cell that is a formula exports as its value — fine — but a cell that starts with
=,+, or@as text is treated as a formula by spreadsheets. Keep notes starting with a letter. - One record per row, one header row. Merged cells, a title row above the headers, or two tables in one sheet all confuse the mapper. The template shape is the shape.
- Commas inside a cell are fine when the file is saved as a real CSV (the spreadsheet quotes them). If you build the file by hand, put quotes around any value that contains a comma.