diff --git a/frontend/src/metabase/admin/people/containers/GroupsListingApp.jsx b/frontend/src/metabase/admin/people/containers/GroupsListingApp.jsx
index 925c5e0abdc402b564fb890cd7b0be13cf84c34c..12e0ea996b7da7e1d28e1a9d3d9d3b725b4f79f7 100644
--- a/frontend/src/metabase/admin/people/containers/GroupsListingApp.jsx
+++ b/frontend/src/metabase/admin/people/containers/GroupsListingApp.jsx
@@ -5,7 +5,7 @@ import Group from "metabase/entities/groups";
 import GroupsListing from "../components/GroupsListing";
 import { getGroupsWithoutMetabot } from "../selectors";
 
-@Group.loadList()
+@Group.loadList({ reload: true })
 @connect((state, props) => ({
   groups: getGroupsWithoutMetabot(state, props),
 }))
diff --git a/frontend/test/metabase/scenarios/admin/people/reproductions/12693-group-count.cy.spec.js b/frontend/test/metabase/scenarios/admin/people/reproductions/12693-group-count.cy.spec.js
new file mode 100644
index 0000000000000000000000000000000000000000..e54cfe80d553f33aa021b9150397b078d1215190
--- /dev/null
+++ b/frontend/test/metabase/scenarios/admin/people/reproductions/12693-group-count.cy.spec.js
@@ -0,0 +1,43 @@
+import { restore } from "__support__/e2e/cypress";
+
+const GROUP = "collection";
+
+describe("should update group count after editing a group", () => {
+  beforeEach(() => {
+    restore();
+    cy.signInAsAdmin();
+  });
+
+  it("should update the group count after adding a user to a group (metabase#12693)", () => {
+    cy.visit("/admin/people/groups");
+
+    findRow(GROUP).within(() => cy.findByText("3"));
+    cy.findByText(GROUP).click();
+
+    cy.findByText("Add members").click();
+    cy.focused().type("Bobby");
+    cy.findByText("Bobby Tables").click();
+    cy.findByText("Add").click();
+    cy.findByText("4 members");
+
+    cy.findByText("Groups").click();
+    findRow(GROUP).within(() => cy.findByText("4"));
+  });
+
+  it("should update the group count after removing a user from a group (metabase#12693)", () => {
+    cy.visit("/admin/people/groups");
+
+    findRow(GROUP).within(() => cy.findByText("3"));
+    cy.findByText(GROUP).click();
+
+    findRow("User 1").within(() => cy.findByLabelText("close icon").click());
+    cy.findByText("2 members");
+
+    cy.findByText("Groups").click();
+    findRow(GROUP).within(() => cy.findByText("2"));
+  });
+});
+
+const findRow = text => {
+  return cy.findByText(text).parentsUntil("tbody", "tr");
+};