Blog / · 8 min read

How to Import Existing Listings into Your Directory from a CSV

The single biggest operational accelerator for a new directory operator is a clean CSV import. Instead of creating profiles one by one, you build the database in a spreadsheet, import hundreds of listings in a few minutes, and start with a populated catalog rather than a blank one. Here's how to prepare the data, what the import expects, and how to handle the cleanup that every real-world dataset requires.

How to Import Existing Listings into Your Directory from a CSV

How to import existing listings from a CSV in minutes

The most common wrong approach to launching a directory is building it listing by listing through the admin panel. You add the first listing, then the second, then the fifteenth, then realize you've spent three hours on fifteen profiles and you need five hundred.

The right approach is to build your data in a spreadsheet first, clean it properly, and import the whole batch in one operation. Done correctly, a CSV import takes your catalog from empty to populated in minutes rather than weeks.

This article covers how to prepare a CSV import, what the platform expects, and how to handle the data quality issues that every real-world dataset comes with.

Where your import data comes from

Before building the import process, you need raw data to import. The sources vary by niche:

Public professional databases. Many professions have publicly searchable licensing or registration databases. Doctors, lawyers, architects, and tradespeople in many jurisdictions are registered with a public body that publishes basic information (name, practice address, license number, license status). These are often exportable or at minimum scrapable.

Industry association member directories. Professional associations publish their member lists, often with contact information and specializations. Check whether the association's terms permit use of their member data for your catalog — most do, as long as you're not republishing it as a competing service but rather directing traffic to member professionals.

Google Maps / Google Business Profiles. Business information on Google Maps is publicly visible. Extracting structured data from it at scale requires either a manual research process or a tool that accesses the Google Places API (which requires an API key and per-query billing). For a focused local niche, manual research is feasible for a few hundred businesses.

Your own existing spreadsheet or database. If you're migrating from an existing solution — a spreadsheet you've been maintaining manually, a WordPress plugin you're replacing, or an Airtable database you outgrew — your data is already structured and the import is primarily a column-mapping exercise.

Industry-specific data sources. Some niches have specific data sources: restaurant health inspection databases often include restaurant names and addresses; real estate registration databases list licensed agents and agencies; business registration databases list company names and registered addresses. These are often more complete than anything you'd build manually.

Preparing the CSV: the columns you need

Your import CSV needs columns that map to the fields you've configured on your catalog. The exact required columns depend on your setup, but the core columns across nearly all directory types are:

Required fields:

  • Listing name (the business or professional's name as it should appear)
  • Primary category (must exactly match your category system — check your catalog's category list before building the CSV)
  • Location (at minimum: city and country; ideally full address components as separate columns: street address, city, state/region, postal code, country)

Strongly recommended fields:

  • Description (a brief text about the listing, even if placeholder — can be updated by the owner after claiming)
  • Website URL
  • Phone number
  • Email (for sending claim invitations)
  • Any custom fields you've configured (specializations, price range, service area, etc.)

Optional but useful:

  • A unique external ID from your source data (makes re-importing or syncing updates easier)
  • Social media profile URLs
  • Logo/image URL (if you're hosting images on an external URL and want to import them)

Column formatting rules

CSV imports fail most often not because the data is wrong but because the formatting doesn't match what the platform expects. Before importing:

Phone numbers: standardize to a consistent format. Either all local format (555-123-4567) or all international format (+1 555 123 4567). Don't mix.

URLs: include the protocol (https://example.com, not just example.com). Test a sample of URLs to confirm they resolve.

Category names: these must exactly match your catalog's category list, including capitalization. "Physiotherapist" and "physiotherapist" may be treated as different values depending on the platform. Export your category list and use it as a reference column in your spreadsheet.

Multi-value fields: if a listing can have multiple categories or specializations, check how your platform handles this. Common formats include pipe-delimited values ("Sports injuries | Pediatric physiotherapy | Post-surgical rehabilitation") or separate columns for each value.

Dates: use ISO format (YYYY-MM-DD) if you're importing any date fields. Regional date formats (01/06/2025 is ambiguous between January 6 and June 1) cause inconsistent results.

Encoding: save the CSV in UTF-8 encoding, not the default UTF-8 with BOM or the legacy Latin-1 encoding. Names with accents, umlauts, or non-Latin characters will import as garbage characters if the encoding is wrong.

The data quality problems you'll encounter

No real-world dataset is clean. Here are the issues you'll encounter most often and how to handle them:

Duplicate entries. If you've assembled data from multiple sources, you'll have the same business appearing more than once. Sort by name and address in your spreadsheet and delete duplicate rows before importing. The deduplication step is almost always necessary.

Inconsistent naming conventions. "Smith Plumbing Co.", "Smith Plumbing Company", and "Smith Plumbing" are probably the same business. "John Smith Photography" and "Photography by John Smith" may or may not be the same photographer. A manual pass through your data before import is the only reliable way to catch these.

Missing required fields. Rows with no name, no category, or no location will typically fail on import. Decide whether to fill in placeholder data, skip these rows, or mark them for follow-up. A "notes" column in your spreadsheet to flag rows needing completion is useful.

Outdated information. A database assembled from public records may include businesses that have closed, moved, or changed their phone number. You won't know which rows are outdated until you've imported and started outreach. Mark suspicious rows (very old data, no email address found, address that doesn't resolve on Google Maps) for prioritized verification.

Inconsistent address formats. Addresses scraped from different sources come in wildly different formats. Standardizing these before import — especially if you want to enable location-based filtering — requires either manual cleanup or a geocoding tool that standardizes addresses against a reference database.

The import process in SupaDir

In SupaDir, the import lives in your admin panel under Listings → Import. The process is:

  1. Download the CSV template that shows the exact column headers expected
  2. Populate the template with your prepared data
  3. Upload the CSV — the platform previews the first several rows so you can verify the mapping before committing
  4. Review the import summary (records imported, records with errors, specific error details per row)
  5. Correct errors in your spreadsheet and re-import the failed rows

The preview step catches the most common issues (wrong column names, category values not matching your catalog's categories) before any data is written to your database. Import errors are shown row by row with the specific field that failed, so you can fix them efficiently.

After the import: what needs immediate attention

Send claim invitations. If your import included email addresses, use the bulk invitation function to send claiming emails to all newly imported listing owners. The invitation should be brief: "Your business is listed on [directory name]. Claim your free profile to update your information and manage how you appear to potential clients." This should go out within 24 hours of your import while your outreach effort is fresh.

Audit the first page of results. Browse your directory's public listing pages immediately after import and look for obvious problems — blank required fields displaying as "null," broken image links, address formatting that looks wrong in the map view. Fix these before you start any public promotion.

Flag listings without emails. Listings imported without an email address can't receive claim invitations through the platform. Export these separately and research emails manually, or mark them for a different outreach approach (phone, LinkedIn, direct website contact form).

Set a quality baseline. The listings you imported are stubs. The goal is to get listing owners to claim them and upgrade to complete profiles. Set a quality threshold — what percentage of your listings need to be claimed and completed before you promote the directory? Getting to 30-40% claimed profiles typically makes the catalog feel substantially more real.

Keeping your data current

An import is a point-in-time snapshot. Businesses change, close, and move. Building a process for keeping your data current is an ongoing operational task.

The most scalable approach is to put the burden on listing owners: give them easy self-service profile update tools and a reason to keep their information accurate (their profile quality affects how they appear in search results). Listing owners who are invested in their profile — particularly paid subscribers — update their own information more reliably than you could update it manually.

For data categories that change regardless of owner engagement (business closures, phone number changes, address moves), a periodic audit process — quarterly for a small directory, monthly for a large one — is necessary. A simple process: filter for listings that haven't been updated in six or more months and run a spot check against their public information.

The update directory listings article covers this ongoing data quality challenge in detail.

Start building for free