diff --git a/config/feature_flags/development/sm_duo_pro_bulk_user_assignment.yml b/config/feature_flags/development/sm_duo_pro_bulk_user_assignment.yml
new file mode 100644
index 0000000000000000000000000000000000000000..76227f3f9cea08b04ba5b994cddaa7f60e032f3e
--- /dev/null
+++ b/config/feature_flags/development/sm_duo_pro_bulk_user_assignment.yml
@@ -0,0 +1,9 @@
+---
+name: sm_duo_pro_bulk_user_assignment
+feature_issue_url: https://gitlab.com/groups/gitlab-org/-/epics/12959
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156779
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/443570
+milestone: '17.2'
+group: group::provision
+type: development
+default_enabled: false
diff --git a/ee/app/helpers/gitlab_subscriptions/code_suggestions_helper.rb b/ee/app/helpers/gitlab_subscriptions/code_suggestions_helper.rb
index b8acf61561ad0ed2359d5f1b3b1f0291db0dfa90..9e8d1f8034370f26fcf01783d651beb145724d9b 100644
--- a/ee/app/helpers/gitlab_subscriptions/code_suggestions_helper.rb
+++ b/ee/app/helpers/gitlab_subscriptions/code_suggestions_helper.rb
@@ -15,7 +15,11 @@ def gitlab_duo_available?(namespace = nil)
     def duo_pro_bulk_user_assignment_available?(namespace = nil)
       return false unless gitlab_duo_available?(namespace)
 
-      Feature.enabled?(:gitlab_com_duo_pro_bulk_user_assignment, namespace) if gitlab_com_subscription?
+      if gitlab_com_subscription?
+        Feature.enabled?(:gitlab_com_duo_pro_bulk_user_assignment, namespace)
+      else
+        Feature.enabled?(:sm_duo_pro_bulk_user_assignment)
+      end
     end
 
     def add_duo_pro_seats_url(subscription_name)
diff --git a/ee/spec/helpers/gitlab_subscriptions/code_suggestions_helper_spec.rb b/ee/spec/helpers/gitlab_subscriptions/code_suggestions_helper_spec.rb
index 010572e9597a6e297031f8303890b3f7a0b4a5d3..2b4bbb03e7290b1f7db7e10f65d1edb1b4060df7 100644
--- a/ee/spec/helpers/gitlab_subscriptions/code_suggestions_helper_spec.rb
+++ b/ee/spec/helpers/gitlab_subscriptions/code_suggestions_helper_spec.rb
@@ -120,14 +120,30 @@
       end
     end
 
-    context 'when GitLab is not .com' do
+    context 'when GitLab is self managed' do
       before do
         stub_saas_features(gitlab_com_subscriptions: false)
       end
 
       context 'when duo pro is available' do
-        it 'returns false' do
-          expect(helper.duo_pro_bulk_user_assignment_available?).to be_falsey
+        context 'when sm feature flag is enabled' do
+          before do
+            stub_feature_flags(sm_duo_pro_bulk_user_assignment: true)
+          end
+
+          it 'returns true' do
+            expect(helper.duo_pro_bulk_user_assignment_available?).to be_truthy
+          end
+        end
+
+        context 'when sm feature flag is disabled' do
+          before do
+            stub_feature_flags(sm_duo_pro_bulk_user_assignment: false)
+          end
+
+          it 'returns false' do
+            expect(helper.duo_pro_bulk_user_assignment_available?).to be_falsey
+          end
         end
       end
 
@@ -136,6 +152,26 @@
           stub_feature_flags(self_managed_code_suggestions: false)
         end
 
+        context 'when sm feature flag is enabled' do
+          before do
+            stub_feature_flags(sm_duo_pro_bulk_user_assignment: true)
+          end
+
+          it 'returns false' do
+            expect(helper.duo_pro_bulk_user_assignment_available?).to be_falsey
+          end
+        end
+
+        context 'when sm feature flag is disabled' do
+          before do
+            stub_feature_flags(sm_duo_pro_bulk_user_assignment: false)
+          end
+
+          it 'returns false' do
+            expect(helper.duo_pro_bulk_user_assignment_available?).to be_falsey
+          end
+        end
+
         it 'returns false' do
           expect(helper.duo_pro_bulk_user_assignment_available?).to be_falsey
         end