diff --git a/gso/workflows/edge_port/terminate_edge_port.py b/gso/workflows/edge_port/terminate_edge_port.py
index 8776347b556adffa5ec28f91dd4af240071eda70..4977b03aa2894d4ca3764359c76e73032fb5a268 100644
--- a/gso/workflows/edge_port/terminate_edge_port.py
+++ b/gso/workflows/edge_port/terminate_edge_port.py
@@ -9,7 +9,9 @@ from orchestrator.types import SubscriptionLifecycle
 from orchestrator.workflow import StepList, begin, done, step
 from orchestrator.workflows.steps import resync, set_status, store_process_subscription, unsync
 from orchestrator.workflows.utils import wrap_modify_initial_input_form
+from pydantic import Field
 from pydantic_forms.types import FormGenerator, UUIDstr
+from pydantic_forms.validators import Label
 
 from gso.products.product_types.edge_port import EdgePort
 from gso.services.lso_client import LSOState, lso_interaction
@@ -24,6 +26,9 @@ def initial_input_form_generator() -> FormGenerator:
     class TerminateForm(SubmitFormPage):
         tt_number: TTNumber
 
+        label: Label = Field("Should this workflow run Ansible playbooks to remove configuration from the router?")
+        run_ansible_steps: bool = True
+
     user_input = yield TerminateForm
     return user_input.model_dump()
 
@@ -83,13 +88,14 @@ def netbox_clean_up(subscription: EdgePort) -> None:
 def terminate_edge_port() -> StepList:
     """Terminate a new edge port in the network."""
     router_is_nokia = conditional(lambda state: state["subscription"]["edge_port"]["node"]["vendor"] == Vendor.NOKIA)
+    run_ansible_steps = conditional(lambda state: state["run_ansible_steps"])
 
     return (
         begin
         >> store_process_subscription(Target.TERMINATE)
         >> unsync
-        >> lso_interaction(remove_edge_port_dry)
-        >> lso_interaction(remove_edge_port_real)
+        >> run_ansible_steps(lso_interaction(remove_edge_port_dry))
+        >> run_ansible_steps(lso_interaction(remove_edge_port_real))
         >> router_is_nokia(netbox_clean_up)
         >> set_status(SubscriptionLifecycle.TERMINATED)
         >> resync
diff --git a/test/workflows/edge_port/test_terminate_edge_port.py b/test/workflows/edge_port/test_terminate_edge_port.py
index d399dd377d04093e4ebf208219cc00b43a623c6d..87cbffa833d1998b6d138aef5225b8740c7db890 100644
--- a/test/workflows/edge_port/test_terminate_edge_port.py
+++ b/test/workflows/edge_port/test_terminate_edge_port.py
@@ -13,12 +13,14 @@ from test.workflows import (
 
 
 @pytest.mark.workflow()
+@pytest.mark.parametrize("include_lso_steps", [True, False])
 @patch("gso.services.netbox_client.NetboxClient.delete_interface")
 @patch("gso.services.netbox_client.NetboxClient.free_interface")
 def test_successful_edge_port_termination(
     mocked_free_interface,
     mocked_delete_interface,
     edge_port_subscription_factory,
+    include_lso_steps,
     faker,
 ):
     #  Set up mock return values
@@ -32,12 +34,14 @@ def test_successful_edge_port_termination(
         {"subscription_id": subscription_id},
         {
             "tt_number": faker.tt_number(),
+            "run_ansible_steps": include_lso_steps,
         },
     ]
     result, process_stat, step_log = run_workflow("terminate_edge_port", initial_data)
 
-    for _ in range(2):
-        result, step_log = assert_lso_interaction_success(result, process_stat, step_log)
+    if include_lso_steps:
+        for _ in range(2):
+            result, step_log = assert_lso_interaction_success(result, process_stat, step_log)
 
     assert_complete(result)