To fast . I did a short test and recognized, that the Group Previous attribute holds the last group different to the current one, even if the group has not changed. So my previous approach will not work.
To my knowledge, there is no other reliable possibility in a notification rule condition. The condition is executed after all the changes were made persistent. In this context, you don't have access to the information if the group attribute has changed. Unfortunately, you even do not have access to the current activity log, becasue the condition macro is executed in the context of the corresponding ticket, not the activity log.
Sure, one may think of someting like : find the last transfer activity for the given ticket, check, if this activity was written in the last, lets say, 5 seconds. Then check, if the description of this activity includes a text like "Transfer Group from 'group1' to 'group2'". Yes, this may work, but would have the disadvantage of certain assumptions (timescope of 5 seconds, hardcoded text comparison). Let me know, if the customer want to go this way......
But I have another appoach, which may fit to your customer needs (already tested ):
The idea is to write different activities depending on which attribute, assignee or group, has changed.
I created a new Activity Notification "Transfer Assignee" and changed the Activity Association for the Assignee Attribute to this new Activity Notification.
Now, whenever the assignee gets changed, an activity of type "Transfer" Assignee" will be generated.
When the group is changed, an activity of type "Transfer" will be generated.
By separating theses activities you are able to define your own notifcation rules for these different cases.
The disadvantage of this approach is that if both attributes gets changed, two activites will be generated, and you don't see, if "the other" attribute has changed too.
Hope that helps a bit.
Kind regards
...........Michael