diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.spec.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.spec.ts
index c5ef70a..32808e9 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.spec.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.spec.ts
@@ -420,12 +420,12 @@
   });
 
   it('should return true for detailFieldVisibility if config provides "show" string for a specified form field', () => {
-    component.visibilityConfiguration = { detailFieldVisibility: { description: 'show' } as any } as any;
+    component.visibilityConfiguration = { fieldVisibility: { description: 'show' } as any } as any;
     expect(component.determineDetailFieldVisibility('description')).toBeTruthy();
   });
 
   it('should return false for detailFieldVisibility if config does not provides "show" string for a specified form field', () => {
-    component.visibilityConfiguration = { detailFieldVisibility: { description: 'hide' } as any } as any;
+    component.visibilityConfiguration = { fieldVisibility: { description: 'hide' } as any } as any;
     expect(component.determineDetailFieldVisibility('description')).toBeFalsy();
   });
 });
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.ts
index 4b521e5..da6d6f8 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.ts
@@ -27,6 +27,7 @@
 import { unboxProperties } from '@grid-failure-information-app/shared/utility/form-utils';
 import { unbox } from 'ngrx-forms';
 import { VisibilityConfigurationInterface } from '@grid-failure-information-app/shared/interfaces/visibility-configuration.interface';
+import { determineDetailFieldVisibility } from '@grid-failure-information-app/shared/utility';
 
 @Component({
   selector: 'app-grid-failure-details',
@@ -188,11 +189,7 @@
   }
 
   public determineDetailFieldVisibility(field: string): boolean {
-    if (this.visibilityConfiguration && this.visibilityConfiguration.detailFieldVisibility) {
-      return this.visibilityConfiguration.detailFieldVisibility[field] === 'show';
-    } else {
-      return true;
-    }
+    return determineDetailFieldVisibility(this.visibilityConfiguration, 'fieldVisibility', field);
   }
 
   private _initialFailureLocationState() {
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.spec.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.spec.ts
index 2584a18..8fb8236 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.spec.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.spec.ts
@@ -28,6 +28,7 @@
   let appState$: any;
   let _gridApi: any;
   let filterInstance: any;
+  let preConfig$: any;
 
   beforeEach(() => {
     router = { navigate() {} } as any;
@@ -48,6 +49,7 @@
       displayNotification() {},
     } as any;
     appState$ = { dispatch: () => {}, pipe: () => of(true), select: () => of(true) } as any;
+    preConfig$ = of({ visibilityConfiguration: { fieldVisibility: {} } });
     subscription = { unsubscribe() {} } as any;
     _gridApi = { onFilterChanged() {}, setFilterModel(model: any) {} } as any;
     component = new GridFailureListComponent(sandbox, appState$, router, utilService);
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.ts
index 6b9c3f0..d42744b 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list.component.ts
@@ -38,8 +38,8 @@
 export class GridFailureListComponent extends BaseList implements OnInit, OnDestroy {
   public Globals = Globals;
   public RolesEnum = RolesEnum;
-  public overviewColumnDefinition: any = GRID_FAILURE_COLDEF;
-  public condensationColumnDefinition: any = GRID_FAILURE_FOR_CONDENSATION_COLDEF;
+  public overviewColumnDefinition: any;
+  public condensationColumnDefinition: any;
   public mapOptions: MapOptions = new MapOptions();
   public frameworkComponents: any;
   public view: any = 'list';
@@ -53,6 +53,7 @@
     suppressLoadingOverlay: true,
     localeText: Globals.LOCALE_TEXT,
   };
+  public preConfig$ = this.appState$.select(store.getPreConfiguration);
 
   private _gridApi: GridApi;
   private _modeEnum = ModeEnum;
@@ -61,6 +62,19 @@
   constructor(public sandbox: GridFailureSandbox, private appState$: Store<store.State>, private _router: Router, private _utilService: UtilService) {
     super();
     this.frameworkComponents = { setFilterComponent: SetFilterComponent, headerCellRendererComponent: HeaderCellRendererComponent };
+
+    this.preConfig$.pipe(takeUntil(this._endSubscriptions$)).subscribe(config => {
+      if (config && config.visibilityConfiguration) {
+        GRID_FAILURE_COLDEF.forEach((column: any) => {
+          column['hide'] = config.visibilityConfiguration.fieldVisibility[column['field']] === 'hide';
+        });
+        this.overviewColumnDefinition = GRID_FAILURE_COLDEF;
+        GRID_FAILURE_FOR_CONDENSATION_COLDEF.forEach((column: any) => {
+          column['hide'] = config.visibilityConfiguration.fieldVisibility[column['field']] === 'hide';
+        });
+        this.condensationColumnDefinition = GRID_FAILURE_FOR_CONDENSATION_COLDEF;
+      }
+    });
   }
 
   ngOnInit(): void {
diff --git a/projects/grid-failure-information-app/src/app/shared/directives/agGrid/translate-column-definitions.directive.ts b/projects/grid-failure-information-app/src/app/shared/directives/agGrid/translate-column-definitions.directive.ts
index b9dad8b..ec05e2e 100644
--- a/projects/grid-failure-information-app/src/app/shared/directives/agGrid/translate-column-definitions.directive.ts
+++ b/projects/grid-failure-information-app/src/app/shared/directives/agGrid/translate-column-definitions.directive.ts
@@ -42,11 +42,13 @@
   }
 
   private _getTranslatedColumnDefinitions(columnDefs: any): any {
-    return columnDefs.map((columnDefinition: any) => {
-      return {
-        ...columnDefinition,
-        headerName: this._translationService.instant(columnDefinition.headerName),
-      };
-    });
+    if (columnDefs) {
+      return columnDefs.map((columnDefinition: any) => {
+        return {
+          ...columnDefinition,
+          headerName: this._translationService.instant(columnDefinition.headerName),
+        };
+      });
+    }
   }
 }
diff --git a/projects/grid-failure-information-app/src/app/shared/interfaces/visibility-configuration.interface.ts b/projects/grid-failure-information-app/src/app/shared/interfaces/visibility-configuration.interface.ts
index 5c3785c..679e78d 100644
--- a/projects/grid-failure-information-app/src/app/shared/interfaces/visibility-configuration.interface.ts
+++ b/projects/grid-failure-information-app/src/app/shared/interfaces/visibility-configuration.interface.ts
@@ -11,7 +11,7 @@
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
 export interface VisibilityConfigurationInterface {
-  detailFieldVisibility: {
+  fieldVisibility: {
     description: string;
     failureClassification: string;
     internalRemark: string;
diff --git a/projects/grid-failure-information-app/src/app/shared/utility/utilityHelpers.ts b/projects/grid-failure-information-app/src/app/shared/utility/utilityHelpers.ts
index be0acda..534b7a1 100644
--- a/projects/grid-failure-information-app/src/app/shared/utility/utilityHelpers.ts
+++ b/projects/grid-failure-information-app/src/app/shared/utility/utilityHelpers.ts
@@ -15,6 +15,7 @@
 import { DateTimeModel } from '@grid-failure-information-app/shared/models/date-time.model';
 import { NgrxValueConverter, NgrxValueConverters } from 'ngrx-forms';
 import { FailureHousenumber } from '@grid-failure-information-app/shared/models';
+import { VisibilityConfigurationInterface } from '@grid-failure-information-app/shared/interfaces/visibility-configuration.interface';
 
 /**
  * Returns formated date based on given culture
@@ -142,3 +143,11 @@
   actionPayload = { ...actionPayload, payload: sortedItems };
   return actionPayload;
 }
+
+export function determineDetailFieldVisibility(config: VisibilityConfigurationInterface, config_prop: string, field: string): boolean {
+  if (config && config[config_prop]) {
+    return config[config_prop][field] === 'show';
+  } else {
+    return true;
+  }
+}
