Remove inactive users from Group

Sakshi Shukla
Tera Contributor

How can we remove users from a group if they have been inactive for a specific period, such as 2 weeks?

1 ACCEPTED SOLUTION

Rushi Savarkar
Kilo Sage

Hello @Sakshi Shukla 
You can try below scheduled job code:

(function executeScheduleJob() {
    var twoWeeksAgo = new GlideDateTime();
    twoWeeksAgo.addDaysUTC(-14);

    var inactiveUsers = new GlideRecord('sys_user');
    inactiveUsers.addQuery('active', false);
    inactiveUsers.addQuery('sys_updated_on', '<=', twoWeeksAgo);
    inactiveUsers.query();
    gs.info('count' + inactiveUsers.getRowCount());
    while (inactiveUsers.next()) {
        var groupMemberships = new GlideRecord('sys_user_grmember');
        groupMemberships.addQuery('user', inactiveUsers.sys_id);
        groupMemberships.query();
       while (groupMemberships.next()) {
            groupMemberships.deleteRecord();
        }
    }
})();

Let me know if the above code works for you.

Thank you!

If my response helped you, please accept the solution and mark it as helpful.
Thank You!

View solution in original post

10 REPLIES 10

Ankur Bawiskar
Tera Patron
Tera Patron

@Sakshi Shukla 

you can't rely on inactive user using "sys_updated_on" field on sys_user.

you should use last login field

    var groupMemberGR = new GlideRecord('sys_user_grmember');
    groupMemberGR.addQuery('group', 'groupSysId');
    groupMemberGR.query();
    while (groupMemberGR.next()) {
        var twoWeeksAgo = gs.daysAgoStart(14); // Gets the datetime 14 days ago at midnight
        var userGR = new GlideRecord('sys_user');
        userGR.addQuery('active', false);
        userGR.addQuery('last_login', '<', twoWeeksAgo); // Adjust if you use another inactivity field
        userGR.query();
        if (userGR.hasNext()) {
            groupMemberGR.deleteRecord();
            gs.info('Removed user ' + userGR.name + ' from group ' + groupMemberGR.group.name);
        }
    }

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader