Data Replication
With GRAX Data Replication, you’re just a few clicks away from securely replicating your entire Salesforce org.
Prerequisites
Create an integration user and configure their permissions
How It Works
Once the integration user is connected, GRAX:
Periodically describes all the objects and schema in your org and adds them to the Data Replication system.
Starts periodic jobs that pick an object and replicate everything new or changed since the last data replication job.
Enabling Data Replication
To enable Data Replication:
Navigate to the
Data Replication
tab within the GRAX ApplicationYou'll see the screen below, and will be prompted to choose one of the following options:
Start Data Replication to current bucket
orChange the storage provider/bucket

When setting up Data Replication for the first time, GRAX starts by capturing and replicating object data in Salesforce, beginning with the oldest modified records and progressing to the most recently modified ones. Once the initial data replication job is complete, Data Replication seamlessly transitions to periodically capturing ongoing data changes.
Monitoring and Dashboard
The Data Replication Dashboard in the GRAX Application serves as the central hub for tracking key metrics and statuses. It provides insights into the total volume of data replicated, the time frames covered by secure data replication jobs, and the historical progress of Data Replication operations.

Data Replication Toggle
You can easily control Data Replication behavior with the following options:
Replicate Objects and Files
: Capture all available data objectsReplicate Objects, Pause Files
: Exclude file data from the replication jobReplicate Paused
: Disable all replication operations

Data Replication Status
Additionally, the dashboard displays detailed status information, as outlined below:
Backfilling
: GRAX is replicating the history of your org, and at least one object has never been fully replicatedBehind
: All objects were fully replicated previously, but replication has since fallen behind for at least one objectRunning Continuously
: GRAX is operating as expected and up to date on all objects within expected SLAPaused
: Data Replication has been paused by a user for records, files, or bothError
: An error has been encountered by the app while replicating data

Additionally, the Excluded Objects tab displays objects that are not being replicated due to being unsupported; you can read more about supported objects here.

The dashboard also contains a list of files and objects being replicated along with record count and version count. Objects can have the following statuses:
Waiting
: object is caught up and waiting for new dataRunning
: object is nearly caught up and replicating new dataBackfilling
: object is still replicating initial dataPaused
: object isn't being processed because Data Replication has been turned offExcluded
: object isn't being processed because it has been explicitly excluded by the userUnavailable
: object isn't being processed because GRAX has lost access to the object in Salesforce
Disabling an Object Replication
There are two methods for excluding objects from replication: one on the Salesforce side and one within the GRAX Application.
Preventing Data Replication by Salesforce Permissions
Data Replication is built to capture and replicate all possible Salesforce data by replicating every object the Integration User has permission to view. This design lets you manage what objects are replicated with standard Salesforce permissions and automatically replicates new custom objects or fields without the need to modify GRAX settings. If you don't want GRAX to replicate an object or field because it isn't restorable, or isn't valuable to your data strategy, deny access to the object or field for the GRAX integration user.
Excluding Objects from Data Replication in GRAX
On the Settings page, under General Settings
, you’ll find the Data Replication Exclusions
field. Here, you can enter a comma-separated list of object API names to exclude from future replication jobs. Once specified, these objects will be ignored in subsequent replication jobs. However, if an object has already been replicated, it will still appear in the Objects list with an Excluded
status.
Frequently Asked Questions
Can I configure the replication schedule?
GRAX is designed to replicate your entire Salesforce organization without complicated tools to configure objects, fields or schedules.
To achieve this, GRAX periodically scans your Salesforce organization for new data. If it finds new data, it then automatically schedules smaller jobs to replicate new data while staying within Salesforce API limits, and within system limits to keep replication jobs, searches, and Data Lake working as expected.
GRAX offers an option to change the period of scans between "daily" and "continuous."
Daily Data Replication: scans for new data once a day
Continuous Data Replication: scans for new data at a minimum of every hour
How do I use daily replication? How does it work?
Contact GRAX Support to enable Daily Data Replication for your deployment.
In the Data Replication Dashboard, you’ll observe continuous activity during the initial replication job and ‘backfill’ process. Afterward, daily scans will occur for each object, with activity distributed throughout the day.
No further configuration is necessary, or possible, on your part.
Why are formula fields showing outdated values?
Since formula fields are calculated in real time based on other field values and do not result in actual data changes, updates to these fields do not modify the SystemModStamp
. As a result, changes to formula field values do not trigger the creation of a new record version. Therefore, the values displayed for formula fields reflect their state at the time of the most recent record replication.
What does "INSUFFICIENT_ACCESS" mean?
Example: salesforce INSUFFICIENT_ACCESS: insufficient access rights on cross-reference id
Review your Integration User permissions for View All Data, View All Files and other required permissions. If the error occurs on Campaign or other marketing related objects, try enabling "Marketing User" for the integration user.
See the User Fields reference doc for more information.
How does Data Replication handle records where a field is updated in SFDC, but the record's "SystemModStamp" remains unchanged?
For the most part, each time a record is modified within SFDC, SFDC updates the SystemModStamp
to reflect the date/time of the modification, however, there are certain fields (including, but not limited to formula fields), that when changed, do not result in an updated SystemModStamp
. This is a SFDC limitation, not a GRAX limitation.
Data Replication relies on a change in a record's SystemModStamp
in order to identify, and therefore replicate, new or changed data. If a record is being replicated for the first time, GRAX will replicate the record with the value stored in SFDC at the time of replication, but if the record is modified after the initial replication and SFDC does not update the record's SystemModStamp
, GRAX will not replicate the change.
There are several documented workarounds detailing how to "trigger" a SystemModStamp
update when fields that do not update the record's SystemModStamp
are modified, one of which can be found here.
What does "UNKNOWN_EXCEPTION" mean?
UNKNOWN_EXCEPTION: sfdc.keystone.catalog.blobforce.KeystoneGetBlobFromStoresException: Failed to get a blob from all stores: orgId=00AbC000000DeM0 keyPrefix=05T entityId=05T2R000016VbmO blobId=0KF2R00002uQzDX extentId=F00D0b000000GaMp0KE2R00001MVoIw1 [...] there are no stores that currently contain the extent= F00D0b000000GaMp0KE2R00001MVoIw1, so we can't read it!)
An error has occurred within the Salesforce backend infrastructure, outside the scope of the GRAX Application. Please contact Salesforce support to open a case and report the issue.
Last updated
Was this helpful?