> ## Documentation Index
> Fetch the complete documentation index at: https://docs.supadir.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Import listings from a CSV file

> Upload a CSV file and map its columns to listing fields to bulk-create profiles in your catalog.

The CSV import lets you populate your catalog in bulk — useful when migrating from a spreadsheet, a public registry, or any existing database of professionals or businesses.

<Info>
  CSV import is available on the **Professional plan and above**. On Starter, listings must be added manually or via self-registration.
</Info>

## Before you start

Prepare your CSV file:

* Supported formats: `.csv` with comma (`,`) or semicolon (`;`) separators — Supadir detects which one automatically
* The first row should be column headers (e.g. `Name`, `Email`, `Phone`, `City`)
* Each subsequent row is one listing
* There's no required column naming convention — you'll map columns to fields in the next step

<Tip>
  You don't need a perfect CSV. You can import partial data (e.g. just name and email), then let listing owners fill in the rest themselves after you invite them.
</Tip>

## The import flow

### Step 1 — Upload

Go to **Dashboard → Listings → Import CSV** and upload your file.

Supadir reads the file, detects the separator, and stores it temporarily for the next step.

### Step 2 — Map columns

You'll see each column from your CSV alongside a dropdown to assign it to a listing field. For each column, a preview of the first 3 rows is shown to help you identify the content.

Available mapping targets include all standard listing fields (name, email, phone, bio, website, location) plus any custom fields you've defined for this catalog.

You also select which **entity type** applies to all listings in this import. One import = one entity type. If you have multiple types to import, run separate imports for each.

| Column in your CSV | Map to                        |
| ------------------ | ----------------------------- |
| `Full name`        | Name                          |
| `Email address`    | Public email                  |
| `City`             | Location                      |
| `LinkedIn`         | Social — LinkedIn             |
| `Specialty`        | Custom field / Specialization |

<Info>
  Columns you don't map are ignored — they won't cause errors, they just won't be imported.
</Info>

### Step 3 — Run the import

Click **Import**. Supadir processes each row:

* **Valid rows** — creates a listing in **draft** status
* **Duplicate emails** — skipped (a listing with that email already exists)
* **Invalid rows** — skipped with a note in the import summary

After the import, you'll see a summary: how many listings were created, how many were skipped, and why.

## Sending credentials to imported owners

At the mapping step, you can toggle **Send login credentials by email**. When enabled, Supadir sends each imported listing owner an email with a temporary password and a link to their panel.

<Warning>
  Only enable this if your CSV contains real, valid email addresses belonging to the people you're importing. Sending unsolicited login emails to people who haven't agreed to be in your catalog is bad practice and may violate GDPR.
</Warning>

If you prefer a more controlled approach, leave this off — import the listings as drafts first, review them, then invite owners individually using the [invitation system](/admin/content/invite-owner).

## After the import

Imported listings start as **draft** — not visible in the public catalog. Review them in **Dashboard → Listings**, fill in any missing data, and set each one to **Active** when ready.

<Tip>
  Use the status filter in the listings table to quickly find all draft listings after an import.
</Tip>
