diff --git a/app/controllers/api/v1/migrations/external_controller.rb b/app/controllers/api/v1/migrations/external_controller.rb
index f5191878ad59f6cdadb7dce3b92981aba2cef0a6..717af9694ddfb6905e7dc3cf6a6f05e638cd3940 100644
--- a/app/controllers/api/v1/migrations/external_controller.rb
+++ b/app/controllers/api/v1/migrations/external_controller.rb
@@ -75,7 +75,7 @@ module Api
         end
 
         # POST /api/v1/migrations/users.json
-        # Expects: { user: { :name, :email, :external_id, :language, :role } }
+        # Expects: { user: { :name, :email, :password_digest, :provider, :external_id, :language, :role } }
         # Returns: { data: Array[serializable objects] , errors: Array[String] }
         # Does: Creates a user.
         def create_user
@@ -103,10 +103,8 @@ module Api
 
           return render_error(status: :bad_request, errors: user&.errors&.to_a) unless user.save
 
-          if user_hash[:provider] != 'greenlight'
-            user.password_digest = nil
-            user.save(validations: false)
-          end
+          user.password_digest = user_hash[:provider] == 'greenlight' ? user_hash[:password_digest] : nil
+          user.save(validations: false)
 
           render_data status: :created
         end
@@ -228,7 +226,7 @@ module Api
         end
 
         def user_params
-          decrypted_params.require(:user).permit(:name, :email, :provider, :external_id, :language, :role, :created_at)
+          decrypted_params.require(:user).permit(:name, :email, :password_digest, :provider, :external_id, :language, :role, :created_at)
         end
 
         def room_params