diff --git a/gso/workflows/iptrunk/migrate_iptrunk.py b/gso/workflows/iptrunk/migrate_iptrunk.py
index 16dc3f74a1eec22146481872a7627ad0fede7d32..706646edb9a476c8d6cb0e0d579949d4af6cda31 100644
--- a/gso/workflows/iptrunk/migrate_iptrunk.py
+++ b/gso/workflows/iptrunk/migrate_iptrunk.py
@@ -222,19 +222,47 @@ def calculate_old_side_data(subscription: Iptrunk, replace_index: int) -> State:
     return {"old_side_data": old_side_data}
 
 
-@step("Check Optical levels on the trunk endpoint")
-def check_ip_trunk_optical_levels(
+@step("Check Optical PRE levels on the trunk endpoint")
+def check_ip_trunk_optical_levels_pre(
     subscription: Iptrunk,
     callback_route: str,
+) -> State:
+    """Check Optical PRE levels on the trunk."""
+    extra_vars = {"wfo_ip_trunk_json": json.loads(json_dumps(subscription)), "check": "optical_pre"}
+
+    execute_playbook(
+        playbook_name="iptrunks_checks.yaml",
+        callback_route=callback_route,
+        inventory=f"{subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node.router_fqdn}\n"
+        f"{subscription.iptrunk.iptrunk_sides[1].iptrunk_side_node.router_fqdn}\n",
+        extra_vars=extra_vars,
+    )
+
+    return {"subscription": subscription}
+
+
+@step("Check Optical POST levels on the trunk endpoint")
+def check_ip_trunk_optical_levels_post(
+    subscription: Iptrunk,
+    callback_route: str,
+    new_node: Router,
+    new_lag_member_interfaces: list[dict],
     replace_index: int,
 ) -> State:
-    """Check Optical levels on the trunk."""
-    extra_vars = {"wfo_ip_trunk_json": json.loads(json_dumps(subscription)), "check": "optical"}
+    """Check Optical POST levels on the trunk."""
+    extra_vars = {
+        "wfo_ip_trunk_json": json.loads(json_dumps(subscription)),
+        "new_node": json.loads(json_dumps(new_node)),
+        "new_lag_member_interfaces": new_lag_member_interfaces,
+        "replace_index": replace_index,
+        "check": "optical_post",
+    }
 
     execute_playbook(
         playbook_name="iptrunks_checks.yaml",
         callback_route=callback_route,
-        inventory=subscription.iptrunk.iptrunk_sides[1 - replace_index].iptrunk_side_node.router_fqdn,
+        inventory=f"{subscription.iptrunk.iptrunk_sides[1 - replace_index].iptrunk_side_node.router_fqdn}\n"
+        f"{new_node.router.router_fqdn}\n",
         extra_vars=extra_vars,
     )
 
@@ -709,13 +737,13 @@ def migrate_iptrunk() -> StepList:
         >> new_side_is_nokia(netbox_reserve_interfaces)
         >> calculate_old_side_data
         >> lso_interaction(set_isis_to_max)
-        >> lso_interaction(check_ip_trunk_optical_levels)
+        >> lso_interaction(check_ip_trunk_optical_levels_pre)
         >> lso_interaction(disable_old_config_dry)
         >> lso_interaction(disable_old_config_real)
         >> lso_interaction(deploy_new_config_dry)
         >> lso_interaction(deploy_new_config_real)
         >> confirm_continue_move_fiber
-        >> lso_interaction(check_ip_trunk_optical_levels)
+        >> lso_interaction(check_ip_trunk_optical_levels_post)
         >> lso_interaction(check_ip_trunk_connectivity)
         >> lso_interaction(deploy_new_isis)
         >> lso_interaction(check_ip_trunk_isis)