diff --git a/prod_rmq_agents/group_member.py b/prod_rmq_agents/group_member.py
index 1f621a04fcf6e5ea26fb1912eb0c2a03a805685c..cda7e5ac0bdf97f4ef953cc4b3fde4951b65143f 100644
--- a/prod_rmq_agents/group_member.py
+++ b/prod_rmq_agents/group_member.py
@@ -26,26 +26,34 @@ def group_member(ch, method, properties, body):
     state = msg["state"]
 
     try:
+        if 'remove' in msg["groups"]:
+            for each_group in msg["groups"]["remove"]:
+                logger.debug(f'Removing user {username} from group {each_group}')
+                if str(rcfg.bright_cm_version).split(".")[0] == "8":
+                    grp_remove_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; removefrom {each_group} groupmembers {username}; commit;"'
+                else:
+                    grp_remove_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; removefrom {each_group} members {username}; commit;"'
+
+                logger.info(f'Running command: {grp_remove_user_cmd}')
+                proc = Popen(shlex.split(grp_remove_user_cmd), stdout=PIPE, stderr=PIPE)
+                out,err = proc.communicate()
+                logger.debug(f'Result: {err}')
+                logger.info(f'User {username} is removed from {each_group} group')
 
-        if action == 'add':
-            for each_group in msg["groupnames"]:
+        if 'add' in msg["groups"]:
+            for each_group in msg["groups"]["add"]:
                 logger.debug(f'Adding user {username} to group {each_group}')
-                grp_add_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; append {each_group} members {username}; commit;"'
-                proc = Popen(shlex.split(grp_add_user_cmd), stdout=PIPE, stderr=PIPE)
+                if str(rcfg.bright_cm_version).split(".")[0] == "8":
+                    grp_add_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; append {each_group} groupmembers {username}; commit;"'
+                else:
+                    grp_add_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; append {each_group} members {username}; commit;"'
+
                 logger.info(f'Running command: {grp_add_user_cmd}')
+                proc = Popen(shlex.split(grp_add_user_cmd), stdout=PIPE, stderr=PIPE)
                 out,err = proc.communicate()
                 logger.debug(f'Result: {err}')
                 logger.info(f'User {username} is added to {each_group} group')
 
-        elif action == 'remove':
-            for each_group in msg["groupnames"]:
-                logger.debug(f'Removing user {username} from group {each_group}')
-                grp_remove_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; removefrom {each_group} members {username}; commit;"'
-                proc = Popen(shlex.split(grp_remove_user_cmd), stdout=PIPE, stderr=PIPE)
-                out,err = proc.communicate()
-                logger.info(f'Running command: {grp_remove_user_cmd}')
-                logger.debug(f'Result: {err}')
-                logger.info(f'User {username} is removed from {each_group} group')
 
         msg["success"] = True
 
@@ -73,7 +81,7 @@ def group_member(ch, method, properties, body):
     else:
         print("Error: no reply_to")
 
-    logger.debug(f'User {username} confirmation sent for {action}ing {task}')
+    logger.debug(f'User {username} confirmation sent from {task}')
 
     ch.basic_ack(delivery_tag=method.delivery_tag)