diff --git a/gso/api/v1/imports.py b/gso/api/v1/imports.py
index 643b4bc09a8295a35ca1b6f4ee1bcc08a978371e..6bfa786f88550e770649a53d5d5240ce9740ebe0 100644
--- a/gso/api/v1/imports.py
+++ b/gso/api/v1/imports.py
@@ -178,8 +178,8 @@ def _start_process(process_name: str, data: dict) -> UUID:
 
 
 @router.post("/sites", status_code=status.HTTP_201_CREATED, response_model=ImportResponseModel)
-def import_site(site: SiteImportModel) -> dict[str, Any]:
-    """Import a site by running the import_site workflow.
+def create_imported_site(site: SiteImportModel) -> dict[str, Any]:
+    """Import a site by running the create_imported_site workflow.
 
     :param site: The site information to be imported.
     :type site: SiteImportModel
@@ -189,13 +189,13 @@ def import_site(site: SiteImportModel) -> dict[str, Any]:
 
     :raises HTTPException: If the site already exists or if there's an error in the process.
     """
-    pid = _start_process("import_site", site.dict())
+    pid = _start_process("create_imported_site", site.dict())
     return {"detail": "Site added successfully.", "pid": pid}
 
 
 @router.post("/routers", status_code=status.HTTP_201_CREATED, response_model=ImportResponseModel)
-def import_router(router_data: RouterImportModel) -> dict[str, Any]:
-    """Import a router by running the import_router workflow.
+def create_imported_router(router_data: RouterImportModel) -> dict[str, Any]:
+    """Import a router by running the create_imported_router workflow.
 
     :param router_data: The router information to be imported.
     :type router_data: RouterImportModel
@@ -205,13 +205,13 @@ def import_router(router_data: RouterImportModel) -> dict[str, Any]:
 
     :raises HTTPException: If there's an error in the process.
     """
-    pid = _start_process("import_router", router_data.dict())
+    pid = _start_process("create_imported_router", router_data.dict())
     return {"detail": "Router has been added successfully", "pid": pid}
 
 
 @router.post("/iptrunks", status_code=status.HTTP_201_CREATED, response_model=ImportResponseModel)
-def import_iptrunk(iptrunk_data: IptrunkImportModel) -> dict[str, Any]:
-    """Import an iptrunk by running the import_iptrunk workflow.
+def create_imported_iptrunk(iptrunk_data: IptrunkImportModel) -> dict[str, Any]:
+    """Import an iptrunk by running the create_imported_iptrunk workflow.
 
     :param iptrunk_data: The iptrunk information to be imported.
     :type iptrunk_data: IptrunkImportModel
@@ -221,13 +221,13 @@ def import_iptrunk(iptrunk_data: IptrunkImportModel) -> dict[str, Any]:
 
     :raises HTTPException: If there's an error in the process.
     """
-    pid = _start_process("import_iptrunk", iptrunk_data.dict())
+    pid = _start_process("create_imported_iptrunk", iptrunk_data.dict())
     return {"detail": "Iptrunk has been added successfully", "pid": pid}
 
 
 @router.post("/super-pop-switches", status_code=status.HTTP_201_CREATED, response_model=ImportResponseModel)
-def import_super_pop_switch(super_pop_switch_data: SuperPopSwitchImportModel) -> dict[str, Any]:
-    """Import a Super PoP switch by running the import_super_pop_switch workflow.
+def create_imported_super_pop_switch(super_pop_switch_data: SuperPopSwitchImportModel) -> dict[str, Any]:
+    """Import a Super PoP switch by running the create_imported_super_pop_switch workflow.
 
     :param super_pop_switch_data: The Super PoP switch information to be imported.
     :type super_pop_switch_data: SuperPopSwitchImportModel
@@ -237,13 +237,13 @@ def import_super_pop_switch(super_pop_switch_data: SuperPopSwitchImportModel) ->
 
     :raises HTTPException: If there's an error in the process.
     """
-    pid = _start_process("import_super_pop_switch", super_pop_switch_data.dict())
+    pid = _start_process("create_imported_super_pop_switch", super_pop_switch_data.dict())
     return {"detail": "Super PoP switch has been added successfully", "pid": pid}
 
 
 @router.post("/office-routers", status_code=status.HTTP_201_CREATED, response_model=ImportResponseModel)
-def import_office_router(office_router_data: OfficeRouterImportModel) -> dict[str, Any]:
-    """Import a office router by running the import_office_router workflow.
+def create_imported_office_router(office_router_data: OfficeRouterImportModel) -> dict[str, Any]:
+    """Import an office router by running the create_imported_office_router workflow.
 
     :param office_router_data: The office router information to be imported.
     :type office_router_data: OfficeRouterImportModel
@@ -253,5 +253,5 @@ def import_office_router(office_router_data: OfficeRouterImportModel) -> dict[st
 
     :raises HTTPException: If there's an error in the process.
     """
-    pid = _start_process("import_office_router", office_router_data.dict())
+    pid = _start_process("create_imported_office_router", office_router_data.dict())
     return {"detail": "Office router has been added successfully", "pid": pid}
diff --git a/gso/cli/imports.py b/gso/cli/imports.py
index 64a6af56cdb691a15c796fc27fce8e0d297b7950..fc8253a24369890e0596fc73f165ae41e22406ba 100644
--- a/gso/cli/imports.py
+++ b/gso/cli/imports.py
@@ -19,11 +19,11 @@ from gso.api.v1.imports import (
     RouterImportModel,
     SiteImportModel,
     SuperPopSwitchImportModel,
-    import_iptrunk,
-    import_office_router,
-    import_router,
-    import_site,
-    import_super_pop_switch,
+    create_imported_iptrunk,
+    create_imported_office_router,
+    create_imported_router,
+    create_imported_site,
+    create_imported_super_pop_switch,
 )
 from gso.db.models import PartnerTable
 from gso.services.subscriptions import get_active_subscriptions_by_field_and_value
@@ -87,31 +87,31 @@ def generic_import_data(
 
 
 @app.command()
-def import_sites(filepath: str = common_filepath_option) -> None:
+def create_imported_sites(filepath: str = common_filepath_option) -> None:
     """Import sites into GSO."""
     # Use the import_data function to handle common import logic
-    generic_import_data(filepath, SiteImportModel, import_site, "site_name")
+    generic_import_data(filepath, SiteImportModel, create_imported_site, "site_name")
 
 
 @app.command()
-def import_routers(filepath: str = common_filepath_option) -> None:
+def create_imported_routers(filepath: str = common_filepath_option) -> None:
     """Import routers into GSO."""
     # Use the import_data function to handle common import logic
-    generic_import_data(filepath, RouterImportModel, import_router, "hostname")
+    generic_import_data(filepath, RouterImportModel, create_imported_router, "hostname")
 
 
 @app.command()
-def import_super_pop_switches(filepath: str = common_filepath_option) -> None:
+def create_imported_super_pop_switches(filepath: str = common_filepath_option) -> None:
     """Import Super PoP Switches into GSO."""
     # Use the import_data function to handle common import logic
-    generic_import_data(filepath, SuperPopSwitchImportModel, import_super_pop_switch, "hostname")
+    generic_import_data(filepath, SuperPopSwitchImportModel, create_imported_super_pop_switch, "hostname")
 
 
 @app.command()
-def import_office_routers(filepath: str = common_filepath_option) -> None:
+def create_imported_office_routers(filepath: str = common_filepath_option) -> None:
     """Import office routers into GSO."""
     # Use the import_data function to handle common import logic
-    generic_import_data(filepath, OfficeRouterImportModel, import_office_router, "office_router_fqdn")
+    generic_import_data(filepath, OfficeRouterImportModel, create_imported_office_router, "office_router_fqdn")
 
 
 def get_router_subscription_id(node_name: str) -> str | None:
@@ -126,7 +126,7 @@ def get_router_subscription_id(node_name: str) -> str | None:
 
 
 @app.command()
-def import_iptrunks(filepath: str = common_filepath_option) -> None:
+def create_imported_iptrunks(filepath: str = common_filepath_option) -> None:
     """Import IP trunks into GSO."""
     successfully_imported_data = []
     data = read_data(filepath)
@@ -192,7 +192,7 @@ def import_iptrunks(filepath: str = common_filepath_option) -> None:
                 iptrunk_ipv4_network=iptrunk_ipv4_network,  # type:ignore[arg-type]
                 iptrunk_ipv6_network=iptrunk_ipv6_network,  # type:ignore[arg-type]
             )
-            import_iptrunk(initial_data)
+            create_imported_iptrunk(initial_data)
             successfully_imported_data.append(trunk["id"])
             typer.echo(f"Successfully imported IP Trunk: {trunk['id']}")
         except ValidationError as e:
diff --git a/gso/products/product_types/iptrunk.py b/gso/products/product_types/iptrunk.py
index 82c912bf062b1c2afc5bd5f2b55e352507fd5a07..6f6b85b192874d0a120bdb7f4220940c11c8d190 100644
--- a/gso/products/product_types/iptrunk.py
+++ b/gso/products/product_types/iptrunk.py
@@ -34,7 +34,9 @@ class ImportedIptrunkInactive(SubscriptionModel, is_base=True):
     iptrunk: IptrunkBlockInactive
 
 
-class ImportedIptrunk(ImportedIptrunkInactive, lifecycle=[SubscriptionLifecycle.ACTIVE]):
+class ImportedIptrunk(
+    ImportedIptrunkInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING, SubscriptionLifecycle.ACTIVE]
+):
     """An IP trunk that is active."""
 
     iptrunk: IptrunkBlock
diff --git a/gso/products/product_types/office_router.py b/gso/products/product_types/office_router.py
index 04c47dfbadaaadac9c268cf47221c9dc462c5f98..cfb98cdbf1cc5e62468811bffdbdac317ff33fe8 100644
--- a/gso/products/product_types/office_router.py
+++ b/gso/products/product_types/office_router.py
@@ -34,7 +34,9 @@ class ImportedOfficeRouterInactive(SubscriptionModel, is_base=True):
     office_router: OfficeRouterBlockInactive
 
 
-class ImportedOfficeRouter(ImportedOfficeRouterInactive, lifecycle=[SubscriptionLifecycle.ACTIVE]):
+class ImportedOfficeRouter(
+    ImportedOfficeRouterInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING, SubscriptionLifecycle.ACTIVE]
+):
     """An imported office router that is currently active."""
 
     office_router: OfficeRouterBlock
diff --git a/gso/products/product_types/router.py b/gso/products/product_types/router.py
index e24df3e7b3f5af3b9810f8155b6ad9906b2a258d..973abc90a692b78c349c7a7387343596d2acce12 100644
--- a/gso/products/product_types/router.py
+++ b/gso/products/product_types/router.py
@@ -34,7 +34,9 @@ class ImportedRouterInactive(SubscriptionModel, is_base=True):
     router: RouterBlockInactive
 
 
-class ImportedRouter(ImportedRouterInactive, lifecycle=[SubscriptionLifecycle.ACTIVE]):
+class ImportedRouter(
+    ImportedRouterInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING, SubscriptionLifecycle.ACTIVE]
+):
     """An imported router that is currently active."""
 
     router: RouterBlock
diff --git a/gso/products/product_types/site.py b/gso/products/product_types/site.py
index 0fb16a574588e43cab41615a60162f49c16dbdc1..be5c90b0ccc3972f58786ba009267de401f4c9bc 100644
--- a/gso/products/product_types/site.py
+++ b/gso/products/product_types/site.py
@@ -34,7 +34,7 @@ class ImportedSiteInactive(SubscriptionModel, is_base=True):
     site: SiteBlockInactive
 
 
-class ImportedSite(ImportedSiteInactive, lifecycle=[SubscriptionLifecycle.ACTIVE]):
+class ImportedSite(ImportedSiteInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING, SubscriptionLifecycle.ACTIVE]):
     """An imported site that is currently active."""
 
     site: SiteBlock
diff --git a/gso/products/product_types/super_pop_switch.py b/gso/products/product_types/super_pop_switch.py
index 3c80e3646b6b3a3d8108b1a44c30e38817255366..298627ae5c7d6949981fffb406685e19eb8b6f2e 100644
--- a/gso/products/product_types/super_pop_switch.py
+++ b/gso/products/product_types/super_pop_switch.py
@@ -34,7 +34,9 @@ class ImportedSuperPopSwitchInactive(SubscriptionModel, is_base=True):
     super_pop_switch: SuperPopSwitchBlockInactive
 
 
-class ImportedSuperPopSwitch(ImportedSuperPopSwitchInactive, lifecycle=[SubscriptionLifecycle.ACTIVE]):
+class ImportedSuperPopSwitch(
+    ImportedSuperPopSwitchInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING, SubscriptionLifecycle.ACTIVE]
+):
     """An imported Super PoP switch that is currently active."""
 
     super_pop_switch: SuperPopSwitchBlock
diff --git a/test/api/test_imports.py b/test/api/test_imports.py
index f7b58f723eff687b92337281e14af11d5688cd8b..1752ea6170d8856c6379248263f97b48a284454a 100644
--- a/test/api/test_imports.py
+++ b/test/api/test_imports.py
@@ -86,7 +86,9 @@ def mock_routers(iptrunk_data):
 
 
 @patch("gso.api.v1.imports._start_process")
-def test_import_iptrunk_successful_with_mocked_process(mock_start_process, test_client, mock_routers, iptrunk_data):
+def test_create_imported_iptrunk_successful_with_mocked_process(
+    mock_start_process, test_client, mock_routers, iptrunk_data
+):
     mock_start_process.return_value = "123e4567-e89b-12d3-a456-426655440000"
     response = test_client.post(IPTRUNK_IMPORT_API_URL, json=iptrunk_data)
 
@@ -151,7 +153,7 @@ def office_router_data(faker, site_data):
     }
 
 
-def test_import_site_endpoint(test_client, site_data):
+def test_create_imported_site_endpoint(test_client, site_data):
     assert SubscriptionTable.query.all() == []
     # Post data to the endpoint
     response = test_client.post(SITE_IMPORT_ENDPOINT, json=site_data)
@@ -165,7 +167,7 @@ def test_import_site_endpoint(test_client, site_data):
     assert subscription is not None
 
 
-def test_import_site_endpoint_with_existing_site(test_client, site_data):
+def test_create_imported_site_endpoint_with_existing_site(test_client, site_data):
     response = test_client.post(SITE_IMPORT_ENDPOINT, json=site_data)
     assert SubscriptionTable.query.count() == 1
     assert response.status_code == 201
@@ -175,7 +177,7 @@ def test_import_site_endpoint_with_existing_site(test_client, site_data):
     assert SubscriptionTable.query.count() == 1
 
 
-def test_import_site_endpoint_with_invalid_data(test_client, site_data):
+def test_create_imported_site_endpoint_with_invalid_data(test_client, site_data):
     # invalid data, missing site_latitude and invalid site_longitude
     site_data.pop("site_latitude")
     site_data["site_longitude"] = "invalid"
@@ -190,7 +192,7 @@ def test_import_site_endpoint_with_invalid_data(test_client, site_data):
     assert response["detail"][1]["msg"] == "value is not a valid float"
 
 
-def test_import_router_endpoint(test_client, site_data, router_data):
+def test_create_imported_router_endpoint(test_client, site_data, router_data):
     # Create a site first
     response = test_client.post(SITE_IMPORT_ENDPOINT, json=site_data)
     assert response.status_code == 201
@@ -201,7 +203,7 @@ def test_import_router_endpoint(test_client, site_data, router_data):
     assert SubscriptionTable.query.count() == 2
 
 
-def test_import_router_endpoint_with_invalid_data(test_client, site_data, router_data):
+def test_create_imported_router_endpoint_with_invalid_data(test_client, site_data, router_data):
     response = test_client.post(SITE_IMPORT_ENDPOINT, json=site_data)
     assert response.status_code == 201
     assert SubscriptionTable.query.count() == 1
@@ -219,7 +221,7 @@ def test_import_router_endpoint_with_invalid_data(test_client, site_data, router
     assert response["detail"][1]["msg"] == "value is not a valid IPv6 address"
 
 
-def test_import_iptrunk_successful_with_real_process(test_client, mock_routers, iptrunk_data):
+def test_create_imported_iptrunk_successful_with_real_process(test_client, mock_routers, iptrunk_data):
     response = test_client.post(IPTRUNK_IMPORT_API_URL, json=iptrunk_data)
     assert response.status_code == 201
 
@@ -235,7 +237,7 @@ def test_import_iptrunk_successful_with_real_process(test_client, mock_routers,
 
 
 @patch("gso.api.v1.imports._start_process")
-def test_import_iptrunk_invalid_partner(mock_start_process, test_client, mock_routers, iptrunk_data):
+def test_create_imported_iptrunk_invalid_partner(mock_start_process, test_client, mock_routers, iptrunk_data):
     iptrunk_data["partner"] = "not_existing_partner"
     mock_start_process.return_value = "123e4567-e89b-12d3-a456-426655440000"
     response = test_client.post(IPTRUNK_IMPORT_API_URL, json=iptrunk_data)
@@ -253,7 +255,7 @@ def test_import_iptrunk_invalid_partner(mock_start_process, test_client, mock_ro
 
 
 @patch("gso.api.v1.imports._start_process")
-def test_import_iptrunk_invalid_router_id_side_a_and_b(mock_start_process, test_client, iptrunk_data):
+def test_create_imported_iptrunk_invalid_router_id_side_a_and_b(mock_start_process, test_client, iptrunk_data):
     iptrunk_data["side_a_node_id"] = "NOT FOUND"
     iptrunk_data["side_b_node_id"] = "NOT FOUND"
 
@@ -278,7 +280,9 @@ def test_import_iptrunk_invalid_router_id_side_a_and_b(mock_start_process, test_
 
 
 @patch("gso.api.v1.imports._start_process")
-def test_import_iptrunk_non_unique_members_side_a(mock_start_process, test_client, mock_routers, iptrunk_data, faker):
+def test_create_imported_iptrunk_non_unique_members_side_a(
+    mock_start_process, test_client, mock_routers, iptrunk_data, faker
+):
     mock_start_process.return_value = "123e4567-e89b-12d3-a456-426655440000"
 
     repeat_interface_a = {
@@ -317,7 +321,7 @@ def test_import_iptrunk_non_unique_members_side_a(mock_start_process, test_clien
 
 
 @patch("gso.api.v1.imports._start_process")
-def test_import_iptrunk_fails_on_side_a_member_count_mismatch(
+def test_create_imported_iptrunk_fails_on_side_a_member_count_mismatch(
     mock_start_process,
     test_client,
     mock_routers,
@@ -342,7 +346,7 @@ def test_import_iptrunk_fails_on_side_a_member_count_mismatch(
 
 
 @patch("gso.api.v1.imports._start_process")
-def test_import_iptrunk_fails_on_side_a_and_b_members_mismatch(
+def test_create_imported_iptrunk_fails_on_side_a_and_b_members_mismatch(
     mock_start_process,
     test_client,
     iptrunk_data,
@@ -366,7 +370,7 @@ def test_import_iptrunk_fails_on_side_a_and_b_members_mismatch(
     }
 
 
-def test_import_super_pop_switch_endpoint(test_client, site_data, super_pop_switch_data):
+def test_create_imported_super_pop_switch_endpoint(test_client, site_data, super_pop_switch_data):
     response = test_client.post(SITE_IMPORT_ENDPOINT, json=site_data)
     assert response.status_code == 201
     assert SubscriptionTable.query.count() == 1
@@ -376,7 +380,7 @@ def test_import_super_pop_switch_endpoint(test_client, site_data, super_pop_swit
     assert SubscriptionTable.query.count() == 2
 
 
-def test_import_super_pop_switch_endpoint_with_invalid_data(test_client, site_data, super_pop_switch_data):
+def test_create_imported_super_pop_switch_endpoint_with_invalid_data(test_client, site_data, super_pop_switch_data):
     response = test_client.post(SITE_IMPORT_ENDPOINT, json=site_data)
     assert response.status_code == 201
     assert SubscriptionTable.query.count() == 1
@@ -394,7 +398,7 @@ def test_import_super_pop_switch_endpoint_with_invalid_data(test_client, site_da
     assert response["detail"][1]["msg"] == "value is not a valid IPv4 address"
 
 
-def test_import_office_router_endpoint(test_client, site_data, office_router_data):
+def test_create_imported_office_router_endpoint(test_client, site_data, office_router_data):
     response = test_client.post(SITE_IMPORT_ENDPOINT, json=site_data)
     assert response.status_code == 201
     assert SubscriptionTable.query.count() == 1
@@ -404,7 +408,7 @@ def test_import_office_router_endpoint(test_client, site_data, office_router_dat
     assert SubscriptionTable.query.count() == 2
 
 
-def test_import_office_router_endpoint_with_invalid_data(test_client, site_data, office_router_data):
+def test_create_imported_office_router_endpoint_with_invalid_data(test_client, site_data, office_router_data):
     response = test_client.post(SITE_IMPORT_ENDPOINT, json=site_data)
     assert response.status_code == 201
     assert SubscriptionTable.query.count() == 1