# Data

Source: https://docs.tightly.io/help/settings/data
Reviewed: 2026-09-07

## The question this page answers

Did my import complete, how do I fix refused rows, and where can I download data or manage custom fields?

## What you see

::: shot page
:::

Three cards, in this order: Imports, Exports and Custom fields.

**Imports** lists files newest first, with type, date, row counts, recorded and refused rows, and who imported them. Open a file to see its status and counts, download the original or failure report, resolve refused rows or retry a failed import. Running and unmeasured counts are identified separately.

**Exports** offers a template for each supported type. Current data can be downloaded for variant details, suppliers, and products and variants. Sales orders and purchase orders offer templates only.

**Custom fields** lists product and variant attributes, their type, source, usage and whether they are on. Up to 50 fields can be on at once. Turn one off or delete one before adding another at that limit.

## What to do

1. Press **Import**, choose **Type** (what the file holds; each carries a Sample file), then **Prepare**: Update what Tightly holds, or I have my file ready.
2. Press **Upload** for a .csv or .xlsx of up to 25 MB.
3. Under **Map**, line up each Tightly field with a column from the file; a column is used once.
4. Press **Start import** once every required field names a column.
5. For sales orders, choose **Import history before a connector cutover** and set both dates to add history from before a connector started.
6. Press **Resolve the refused rows** to upload corrected rows and map them again.
7. Press **Retry** to re-run a failed import.
8. Press **Add field**, set Key, Description, Type and Grain (Product or Variant), then turn its switch on or off.

Choose **Sample file** to download the selected type’s CSV. Keep its column headings. Supplier samples use the current supplier fields.

Start import reads "Map every required field to start." until every required field names a column, and once ready, "Once started, this import can’t be undone."

For sales orders, review how channels, accounts and locations match before importing. Sales must fall on or after History starts and strictly before Connector starts, in UTC; the importer checks mapped dates again when it runs. Resolving refused rows and retrying retain that original coverage; widening it requires a newly reviewed import. Keep the original order ID and SKU: re-importing the same sales line updates it. The date boundary prevents overlap with the connector period you declare; it does not automatically identify the same sale under unrelated connector IDs.

Quantity means positive whole ordered units before returns. Optional financial columns record gross sales excluding tax, discounts excluding tax, returns excluding tax, tax amount and historical unit cost. Map only evidence you have: a measured zero is different from an empty cell. Return amounts record refunded money, not returned units. Missing historical money or cost remains unmeasured in Finance; current catalogue prices or costs must not be treated as historical evidence.

The completion view names the file, its status and reported counts, with **View import history** as the next step. Processing means the file is still running. A completed import records its source rows; it does not confirm that forecast refresh has finished. Check the resulting sales and Finance figures, then the forecast after its refresh. Retry follows its status in Imports; neither it nor Resolve the refused rows should be treated as success until its result is shown.

A field's drawer shows Source, Comes from (the path a connection fills it on), Grain and Used in. A field of your own changes its Description there and can be deleted after the consequence: "Deleting removes it from every variant, plan, view and saved column. This cannot be undone." A field a connection created and no longer fills offers Access, `Read only` or `Read and write`, instead.

Members import, download current data and change fields. A read-only seat reads the tables, downloads templates, imported files and failure reports, and reads one reason beside the page's title: "Only a member can import or change fields." The Exports card tells it "Only a member can download your data." and drops its Current data column.

## When it is empty or failed

A failed imports read prints "The imports did not load." with Try again; a failed fields read "The custom fields did not load." with Try again. No imports prints "No imports yet"; no fields "No custom fields yet". A file of the wrong kind reads "Only .csv or .xlsx files." and one over the limit "File size must be 25 MB or less."; an upload that did not go through reads "The file could not be read." and an import the server refused "The file was not imported." A field the server refused prints its sentence under the form, such as a key already taken: "A custom field is already called '{key}'. Give this one a different name."
