diff --git a/greg/management/commands/import_guests.py b/greg/management/commands/import_guests.py
index 3af001a582734d19c895daafa3879528d8abeb61..5dec520ea6cd62f7feac17583c66105a6a663824 100644
--- a/greg/management/commands/import_guests.py
+++ b/greg/management/commands/import_guests.py
@@ -4,13 +4,12 @@ Import guestsdata from json.
 
 import datetime
 import json
-
 from typing import Optional
 
 import structlog
 
-# from django.conf import settings
 from django.core.management.base import BaseCommand, CommandParser
+from django.db import IntegrityError
 from django.utils.timezone import make_aware
 
 from greg.models import (
@@ -38,6 +37,7 @@ class Command(BaseCommand):
         Identity.IdentityType.FEIDE_ID,
         Identity.IdentityType.NORWEGIAN_NATIONAL_ID_NUMBER,
         Identity.IdentityType.PASSPORT_NUMBER,
+        Identity.IdentityType.MIGRATION_ID,
     ]
 
     REQUIRED_IDS = [
@@ -49,6 +49,7 @@ class Command(BaseCommand):
         super().__init__(*args, **kwargs)
         self._orgunit_id_type = "legacy_stedkode"
         self._end_date = datetime.datetime.today() + datetime.timedelta(days=100)
+        self._ignore_id_req = False
 
     def add_arguments(self, parser: CommandParser) -> None:
         parser.add_argument(
@@ -66,6 +67,12 @@ class Command(BaseCommand):
             type=datetime.date.fromisoformat,
             help="End date of roles. Default: today + 100 days",
         )
+        parser.add_argument(
+            "--ignore_id_req",
+            default=False,
+            action="store_true",
+            help="Imports people without required ids if set",
+        )
 
     def _find_person_from_ids(self, ids: dict) -> Optional[Person]:
         """
@@ -231,10 +238,31 @@ class Command(BaseCommand):
         matching_ids = [x for x in id_data if x["id_type"] in self.REQUIRED_IDS]
         return len(matching_ids) > 0
 
+    def create_migration_entry(self, person: Person, external_id: str):
+        """Mark the person with entity id from cerebrum"""
+
+        existing_entry = Identity.objects.filter(
+            person=person, type=Identity.IdentityType.MIGRATION_ID, value=external_id
+        )
+        if existing_entry:
+            return
+        try:
+            Identity.objects.create(
+                person=person,
+                type=Identity.IdentityType.MIGRATION_ID,
+                source="cerebrum",
+                value=external_id,
+                verified=Identity.Verified.AUTOMATIC,
+                verified_at=make_aware(datetime.datetime.now()),
+            )
+        except IntegrityError as e:
+            logger.error("Migration ID in use by a different person")
+            raise e
+
     def upsert_person(self, external_id: str, data: dict) -> Optional[Person]:
         """Add or update person"""
 
-        if not self._has_required_id(data["ids"]):
+        if not self._ignore_id_req and not self._has_required_id(data["ids"]):
             logger.error("missing_required_id", external_id=external_id)
             return None
 
@@ -263,6 +291,7 @@ class Command(BaseCommand):
             self.upsert_identity(person, identity)
         for role in data["role"]:
             self.upsert_role(person, role)
+        self.create_migration_entry(person, external_id)
         return person
 
     def handle(self, *args, **options):
@@ -272,6 +301,7 @@ class Command(BaseCommand):
 
         self._orgunit_id_type = options["orgunit_type"]
         self._end_date = options["end_date"]
+        self._ignore_id_req = options["ignore_id_req"]
 
         with open(options["file"], "r", encoding="UTF-8") as fp:
             persons = json.load(fp)
diff --git a/greg/migrations/0022_alter_identity_type.py b/greg/migrations/0022_alter_identity_type.py
new file mode 100644
index 0000000000000000000000000000000000000000..8561da2832c7b309743c9b929223381df81be087
--- /dev/null
+++ b/greg/migrations/0022_alter_identity_type.py
@@ -0,0 +1,29 @@
+# Generated by Django 4.0.2 on 2022-04-29 14:37
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("greg", "0021_identity_identity_type_value_unique"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="identity",
+            name="type",
+            field=models.CharField(
+                choices=[
+                    ("feide_id", "Feide Id"),
+                    ("feide_email", "Feide Email"),
+                    ("passport_number", "Passport Number"),
+                    ("norwegian_national_id_number", "Norwegian National Id Number"),
+                    ("private_email", "Private Email"),
+                    ("private_mobile", "Private Mobile Number"),
+                    ("migration_id", "Migration Id"),
+                ],
+                max_length=64,
+            ),
+        ),
+    ]
diff --git a/greg/models.py b/greg/models.py
index 43fe9f0799b81f10e58ac83d407b46b80590d762..20e01efcd3e6ce18f46ef5062eff7053fac6545e 100644
--- a/greg/models.py
+++ b/greg/models.py
@@ -272,6 +272,8 @@ class Identity(BaseModel):
         NORWEGIAN_NATIONAL_ID_NUMBER = "norwegian_national_id_number"
         PRIVATE_EMAIL = "private_email"
         PRIVATE_MOBILE_NUMBER = "private_mobile"
+        # Used to identify the id of this person in some other system
+        MIGRATION_ID = "migration_id"
 
     class Verified(models.TextChoices):
         AUTOMATIC = "automatic"