Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Add users to managers group if they manager of any other group, else remove them from managers group

Mad3
Tera Expert

Hello Community!

 

I need some help with the Script, can you please help me with the requirement below

 

I have managers group--contains 10 users.I want to check all users are currently managers of any group?.If yes retain them in managers group.else remove them.This should be happen once in a week.

 

Thanks in advance.

 

2 ACCEPTED SOLUTIONS

Harsh_Deep
Giga Sage
Giga Sage

Hello @Mad3 ,

 

Please create a scheduled job for weekly timeframe and use below script-

var getGroupMem = new GlideRecord('sys_user_grmember');
getGroupMem.addEncodedQuery('group=0f06c71787a45e10a274dd7bbbbb359c'); //replace the sys id of youe group's sys id
getGroupMem.query();
while(getGroupMem.next()){
    var getManager = new GlideRecord('sys_user_group');
    getManager.addEncodedQuery('manager='+getGroupMem.user);
    getManager.query();
    if(!getManager.next()){ // if the user is not manager of any group
        getGroupMem.deleteRecord(); // by this line it will remove the user from manager's group
    }
}

 

Mark Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.

View solution in original post

Bhavya11
Kilo Patron
Kilo Patron

Hi @Mad3 

Please try this script in schedule job that run weekly 

 

// Get the "Managers" group
var managersGroup = new GlideRecord('sys_user_group');
managersGroup.get('name', 'Managers'); 

if (managersGroup.isValidRecord()) {
    // Get all users in the Managers group
    var groupMembers = new GlideRecord('sys_user_grmember');
    groupMembers.addQuery('group', managersGroup.sys_id);
    groupMembers.query();

    while (groupMembers.next()) {
        var user = groupMembers.user;
        var isManager = false;

        // Check if the user is a manager of any group
        var groupsManaged = new GlideRecord('sys_user_group');
        groupsManaged.addQuery('manager', user.sys_id); 
        groupsManaged.query();

        if (groupsManaged.hasNext()) {
            isManager = true; 
        }

        // Remove the user from the Managers group if they are not managing any group
        if (!isManager) {
            groupMembers.deleteRecord(); 
            gs.info('User ' + user.getDisplayValue() + ' removed from the Managers group.');
        }
    }
} else {
    gs.error('Managers group not found.');
}

 

 

Please mark helpful & correct answer if it's really worthy for you.

 

Thanks,

BK

View solution in original post

4 REPLIES 4

Harsh_Deep
Giga Sage
Giga Sage

Hello @Mad3 ,

 

Please create a scheduled job for weekly timeframe and use below script-

var getGroupMem = new GlideRecord('sys_user_grmember');
getGroupMem.addEncodedQuery('group=0f06c71787a45e10a274dd7bbbbb359c'); //replace the sys id of youe group's sys id
getGroupMem.query();
while(getGroupMem.next()){
    var getManager = new GlideRecord('sys_user_group');
    getManager.addEncodedQuery('manager='+getGroupMem.user);
    getManager.query();
    if(!getManager.next()){ // if the user is not manager of any group
        getGroupMem.deleteRecord(); // by this line it will remove the user from manager's group
    }
}

 

Mark Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.

Hi @Harsh_Deep ,

 

Thank you for the script and it is working fine.

Bhavya11
Kilo Patron
Kilo Patron

Hi @Mad3 

Please try this script in schedule job that run weekly 

 

// Get the "Managers" group
var managersGroup = new GlideRecord('sys_user_group');
managersGroup.get('name', 'Managers'); 

if (managersGroup.isValidRecord()) {
    // Get all users in the Managers group
    var groupMembers = new GlideRecord('sys_user_grmember');
    groupMembers.addQuery('group', managersGroup.sys_id);
    groupMembers.query();

    while (groupMembers.next()) {
        var user = groupMembers.user;
        var isManager = false;

        // Check if the user is a manager of any group
        var groupsManaged = new GlideRecord('sys_user_group');
        groupsManaged.addQuery('manager', user.sys_id); 
        groupsManaged.query();

        if (groupsManaged.hasNext()) {
            isManager = true; 
        }

        // Remove the user from the Managers group if they are not managing any group
        if (!isManager) {
            groupMembers.deleteRecord(); 
            gs.info('User ' + user.getDisplayValue() + ' removed from the Managers group.');
        }
    }
} else {
    gs.error('Managers group not found.');
}

 

 

Please mark helpful & correct answer if it's really worthy for you.

 

Thanks,

BK

Eshwar Reddy
Kilo Sage

Hello @Mad3 

pandu5_0-1726555472900.png

Please mark this response as Correct and Helpful if it helps you can mark more that one reply as accepted solution