# Import and export

URL: /products/app/import-and-export · Id: `page:products/app/import-and-export`

> How a new Customer brings its records into an App from a spreadsheet or another tool, and takes every record back out at any time.

A new [Customer](/business/nouns/customer) arrives with records somewhere else. An [App](/business/nouns/app) brings them in through a previewed [Mapping](/business/nouns/mapping), and hands every record back in one call, at any time.

## Bring records in
Riverside Property arrives with 140 leases in a spreadsheet. The import maps each column onto a `Lease` field and runs in `test` first:

1. The manager uploads the file, and the App proposes a Mapping: `Unit` to `unit`, `End date` to `endsOn`, `Rent` to `rent`.
2. The test run reports every row that fails, such as an end date with no year.
3. The manager fixes the rows and runs it live. The rows land in one [Change](/business/nouns/change), and the [Tenant](/business/nouns/tenant)'s renewals start.

A rerun of the same file writes nothing new. Leases that arrive this way are ordinary records, with their own history from the import on.

## From another tool
When the records live in another product, an [Integration](/business/nouns/integration) at the Customer's scope reads them through that product's API. The same Mapping and test run apply. The Customer approves the connection, and can revoke it at any time.

## Take everything out
[`Collection.export`](/business/nouns/collection/export) writes a [Collection](/business/nouns/collection)'s records to a file, once or on a schedule. A Tenant's `owner` exports every record of the Tenant as JSON and CSV in one call, with no request to Leaseline.

An export is an [Action](/business/nouns/action) like any other, so it appears in the [audit log](/products/app/audit-log-for-admins). A Customer that leaves keeps its data; nothing is purged.

## Next
[Connected tools](/products/app/integrations-in-your-app) covers connecting a Customer's other tools for good.