Import

Trailhead has a good overview of the standard import options available. https://developer.salesforce.com/trailhead/force_com_introduction/data_management/data_import. Also, coming in Spring '15 is pre-defined imports for common systems such as Outlook and other CRM systems. 

Tools

Use Dataloader.io or Jitterbit cloud data loader

Preparing the File

Columns

Make your column names exactly the same as the API Field Names in Salesforce, that way you can Auto Map the file and it is much quicker. 

Dates

See Data Loader and the DateTime/Timestamp data type | Cloud Clod.

For Australian use - set the format of the date in Excel to be 

yyyy-MM-dd"T"HH:mm:ss"+10:00"

In Dataloader.io set regular dates to be MM/dd/yyyy and System Dates to be MM/dd/yyyy"T"HH:mm:ss.000"GMT+10:00"  or if your dates are in dd/MM/yyyy then set the format to be dd/MM/yyyy"T"HH:mm:ss.000"GMT+10:00"

For reference, Date Formats in SOQL https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_select_dateformats.htm 

Importing

Child Records

When importing child records you can sometimes come unstuck with errors "unable to obtain exclusive access to this record". This is because the roll-up-summaries are doing their rolling up when you are trying to add a new child record that belongs to the same parent record (I think). 

In Jitterbit set:

  • Number of Threads to 1
  • Retry Time to 20 seconds

That seemed to work for me. 

Process

Start with about 20 records to see how your data is. 

Next jump up to about 200 records. 

Then jump up to 1000 records. 

I would not go much more than 1000 records at a time, but it depends on how many 1000's of records you are importing. 

Results

Nice URL hack to monitor the jobs

https://instancename.salesforce.com/750?setupid=AsyncApiJobStatus&retURL=%2Fui%2Fsetup%2FSetup%3Fsetupid%3DMonitoring