19.1Start with the mapping spreadsheet — but make it richer
Yes, I would absolutely expect some sort of mapping document.
But instead of just:
| Source | Salesforce |
|---|---|
customer_id |
External_Customer_ID__c |
company_name |
Name |
phone |
Phone |
make it more like:
| Source field | SF Object | SF Field | Type | Required? | Transformation | Null behavior | Key? | Business rule | Example |
|---|---|---|---|---|---|---|---|---|---|
customer_id |
Account | External_Customer_ID__c |
String | Yes | trim | reject if null | External ID | uniquely identifies customer | C001 |
company_name |
Account | Name |
String | Yes | trim | reject | No | legal/display company name | Acme |
phone |
Account | Phone |
String | No | normalize | omitted = preserve | No | primary business phone | 3055551234 |
state |
Account | BillingState |
String | No | uppercase | null = clear? | No | billing address state | FL |
The extra columns are where most integration defects live.
Salesforce's own data-loading guidance emphasizes mapping required fields and selecting the Salesforce ID or external ID used for upsert.