---
title: Belfius Questions
slug: belfius-hol/belfius-questions
docTags: 
createdAt: 2025-01-13T13:39:54.809Z
---

# Questions

- Can we work with nested arrays as profile attributes?

Belfius stores contract information (1-N relation) as a nested array in profile. Can we create a relation from this nested array to a contracts lookup table? Can we use the atributes of array as dimensions and use them in reporting?

- Define lookups for nested array attributes?

Can we define lookup datasets for nested contracts? We need to be able to load additional contract information for analysis. Information we do not keep in profile.

- What is the effect of binding dimensions?

We would like to understand which "product find methods" (offer click or search) led to a product view. Not just recent or last, we need all.

- What is the effect of "session"-timeout?
- Can we we do reporting with just device id's? Just like Adobe Analytics?
- What can AA do what CJA cannot do? [Fullstackanalyst](https://www.fullstackanalyst.io/blog/adobe-customer-journey-analytics/its-finally-time-to-migrate-to-adobe-customer-journey-analytics/)

# Answers

### Can we work with nested arrays as profile attributes?

**CJA Filter: Nest Array - Lookup**

Belfius stores contract information (1-N relation) as a nested array in profile. Can we create a relation from this nested array to a contracts lookup table? Can we use the atributes of array as dimensions and use them in reporting?

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

**Create Dataset and load data**

- Create dataset "BF\_PROFILE\_CONTRACT\_LOAD" based on XDM "BF\_PROFILE\_CONTRACT\_LOAD"
- Create workflow "Map CSV to Schema"
- Data to load into BF\_PROFILE\_CONTRACT\_LOAD
  - [profile-contracts.csv](https://git.corp.adobe.com/mmeewis/aep-cja-belfius-questions/blob/main/data/profile-contracts.csv)

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

**Create a profile schema with a nested array (not profile enabled)**

- XDM: BF\_PROFILE\_CJA\_NESTED\_ARRAY&#x20;
- Fieldgroup: BF\_CJA\_NESTED\_ARRAY&#x20;
- Identity Namespace: BF\_CLOUD\_ID

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

Transfer data from BF\_PROFILE\_CONTRACT\_LOAD to BF\_PROFILE\_CJA\_NESTED\_ARRAY

```pgsql
insert into BF_PROFILE_CJA_NESTED_ARRAY
select struct(
          struct(
              struct(r.identity as identity) as identification,
              r.contracts
           ) as BF_CJA
       ) _demoemea
from (
  select c.identity, collect_set(c.contracts) as contracts
  from (
    select  l._demoemea.IDENTITY,
            struct (  
                      l._demoemea.CONTRACTID as contractID,
                      l._demoemea.CONTRACTTYPE as contractType ,
                      l._demoemea.CONTRACTFREQUENCY as contractFrequency
                    ) as contracts
    FROM bf_profile_contract_load l
  ) c
  group by c.identity
) r

```

Create XDM for event data BF\_EVENTS\_CJA

- XDM: BF\_EVENTS\_CJA&#x20;
- Fieldgroup: BF\_EVENTS\_CJA&#x20;
- Identity Namespace: BF\_CLOUD\_ID

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

**Create dataset BF\_EVENTS\_CJA**

- Generate event data: Python: [cja\_events.py](https://git.corp.adobe.com/mmeewis/aep-cja-belfius-questions/blob/main/data/cja_events.py) Example output: [cja\_events.csv](https://git.corp.adobe.com/mmeewis/aep-cja-belfius-questions/blob/main/data/cja_events.csv)
- Create workflow "Map CSV to Schema"
- Data to load into BF\_EVENTS\_CJA:&#x20;
  - File [cja-events.csv](https://git.corp.adobe.com/mmeewis/aep-cja-belfius-questions/blob/main/data/cja-events.csv)
  - !(BF\_EVENTS\_CJA\_MAPPING.png)(./assets/BF\_EVENTS\_CJA\_MAPPING.png)

**Create connection and dataview in CJA**

- Connection: Datasets: BF\_PROFILE\_CJA\_NESTED\_ARRAY, CJA\_EVENTS
- Dataview:&#x20;
  - (Profile datasets) Add nested array attriutes *\_demoemea.BF\_CJA.contracts* as dimensions
  - (Event datasets) Add event attributes *\_demoemea.BF\_EVENT* as dimensions

**Create Project Project in CJA**

- Project name: mmeewis - `BF CJA Questions`

*What are the current holdings of customers that view a page or sign a contract?*

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

### Define lookups for nested array attributes?

**CJA Filter: Nest Array - Lookup**

**Create XDM and dataset BF\_CONTRACT\_LOOKUP**

Schema:&#x20;

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

Dataset: BF\_CONTRACT\_LOOKUP

**Add dataset BF\_CONTRACT\_LOOKUP to CJA Connection**

- Add BF\_CONTRACT\_LOOKUP and select contractReg as key, select contractID as matching key in BF\_PROFILE\_CJA\_NESTED\_ARRAY

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

**Create workflow "Map CSV to Schema"**

Data to load into BF\_CONTRACT\_LOOKUP: File: [bf-cja-contract-lookup.csv](https://git.corp.adobe.com/mmeewis/aep-cja-belfius-questions/blob/main/data/bf-cja-contract-lookup.csv)

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

**Edit CJA project**

- Add a new freefrom table in mmeewis - BF CJA Questions

*What is the relation between a profile's contract brand and a profile's behavior?*

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

### What is the effect of binding dimensions?

**CJA Filter: Binding**

We would like to understand which "product find methods" (offer click or search) led to a product view. Not just recent or last, we need all.

**Extend CJA\_EVENTS**

Add the following attributes to CJA\_EVENTS

Type "string"

- \_demoemea.BF\_EVENT.useCase
- \_demoemea.BF\_EVENT.searchTerm
- \_demoemea.BF\_EVENT.productName
- \_demoemea.BF\_EVENT.productFindMethod
- \_demoemea.BF\_EVENT.offerName

Type "integer"

- \_demoemea.BF\_EVENT.searches.value
- \_demoemea.BF\_EVENT.productViews.value
- \_demoemea.BF\_EVENT.clicks.value

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/YxF_U-5SVaFhF87uTZSyj_image.png)

**Create workflow "Map CSV to Schema"**

- Data to load into BF\_EVENTS\_CJA:&#x20;
  - File: [cja-Binding-Dimension-Data.csv](https://git.corp.adobe.com/mmeewis/aep-cja-belfius-questions/blob/main/data/cja-Binding-Dimension-Data.csv), this data is generated using [cja-Binding-Dimension-Data.xlsx](https://git.corp.adobe.com/mmeewis/aep-cja-belfius-questions/blob/main/data/cja-Binding-Dimension-Data.xlsx)

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

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

**Edit CJA project**

- Add a new freefrom table in mmeewis - BF CJA Questions:

*What is the effect of binding dimensions?*

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

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

### What is the effect of "session"-timeout?

**CJA Filter: Session**

**Create workflow "Map CSV to Schema"**

- Data to load into BF\_EVENTS\_CJA
- Our data is about one single customer going through a number of journey steps (eventtype). Between step4 and step5 is a gap of 2 days (Jan 4th - Jan 6th).
  - File: [bf-cja-session-data.csv](https://git.corp.adobe.com/mmeewis/aep-cja-belfius-questions/blob/main/data/bf-cja-session-data.csv), this data is generated using [bf-cja-session-data.xlsx](https://git.corp.adobe.com/mmeewis/aep-cja-belfius-questions/blob/main/data/bf-cja-session-data.xlsx)

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

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

- **Copy data view "mmeewis - BF CJA Questions"** and rename to **mmeewis - BF CJA Questions - Timeout 3 days**
- Edit **mmeewis - BF CJA Questions - Timeout 3 days** and set *Session timeout* (via Settings tab) to 3 days

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

**Edit CJA project**

Add 2 panels one linked to data view **mmeewis - BF CJA Questions** and another one to **mmeewis - BF CJA Questions - Timeout 3 days**:

- Add *Use Case = Session* filter to each of teh pannels
- Add free form table, using *Use Case* field as the dimension (will be limited to **Session** because of panel filter.
- Use *People*, *Sessions* and *Events* as metrics and compare the value for *sessions* using all the data ingested. With a timeout of 30 minutes we have 2 sessions. The reason for this is the 2 day gap between event4 and event5. With a timeout of 3 days we have only one sessions.
- Add a funel to both panels and change to *Session* in its settings. Start with *journey.step1* and end with *journey.step8*. For a session timeout of 30 minutes we have a fallout of 100%. For a session timeout of 3 days we have a fallout of 0%.

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

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

