Data Portability
Create data definitions to extract user-related data and render it in frontend
The Data Portability app is an app which allows you to do two things:
- Create data definitions in the backend which contain configurations for extracting user-related data
- Render those data definitions in frontend, and allow users to download the data
As can be inferred from this, the app consists of two parts:
- A configurable app for creating data definitions
- A paragraph app for rendering data definitions in frontend
In this document we will look at the configurable app.
Data Definitions and Data Groups
A data definition is, well, a definition of the data you want to make available for download. A data definition consists of one or more data groups, which in turn contain data item types.
Displayed is a data definition called Default with the data groups User, Content and Ecommerce, and User contains four data item types:

All of this is a fairly complicated way of saying that you use providers to extract data about a user and their activity, and that you can group the data together when it makes sense.
To create a data definition:
- Go to Settings, and from the node GDPR choose Data Portability
- Click the '+'-icon when hovering over the Data Definitions node
- Enter a Name and click Save and close
A data definition can contain of as many data groups as necessary – each data group can be viewed as a rough grouping of related data, e.g. content data such as comments and form submits.
To create a data group:
- Click the '+'-icon when hovering over a created Data Definition e.g. Default (not the node called Data definitions)
- Enter a Name and click Save and close

The data grouped in the data group is retrieved by data item types.
Data Item Types
A data item type is a configuration which uses a provider to extract data associated with the user from the solution.
To create a data item type:
- Click on the data group
- Click New Data item type on the dashboard
- Provide a Name and choose a Provider
- Click Save and close

DW10 ships with a set of data providers which can extract various types of data related to a user:
| Provider | Data extracted |
|---|---|
| CommentDataProvider | Comments on pages, products, etc. which have been added to the Comment table in the database |
| FavoriteListDataProvider | Favorite lists |
| FormSubmitDataProvider | Form data submitted using the Forms for Editors app |
| OrderDataProvider | Orders & Carts with their order lines |
| PaymentCardDataProvider | Saved credit card information |
| SQLDataProvider | See below |
| UserAddressDataProvider | Secondary addresses associated with the user |
| UserDataProvider | Standard user fields |
| UserExternalLoginDataProvider | External login data, e.g. Facebook login associated with the user |
Should the preconfigured providers not be adequate, you can use the SQLDataProvider to extract data from other parts of the system.
This provider, unlike the others, must be configured:
- Select a database table to extract data from
- Select one or more columns to include in the download - if nothing is selected, all columns will be included
- Select the column name containing the UserId to extract data based on