
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 08:05 AM
Hello ServiceNow family.
Greetings of the day!
I have a requirement.
If a user's title is updated to 'abc' then that user should automatically become a member of 'XYZ' group. Similarly, if the user's title is changed, then he/she should be removed from that group. How can I do this.
Please help.
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 08:29 AM
Hi @Community Alums,
Create a business rule on the user table. Condition title changes.
Script:
(function executeRule(current, previous /*null when async*/) {
if (current.title == 'abc' && previous.title != 'abc') {
var chkMember = new GlideRecord('sys_user_grmember');
chkMember.addEncodedQuery('group=XYZ^user=' + current.sys_id);
chkMember.query();
if(!chkMember.next()){
var crMember = new GlideRecord('sys_user_grmember');
crMember.initialize();
crMember.group = 'XYZ';
crMember.user = current.sys_id;
crMember.insert();
}
} else if (current.title != 'abc' && previous.title == 'abc') {
var dlMember = new GlideRecord('sys_user_grmember');
dlMember.addEncodedQuery('group=XYZ^user=' + current.sys_id);
dlMember.query();
if (dlMember.next()){
dlMember.deleteRecord();
}
}
})(current, previous);
Replace XYZ by the sys_id of the group
Help others to find a correct solution by marking the appropriate response as accepted solution and helpful.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 08:32 AM
@Community Alums You need to write an onBefore Insert/Update Business rule on sys_user table as follows.
Here is the script.
(function executeRule(current, previous /*null when async*/) {
// Add user to group
if(current.title=='VP'){ //Apply your title check here
var glideRecord=new GlideRecord('sys_user_grmember');
glideRecord.initialize();
glideRecord.setValue('user',current.sys_id);
glideRecord.setValue('group','<sys_id of group>');//group to be added
glideRecord.insert();
}
else{//remove user from group
var glideRecordDel=new GlideRecord('sys_user_grmember');
glideRecordDel.addQuery('user',current.sys_id);
glideRecordDel.addQuery('group','<sys_id of group>');
glideRecordDel.query();
if(glideRecordDel.next()){
glideRecordDel.delete();//delete the user from group
}
}
})(current, previous);
Hope this helps.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 08:29 AM
Hi @Community Alums,
Create a business rule on the user table. Condition title changes.
Script:
(function executeRule(current, previous /*null when async*/) {
if (current.title == 'abc' && previous.title != 'abc') {
var chkMember = new GlideRecord('sys_user_grmember');
chkMember.addEncodedQuery('group=XYZ^user=' + current.sys_id);
chkMember.query();
if(!chkMember.next()){
var crMember = new GlideRecord('sys_user_grmember');
crMember.initialize();
crMember.group = 'XYZ';
crMember.user = current.sys_id;
crMember.insert();
}
} else if (current.title != 'abc' && previous.title == 'abc') {
var dlMember = new GlideRecord('sys_user_grmember');
dlMember.addEncodedQuery('group=XYZ^user=' + current.sys_id);
dlMember.query();
if (dlMember.next()){
dlMember.deleteRecord();
}
}
})(current, previous);
Replace XYZ by the sys_id of the group
Help others to find a correct solution by marking the appropriate response as accepted solution and helpful.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 08:32 AM
@Community Alums You need to write an onBefore Insert/Update Business rule on sys_user table as follows.
Here is the script.
(function executeRule(current, previous /*null when async*/) {
// Add user to group
if(current.title=='VP'){ //Apply your title check here
var glideRecord=new GlideRecord('sys_user_grmember');
glideRecord.initialize();
glideRecord.setValue('user',current.sys_id);
glideRecord.setValue('group','<sys_id of group>');//group to be added
glideRecord.insert();
}
else{//remove user from group
var glideRecordDel=new GlideRecord('sys_user_grmember');
glideRecordDel.addQuery('user',current.sys_id);
glideRecordDel.addQuery('group','<sys_id of group>');
glideRecordDel.query();
if(glideRecordDel.next()){
glideRecordDel.delete();//delete the user from group
}
}
})(current, previous);
Hope this helps.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 08:56 AM
@Peter Bodelier @Sandeep Rajput
Thank you very much for the help.
Both the codes are working fine.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-13-2023 08:57 AM
Please mark both the answers correct if they are working for you. This will help other users to find the right information,