diff --git a/district/forms.py b/district/forms.py
index fa3d801a0e7507a582bc2e1a532fa8513b24cb2b..257c9baa5db0190562feb23d7e4f631062b319ef 100644
--- a/district/forms.py
+++ b/district/forms.py
@@ -34,29 +34,6 @@ class JekyllImportForm(SharedJekyllImportForm):
         )
 
 
-class DistrictPeoplePageForm(WagtailAdminPageForm):
-    def save(self, *args, **kwargs):
-        parental_save_result = super().save(*args, **kwargs)
-
-        # If anything inside the content field has changed and the instance exists,
-        # sync Octopus profiles just in case.
-        if "content" in self.changed_data and self.instance.pk:
-            collection_id = self.instance.root_page.image_collection_id
-
-            if collection_id is None:
-                collection_id = Collection.objects.first().id
-
-            for group in self.instance.get_syncable_octopus_groups():
-                import_people_from_group.delay(
-                    self.instance.id,
-                    collection_id,
-                    group["shortcut"],
-                    group["title"],
-                )
-
-        return parental_save_result
-
-
 class DistrictArticlesPageForm(SharedArticlesPageForm, JekyllImportForm):
     def __init__(self, *args, **kwargs):
         from shared.models import SharedTag
diff --git a/district/models.py b/district/models.py
index 240a1e2188c643d681ac9af3a95aeb713f9beed7..578ef32a6de75cc1a23a2f59861739da8c4ab09d 100644
--- a/district/models.py
+++ b/district/models.py
@@ -26,7 +26,7 @@ from wagtail.models import Orderable, Page
 from wagtail.models.media import Collection
 from wagtailmetadata.models import MetadataPageMixin
 from wagtail import hooks
-from .tasks import import_manual_person
+from .tasks import import_manual_person, import_people_from_group, import_people_from_team
 
 from calendar_utils.models import CalendarMixin
 from maps_utils.blocks import MapPointBlock
@@ -79,7 +79,6 @@ from shared.utils import (
 from . import blocks
 from .forms import (
     DistrictArticlesPageForm,
-    DistrictPeoplePageForm,
 )
 
 CONTENT_BLOCKS = DEFAULT_CONTENT_BLOCKS + [
@@ -700,8 +699,6 @@ class DistrictPersonPage(MainPersonPageMixin):
 
 
 class DistrictPeoplePage(MainPeoplePageMixin):
-    base_form_class = DistrictPeoplePageForm
-
     ### FIELDS
 
     content = StreamField(
@@ -1619,8 +1616,6 @@ class DistrictGeoFeatureDetailPage(
 @hooks.register("after_create_page")
 @hooks.register("after_edit_page")
 def after_create_edit_page_hook(request, page):
-    print(page)
-
     if isinstance(page, DistrictManualOctopusPersonPage):
         collection_id = page.root_page.image_collection_id
 
@@ -1632,6 +1627,29 @@ def after_create_edit_page_hook(request, page):
             collection_id,
         )
 
+    if isinstance(page, DistrictPeoplePage):
+        collection_id = page.root_page.image_collection_id
+
+        if collection_id is None:
+            collection_id = Collection.objects.first().id
+
+        for group in page.get_syncable_octopus_groups():
+            import_people_from_group.delay(
+                page.id,
+                collection_id,
+                group["shortcut"],
+                group["title"],
+            )
+        
+        for team in page.get_syncable_octopus_teams():
+            import_people_from_team.delay(
+                page.id,
+                collection_id,
+                team["shortcut"],
+                team["title"],
+                team["roles"]
+            )
+
 
 # Legacy models required for migrations
 
diff --git a/shared/people_import.py b/shared/people_import.py
index fbdde0489bdbbb760dc9087e42878e2d42b08311..05eff1a4f4191f69496e14b9f4ebcef8e518ebd1 100644
--- a/shared/people_import.py
+++ b/shared/people_import.py
@@ -434,6 +434,7 @@ class PeopleTeamImporter(ImporterMixin):
                       node {{
                         memberships {{
                           roleDisplay
+                          roleOrder
                           person {{
                             id
                           }}
@@ -450,7 +451,10 @@ class PeopleTeamImporter(ImporterMixin):
         users = []
 
         for node in result["allTeams"]["edges"]:
-            for membership in node["node"]["memberships"]:
+            for membership in node["node"]["memberships"].sort(
+                key=lambda membership: membership["roleOrder"],
+                reverse=True
+            ):
                 # Can't do this in the query (yet), so just filter here
 
                 if len(self.team_roles) != 0 and membership["roleDisplay"] not in self.team_roles: