Restore
Last updated
Was this helpful?
Last updated
Was this helpful?
The GRAX Restore feature gives users the ability to update selected records to an earlier state which was backed up by GRAX, as well as the option to restore previously deleted records back into Salesforce. This is crucial for users who have a catastrophic event and need to restore records, but it isn't the only challenge Salesforce Administrators face. What about a data corruption that only affects a few fields, or one that has escaped the notice of the team for a few days or weeks? How would the administrator mass restore thousands, or a hundred thousand records, to a version of this record from a few weeks ago?
With GRAX Restore, administrators have the ability to restore individual field level changes, or multiple fields, to any point in time in the history of the GRAX Backup.
Open the GRAX Application and navigate to the Restore tab.
The Restore home page shows a list of all the previously configured batch and single Restore executions and the different statuses that they can be in.
Pending
A Restore execution is in a Pending state if further configuration is required before the execution can be launched.
Ready
A Restore execution is Ready when it has loaded data from the source and validated which records of this data set exist for the specified execution.
Queued
A Restore execution is Queued when a user has submitted the job, but it is waiting for a previous Restore execution to complete.
Running
The Restore execution is currently running. \n\nThere can only ever be one running Restore execution at a time.
Completed
The Restore has completed with zero errors reported back.
Aborted
The Restore has been aborted by a user.
Error
The Restore has completed but some (or all) of the records were unable to be restored due to an error.
The Restore process starts with the creation of a new Restore execution. From the Restore page, click the New Restore
button. This launches a small guided process that takes you through the steps to create and launch either a Point in Time Restore execution or a Create Records Restore execution.
You can use a report in Salesforce to indicate the records that need to be restored. To select the records that are going to be restored, create a report in Salesforce that
is for a single object only
contains (at least) the record ID as a column
doesn't have any cross object joins, grouping or summary information
is stored in a folder that the GRAX Integration User has access to
You can use Global Search to find records to be restored; simply select the object and record status, set the date filter and use the optional field filters to narrow down your search. The search will start by returning 10 parent records, but the remaining results can then be restored via an Auto Restore execution.
Upload a CSV file to restore records by record id. This will restore records in a batch of up to 10,000, but an Auto Restore execution can be setup to restore the remaining records on the file. Please note that the CSV must contain a header named Id
and must not exceed 500 MB.
You can manually enter up to 200 record ids to restore by listing them and separating each one by either a comma or a new line.
GRAX Point in Time Restore allows the user to be specific about which data they wish to restore, allowing a partial update of a record to a new version. This can be particularly useful when a process has been incorrectly updating data, while at the same time users have been working with these records.
The Point in Time looks at the date fields on the record and selects the values from the GRAX Data Vault that were the latest version at the date / time specified by the Point in Time. Depending on the object type, this would be the System Modstamp
, Last Modified Date
or Created Date
standard fields.
Fields need to be added to the Restore by selecting and moving the fields within the filtered dueling picklist control. To restore all fields, select all fields by moving them into the right hand list.
The configuration page for the Create Records restore allows you to select the level of child records to restore and provides an option to skip specified objects. There are also options to send emails regarding the job, include required parent records in the job, and disable automation which can sometimes help when testing.
Once the Restore configuration has been set, GRAX begins to prepare the data set for restore from the GRAX Data Vault. This process can take some time (minutes even) depending on the size of the Restore and while this evaluation is underway you won't be able to proceed from this step.
Here you are presented with a preview of the records and values that are going to be restored. This data is different from the Restore seed - it's the data that is going to be written back to your Salesforce org as part of the Restore execution, so it's worthwhile ensuring that you are comfortable with your selections.
Once the data finishes the preparation phase, the Next
button activates. You can download the complete record set as a CSV file here as well.
There are a number of scenarios that could mean your GRAX Vault contains records but not values for all fields that you are trying to restore.
The field might have been empty at the time of the backup
The field might not have existed at the time of the backup
The field might not have been accessible to the GRAX Integration User at the time of the backup.
Null values appear in the Restore preview as #N/A and reset any field values in the record being restored to empty. If this isn't the intended behaviour, deselect this field before continuing.
When viewing a preview of the Restore job, you can change to a list view to provide options for overrides and selecting/deselecting relationships. To override a field value for a Restore job, select the object on the left hand side, click on the Overrides
section, and then select the field you want to proceed with. You can enter a new value to be written to this field, or you can leave the value blank to exclude this field from the restored record.
You can also navigate to the Relationships
section to include or exclude specific relationship attributes for the restored records.
The Point in Time Restore confirmation screen informs the actual number of records that are going to be affected, the fields on those records and the point in time to which that data is going to be restored.
If this all looks good, clicking the Restore Data
button starts the process. Please note that for Create Records Restore jobs, this notification will not appear, but a graph that shows the records to be restored will be available for review before launching the restore.
Once the Restore execution has been submitted it can be monitored in the GRAX Console. This submits records in batches to Salesforce so you can see a number of different outcomes here.
In addition to the status of the job as a whole, individual batches of records have a status while the job is running and once it has completed.
Pending
Data has been prepared but not yet submitted to Salesforce
Submitted
Data has been submitted to Salesforce, waiting on the result from this API transaction
Successful
Data was successfully restored.
Error
Data failed to be restored.
When restoring records to Salesforce you may encounter errors like validation rule failures, changes to the object schema, or other users updating the same records.
GRAX Restore allows a user to retry just the failed records. This creates a new Restore execution with this subset of data as the restore seed.
Here is a Restore that has failed due to an inactive user as the value in the Owner field. This can be fixed by retrying the restore job, and setting an override with a null value to the Owner field.
Restore errors should provide the needed information to resolve the issue; typically a change to validation rules or triggers, or a field override is necessary to proceed.
Please review the as these apply to both Point in Time and Create Records Restore jobs.