JAI CRM
Home Documentation Sales documents Bring documents in from a spreadsheet

Bring documents in from a spreadsheet

Moving from Tally, Excel or another system without retyping a year of invoices.

Nobody starts empty. This is how last year comes with you.

Why a document import is different

Importing customers is easy: one row, one customer. An invoice is not one thing — it is a header, its lines, its number and its totals. A spreadsheet of invoices is one row per line, with the invoice number repeated down the page.

So the importer groups rows by the number column. The header is read from the first row of each group; every row in the group becomes a line.

NumberItemQtyRate
INV-001Steel pipe 2″10450
INV-001Elbow joint2065
INV-002Steel pipe 3″5610

That file makes two invoices: one with two lines, one with one.

No number column? Then every row is read as its own single-line document. That is how a list of simple invoices usually arrives, so it is the sensible default rather than an error.

The columns you can map

Your spreadsheet’s headings almost certainly do not match ours, and they do not need to. You map them on the way in.

On the documentOn each line
Document number, Customer, Date, Due date, Their reference, Currency, NotesItem or description, SKU, HSN / SAC, Quantity, Unit, Rate, Discount %, Tax %

Only two are compulsory: the customer and the item or description. Everything else can be left unmapped, and sensible defaults apply.

The customer is matched on name, code or email — so whichever your old system exported, it will probably find them.

Nothing is written until everything passes

Every row is checked first. If row 4,000 has a bad date, nothing is imported and you are told which row and which field.

This is the behaviour you want and it is worth knowing you have it. The alternative — writing as it goes — leaves you with 3,999 invoices imported, one missing, and no safe way to run the file again.

When a number already exists

ChoiceWhat happens
SkipLeave the one you have. The default, and the safe one.
UpdateOverwrite it from the file.
ErrorStop the whole import.

Limits

  • 5,000 rows per file. Split a bigger one — and a smaller file is easier to check anyway.
  • Import is its own permission, separate from create. Somebody who may raise one invoice is not automatically somebody who may bring in five thousand.

Doing it without pain

  1. Import your customers first. Documents match against them, and a document whose customer does not exist cannot be placed.
  2. Cut the file down to five rows and import those.
  3. Open one and check it — the totals, the tax, the customer.
  4. Fix the mapping if it is wrong, and only then run the whole file.
  5. Keep the original spreadsheet. It is your way back.

Dates are where imports go wrong. Excel will happily show you 03/04/2026 and mean either 3 April or 4 March. Check one imported date against the original before trusting five thousand of them.

Where to go next

Something missing or wrong here? Tell us. A question that needed asking usually means a page that needed writing.