Supplemental Data Management

This topic guides you through the supplemental data management process for deleting customer profile data from supplemental tables. It consists of the following sections:

Overview

To facilitate the 'right to be forgotten' efforts as mandated by laws such as the European Union's General Data Protection Regulation (GDPR) and the California Consumer Privacy Act (CCPA) as it relates to the personal data stored by companies, Responsys supports daily asynchronous batch customer profile record deletion. Many Responsys accounts store their customers' personal information in supplemental tables. Supplemental tables are not tied to customer profile records, so customer-specific information stored in supplemental tables is not deleted by default as part of the daily batch customer profile deletion process.

To help you keep your organization's data up-to-date, Responsys provides a method for mapping supplement data tables to customer profiles in a table you can modify, GDPR_SUP_DEL_MAPPING. By mapping customer data, such as Customer ID in an Orders supplemental table, to a corresponding field in the List (profile) table, those supplemental Orders data records can then be deleted as part of the daily batch customer profile deletion process. Similarly, the Orders supplemental data table may be mapped as a parent to a child OrderLines supplemental data table by a common OrderID value.

Important: Only supplemental data table records that have been mapped to a parent table and that mapping has been validated will be removed as part of the daily customer profile deletion process. Any customer records stored in supplemental data tables that have not been joined or linked to customer profile tables (first-level child) or joined to a supplemental data table that is linked to a customer profile table (second-level child) will still have to be manually deleted.

Roles

Important: The actions described herein are to be performed by a Data Director, Super User or Account Administrator.

Only those user levels can access the Data Settings — Supplemental Data Management menu. Therefore, only those users can enable the supplemental data mapping to be used as part of the daily asynchronous customer profile batch deletion process.

Map supplemental data tables to customer profiles

Responsys pre-created the GDPR_SUP_DEL_MAPPING table for you to use to map supplement data table fields to parent customer profiles. The mapping supplies the necessary information to effectively tie fields from supplemental data tables to parent tables so that relationship can be used as part of the daily customer profile cascade deletion process. The table is originally provided as an empty table. Subsequent records you provide define the mapping. You can continue to modify the mapping to meet your on-going needs.

Responsys provides a variety of ways to modify the mapping.

  • Download the GDPR_SUP_DEL_MAPPING table as a CSV file and edit it locally, then upload your changes to the table.

  • Edit the table through the Responsys administrative interface provided.

  • Modify the table using Connect.

  • Revise the table via the APIs.

The first two items above are explained in the following sections. General overview links are provided for the other two.

The general format for the mapping table is shown below.

Table: General Format for the Supplemental Data Mapping table (~System/GDPR_SUP_DEL_MAPPING)

Column

Data Type

Populated by

Required Customer Entry

Description

PARENT_TABLE_METADATA_NAME

Text Field (to 255 chars)

Customer

Yes

Name of the Supplemental Data table's parent table (for example, CONTACTS_LIST). If a data subject's record is removed from the parent, the Supplemental Data delete process will look here for mapping related to the named parent table. Parent tables can be profile lists, profile extension tables (PETs), app channel lists, web push lists, and other supplemental tables.

The table name must exactly match the actual table's name, including case (upper / lower) and special characters.

PARENT_TABLE_METADATA_TABLE

Text Field (to 50 chars)

Validation Process

No

Leave this blank or AS IS

INTERNAL ONLY

Internal DB table name

PARENT_METADATA_TYPE

Single character field

Validation Process

No

Leave this blank or AS IS

Based on internal metadata

C = App Channel List

S = Supplemental Data table

L = Web Push List

P = Profile table

PARENT_JOIN_COLUMN_1

Text Field (to 50 chars)

Customer

Yes

Name of the column in the parent table that the system uses first to "match" row(s) in the Supplemental Data table.

PARENT_JOIN_COLUMN_2

Text Field (to 50 chars)

Customer

Yes, if needed

Name of the column in the parent table the system uses second to "match" row(s) in the Supplemental Data table.

Note: Specifying a COLUMN_2 name signifies a composite match condition exists, and this parent record's columns' values must match the Supplemental Data table's record(s) exactly for both columns in the parent and the Supplemental Data table (child table).

CHILD_TABLE_METADATA_NAME

Text Field (to 255 chars)

Customer

Yes

The name of the Supplemental Data table to clean, based on data removal from the parent table.

The table name must exactly match the actual table's name, including case (upper/lower) and special characters.

CHILD_TABLE_METADATA_TABLE

Text Field (to 50 chars)

Validation Process

No

Leave this blank or AS IS

INTERNAL ONLY

Internal DB table name

CHILD_METADATA_TYPE

Single character field

Validation Process

No

Leave this blank or AS IS

Based on internal metadata

C = App Channel List

S = Supplemental Data table

L = Web Push List

P = Profile table

CHILD_JOIN_COLUMN_1

Text Field (to 50 chars)

Customer

Yes

Name of the column in the child table (Supplemental Data table) the system uses first to "match" a field in the parent table.

Note: The columns in the child and parent may have different names. The values contained in the respective columns must match.

CHILD_JOIN_COLUMN_2

Text Field (to 50 chars)

Customer

Yes, if needed

Name of the column in the child table (Supplemental Data table) the system uses second to "match" a field in the parent table.

Note:

The columns in the child and parent may have different names. The values contained in the respective columns must match.

Specifying a COLUMN_2 name signifies a composite match condition exists, and this child record's columns' values must match the parent table's record exactly for both columns in the parent and the Supplemental Data table (child table).

VALIDATION_STATUS

Text Field (to 25 chars)

Validation Process

No

Leave blank or AS IS

Status indicating if mapping is valid.

Success = Valid

Fail = Invalid

Invalid mappings must be removed to pass validation and to pass validation and process the cascade delete.

VALIDATION_FAILURE_REASON

Text Field (to 4000 chars*)

Validation Process

No

Reason the mapping is invalid.

Examples:

the following table/column validation failed: child_table_join_col1

the following table/column validation failed: Parent/child tables should be different

REC_STATUS

Single character field

Validation Process

No

 

Create or edit the supplemental data mapping to parent tables

To set up mapping of supplemental data to parent tables:

  1. Identify all Supplemental Data tables housing personal data. Of these, identify the tables you want to include in the asynchronous daily profile delete process.

    Tip: You can use the Fetch All Supplemental Tables API to get all of the supplemental table data structures for your account.

  2. The table that defines mapping between supplemental data and customer profiles to be used for the customer profile cascade deletion process, GDPR_SUP_DEL_MAPPING, has been supplied by Responsys. The table is originally provided as an empty table. To access it, select An image of the Folders icon Folders on the side navigation bar.
  3. Select All Folders from the drop-down list on the left. Then select Supplemental Data from the drop-down list on the right, as illustrated below. The table resides in the ~System folder.

    An image of the Folders page showing how to access the Supplemental Data Mapping file

  4. Click An image of the icon to the right of the CDPR_SUP_DEL_Mapping listing next to the supplemental data mapping table, GDPR_SUP_DEL_MAPPING, to view the popup menu of possible actions to perform.

    An image of the menu for the Supplemental Data Mapping file

    Important: This menu contains multiple actions that require that you are careful when making a selection. If you inadvertently delete, purge, rename, move or modify the table such that the system can’t use it, contact Oracle Support to restore the last known good copy or to retrieve it from the Recycle Bin. You may also wish to download a backup copy as a CSV file before you start making edits.

  5. Modify the table and save your changes.

    Because the GDPR_SUP_DEL_MAPPING table is a supplemental table, there are several possible ways to modify it. The methods we recommend (and document below) are:

    You can also use one of the other methods for modifying supplemental tables to modify the GDPR_SUP_DEL_MAPPING table. (The links provided below go to other topics that are not specific to modifying the GDPR_SUP_DEL_MAPPING table.)

    To view and edit the supplemental mapping table in the Responsys UI:

    1. Select View and Edit Data. The page updates listing the contents of the GDPR_SUP_DEL_MAPPING table, as shown.

      An image showing the supplemental data mapping table

    2. If records are listed and you wish to edit one (for example, a record was not validated), select the record to edit by clicking the checkbox to the left, then click the Edit button at the top of the page. The page updates showing the mapping to edit. If the table displays with no records listed, or if you want to insert a new record into the mapping supplemental data table, click the New Record button at the top of the page. The page updates showing the record with all blank fields, as shown in the following image.

      Note: You can also delete selected records, search for a record, or upload a CSV file containing records to append using the buttons at the top of the page.

      The image below is how the page appears when adding a new record.

      An image showing the screen that enables editing the Supplemental Data mapping

    3. Enter or edit the parent-child "join" conditions as a mapping in the table.

      For example, enter CONTACTS_LIST as the PARENT_TABLE_METADATA_NAME value and EMAIL_ADDRESS_ as the PARENT_JOIN_COLUMN_1 value.

    4. For the child information, provide the same of the supplemental data table holding the given personal data. Also provide the table column holding a value that matches the value in CONTACTS_LIST.EMAIL_ADDRESS_. Enter this column name in the mapping's CHILD_JOIN_COLUMN_1.

      Note: Only valid mappings will be processed as part of the daily customer profile batch deletion process. Invalid mappings are ignored, but all records with valid mappings are processed.

    5. Repeat the above mapping entry for each Supplemental Data table to clean via the asynchronous profile delete process.

      The cascade deletion supports up to two hierarchical levels of supplemental data. For example,

      CONTACTS_LIST → ORDERS → ORDER_DETAILS

      Where CONTACTS_LIST is the profile list, ORDERS is a supplemental data table, and ORDER_DETAILS is the another supplemental data table.

      The cascade delete process also supports profile extension tables as an initial child.

      profile_list → profile_extension_table → supplemental_data_table

      Note: PETs are not valid children in the mapping record, as PET data are removed via the original personal data cascade delete process. PETs can be valid parent tables in the mapping.

      An example of a profile_list → profile_extension_table → supplemental_data_table would be

      Customers → Cust_Loyalty_Profile → Loyalty_User_Activity

      Where the customer is in the Customers profile list, their one-to-one loyalty profile info is in the Cust_Loyalty_Profile PET, and their one-to-many transactions are in the Loyalty_User_Activity supplemental data table.

      Note:

      Tertiary children are currently not supported in the current schema for GDPR_SUP_DEL_MAPPING, that is, profile_list → profile_extension_table → supplemental_data_table → supplemental_data_table. In fact, the previous example, generically profile_list → profile_extension_table → supplemental_data_table, is redundant and not recommended. A better form is profile_extension_table → supplemental_data_table.

      To clarify:

      • profile_list → supplemental_data_table → supplemental_data_table is valid. Two mapping records are needed to achieve this.
      • profile_list → profile_extension_table → supplemental_data_table is valid. One mapping record is needed to support this.
      • profile_list → supplemental_data_table → supplemental_data_table → supplemental_data_table is NOT valid.
      • profile_list → profile_extension_table → supplemental_data_table → supplemental_data_table is NOT valid.
    6. At any time as you edit the table, you can click Save (at the top of the page) to retain your changes. When you are finished editing the table, click Save and then Done to exit.

    To download the table as a CSV file and edit it locally:

    1. Select Download from the menu. A download page displays.

      An image of the page that enables you to select the character set type and download the GDPR_SUP_DEL_MAPPING file.

    2. Select the character set for the file from the drop-down list.

      Note: This download interface is limited to files with 5000 records. In the unlikely event that your file exceeds 5000 records, it must be downloaded using Connect.

    3. Click the Download button.

    4. Edit the file using a text editor or a spreadsheet application that can save the file in CSV format. Refer to the table above for details on the file contents.

    5. After making and saving your changes, upload your edited CSV file by clicking the GDPR_SUP_DEL_MAPPING table listing and selecting Upload-Append from the menu.

Validate and enable the supplemental data mapping

To validate and enable the supplemental data mapping for the customer profile bulk deletion process:

  1. From the side navigation bar, select An image of the Accounts icon which is to the left of the Accounts menu item Account. (If you do not see the side navigation bar, click the Menu button (aka Hamburger menu) icon.)

  2. Select Data settings, and then select Supplemental Data Management. (Not seeing this choice? Only Data Directors, Super Users and Account Administrators will see this.) The Supplemental Data Management page displays.

    An image of the Supplemental Data Management Mapping Process page

  3. Select the Validate button to validate the mappings provided in the GDPR_SUP_DEL_MAPPING table. The process requires valid mappings to execute. If the status of any record is invalid, please go to the supplemental data mapping table, GDPR_SUP_DEL_MAPPING, and fix or delete invalid mappings. Each mapping's status is noted in the table. Invalid mappings are ignored when the asynchronous daily customer profile deletion batch process runs.

  4. If the mappings are valid, enable the supplemental data deletion process by selecting the Enabled/Disabled slider. Make sure it says Enabled.

    An image of the Supplemental Data Management page

  5. Please completely read the consent agreement. If you agree to the consent agreement, place a check in the "I understand the agreement" checkbox, which can only be selected after you have scrolled to the end of the agreement.

    Important:

    At least once per day the asynchronous customer profile cascade delete process removes any records that could be successfully mapped. If a child record could not be identified, these child records, or “orphans”, will not be deleted. Supplemental data table records are only removed as part of the cascade process responsible for removing the parent records. If the parent record is removed outside of this process or via a different session of this process, the orphaned child record remains untouched by this cascade delete process.

    In each of the following instances, the resulting orphaned child record must be removed manually:

    • The child mapping is invalid. The parent record is successfully removed, and the child record is not. The mapping is later corrected and validated; however, the subsequent execution will not remove the child record that remained untouched by the previous process execution.

    • The parent record was removed prior to adding a valid mapping and/or enabling the cascade delete. The child records in the supplemental data table that have no matching parent will remain untouched by this process.

    • The parent supplemental data table record or parent PET record was manually deleted, leaving an orphaned supplemental data table record.

  6. Click the Save button to commit the enabled configuration.

    When you enable the asynchronous profile delete process for your account, the process does not run right away. It starts at the next scheduled run time. The process runs at least daily for all enabled accounts.

    Upon the next run of the asynchronous profile delete process, the mapped Supplemental Data tables will be scanned for personal data related to the data subjects deleted from the parent tables, and the corresponding records from the child tables will be deleted. Each time the profile delete process runs, it validates the mappings.

Profile Deletion Supplemental Data cascade, responsys deleting supplemental data, deleting supplemental data, profile cascade deletion of supplemental data, supplemental data management

Learn more