diff --git a/src/helpers/programHelper.js b/src/helpers/programHelper.js
index 7f0ba257c7744e4a325f2d72aa59fef259a4fb84..085c2861363c9514e3091d449aa27c2a6d717808 100644
--- a/src/helpers/programHelper.js
+++ b/src/helpers/programHelper.js
@@ -1150,7 +1150,7 @@ class ProgramServiceHelper {
   }
 
 
-  addBaseUrlIfAbsent(url) {    
+  addBaseUrlIfAbsent(url) {
     if( (url.search("http://") >= 0) || (url.search("https://") >= 0)) return url;
     else return `${envVariables.baseURL}${url}`;
   }
@@ -1203,8 +1203,11 @@ class ProgramServiceHelper {
    */
   async isAlreadyNominated(program_id, orgosid, user_id) {
     let findNomWhere = {
-      program_id: program_id,
-      organisation_id: orgosid
+      program_id: program_id
+    }
+
+    if (orgosid) {
+      findNomWhere['organisation_id'] = orgosid;
     }
 
     if (user_id) {
diff --git a/src/service/programService.js b/src/service/programService.js
index 0d1a6cab3ddc6b93be05c26e737ad391c192a159..51cd9e66151fc788580d4caefddf4b177ad01ecf 100644
--- a/src/service/programService.js
+++ b/src/service/programService.js
@@ -20,7 +20,7 @@ const {
   forkJoin
 } = require('rxjs');
 const { catchError , map } = require('rxjs/operators');
-const axios = require('axios');
+const axios = require("axios");
 const envVariables = require('../envVariables');
 const RegistryService = require('./registryService')
 const ProgramServiceHelper = require('../helpers/programHelper');
@@ -756,11 +756,10 @@ function createOrgMappingInRegistry(userProfile, userReg, regMethodCallback) {
 
 function addOrUpdateNomination(programDetails, user_id, orgosid) {
   return new Promise((resolve, reject) => {
-    if (orgosid) {
       const insertObj = {
         program_id: programDetails.program_id,
         user_id: user_id,
-        organisation_id: orgosid,
+        organisation_id: orgosid || null,
         status: 'Approved',
         collection_ids: programDetails.copiedCollections,
       };
@@ -771,9 +770,17 @@ function addOrUpdateNomination(programDetails, user_id, orgosid) {
         insertObj['content_types'] = programDetails.content_types;
       }
       let findNomWhere =  {
-        program_id: programDetails.program_id,
-        organisation_id: orgosid
+        program_id: programDetails.program_id
+      }
+
+      if (orgosid) {
+        findNomWhere['organisation_id'] = orgosid;
+      }
+
+      if (user_id) {
+        findNomWhere['user_id'] = user_id;
       }
+
       return model.nomination.findOne({
         where: findNomWhere
       }).then((res) => {
@@ -824,9 +831,6 @@ function addOrUpdateNomination(programDetails, user_id, orgosid) {
             });
           }
       });
-    } else {
-      return reject({ msg: 'Nomination update failed - OrgId is blank'});
-    }
   });
 }
 
@@ -3211,7 +3215,7 @@ async function asyncOnAfterPublish (req, program_id) {
       });
 
       const collection_ids = _.get(nomination, 'collection_ids') || [];
-      return await nominateRestrictedContributors(req, program, collection_ids);
+      nominateRestrictedContributors(req, program, collection_ids);
     }
   }
   catch(err) {
@@ -3249,12 +3253,33 @@ async function asyncOnAfterPublish (req, program_id) {
           const isNominated = await programServiceHelper.isAlreadyNominated(program.program_id, org.osid);
           if (!isNominated) {
             program['copiedCollections'] = collection_ids;
-            await addOrUpdateNomination(program, org.User.userId, org.osid);
+            addOrUpdateNomination(program, org.User.userId, org.osid);
             usersToNotify.push(org.User);
           }
         }
 
-        return await programServiceHelper.notifyRestrictedContributors(req, program, usersToNotify);
+        if (!_.isEmpty(usersToNotify)) {
+          programServiceHelper.notifyRestrictedContributors(req, program, usersToNotify);
+        }
+      }
+
+      const indList = _.get(program, 'config.contributors.User') || [];
+      if (!_.isEmpty(indList)) {
+        // Get individual users diksha ids
+        const usersToNotify = [];
+        for (const ind of indList) {
+          const userId = _.get(ind, 'User.userId')
+          const isNominated = await programServiceHelper.isAlreadyNominated(program.program_id, undefined, userId);
+          if (!isNominated) {
+            program['copiedCollections'] = collection_ids;
+            addOrUpdateNomination(program, userId);
+            usersToNotify.push(ind.User);
+          }
+        }
+
+        if (!_.isEmpty(usersToNotify)) {
+          programServiceHelper.notifyRestrictedContributors(req, program, usersToNotify);
+        }
       }
     }
   }