Although nosotros are doing data loading in Salesforce from ages, its very common to miss some steps or considerations. Therefore thought to list some of all-time practices and considerations I follow before or during data load process.

Salesforce Dataloader
Salesforce Data loader Considerations
  • Developer note field – I generally create a text field on every object where data is being loaded. This field helps to place existing data verses newly loaded information. This field can be deleted after few weeks of data loading. Content in this field is likeData loaded on 21-Jan, Mock B information loaded on 29 January by xyz  etc.
  • Legacy primary primal – This is external Id field which contains primary key of external system. It helps to relate data between Salesforce and legacy organization if needed.
  • Ready Inactive users as Owner – We can load historical data with Inactive users. This is cracking feature if you don't want to loose audit information. It can be enabled using User Interface options – "Update Records with Inactive Owners".
  • Load Audit fields : Use permission gear up / profile to enable editing of audit fields like created date and created by fields.  We can enable it at contour or permission gear up level using permission "Set Audit Fields upon Tape Creation".
  • Audit fields can only set while inserting records. Make sure this is considered, otherwise nosotros need to delete record and insert back again to populate audit fields.
  • Brand sure local computers timezone is set up to Hawaii (article link). Restart your system and showtime dataloader. Dataloader should evidence locale every bit Hawaii. Yous can also set up timezone as GMT manually for data loader.
  • If you are using SQL Server, then convert date to UTC and then load datetime into Salesforce.
  • If y'all are using SQL Server, You can utilise this code to convert T-SQL engagement to Salesforce date format –Catechumen(NVARCHAR,GETDATE(),126)
  • For supported Datetime format read more in particular at Johan's web log
  • If because of net effect, connection drops and load fails in between, then in dataloader setting, you can restart from where connection dropped. It shows that what was success count and we can enter row number from where we desire dataloader to restart processing. (shown in below prototype)
  • If you are using SQL Server, then DBAmp or Cozyroc can exist used to load data into Salesforce.
  • If number of fields between legacy organization and Salesforce doesn't match, and so instead of ignoring legacy system'due south field, you can create a hidden text area field and populate information technology with csv values.
  • While loading address in Business relationship or Contact, most of time number of accost are more than than 2. Salesforce supports two address only, out of box (Shipping and Billing accost). In these cases, you might stop upwardly creating custom kid object to shop multiple addresses.
  • Legacy note in Salesforce is replaced past Enhanced notes. To load Enhanced notes using Dataloader, follow this mail service. If using other tools then nosotros need to load notes in Base64 format in ContentNote object and and then link ContentNote with record using junction object ContentDocumentLink object.
  • If in that location are attachments to be loaded, then it will have different approach. Check this commodity to employ Dataloader to load attachments.
  • If file size is less than 25 MB then nosotros can use attachments other wise you might need to use Chatter Files.
  • If any of field containsRich Text, so nosotros accept to exist little conscientious here. CSV file containing Rich text doesn't work properly. y'all might need to think on some alternatives like converting rich text to simple text.
  • Loading attachment may cause heap size memory bug, in those cases endeavor to minimize batch size.
Salesforce DataLoader - Start from where connection dropped
Salesforce DataLoader – Start from where connection dropped

Fixing Errors :

If you get below fault

CSV Error: Invalid CSV file format. Please select a different file.
com.sforce.async.CSVReader$CSVParseException: Non expecting more text later terminate quote

Then it tin be stock-still following below points

  • In CSV file, 1 column has comma. I commonly supercede comma by semicolon (If accepted past client) or you can enclose information technology in double quotes
  • In CSV file, 1 column has double quotes. I unremarkably replace double quotes by single quotes.
  • CSV file contains non ASCII characters. Information technology can exist removed by searching using expression [^\x00-\x7F]+.Read more here.