diff --git a/backend/src/baserow/core/handler.py b/backend/src/baserow/core/handler.py
index 1b666e5eb..e4aa92360 100644
--- a/backend/src/baserow/core/handler.py
+++ b/backend/src/baserow/core/handler.py
@@ -54,6 +54,7 @@ from .signals import (
     application_updated,
     application_deleted,
     applications_reordered,
+    before_group_deleted,
     group_created,
     group_updated,
     group_deleted,
@@ -274,6 +275,10 @@ class CoreHandler:
         group_id = group.id
         group_users = list(group.users.all())
 
+        before_group_deleted.send(
+            self, group_id=group_id, group=group, group_users=group_users, user=user
+        )
+
         TrashHandler.trash(user, group, None, group)
 
         group_deleted.send(
diff --git a/backend/src/baserow/core/signals.py b/backend/src/baserow/core/signals.py
index 22dce1530..098bc477b 100644
--- a/backend/src/baserow/core/signals.py
+++ b/backend/src/baserow/core/signals.py
@@ -1,6 +1,8 @@
 from django.dispatch import Signal
 
 
+before_group_deleted = Signal()
+
 group_created = Signal()
 group_updated = Signal()
 group_deleted = Signal()
diff --git a/changelog.md b/changelog.md
index 9f66e0a52..1c664e49c 100644
--- a/changelog.md
+++ b/changelog.md
@@ -16,6 +16,7 @@ For example:
   [#1023](https://gitlab.com/bramw/baserow/-/issues/1023)
 * Added possibility to delete own user account [#880](https://gitlab.com/bramw/baserow/-/issues/880)
 * Added new `group_user_added` signal that is called when an user accept an invitation to join a group.
+* Added new `before_group_deleted` signal that is called just before a group would end up in the trash.
 
 ### Bug Fixes
 
diff --git a/docs/apis/web-socket-api.md b/docs/apis/web-socket-api.md
index 7adf24027..e1fcb38d5 100644
--- a/docs/apis/web-socket-api.md
+++ b/docs/apis/web-socket-api.md
@@ -122,6 +122,7 @@ are subscribed to the page.
 * `authentication`
 * `page_add`
 * `page_discard`
+* `before_group_deleted`
 * `group_created`
 * `group_updated`
 * `group_deleted`