diff --git a/src/config/telemetryEventConfig.json b/src/config/telemetryEventConfig.json
index 9accb148e9597d9cb437f087dd1ea47147d76725..ba9af3eba75a8557b81e715ed2f57eb0ebbbf168 100644
--- a/src/config/telemetryEventConfig.json
+++ b/src/config/telemetryEventConfig.json
@@ -1,8 +1,8 @@
 {
   "pdata": {
-    "id": "sunbirdDock.program-service",
+    "id": "dock.program-service",
     "ver": "1.0",
-    "pid": "sunbird-program-service"
+    "pid": "dock-program-service"
   },
   "API": {
     "content/search": {
diff --git a/src/envVariables.js b/src/envVariables.js
index a381e7ba5f08c5b6ab7d8788469a4d57ec2d4d43..dd55c7b4059bbb8f8005ee9f92cd4b73d4fbf175 100644
--- a/src/envVariables.js
+++ b/src/envVariables.js
@@ -19,9 +19,9 @@ const envVariables = {
         }
     },
     telemetryConfig: {
-        host: '',
-        endpoint: '',
-        method: ''
+        host: process.env.telemetry_service_host,
+        endpoint: process.env.telemetry_service_endpoint,
+        method: 'POST'
     }
 }
 module.exports = envVariables;
diff --git a/src/helpers/helperService.js b/src/helpers/helperService.js
index a3cf5ef2eb6aa3be9ba76adb5f01005b1f45e651..0c76a2eb5134072ee9b578def3e1a8db851ab0ad 100644
--- a/src/helpers/helperService.js
+++ b/src/helpers/helperService.js
@@ -2,10 +2,10 @@
 const telemetryService = require('../service/telemetryService');
 
 function manageModelHooks(db) {
-   db.program.addHook('beforeUpdate', (instance) => {telemetryService.generateAuditEvent(instance, db.program)});
-   db.program.addHook('beforeCreate', (instance) => {telemetryService.generateAuditEvent(instance, db.program)});
-   db.nomination.addHook('beforeUpdate', (instance) => {telemetryService.generateAuditEvent(instance, db.nomination)});
-   db.nomination.addHook('beforeCreate', (instance) => {telemetryService.generateAuditEvent(instance, db.nomination)});
+   db.program.addHook('beforeUpdate', (instance) => {telemetryService.generateAuditEvent(instance, db.program, 'update')});
+   db.program.addHook('afterCreate', (instance) => {telemetryService.generateAuditEvent(instance, db.program, 'create')});
+   db.nomination.addHook('beforeUpdate', (instance) => {telemetryService.generateAuditEvent(instance, db.nomination, 'update')});
+   db.nomination.addHook('afterCreate', (instance) => {telemetryService.generateAuditEvent(instance, db.nomination, 'create')});
      }
 
 module.exports.AttachModelHooks = manageModelHooks;
\ No newline at end of file
diff --git a/src/service/programService.js b/src/service/programService.js
index 6d443c7fb3d1f78c70a10f67b53a70b47936b6a5..3d9ebacfafc481a751a07a52999dd4b02ba8bf2e 100644
--- a/src/service/programService.js
+++ b/src/service/programService.js
@@ -213,6 +213,7 @@ function programList(req, response) {
   var data = req.body
   var rspObj = req.rspObj
   var res_limit = queryRes_Min;
+  var res_offset = data.request.offset || 0;
   if (!data.request || !data.request.filters) {
     rspObj.errCode = programMessages.READ.MISSING_CODE
     rspObj.errMsg = programMessages.READ.MISSING_MESSAGE
@@ -255,6 +256,7 @@ function programList(req, response) {
         where: {
           user_id: data.request.filters.enrolled_id.user_id
         },
+        offset: res_offset,
         limit: res_limit,
         include: [{
           model: model.program
@@ -292,6 +294,7 @@ function programList(req, response) {
         where:{
           $contains: Sequelize.literal(`cast(rolemapping->>'${role}' as text) like ('%${data.request.filters.user_id}%')`)
         },
+        offset: res_offset,
         limit: res_limit,
         order: [
           ['updatedon', 'DESC']
@@ -331,6 +334,7 @@ function programList(req, response) {
         where: {
           ...data.request.filters
         },
+        offset: res_offset,
         limit: res_limit,
         order: [
           ['updatedon', 'DESC']
@@ -479,6 +483,7 @@ function getNominationsList(req, response) {
   var data = req.body;
   var rspObj = req.rspObj;
   var res_limit = queryRes_Min;
+  var res_offset = data.request.offset || 0;
   if (data.request.limit) {
     res_limit = (data.request.limit < queryRes_Max) ? data.request.limit : (queryRes_Max);
   }
@@ -513,6 +518,7 @@ function getNominationsList(req, response) {
       where: {
         ...findQuery
       },
+      offset: res_offset,
       limit: res_limit,
       order: [
         ['updatedon', 'DESC']
diff --git a/src/service/telemetryService.js b/src/service/telemetryService.js
index 5c1d342010b86bb42f7c7cf49f5281c290ff995a..d3a2c6609a65729eb4289d261fd5f5a4ea1e0323 100644
--- a/src/service/telemetryService.js
+++ b/src/service/telemetryService.js
@@ -9,18 +9,21 @@ function initTelemetry() {
     config = {
         host: envVariables.telemetryConfig.host,
         endpoint: envVariables.telemetryConfig.endpoint,
-        method: envVariables.telemetryConfig.method
+        method: envVariables.telemetryConfig.method,
+        batchsize: 10
     }
     telemetryInstance.init(config);
 }
 
-function generateAuditEvent(DBinstance, model) {
+function generateAuditEvent(DBinstance, model, action) {
     const event = {};
         event['context'] = {
            pdata: telemetryEventConfig.pdata,
            env: model.name
         }
         event['edata'] = {
+            state: DBinstance.status || '',
+            prevstate: action === 'create' ? '' : DBinstance.previous().status || DBinstance.status,
             props: _.keys(DBinstance.previous())
         }
         event['object'] = {