Embedded LWC Data Viewer

Viewing GRAX Data Within Salesforce, without installing a managed package

The GRAX Embedded LWC Data Viewer allows you to expose GRAX data as related list components inside Salesforce, regardless of backup/archive status. This provides a great way to display related GRAX data within Salesforce, in a way the end user is used to, even when data doesn't exist in Salesforce anymore.

Setup Steps

Performance Concerns

It is required that you place the GRAX Embedded component(s) onto a separate lightning tab. This ensures the component only gets loaded when a user requires. Per Salesforce best practices, a user would click into a lightning tab on the page in order to load the lists on demand and thus prevent excessive Salesforce and GRAX callouts.

Here are the steps a Salesforce/GRAX Admin will need to complete to successfully set up this LWC:

  1. First ensure all relevant data is backed up and/or archived so that it is available in GRAX. This includes related parents, children, and any other objects that you would like to expose within Salesforce and GRAX. Maintaining an incremental backup of all objects is a key first step when getting started with GRAX.

  2. Once your data is backed up, you can begin adding one or more lists using Salesforce's lightning App Builder. Search for the GRAX Embedded components in the left sidebar and drag it onto the page. You can repeat this process for each related object that you would like on the page.

    Salesforce Opportunity Lightning page layout showing the new section with the GRAX Embedded LWCSalesforce Opportunity Lightning page layout showing the new section with the GRAX Embedded LWC
    Per best practices, we've created a new GRAX tab and dragged the GRAX Embedded components into that tab.

  3. For each component, you will notice various configuration options in the right sidebar. Let's take a look at each in detail:

    GRAX Embedded LWC Configurable OptionsGRAX Embedded LWC Configurable Options

    Configuration OptionDescription
    Related ObjectEnter the exact, case-sensitive API name of the object.
    Related Objects FieldsEnter the exact, case-sensitive API names of each field that you would like added as a column for the component. Use commas to separate the field names (no spaces).
    Override TitleAdd your own custom title to the component so that end users have a clear understanding of what is being shown.
    Data Set SelectionAll Data shows all related data that is in GRAX. Archived Data shows only records that were successfully archived using GRAX. Deleted Data shows only records that were deleted in Salesforce, not by GRAX.
    iFrame px SizeEnables manually adjusting the height of the specific GRAX Embedded component.
    Records Per PageThe number of records you would like displayed for each page of the component. GRAX will default to 5 in order to limit scrolling and for general ease of viewing.
    Set Component VisibilityThis is a standard Salesforce feature for lightning components. It is a very powerful feature that can allow you to control who can see this component, based on field values, profiles, permission sets, custom permissions, etc.
    Do Not Enable Security or Object DeletedDisables field-level-security checks, allowing all users to see all fields. Also enables viewing of deleted objects.
    Child LevelWhen the same object shows up in different levels of the hierarchy, this allows you to pick which one to show. 1 shows only immediate children of the record, 2 shows only grandchildren, and so forth.

How it Works

Let's look at a sample Account in Salesforce and see what the end user experience feels like. This account record as well as all children must exist in GRAX in order for the components to display data correctly.

  • You can sort any column in ascending or descending order by clicking the icon to the right of the column name
  • ID fields will show as hyperlinked and take the user to the relevant GRAX detail page
  • You can click through multiple pages of data as needed

Clicking on the ID field allows you to quickly view the record directly in GRAX, or view the related records.
GRAX LWC showing related Opportunity Item recordsGRAX LWC showing related Opportunity Item records

Using the quick links in the GRAX embedded LWC component, allow your users to be directed to GRAX record pages to easily navigate the full record details, versions, the related records. Users can use the View in Salesforce button to further view that record back in Salesforce, if it still exists.

Default Columns

The table below summarizes the default fields that are added when configuring a component. You can adjust and customize as needed.

API NameLabelDescription
IdIdThe record Id will always appear as the first column by default, so you do not need to add it as a column
LastModifiedDateLast Modified DateStandard Salesforce audit field
CreatedDateCreated DateStandard Salesforce audit field
IsDeletedDeletedGRAX system field that reflects whether GRAX has captured this record as manually deleted in Salesforce or deleted via GRAX archive. Read about the Delete Source field below which will further clarify how the record was deleted. Note this is not to be confused with the standard Salesforce IsDeleted field, which represents the deleted state of a record in Salesforce at the time of a backup. This standard Salesforce field cannot be altered, and thus after GRAX backs up records and then captures them as deleted, we use GRAX system fields to represent deleted information.
GRAX_deletedAtDeleted AtThe date GRAX captured this record as deleted. Note this does not necessarily reflect the exact time the record was deleted, but rather when GRAX was able to capture and flag that it was deleted.
GRAX_deleteSourceDeleted SourceA Deleted Source of grax indicates this record was captured as deleted via a GRAX archive job. A Deleted Source of salesforce indicates this record was captured as deleted via the GRAX Delete Tracking functionality.

Permissions

By default, only users who have at least one GRAX permission set will be able to view this component. As explained above, you can use Salesforce out-of-box component visibility to further define your own custom permissioning for each component if you wanted to lock things down even more.

Users trying to further navigate within GRAX and see things such as the full record details along with the entire hierarchy within GRAX, will need the proper GRAX permissions as explained here.

Security Notice

The component makes a call to the GRAX API via Salesforce, so self-managed customers will need to make sure all relevant Salesforce IPs are allowed through. For more on GRAX networking considerations, read the Networking guide.


Not Appearing?

If a user cannot see the LWC even after being granted a GRAX permission set, ensure that this user has access to the LWCHelper apex class. You can do this via profiles or permission sets.

Salesforce Sharing and Security

This component will respect Salesforce's sharing settings for any records that are still live in Salesforce. If you are viewing archived or deleted data that no longer exists in Salesforce, users will be able to view the records in the component since it does not exist in Salesforce to query and determine access levels.

Additionally, the component (and the record view in GRAX) will respect a user's field-level security. This includes access to fields via profiles and permission sets. It does not currently account for whether a user may have View All Data permission set somewhere in Salesforce, so it's possible that the user has more access to fields when viewing the data natively on the Salesforce record versus within GRAX, which is more strict.

Considerations

  • If you have multi-currency enabled, it may help to add the CurrencyIsoCode field as a column to the component so that users can easily tell the currency code for any currency fields.
  • While GRAX supports encrypted fields, the GRAX Embedded component will show the plain text value. Avoid adding encrypted fields as columns if this is an issue.