diff --git a/src/app/client/src/app/modules/dial-code-search/components/dial-code/dial-code.component.ts b/src/app/client/src/app/modules/dial-code-search/components/dial-code/dial-code.component.ts
index f115b76747d9711cd5ad2db79a0ba65bf20665ee..ecd30bea0db4ee7a0deb8d5e50a4d012daf5624d 100644
--- a/src/app/client/src/app/modules/dial-code-search/components/dial-code/dial-code.component.ts
+++ b/src/app/client/src/app/modules/dial-code-search/components/dial-code/dial-code.component.ts
@@ -5,7 +5,7 @@ import { Router, ActivatedRoute } from '@angular/router';
 import { SearchService, PlayerService, CoursesService, UserService } from '@sunbird/core';
 import { PublicPlayerService } from '@sunbird/public';
 import * as _ from 'lodash-es';
-import { IInteractEventEdata, IImpressionEventInput, TelemetryService } from '@sunbird/telemetry';
+import { IInteractEventEdata, IImpressionEventInput, TelemetryService, ICData } from '@sunbird/telemetry';
 import {mergeMap, tap, retry, catchError, map, finalize, debounceTime, takeUntil} from 'rxjs/operators';
 import { Subject } from 'rxjs';
 import { DialCodeService } from '../../services/dial-code/dial-code.service';
@@ -35,7 +35,7 @@ export class DialCodeComponent implements OnInit, OnDestroy {
   public loaderMessage: any;
   public searchResults: Array<any> = [];
   public unsubscribe$ = new Subject<void>();
-  public telemetryCdata: Array<{}> = [];
+  public telemetryCdata: Array<ICData> = [];
   public backInteractEdata: IInteractEventEdata;
   public selectChapterTelemetryCdata: Array<{}> = [];
   public selectChapterInteractEdata: IInteractEventEdata;
diff --git a/src/app/client/src/app/modules/learn/components/batch/batch-details/batch-details.component.ts b/src/app/client/src/app/modules/learn/components/batch/batch-details/batch-details.component.ts
index 5ebb51588b34a42a450c244481f019e6ad9911e2..76b46917851d981679d9d80a045f6363c0de44f2 100644
--- a/src/app/client/src/app/modules/learn/components/batch/batch-details/batch-details.component.ts
+++ b/src/app/client/src/app/modules/learn/components/batch/batch-details/batch-details.component.ts
@@ -7,7 +7,7 @@ import { Component, OnInit, Input, OnDestroy, Output, EventEmitter, ViewChild }
 import { ResourceService, ServerResponse, ToasterService } from '@sunbird/shared';
 import { PermissionService, UserService } from '@sunbird/core';
 import * as _ from 'lodash-es';
-import { TelemetryService } from '@sunbird/telemetry';
+import { TelemetryService, ICData } from '@sunbird/telemetry';
 import { Subject } from 'rxjs';
 import * as dayjs from 'dayjs';
 
@@ -45,7 +45,7 @@ export class BatchDetailsComponent implements OnInit, OnDestroy {
   showAllBatchList = false;
   showAllBatchError = false;
   showJoinModal = false;
-  telemetryCdata: Array<{}> = [];
+  telemetryCdata: Array<ICData> = [];
   @Output() allBatchDetails = new EventEmitter();
   allowBatchCreation: boolean;
   @ViewChild('batchListModal') batchListModal;
diff --git a/src/app/client/src/app/modules/learn/components/course-consumption/assessment-player/assessment-player.component.ts b/src/app/client/src/app/modules/learn/components/course-consumption/assessment-player/assessment-player.component.ts
index 6626eeb2cbf5f3aaf3b90d63630454b8f5f4f769..246beb76c657d392462080c5112c2b0520ba4260 100644
--- a/src/app/client/src/app/modules/learn/components/course-consumption/assessment-player/assessment-player.component.ts
+++ b/src/app/client/src/app/modules/learn/components/course-consumption/assessment-player/assessment-player.component.ts
@@ -1,5 +1,5 @@
 import { Location } from '@angular/common';
-import { TelemetryService, IAuditEventInput, IImpressionEventInput } from '@sunbird/telemetry';
+import { TelemetryService, IAuditEventInput,ICData, IImpressionEventInput } from '@sunbird/telemetry';
 import { Component, OnInit, OnDestroy } from '@angular/core';
 import { ActivatedRoute, Router, NavigationExtras } from '@angular/router';
 import { TocCardType } from '@project-sunbird/common-consumption';
@@ -44,7 +44,7 @@ export class AssessmentPlayerComponent implements OnInit, OnDestroy {
   isParentCourse = false;
   telemetryContentImpression: IImpressionEventInput;
   telemetryPlayerPageImpression: IImpressionEventInput;
-  telemetryCdata: Array<{}>;
+  telemetryCdata: Array<ICData>;
   shareLink: string;
   telemetryShareData: Array<ITelemetryShare>;
   shareLinkModal: boolean;
diff --git a/src/app/client/src/app/modules/learn/components/course-consumption/course-consumption-header/course-consumption-header.component.ts b/src/app/client/src/app/modules/learn/components/course-consumption/course-consumption-header/course-consumption-header.component.ts
index 0f2090db148be759386406d562dec1ec9c3bd2b7..7bfed31a68c54689254c4e4cf1068dc9e9a3e602 100644
--- a/src/app/client/src/app/modules/learn/components/course-consumption/course-consumption-header/course-consumption-header.component.ts
+++ b/src/app/client/src/app/modules/learn/components/course-consumption/course-consumption-header/course-consumption-header.component.ts
@@ -10,7 +10,7 @@ import {
   ResourceService, ToasterService, ContentData, ContentUtilsServiceService, ITelemetryShare,
   ExternalUrlPreviewService
 } from '@sunbird/shared';
-import { IInteractEventObject, TelemetryService } from '@sunbird/telemetry';
+import { IInteractEventObject, TelemetryService, ICData } from '@sunbird/telemetry';
 import * as dayjs from 'dayjs';
 import { GroupsService } from '../../../../groups/services/groups/groups.service';
 import { NavigationHelperService } from '@sunbird/shared';
@@ -53,7 +53,7 @@ export class CourseConsumptionHeaderComponent implements OnInit, AfterViewInit,
   public unsubscribe = new Subject<void>();
   batchEndDate: any;
   public interval: any;
-  telemetryCdata: Array<{}>;
+  telemetryCdata: Array<ICData>;
   enableProgress = false;
   // courseMentor = false;
   // courseCreator = false;
diff --git a/src/app/client/src/app/modules/learn/components/course-consumption/course-player/course-player.component.ts b/src/app/client/src/app/modules/learn/components/course-consumption/course-player/course-player.component.ts
index 22c259d639155fe86d1e0bc5f462192d8f1c2a20..6baf85cdebb9b012b2c1a19664bf4b5b1d91c9f3 100644
--- a/src/app/client/src/app/modules/learn/components/course-consumption/course-player/course-player.component.ts
+++ b/src/app/client/src/app/modules/learn/components/course-consumption/course-player/course-player.component.ts
@@ -6,7 +6,7 @@ import {
   ConfigService, ExternalUrlPreviewService, ICollectionTreeOptions, NavigationHelperService,
   ResourceService, ToasterService, WindowScrollService, ITelemetryShare, LayoutService
 } from '@sunbird/shared';
-import { IEndEventInput, IImpressionEventInput, IInteractEventEdata, IInteractEventObject, IStartEventInput, TelemetryService } from '@sunbird/telemetry';
+import { IEndEventInput, IImpressionEventInput, IInteractEventEdata, IInteractEventObject, IStartEventInput,ICData, TelemetryService } from '@sunbird/telemetry';
 import * as _ from 'lodash-es';
 import { DeviceDetectorService } from 'ngx-device-detector';
 import { combineLatest, merge, Subject } from 'rxjs';
@@ -54,7 +54,7 @@ export class CoursePlayerComponent implements OnInit, OnDestroy {
   public collectionTreeOptions: ICollectionTreeOptions;
   public unsubscribe = new Subject<void>();
   public showJoinTrainingModal = false;
-  telemetryCdata: Array<{}>;
+  telemetryCdata: Array<ICData>;
   pageId: string;
   cardType: TocCardType = TocCardType.COURSE;
   hasPreviewPermission = false;
diff --git a/src/app/client/src/app/modules/public/module/player/components/public-content-player/public-content-player.component.ts b/src/app/client/src/app/modules/public/module/player/components/public-content-player/public-content-player.component.ts
index b364f99376de4b4f9be1180365eb374fe0a92114..b6de3068d07d3d8a3526f1ee962cedb978d3bac0 100644
--- a/src/app/client/src/app/modules/public/module/player/components/public-content-player/public-content-player.component.ts
+++ b/src/app/client/src/app/modules/public/module/player/components/public-content-player/public-content-player.component.ts
@@ -10,7 +10,7 @@ import {
   WindowScrollService, NavigationHelperService, PlayerConfig, ContentData, ITelemetryShare, LayoutService
 } from '@sunbird/shared';
 import { PublicPlayerService } from '../../../../services';
-import { IImpressionEventInput, IInteractEventObject, IInteractEventEdata } from '@sunbird/telemetry';
+import { IImpressionEventInput, IInteractEventObject, IInteractEventEdata,ICData } from '@sunbird/telemetry';
 import { takeUntil, mergeMap } from 'rxjs/operators';
 import { PopupControlService } from '../../../../../../service/popup-control.service';
 import { PlatformLocation } from '@angular/common';
@@ -54,7 +54,7 @@ export class PublicContentPlayerComponent implements OnInit, OnDestroy, AfterVie
   public unsubscribe$ = new Subject<void>();
   public badgeData: Array<object>;
   public dialCode: string;
-  telemetryCdata: Array<{}>;
+  telemetryCdata: Array<ICData>;
   public telemetryInteractObject: IInteractEventObject;
   public closePlayerInteractEdata: IInteractEventEdata;
   public printPdfInteractEdata: IInteractEventEdata;
diff --git a/src/app/client/src/app/modules/public/module/signup/components/otp/otp.component.ts b/src/app/client/src/app/modules/public/module/signup/components/otp/otp.component.ts
index 777f3d3ed72479d4fd68322d214ce605a3664903..f0a865531c7142ba0618af29606c5cc5550c4792 100644
--- a/src/app/client/src/app/modules/public/module/signup/components/otp/otp.component.ts
+++ b/src/app/client/src/app/modules/public/module/signup/components/otp/otp.component.ts
@@ -5,7 +5,7 @@ import { FormControl, FormGroup, Validators } from '@angular/forms';
 import { ActivatedRoute, Router } from '@angular/router';
 import * as _ from 'lodash-es';
 import { DeviceDetectorService } from 'ngx-device-detector';
-import { IEndEventInput, IInteractEventEdata, TelemetryService } from '@sunbird/telemetry';
+import { IEndEventInput, IInteractEventEdata, TelemetryService, ICData } from '@sunbird/telemetry';
 import { RecaptchaComponent } from 'ng-recaptcha';
 
 @Component({
@@ -34,7 +34,7 @@ export class OtpComponent implements OnInit {
   generateOTPErrorInteractEdata: any;
   generateVerifyOtpErrorInteractEdata: any;
   createUserErrorInteractEdata: any;
-  telemetryCdata: Array<{}>;
+  telemetryCdata: Array<ICData>;
   instance: string;
   emailAddress: any;
   phoneNumber: any;
diff --git a/src/app/client/src/app/modules/public/module/signup/components/signup/signup.component.ts b/src/app/client/src/app/modules/public/module/signup/components/signup/signup.component.ts
index fc5685607f419c11f304ef6e2129916b6bdf3541..775f9da09a3f0afe7aaac1582cd84b965db30627 100644
--- a/src/app/client/src/app/modules/public/module/signup/components/signup/signup.component.ts
+++ b/src/app/client/src/app/modules/public/module/signup/components/signup/signup.component.ts
@@ -14,7 +14,7 @@ import { SignupService } from './../../services';
 import { TenantService, TncService } from '@sunbird/core';
 import { TelemetryService } from '@sunbird/telemetry';
 import * as _ from 'lodash-es';
-import { IStartEventInput, IImpressionEventInput, IInteractEventEdata } from '@sunbird/telemetry';
+import { IStartEventInput, IImpressionEventInput, IInteractEventEdata,ICData } from '@sunbird/telemetry';
 import { DeviceDetectorService } from 'ngx-device-detector';
 import { ActivatedRoute } from '@angular/router';
 import { RecaptchaComponent } from 'ng-recaptcha';
@@ -43,7 +43,7 @@ export class SignupComponent implements OnInit, OnDestroy, AfterViewInit {
   telemetryStart: IStartEventInput;
   telemetryImpression: IImpressionEventInput;
   submitInteractEdata: IInteractEventEdata;
-  telemetryCdata: Array<{}>;
+  telemetryCdata: Array<ICData>;
   instance: string;
   tncLatestVersion: string;
   termsAndConditionLink: string;
diff --git a/src/app/client/src/app/modules/resource/modules/player/components/collection-player/collection-player.component.ts b/src/app/client/src/app/modules/resource/modules/player/components/collection-player/collection-player.component.ts
index 1f6aded4a3c1438d00d53ed7b7538552f0adb5bf..550a7f136e7ad76d3dd69956c6be73d3d132544d 100644
--- a/src/app/client/src/app/modules/resource/modules/player/components/collection-player/collection-player.component.ts
+++ b/src/app/client/src/app/modules/resource/modules/player/components/collection-player/collection-player.component.ts
@@ -9,7 +9,7 @@ import {
   WindowScrollService, ILoaderMessage, PlayerConfig, ICollectionTreeOptions, NavigationHelperService,
   ToasterService, ResourceService, ContentData, ContentUtilsServiceService, ITelemetryShare, ConfigService,
   ExternalUrlPreviewService, LayoutService } from '@sunbird/shared';
-import { IInteractEventObject, IInteractEventEdata, IImpressionEventInput, IEndEventInput, IStartEventInput } from '@sunbird/telemetry';
+import { IInteractEventObject, IInteractEventEdata, IImpressionEventInput, IEndEventInput,ICData, IStartEventInput } from '@sunbird/telemetry';
 import * as TreeModel from 'tree-model';
 import { DeviceDetectorService } from 'ngx-device-detector';
 import { PopupControlService } from '../../../../../../service/popup-control.service';
@@ -119,7 +119,7 @@ export class CollectionPlayerComponent implements OnInit, OnDestroy, AfterViewIn
   public contentDetails = [];
   public nextPlaylistItem: any;
   public prevPlaylistItem: any;
-  public telemetryCdata: Array<{}>;
+  public telemetryCdata: Array<ICData>;
   selectedContent: {};
   public unsubscribe$ = new Subject<void>();
   mimeTypeFilters;
diff --git a/src/app/client/src/app/modules/shared-feature/components/validate-teacher-identifier-popup/validate-teacher-identifier-popup.component.ts b/src/app/client/src/app/modules/shared-feature/components/validate-teacher-identifier-popup/validate-teacher-identifier-popup.component.ts
index a3a3533e2528d31fb261724c02b6c098ae80c536..0fca98c227dd3f722f0a1b681a4f6c02675db749 100644
--- a/src/app/client/src/app/modules/shared-feature/components/validate-teacher-identifier-popup/validate-teacher-identifier-popup.component.ts
+++ b/src/app/client/src/app/modules/shared-feature/components/validate-teacher-identifier-popup/validate-teacher-identifier-popup.component.ts
@@ -1,4 +1,4 @@
-import { IInteractEventObject, IImpressionEventInput } from '@sunbird/telemetry';
+import { IInteractEventObject, IImpressionEventInput, ICData } from '@sunbird/telemetry';
 import { ResourceService } from '@sunbird/shared';
 import { Component, OnInit, ViewChild, ElementRef, Output, EventEmitter, Input, OnDestroy } from '@angular/core';
 import { UserService } from '@sunbird/core';
@@ -28,7 +28,7 @@ export class ValidateTeacherIdentifierPopupComponent implements OnInit, OnDestro
   userId: string;
   channelData: [];
   showStateDropdown: boolean;
-  telemetryCdata: Array<{}> = [];
+  telemetryCdata: Array<ICData> = [];
   telemetryInteractObject: IInteractEventObject;
   telemetryImpressionData: IImpressionEventInput;
   closeInteractEdata: any;
diff --git a/src/app/client/src/app/modules/telemetry/directives/telemetry-interact/telemetry-interact.directive.ts b/src/app/client/src/app/modules/telemetry/directives/telemetry-interact/telemetry-interact.directive.ts
index a6a349712900b31324892b02e13860f67beb4539..37d3589d9c53b97f6e3fd2ea5cc80e114bb678b3 100644
--- a/src/app/client/src/app/modules/telemetry/directives/telemetry-interact/telemetry-interact.directive.ts
+++ b/src/app/client/src/app/modules/telemetry/directives/telemetry-interact/telemetry-interact.directive.ts
@@ -1,5 +1,5 @@
 import { Directive, Input, OnInit, OnChanges, HostListener } from '@angular/core';
-import { IInteractEventInput, IInteractEventObject, IInteractEventEdata, IProducerData } from '../../interfaces';
+import { IInteractEventInput, IInteractEventObject, IInteractEventEdata, IProducerData, ICData } from '../../interfaces';
 import { TelemetryService } from '../../services';
 import { ActivatedRoute, Router } from '@angular/router';
 import * as _ from 'lodash-es';
@@ -21,7 +21,7 @@ export class TelemetryInteractDirective {
 
   @Input() telemetryInteractEdata: IInteractEventEdata;
 
-  @Input() telemetryInteractCdata: Array<{}>;
+  @Input() telemetryInteractCdata: Array<ICData>;
   @Input() telemetryInteractContext;
   @Input() telemetryInteractPdata: IProducerData;
 
diff --git a/src/app/client/src/app/modules/telemetry/interfaces/telemetry.ts b/src/app/client/src/app/modules/telemetry/interfaces/telemetry.ts
index 79fd7699e8c3a805d07b3d15e3084de41cb48bde..6835938ad621673763ca77d470888dee41142a12 100644
--- a/src/app/client/src/app/modules/telemetry/interfaces/telemetry.ts
+++ b/src/app/client/src/app/modules/telemetry/interfaces/telemetry.ts
@@ -80,7 +80,7 @@ export interface ITelemetryContextData {
   'env': string;
   'pdata': IProducerData;
   'sid': string;
-  'did': string;
+  'did'?: string;
   'cdata'?: Array<ICData>;
   'rollup'?: {};
 }
@@ -134,7 +134,7 @@ export interface IImpressionEventInput {
   'context': {
     'env': string;
     'cdata'?: Array<ICData>;
-    'pdata': IProducerData
+    'pdata'?: IProducerData
   };
   'object'?: {
     'id': string;
@@ -149,7 +149,7 @@ export interface IInteractEventInput {
   'context': {
     'env': string;
     'cdata'?: Array<ICData>;
-    'pdata': IProducerData
+    'pdata'?: IProducerData
   };
   'object'?: IInteractEventObject;
   'edata': IInteractEventEdata;
@@ -256,7 +256,7 @@ export interface ITelemetry {
   'channel': string;
   'uid'?: string;
   'endpoint': string;
-  'did': string;
+  'did'?: string;
   'authtoken'?: string;
   'sid': string;
   'batchsize'?: Number;
diff --git a/src/app/client/src/app/modules/workspace/components/collaboration-content-filter/collaboration-content-filter.component.ts b/src/app/client/src/app/modules/workspace/components/collaboration-content-filter/collaboration-content-filter.component.ts
index 3b25346fd738425de4f90d67e7f068717bf9dc57..e423db5ff89bb6abe03ccd4536d805c41703ceaa 100644
--- a/src/app/client/src/app/modules/workspace/components/collaboration-content-filter/collaboration-content-filter.component.ts
+++ b/src/app/client/src/app/modules/workspace/components/collaboration-content-filter/collaboration-content-filter.component.ts
@@ -5,7 +5,7 @@ import { ISelectFilter } from '../../interfaces/selectfilter';
 import * as _ from 'lodash-es';
 import { Subject , Observable, of} from 'rxjs';
 import { debounceTime, distinctUntilChanged, delay, flatMap } from 'rxjs/operators';
-import { IInteractEventEdata, IInteractEventInput, IInteractEventObject, IProducerData, TelemetryService } from '@sunbird/telemetry';
+import { IInteractEventEdata, IInteractEventInput, IInteractEventObject, IProducerData, TelemetryService, ICData } from '@sunbird/telemetry';
 @Component({
   selector: 'app-collaboration-content-filter',
   templateUrl: './collaboration-content-filter.component.html',
@@ -70,7 +70,7 @@ export class CollaborationContentFilterComponent implements OnInit {
   public telemetryService: TelemetryService;
 
   @Input() telemetryInteractContext;
-  @Input() telemetryInteractCdata: Array<{}>;
+  @Input() telemetryInteractCdata: Array<ICData>;
   @Input() telemetryInteractObject: IInteractEventObject;
   @Input() telemetryInteractPdata: IProducerData;