You will need to create a plugin that will do that work. Your plugin should use an OfflineMessageListener to detect when a message was sent to an offline user. Then use GroupManager#getGroups to get the shared groups of the offline user and finally use PresenceManager to detect group members that are online.