# How CSVJetty works

> CSVJetty handles the user-facing CSV import workflow while your application keeps control of authentication, business rules, and persistence.

Canonical HTML: https://www.csvjetty.com/docs/concepts/how-it-works

## The import workflow

1. The user chooses a CSV file inside your application.
2. CSVJetty parses the file and reads its headers.
3. Uploaded headers are matched to configured destination fields.
4. The user reviews or changes those matches.
5. CSVJetty validates mapped values and shows corrections inline.
6. The user fixes errors or follows the importer's configured invalid-row behavior.
7. Validated records are delivered by callback or webhook.
8. Your application performs final server-side validation and saves the data.

The result is a predictable record shape even when source files have different header names or inconsistent values.

## What happens in the browser

File parsing, column mapping, built-in validation, inline corrections, and synchronous custom validators run in the importer experience in the browser.

CSVJetty does not store the original uploaded CSV file. With callback delivery, imported row data can stay out of CSVJetty's backend entirely.

## What CSVJetty manages

- Upload and review interface.
- Reusable importer configuration.
- Header matching and aliases.
- Built-in field validation and type conversion.
- Inline correction of invalid values.
- Optional filtering or blocking of invalid rows.
- Callback or signed webhook delivery.
- Import metadata and usage needed to operate the importer.

## What your application manages

CSVJetty is not a database layer. Your application should authenticate the receiving request, validate imported records against current server-side rules, enforce permissions and uniqueness, and persist accepted records.

For callback delivery, this usually means sending the callback payload to an authenticated API route you control. For webhook delivery, CSVJetty sends records directly to your HTTPS endpoint.

## Related concepts

- [Importers](https://www.csvjetty.com/docs/concepts/importers)
- [Column mapping](https://www.csvjetty.com/docs/concepts/column-mapping)
- [Validation and corrections](https://www.csvjetty.com/docs/concepts/validation)
- [Delivery modes](https://www.csvjetty.com/docs/concepts/delivery-modes)
