SAP customer master automation is the practice of building and updating customer master records from a spreadsheet instead of working through XD01 one customer at a time. PostNow drives it from Excel by recording the transaction once and replaying it: each customer is a row, the recording fills the general, company code, and sales area screens for every row, the values are checked, and the batch posts in one pass, with any SAP error turned into plain language.
What follows is a twelve-step worked example of a customer master upload from Excel to SAP, covering brand-new customers and edits to ones already on file. Hold on to the recording and mapping and you have a customer master Excel template for the next onboarding wave or data-migration cutover. The method behaves the same on classic ECC and on S/4HANA, where the customer is part of the business partner but XD01 still works and can be recorded. Once the initial setup is in place, the people loading the data write no ABAP and wait on no developer.
Why automate customer creation rather than keying XD01
Creating a customer manually runs through XD01: choose the account group, key the name and address, fill the company code view with its reconciliation account and payment terms, then complete the sales area view with the sales org, distribution channel, and division. A handful is manageable. Onboarding a new region, migrating a legacy ledger, or absorbing an acquired book of business turns it into hundreds of records spread across three sets of screens, and that is where reconciliation accounts and sales-area settings start to diverge.
A customer master upload takes the typing out of it. The list lives in Excel and the recording posts the whole batch across all the views in one run. For a bulk customer creation at go-live or a mass customer upload after a merger, the slow parts, capturing the transaction, lining columns up to fields, formatting the data, and decoding SAP messages, are handled for you. The twelve steps below are the entire method.
Before you start: what you need
- Your customers in Excel, one per row, with a column for every field across the account group, general, company code, and sales area data you intend to set.
- SAP authorization matching
XD01andXD02for the account groups, company codes, and sales areas you are loading. - PostNow in Excel, joined to your SAP system. Its supporting components are installed in SAP once at setup, and the customer loads then run from the task pane.
XD01; on S/4HANA the customer lives inside the business partner, and you can record either XD01 or the BP transaction, the replay being identical.Your customer master Excel template: the fields SAP expects
A customer record is assembled from three layers, so the template groups its columns the same way. These are the fields a customer upload relies on; carry them, and confirm the account group, reconciliation account, and sales area they reference already exist.
| Excel column | SAP field | Why it matters |
|---|---|---|
| Account group | KTOKD | Chosen first; it sets the number range and which fields are required |
| Name & address | NAME1, address | General data, shared across all company codes and sales areas |
| Reconciliation account | AKONT | Company code view; must be a valid GL account (SKB1) |
| Payment terms | ZTERM | Company code view; governs due dates on receivables |
| Sales area | VKORG / VTWEG / SPART | Sales view; the org, channel, and division must be set up together |
| Customer pricing / shipping | sales view | Drives pricing and delivery defaults on sales documents |
XD01 creation while PostNow captures the screen sequence, the account group prompt, the general, company code, and sales area screens, and the fields entered on each. That recording becomes a reusable template the add-in replays for every row, exactly as if a very fast user were typing, with the field values pulled from your columns. Step 2 is where you make this recording.The customer master upload, step by step
Lay out and open your sheet
Give each customer a row beneath headers such as Account Group, Name, City, Reconciliation Account, Payment Terms, Sales Org, Distribution Channel, and Division. Open the workbook and start the PostNow task pane next to it.
Record the XD01 transaction
Because there is no clean all-in-one customer BAPI, you capture the transaction once. Start a recording, run a single XD01 creation in SAP, and PostNow watches what you do:
- It captures the account group prompt and the general, company code, and sales area screens in order
- It notes every field you touch, so the replay knows exactly what to fill
- You record this just once; the recording then drives every customer in the sheet
Save the recording and PostNow turns it into a reusable template, so creating customers from Excel to SAP never again means opening XD01 yourself.



Look over the recorded screens and fields
PostNow lays the recording out as the screens it stepped through and the fields it will populate on each. Because it follows the real XD01 flow, a quick read shows what is captured at each layer:
That overview shows, before any mapping, which column belongs to which screen of the customer record.
Open the Mapping Designer
The recording loads the Mapping Designer with a line per captured field. Two points apply to customers:
- Added screen fields are detected. If your account group exposes extra fields on the recorded screens, they are picked up so you can map them.
- You can add more manually. Any field the recording did not reach you place yourself, keeping the full record in one load.

Match columns with Mapping AI AI
Time to join the recording to your data. Mapping AI reads your headers, or a screenshot you paste, and suggests an Excel column for each recorded field, which you confirm or adjust, a real saving when a customer spans an account group, an accounting view, and a sales view at once.
Auto Map and stamp the headers
Use Auto Map to lock the mapping down. Each recorded field is bound to its column and SAP-tagged headers are written across the sheet, so the workbook turns into the template and stays aligned with the recording.
Set formatting and update flags
Each field's properties decide how its value is typed into the screen: leading zeros on the reconciliation account, upper case on the sales-area codes, trimmed spaces, defaults, and regex. Getting these right means the replay enters exactly what the screen expects.
When the recording is a change rather than a creation, you flag only the fields the replay should overwrite, so a mass customer update touches just the columns you intend and leaves the rest of the record alone.
Check the data in Excel first
Checking ahead of the replay saves grief: an account-group or sales-area error tends to halt the screen mid-run. Validate moves that check earlier, holding each row against SAP's length, format, and required-field rules and flagging the cells at fault, so the sheet is sound before the recording runs.
Confirm against live SAP
Neat formatting still will not prove a value exists, a reconciliation account or sales area can look correct and be missing. To test it, open the field's properties, switch on field validation, and name the check table and field, a reconciliation account against SKB1, a sales organisation against its configuration, or the account group against its definition. Choose the cell, run Validate master data, and PostNow asks live SAP whether the value is there.
Shape the load with loops and conditions
When the sheet needs more than a straight replay, arrange it first:
- Loops: the recording steps down your rows, creating one customer after another from the same captured flow.
- IF conditions: run only the rows that qualify, for instance creating a sales view only where a sales org is present, or skipping rows still missing an account group.
Set the scope, run, and review AI
Pick the range with Run Scope, one test customer ahead of the rest, and press Run. A few things help:
- Foreground replay: watch the recording type into
XD01screen by screen for the first row to confirm it behaves. - Run log: each outcome shows live and lands in a log column against its row in Excel.
- AI error review: AI Review reads the SAP message and says, in plain words, which screen and field stopped the customer.
- Per-row result: every customer carries its own outcome, so a failure points straight at the row and field to fix.
Publish and roll it out to the team
After a clean run, publish the script. The recording and mapping become something colleagues run unchanged, they open it, paste their customers, and post, with nothing to rebuild and no need to understand the transaction behind it. A single setup becomes the team's standard way to load customers.
Let's talk
Bring a real customer list and a live SAP connection to a working session. We will record the transaction, map the fields, validate, and post it for real, with AI taking the strain. No slide decks.
Frequently asked questions
What is SAP customer master automation?
XD01. PostNow records the XD01 transaction once and replays it for every row in Excel, while AI maps the fields, checks the values, and explains any error, with no ABAP for the people loading the data.How do you upload customers from Excel to SAP?
XD01 creation once, map your columns to the recorded fields, validate, then replay the recording for the whole list. PostNow checks the data against live SAP, so there is no XD01 keying and no ABAP.Is there a BAPI to create SAP customers?
XD01 (or BP in S/4HANA) is the dependable route. PostNow records the transaction once and replays it per row, so you get the full general, company code, and sales area data without custom code.Is there a template for uploading customers to SAP?
Can you mass-change existing customers from Excel?
XD02 change instead of a creation, list the customers with their new values, and mark the fields the replay should overwrite. PostNow runs the change for every row, the Excel route to a mass customer update without touching XD02 manually.