> ## Documentation Index
> Fetch the complete documentation index at: https://docs.assetgullak.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bulk Import

> Import many assets or employees at once from a spreadsheet

If you're onboarding a fleet with an existing spreadsheet of assets or employees, you don't need to add them one at a time. Upload a file, review what will happen, and confirm — nothing is created or changed until you approve it.

## What you can import

* **Assets** — laptops, monitors, furniture, anything you track under Assets
* **Employees** — people you'll assign assets or devices to

Each is a separate upload. You can't mix both in one file.

## Supported file types

`.xlsx` (Excel) or `.csv`. Either works the same way — use whichever is easier to edit.

**Row limit:** 5,000 rows per upload. If you have more, split it into multiple files and upload them one after another.

## How it works, in short

1. **Upload** your file
2. **Review** — we check every row and show you what would happen: how many new records would be created, how many existing ones would be updated, and any rows with problems
3. **Confirm** — nothing is written to your account until this step. If something looks wrong in the review, just don't confirm — close it and fix your file instead
4. You'll get an **email summary** once it's done, with a link to review anything that was skipped

## Download a sample template

Before filling in your own data, download the template for the type you're importing — it has the exact column headers we're expecting, so you don't have to guess:

* [Download asset import template](#) *(sample .xlsx)*
* [Download employee import template](#) *(sample .xlsx)*

You don't have to use every column. Only a couple are required per row — everything else is optional and can be left blank.

***

## Asset columns

| Column          | Required? | Notes                                                                                                                                                                                                   |
| --------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Asset Tag**   | Yes       | Your own label for the asset (e.g. `AS-001`). Must be unique within your company — if a tag already exists, that row **updates** the existing asset instead of creating a new one.                      |
| **Name**        | Yes       | e.g. "MacBook Pro 14""                                                                                                                                                                                  |
| Category        | No        | e.g. "Laptop", "Monitor", "Furniture"                                                                                                                                                                   |
| Manufacturer    | No        | e.g. "Apple", "Dell"                                                                                                                                                                                    |
| Model           | No        |                                                                                                                                                                                                         |
| Serial Number   | No        |                                                                                                                                                                                                         |
| Purchase Price  | No        | Numbers only. Currency symbols and commas are fine (`₹1,89,000` and `189000` both work)                                                                                                                 |
| Purchase Date   | No        | `YYYY-MM-DD` is safest (e.g. `2024-03-15`). `DD/MM/YYYY` and `MM/DD/YYYY` also work, but mixing formats in the same column can cause misreads — pick one and stick with it                              |
| Warranty Expiry | No        | Same format guidance as Purchase Date                                                                                                                                                                   |
| Status          | No        | One of: `active`, `faulty`, `maintenance`, `storage`, `retired`, `scrapped`, `lost`. Leave blank and it defaults to `active`                                                                            |
| Notes           | No        | Free text                                                                                                                                                                                               |
| Location        | No        | Must **exactly match** an existing location name in your account (not case-sensitive). If it doesn't match anything, that row will fail — create the location first under Settings, or fix the spelling |
| Department      | No        | Same rule as Location                                                                                                                                                                                   |

## Employee columns

| Column      | Required? | Notes                                                                                                                                                                                                                                                                                                                                                                                               |
| ----------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**    | Yes       | Full name                                                                                                                                                                                                                                                                                                                                                                                           |
| Employee ID | No        | Your own internal ID (e.g. `EMP001`). **This is what decides create vs. update** — if you provide it and it matches an existing employee, that row updates them instead of creating a duplicate. If you leave it blank, a new employee is always created, even on a repeat upload. We also accept "Employee Code" as a column name if that's more natural for your team — either works the same way |
| Email       | No        | Must look like a real email address if provided                                                                                                                                                                                                                                                                                                                                                     |
| Location    | No        | Must exactly match an existing location name                                                                                                                                                                                                                                                                                                                                                        |
| Department  | No        | Must exactly match an existing department name                                                                                                                                                                                                                                                                                                                                                      |

<Warning>
  If you don't include an Employee ID and re-upload the same file twice, you'll get two of every employee. If you think you might need to re-upload a corrected version of the same file later, add an Employee ID column so we can tell it's the same person.
</Warning>

***

## Understanding the review screen

After upload, before anything is saved, you'll see:

* **Valid rows** — will be imported
* **Invalid rows** — will be skipped, with reasons shown
* **Will create** — brand new records
* **Will update** — existing records that will be modified

Invalid rows are never partially imported — if even one field on a row has a problem, the whole row is skipped. Everything else in the file that's valid still goes through normally.

## Reviewing what went wrong

If any rows failed, you can review them right in the app — click through to see exactly which row, which column, what you typed, and why it didn't work. This list isn't a file you download; it's meant to be read side by side with your original spreadsheet so you can jump straight to the row that needs fixing.

Common reasons a row fails:

* A required field (Asset Tag / Name) was left blank
* Location or Department name doesn't match anything in your account
* Status value isn't one of the accepted options
* A date or price couldn't be understood

If a row fails, just fix it in your original spreadsheet and re-upload — you can re-upload as many times as you need. Only the confirm step actually writes anything, so there's no harm in uploading a draft to see what the review looks like before you're ready to commit.

## After you confirm

You'll get an email once the import finishes — how many were created, how many updated, and how many were skipped (if any), with a link back to review the results.
