PeopleImport Restore Instructions
If records were imported/updated incorrectly, the original Salesforce data can be restored to the state prior to the import.
Common reasons for a bad update include matching on just First Name and Last Name (e.g. John Smith is in Salesforce at different companies - PeopleImport will update the first record it matches to based on your criteria), matching on just email or just Account Name when looking for a matching Account when inserting new Contacts.
The easiest way to do this is using DemandTools and MassEffect using the "Restore" files that are generated when the import completes. These files are referenced in the completion dialog box, and are stored by default in the C:\"My Documents"\PeopleImportData\Restore directory. The exact location for these files on your PC can be found in the File Paths tab in PeopleImport Options.
Restore files are generated for each object that was updated, e.g. one file for Lead updates and a separate file for Contact updates. For Accounts there can be up to 2 files, one (AccountRestore) will contain restore info for all the Accounts that were updated in conjunction with a Contact "Update", and another (AccountUpdateRestore) for all Accounts updated in conjunction with a "New Contact - Existing Account".
These files contain the Salesforce ID's of any records that were updated, as well as a before image of all the fields that were mapped in Stage #1 prior to the update.
A "FinalResults" file is also generated which will contain a summary of the results from PeopleImport, and will contain any new ID's for Leads/Contact/Accounts that were inserted. This can be used to MassDelete any new records that were created.
Once these files have been located (make sure to use the ones that are date stamped for the PeopleImport import that needs to be undone). Use the following process in DemandTools MassEffect to "undo" the import:
Step 1: Undoing the Updates
1. For each of the Restore files (Lead/Contact/Account), read the file into MassEffect update, and select your worksheet. Right click on the table being restored and select "Auto-Map". This will auto-map all the fields from the spreadsheet back to the appropriate fields in Salesforce.
2. Select "Process Blank" on the right in the MassEffect Options. This will ensure that any fields that were blank before the import (e.g. email/phone) will be set back to blank. If this is not checked, the blanks will be ignored.
3. Select Process. Repeat for each object and twice for Accounts (if you have 2 restore files).
NOTE: Since new records are created BEFORE existing records are updated, the AccountRestore file should be processed (restored) BEFORE restoring the AccountUpdateRestore file in case the same Account was updated in both operations. This will ensure that the original data in the Account, prior to ANY changes, is the LAST data restored.
Records that were updated have now been restored.
Step 2: Deleting New Records (optional)
If new Leads, Contacts and/or Accounts were inserted, these can also be deleted if desired. Additionally, Campaign Member links and Tasks that were added can also be deleted. Assuming these are the only records added by you on that particular day the easiest way to do this is to use MassEffect's export option to find these records, and then use MassEffect to mass delete them.
1. Right click on the table(s) you inserted records for, and export all the records where the created alias = youralias, and the created date = the date of the import (if it was today or yesterday use the keyword "TODAY" or "YESTERDAY" in the operator section of conditions, if a specific date is needed, use 2 conditions ( "> the day before" and "< the day after" to isolate that specific day as the created date is time sensitive).
2. Select in "Fields to Download" any fields needed to confirm that these are in fact the records to be deleted (e.g. Created Date, Name etc.). It is not necessary to specify the id of the record as this will automatically be included in the output file.
3. Read this file back into MassEffect and select "Delete" as the operation. Map the id from the spreadsheet back to the id in the table for which you wish to delete records, and select process.
NOTE: If "New Contacts - New Accounts" were processed in addition to "New Contact - Existing Account", you should delete any new Accounts first, then export any remaining new Contacts and delete those.
Repeat for CampaignMembers and Tasks, if added (additional conditions can be added to the export criteria to export only the CampaignMembers for a particular campaign or Task subject if you added additional CampaignMembers/Tasks in Salesforce on that same day other than just those for this particular PeopleImport).
You are now back to "square one". Before re-running the import, refine the matching criteria and TEST, TEST, TEST before importing large volumes of records!
Remember: PeopleImport can be pointed to a Salesforce sandbox for testing.
More information on pointing PeopleImport to the sandbox can be found in Options, Proxy Settings & Sandbox Settings -> Sandbox Settings.