---
{
	"_label": "Data Import Tool"
}
---
The ￼Data Import Tool is a great way to upload (or edit) bulk data, specially master data, into the system. 

To Open the data import tool, you either go to Setup or go to the Transaction you want to Import. If Data Import is allowed, you will see an Import Button:

![Start Import](img/import-1.png)

The tool has two sections, one to download a template and the second to upload the data.

(Note: Only those DocTypes are allowed for Import whose Document Type is "Master" or Allow Import property is set.)

### 1. Downloading The Template

Data in ERPNext is stored in tables, much like a spreadsheet with columns and rows of data. Each entity in ERPNext can have multiple child tables associated with it too. The child tables are linked to the parent tables and are implemented where there are multiple values for any property. For example an Item can have multiple prices, An Invoice has multiple Items and so on.

You can import each table separately, or all at a time. In the child table, you must mention the parent of the row in the “parent” column so that ERPNext knows which Item’s price or tax you are trying to set if you are importing separately.

![Download The Template](img/import-2.png)

- Click on the table you want to download or "All Tables"
- For bulk editing, you can click on "Download With Data"

### 2. Fill in the Template

After downloading the template, open it in a spreadsheet application and fill in the data below the column headings.

![Spreadsheet](img/import-3.png)

Then export your template or save it as a **Comma Separated Values** (CSV) file.

![Spreadsheet](img/import-4.png)

### 3. Upload the .csv File

Finally attach the .csv file in the section. Click on the "Upload and Import" button.

![Attach and Upload](img/import-5.png)

Notes:

- Make sure that if your application allows, use encoding as UTF-8. 
- Keep the ID column blank for new records.
- Make sure you keep the modified column as it is for "All Tables".
- "Parent" column is mandatory for child type tables.

### 4. Uploading All Tables (Main + Child)

If you select all tables, you will get columns belonging to all the tables in one row separated by `-` columns.

If you have multiple child rows then you must start a new main item on a new row. See the example:

	Main Table							- 	Child Table
	Column 1	Column 2	Column 3	- 	Column 1	Column 2	Column 3
	v11			v12			v13				c11			c12			c13
											c14			c15			c17
	v21			v22			v23				c21			c22			c23
	
> To see how its done, enter a few records manually using forms and export "All Tables" with "Download with Data"

### 5. Overwriting

ERPNext also allows you to overwrite all / certain columns. If you want to update certain columns, you can download the template with data.Remember to check on the “Overwrite” box before uploading.

> Note: For child records, if you select Overwrite, it will delete all the child records of that parent.

### 6. Upload Limitations

ERPNext restricts the amount of data you can upload in one file. Though the number may vary based on the type of data. It is usually safe to upload around 1000 rows of a table at one go. If the system will not accept, then you will see an error.

Why is this? Uploading a lot of data can cause your system to crash, specially if there are other users doing things in parallel. Hence ERPNext restricts the number of “writes” you can process in one request.
