---
title: 7. Data View Administration
slug: dominos-cja/7-data-view-administration
docTags: 
createdAt: 2025-08-26T03:06:54.996Z
---

Data views control how the data ingested into a CJA Connection is to be interpreted.  They specify all of the dimensions and metrics which will be available for reporting within Analysis Workspace and which columns those dimensions and metrics obtain their data from.  Data views are defined in preparation for reporting in Analysis Workspace.   Each connection can have multiple Data views. &#x20;

In this exercise you'll learn:

- How to configure dimensions and metrics
- How to create derived fields&#x20;

:::hint{type="info"}
Configuring data views requires Administration access to Customer Journey Analytics.&#x20;
:::

# 7.1  Create a data view

Rather than starting from scratch we're going to duplicate an existing data view.

- Browse to the **Data management -> Data views** tab.  Find the **Retail Data View&#x20;**&#x61;nd click on the 3 dots to view the options.   Click to **copy&#x20;**&#x74;he dataview. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/WXFpe9ZlO0h9CGW3frr8U_image.png)

- Click to open your Data View.  Update the name of the data view so you can easily recognize it as yours - eg. add your name. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/M3PP0vzSfZ6IMqLinngIT_image.png)

- Click on **Save and Continue&#x20;**&#x74;o move to the Components tab.&#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/IY0v2BkxmWne0cYT6qsq6_image.png)

# 7.2  Add a dimension

CJA supports three types of data, profile data (attributes about your customer such as loyalty tier, NPS scores, address and age), event data (coming from multiple channels) and lookup data.   For this exercise, let's add a lookup attribute as a dimension into our data view.   &#x20;

Click into the **Lookup datasets&#x20;**&#x69;n the left hand panel.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/zi5cOxZDCZqUeRVxGn24I_image.png)

Campaign tracking codes are used for tracking which marketing campaigns a customer lands from, this code is mapped to user friendly campaign names stored in a lookup table.&#x20;

- Click into the **Lookup datasets&#x20;**&#x69;n the schema fields panel

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/Rd67wxpoOYilnczCrvfS8_image.png)

- Search for **campaign&#x20;**&#x79;ou'll notice we have different lookup values depending on the industry, drag the **Retail Campaign&#x20;**&#x61;ttribute into the Dimensions.&#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/GRwNYSe5YC4UmF8xZX8E4_image.png)

- Now, let's update the dimension properties on the right hand side and rename the dimension to **Campaign Name. &#x20;**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/Jf34QbTbr0Ym65vQw2oy2_image.png)

- Click **Save and continue**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/jbbRuhstNBOMj8SVd8cNz_image.png)

- On the settings tab we can configure the session timeout and add global filtering if desired.   We will leave these as is.   Click **Save and finish.**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/CeoGtlnhtdlvFzmp6MemQ_image.png)

:::hint{type="success"}
Congratulations, you've created your first Data View in Customer Journey Analytics.   Let's create a quick project to test it out.&#x20;
:::

# 7.3 Use your Data View

- Click to the **Workspace** in the top navigation and **create a new project**. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/B_o08yULzajJU592sp8lD_image.png)

- Ensure that you've selected your Data View in the Data View selector.  &#x20;
  *Hint: you might need to search for it or do a hard refresh to clear the cache.&#x20;*

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/mR5uPPexxsfBx659Nz4R__image.png)

- Drag the **events, sessions** and **people** metric into your freeform.  Change the dimension to **Week&#x20;**&#x74;o verify that you have data displaying for your new dataview. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/WXdK2LDJf7CNa-EkmcBml_image.png)

- Swap the Week dimension for **Campaign Name** and add the **Calls&#x20;**&#x6D;etric.  &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/obl-Mfj8DjyH3FyIZDOiZ_image.png)

You'll notice that there are no campaign names aligned to calls!  That's to be expected because the campaign name is collected when a customer lands on the website, the calls metric is coming from a completely different dataset coming from the call center!   &#x20;

Let's see now how dimension persistence and/or attribution can be used to connect these disconnected events! &#x20;

# 7.3 Set dimension persistence&#x20;

Persistence in analytics tools often needs to be configured up front and is applied at ingestion time.  In Customer Journey Analytics we set persistence in the Data View and this is applied at run time, allowing changes to be applied retroactively.&#x20;

- Click to **edit** your Data View, you can do this directly from your project by clicking the edit icon in the Data View selector.&#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/OwvYUyCQDE75ULKvvLg-S_image.png)

- Switch to the **Components&#x20;**&#x74;ab and search for the **Campaign Name** in your dimensions.   Scroll to the bottom of the properties for this component and enable **Persistence.  &#x20;**&#x53;et the persistence to **Original** for the **session**.  &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/4muslbkZVSFRXgfT8mMU3_image.png)

- Click **Save**.  Then click **Close&#x20;**&#x74;o return to your dashboard.   You can see there are now campaigns associated with your calls!   This is because the call event was received within the 30 minute session window after the customer landed on the website from the marketing campaign!    This is possible because we are connecting the events across datasets in the connection using the person id. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/Ox8oLbNCEyieXVz1wSedE_image.png)

# 7.4 Create a metric from a dimension

Another advantage to this on-the-fly processing allows us to create new metrics from dimensions.  What if we forgot to add a specific event field for the metric we want to report on?   For example if we know that the call reason **"callreasonid:337426"** means it was a complaint we can use this to create a new "complaints" metric. &#x20;

- Drag the **callReasonId** field into the metrics, update the component name to **Complaints.   &#x20;**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/MyDn5pLF0qY5q74fSBfp4_image.png)

- Under the component settings scroll down to **INCLUDE EXCLUDE VALUES&#x20;**&#x61;nd set the metric to include only values that equal **callreasonid:337426.  &#x20;**&#x57;e now have a new metric to report complaints separately from other call reasons. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/zaG6yVZ3RXfjpgdxNW6md_image.png)

- Save the Data View and return to your dashboard, click to **Refresh Components**.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/3CHNLUPVI5FbzYL7t-MEm_image.png)

- Drag the new **Complaints&#x20;**&#x6D;etric into your freeform and change the dimension t&#x6F;**&#x20;Call Reason**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/oCqx8RX3MxOxaRPd3EbO5_image.png)



# 7.5 Derived Fields&#x20;

One of the most powerful features of Customer Journey Analytics is Derived fields.  These allow you to **instantly and retroactively apply complex data changes on-the-fly**, without the need to rewrite and re-ingest data. &#x20;

Imagine the website team made an error when coding the data layer for the mobile website, and now all of the page names coming from this version of the site are pre-fixed with "**mobile web:**".   &#x20;

On your dashboard, change the dimension to **Raw Page Name,&#x20;**&#x61;pply a filter on the list to include only page names including the word **category.  &#x20;**&#x59;ou can see that we're reporting mobile web pages separately to desktop which is not the desired state.&#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/b3lRPxk73t4TiaF6gdooX_image.png)

You want to report on category pages across all versions of the website.  We can quickly fix this using derived fields.   Click to edit your dataview and **create a derived field**. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/OWmRzU7UXtzpb0bXIIFn3_image.png)

Adobe provide a number of derived field templates available to help you get started but for this exercise we'll skip this step.&#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/plAnJ7amJmm1EdBWcwGPc_image.png)

You can see there are a number of **functions&#x20;**&#x61;vailable.   For this use case, we're going to use the **regex\_replace&#x20;**&#x66;unction to create a new pagename field that removes "mobile web: " from the start of any value.   Drag the **regex\_replace&#x20;**&#x66;unction into the canvas.&#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/i00q-CcGb9rgzIPUXNYCo_image.png)

In the value field, start typing to find the page name field: **web.webPageDetails. &#x20;**&#x53;elect the **Name&#x20;**&#x66;ield when it appears. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/qnwejqUFFlmesoUuRFxyW_image.png)

Set the **regex** pattern to `(mobile web\:\s)(.*)` and the **output format** to `$2`.  &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/86EJk739cEXOyx0huYw0P_image.png)

Now we only want to apply the regex on the problem values, so we need to add a second function to our derived field.   Drag the **Case When&#x20;**&#x66;unction into the rule builder under **Rule 1**. &#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/HtHW9Ll9QUVos2YUelAwh_image.png)

Now update Rule 2, to also look at the **web.webPageDetails.Name&#x20;**&#x76;alue, set the Criterion to **starts with&#x20;**&#x61;nd the Value to **mobile web:**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/tjrkVO8YXLrwC4BNWgSkm_image.png)

In this case we want to return the output from our regex, so set the output value to **Rule 1. &#x20;**&#x4F;therwise we want to return the original value for **web.webpagedetails.name**.&#x20;

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/XQD21Mjj74zDs73HR8OQV_image.png)

Give your new field a name that's unique to you, eg. `<your name> - pagename derived`. *(derived fields are applied to the connection itself not specifically the data view, so we can't all create the same derived field on this connection).  &#x20;*

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/4jHrMHSO3i9bmV-JOqqyi_image.png)

Click **Save. &#x20;**&#x54;hen drag your newly created field into your dimensions list.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/S_qEYyeZ6BkzObdHg_rq-_image.png)

Click **Save. &#x20;**&#x43;lic&#x6B;**&#x20;Close** to return to your project and **Refresh Components.&#x20;**

Replace the page name dimension with your new derived field, values are now reported together.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/EXY-MqPTXCRfmyh9eAvAf_image.png)

:::hint{type="success"}
Congratulations you've completed the exercise on Data View Administration!
:::

