diff --git a/gso/workflows/router/redeploy_base_config.py b/gso/workflows/router/redeploy_base_config.py
index 11c4264dc754f2e7289241a2324ba7b00dabf2c7..a7c7dd81effbed681b3e92e2ec79f93566e62d97 100644
--- a/gso/workflows/router/redeploy_base_config.py
+++ b/gso/workflows/router/redeploy_base_config.py
@@ -11,7 +11,7 @@ run. After confirmation by an operator, the configuration is committed to the ma
 from orchestrator.forms import SubmitFormPage
 from orchestrator.forms.validators import Label
 from orchestrator.targets import Target
-from orchestrator.workflow import StepList, begin, done, workflow
+from orchestrator.workflow import StepList, begin, conditional, done, workflow
 from orchestrator.workflows.steps import resync, store_process_subscription, unsync
 from orchestrator.workflows.utils import wrap_modify_initial_input_form
 from pydantic_forms.types import FormGenerator, UUIDstr
@@ -28,6 +28,7 @@ def _initial_input_form(subscription_id: UUIDstr) -> FormGenerator:
     class RedeployBaseConfigForm(SubmitFormPage):
         info_label: Label = f"Redeploy base config on {router.router.router_fqdn}?"
         tt_number: TTNumber
+        is_massive_redeploy: bool = False
 
     user_input = yield RedeployBaseConfigForm
 
@@ -45,11 +46,13 @@ def redeploy_base_config() -> StepList:
     * Perform a dry run of deployment
     * Redeploy base config
     """
+    is_not_massive_redeploy = conditional(lambda state: not bool(state.get("is_massive_redeploy")))
+
     return (
         begin
         >> store_process_subscription(Target.MODIFY)
         >> unsync
-        >> lso_interaction(deploy_base_config_dry)
+        >> is_not_massive_redeploy(lso_interaction(deploy_base_config_dry))
         >> lso_interaction(deploy_base_config_real)
         >> resync
         >> done
diff --git a/gso/workflows/tasks/redeploy_base_config.py b/gso/workflows/tasks/redeploy_base_config.py
index f4e1fca9d0dd0671f3d070fab297654f01d8f1ed..2db1e5a74849d5b7039ab847cb387c55a2599a35 100644
--- a/gso/workflows/tasks/redeploy_base_config.py
+++ b/gso/workflows/tasks/redeploy_base_config.py
@@ -57,7 +57,9 @@ def start_redeploy_workflows(tt_number: TTNumber, selected_routers: list[UUIDstr
     for selected_router in selected_routers:
         try:
             result = requests.post(
-                workflow_url, json=[{"subscription_id": selected_router}, {"tt_number": tt_number}], timeout=10
+                workflow_url,
+                json=[{"subscription_id": selected_router}, {"tt_number": tt_number, "is_massive_redeploy": True}],
+                timeout=10,
             )
             result.raise_for_status()
         except HTTPError as e:
diff --git a/test/workflows/router/test_redeploy_base_config.py b/test/workflows/router/test_redeploy_base_config.py
index 4dee5a5e9d18ed93cc08812f85f256db5174688c..3f07c79a24dd8d3d6446fbfd09a0962f5c1b87c2 100644
--- a/test/workflows/router/test_redeploy_base_config.py
+++ b/test/workflows/router/test_redeploy_base_config.py
@@ -10,7 +10,9 @@ from test.workflows import (
 
 
 @pytest.mark.workflow()
+@pytest.mark.parametrize("is_massive_redeploy", [False, True])
 def test_redeploy_base_config_success(
+    is_massive_redeploy,
     router_subscription_factory,
     faker,
 ):
@@ -18,10 +20,12 @@ def test_redeploy_base_config_success(
     product_id = str(router_subscription_factory().subscription_id)
 
     #  Run workflow
-    initial_input_data = [{"subscription_id": product_id}, {"tt_number": faker.tt_number()}]
+    initial_input_data = [
+        {"subscription_id": product_id},
+        {"tt_number": faker.tt_number(), "is_massive_redeploy": is_massive_redeploy},
+    ]
     result, process_stat, step_log = run_workflow("redeploy_base_config", initial_input_data)
-
-    for _ in range(2):
+    for _ in range(1 if is_massive_redeploy else 2):
         result, step_log = assert_lso_interaction_success(result, process_stat, step_log)
 
     assert_complete(result)