diff --git a/src/core/models/teams/teams.py b/src/core/models/teams/teams.py
index 09bcf763cf15155f767bf7cd24bd8d3007667ac0..e5f95667f39a51234330633bb71f83bb9bdd7ff5 100644
--- a/src/core/models/teams/teams.py
+++ b/src/core/models/teams/teams.py
@@ -10,6 +10,7 @@ from rules.predicates import is_superuser, predicate
 
 from core.fields import ConferenceReference
 from core.markdown import compile_translated_markdown_fields, store_relationships
+from core.models.activitylog import ActivityLogEntry, ActivityLogMixin
 from core.models.invitation import Invitation
 from core.predicates import is_conference_staff
 
@@ -39,7 +40,7 @@ def is_public_team(user: 'PlatformUser', team: 'Team | None' = None) -> bool:
     return not team.require_staff
 
 
-class Team(RulesModelMixin, Group, metaclass=RulesModelBase):
+class Team(RulesModelMixin, ActivityLogMixin, Group, metaclass=RulesModelBase):
     class Meta:
         rules_permissions = {
             'view': is_conference_staff | is_public_team,
@@ -101,3 +102,10 @@ class Team(RulesModelMixin, Group, metaclass=RulesModelBase):
             store_relationships(self.conference, self, render_results)
 
         return super().save(*args, update_fields=update_fields, **kwargs)
+
+    def get_activity_log_kind_for_user(self, user: 'PlatformUser') -> ActivityLogEntry.Kind:
+        if self.members.filter(user=user).exists():
+            return ActivityLogEntry.Kind.ENTITY
+        if user.is_superuser:
+            return ActivityLogEntry.Kind.STAFF
+        return ActivityLogEntry.Kind.OTHER