# Importers

> An importer is a reusable CSV import configuration that defines the data your application expects and the experience users see.

Canonical HTML: https://www.csvjetty.com/docs/concepts/importers


![CSVJetty dashboard with saved importers](https://www.csvjetty.com/0_DemoAdminCreateImporter.png)

Save an importer configuration for each kind of record your application accepts.

## What is an importer?

Create an importer in the CSVJetty dashboard for each distinct kind of data your product accepts. Contacts and products normally use different importers because they expect different fields.

Open a saved importer by passing its importer key to the component:

```jsx
<CSVJetty importerKey="YOUR_IMPORTER_KEY">
  Import contacts
</CSVJetty>
```

## What an importer stores

- Destination columns, labels, aliases, examples, and field types.
- Invalid-row and unmatched-column behavior.
- Callback or webhook delivery mode.
- Webhook URL and signing configuration when webhooks are enabled.
- Development-mode and presentation settings.
- Language, welcome message, and display preferences.

## Importer keys

An importer key tells CSVJetty which importer configuration to load. It is a public application identifier, not an account credential.

Do not use the importer key as authentication. Protect your own APIs with normal session or authentication controls.

## One importer or many?

Reuse an importer when the expected record shape and import behavior are the same. Create another importer when the destination schema, delivery endpoint, or user experience is meaningfully different.

Examples:

- Contacts in two screens can usually share an importer.
- Contacts and inventory should normally use separate importers.
- Two products with different webhook endpoints can use separate importers.

## Runtime overrides

The dashboard is the normal source of truth. Passing a `columns` prop replaces the saved column definitions for one import session; it does not rewrite the dashboard configuration.
