diff --git a/opentech/apply/funds/models.py b/opentech/apply/funds/models.py
index 341f6676c01a13feaa5a5f82e063cbdafdbe3172..7b368cdf49e6e121c6b99a5c7cc7c34fb1444630 100644
--- a/opentech/apply/funds/models.py
+++ b/opentech/apply/funds/models.py
@@ -70,7 +70,7 @@ class SubmittableStreamForm(AbstractStreamForm):
             User = get_user_model()
             email = cleaned_data.get('email')
             full_name = cleaned_data.get('full_name')
-            user = User.objects.get_or_create(
+            user, _ = User.objects.get_or_create_and_notify(
                 email=email,
                 defaults={'full_name': full_name}
             )
diff --git a/opentech/apply/users/models.py b/opentech/apply/users/models.py
index 5f69dd3c35eddb887ed36dacd1d1bf1ad5f3a1e7..aea2011911d3d1a1da1b84bd309fb5fa1efbe3c1 100644
--- a/opentech/apply/users/models.py
+++ b/opentech/apply/users/models.py
@@ -12,15 +12,18 @@ def convert_full_name_to_parts(full_name):
 
 class UserManager(BaseUserManager):
     def get_or_create(self, defaults, **kwargs):
-        defaults.update(is_active=False)
-
+        # Allow passing of 'full_name' but replace it with actual database fields
         first_name, last_name = convert_full_name_to_parts(defaults.pop('full_name', ''))
         defaults.update(first_name=first_name, last_name=last_name)
 
-        user, created = super().get_or_create(defaults=defaults, **kwargs)
+        return super().get_or_create(defaults=defaults, **kwargs)
+
+    def get_or_create_and_notify(self, defaults=dict(), **kwargs):
+        defaults.update(is_active=False)
+        user, created = self.get_or_create(defaults=defaults, **kwargs)
         if created:
             send_activation_email(user)
-        return user
+        return user, created
 
 
 class User(AbstractUser):