The Scenario
You are an operations manager at a wholesale distributor. It is Wednesday afternoon and the system migration is scheduled for Friday morning. You have 150 customers in an Excel workbook — the Customers tab — with customer name in column A, customer group in B, territory in C. Every one of those records needs to be in ERPNext as a Customer DocType before go-live.
IT pointed you to ERPNext's data import tool. The import template it generates does not match your workbook columns. Customer group values need to match exactly what is already configured in ERPNext. And the last time you tested with a ten-row batch, four rows came back as validation errors with messages like "incorrect value" and no row reference.
The bad version of this migration:
- Reformat 150 rows to match ERPNext's import template structure
- Upload a test batch, parse the error log for clues
- Fix the customer groups that do not exist yet in ERPNext
- Re-upload the batch, find two more column formatting issues
- Repeat until all 150 rows are confirmed in ERPNext
- Friday arrives and you are still debugging the last 30 rows.
The fast version is one prompt.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent inside your Excel workbook that reads your customer data and creates the ERPNext records directly, writing confirmation back to the workbook so you know exactly which rows landed.
Open the SheetXAI sidebar and type:
Create an ERPNext Customer document for every row in the Customers tab. Column A is the customer name, column B is the customer group, and column C is the territory. Write the returned ERPNext document ID into column D for each row. If a row fails, write the error message into column D instead of skipping it.
SheetXAI iterates through all 150 rows, calls the ERPNext API for each, creates the Customer record, and writes the document ID or error message into column D. You see exactly which rows need attention without opening ERPNext's import log.
What You Get
A completed workbook with 150 rows of confirmation data:
- Successful rows — ERPNext document ID in column D
- Failed rows — the specific validation error in column D
- No silent failures — every row gets a result
Scan column D to know the migration status. Fix failed rows inline in the workbook and re-run the prompt on just the rows still missing an ID in column D.
What If the Data Is Not Quite Ready
Legacy exports are rarely clean. SheetXAI handles normalization and the ERPNext insert together.
When customer group names do not match ERPNext
Your legacy system used "Retail" but ERPNext expects "Retail Customers."
Normalize column B: replace "Retail" with "Retail Customers" and "Wholesale" with "Wholesale Distributors." Then create the ERPNext Customer records for all rows and write the document ID into column D.
When some rows are missing territory
A third of the rows have blank territory. ERPNext requires it.
For any row where column C is blank, fill it with "All Territories." Then create the ERPNext Customer records and write document IDs into column D.
When customer names have leading or trailing spaces
The legacy export has inconsistent spacing that will create near-duplicate records in ERPNext.
Trim leading and trailing spaces from column A for every row. Then create the ERPNext Customer records and write the document IDs into column D.
When the workbook has duplicate customer names from the export running twice
Deduplicate the Customers tab by column A (customer name), keeping the first occurrence. Then create ERPNext Customer records for all unique rows and write document IDs into column D. Write "DUPLICATE — skipped" into column D for removed rows.
The pattern: normalize and insert in one instruction. No pre-cleaning pass, no second prompt.
Try It
Get the 7-day free trial of SheetXAI and run it against your customer migration workbook. The ERPNext integration is included in every SheetXAI plan. For related workflows, see how to bulk-create Item records from a product catalog workbook or the ERPNext in Excel overview.
