diff --git a/bmc/firmware-handler/test/firmware_skip_unittest.cpp b/bmc/firmware-handler/test/firmware_skip_unittest.cpp
index a549582..243380d 100644
--- a/bmc/firmware-handler/test/firmware_skip_unittest.cpp
+++ b/bmc/firmware-handler/test/firmware_skip_unittest.cpp
@@ -13,7 +13,12 @@
 {
     SkipAction skip;
     EXPECT_TRUE(skip.trigger());
+    size_t i = 0;
+    skip.setCallback([&](TriggerableActionInterface&) { i++; });
     EXPECT_TRUE(skip.trigger());
+    EXPECT_EQ(1, i);
+    EXPECT_TRUE(skip.trigger());
+    EXPECT_EQ(2, i);
 }
 
 TEST(SkipActionTest, ValidateStatusAlwaysSuccess)
diff --git a/bmc/general_systemd.cpp b/bmc/general_systemd.cpp
index 3c59c11..ecd15d4 100644
--- a/bmc/general_systemd.cpp
+++ b/bmc/general_systemd.cpp
@@ -144,6 +144,11 @@
     job = std::nullopt;
     currentStatus =
         result == "done" ? ActionStatus::success : ActionStatus::failed;
+
+    if (cb)
+    {
+        cb(*this);
+    }
 }
 
 std::unique_ptr<TriggerableActionInterface>
diff --git a/bmc/skip_action.cpp b/bmc/skip_action.cpp
index 4392e97..f1a67e0 100644
--- a/bmc/skip_action.cpp
+++ b/bmc/skip_action.cpp
@@ -26,4 +26,21 @@
     return std::make_unique<SkipAction>();
 }
 
+bool SkipAction::trigger()
+{
+    if (cb)
+    {
+        cb(*this);
+    }
+    return true;
+}
+
+void SkipAction::abort()
+{}
+
+ActionStatus SkipAction::status()
+{
+    return ActionStatus::success;
+}
+
 } // namespace ipmi_flash
diff --git a/bmc/skip_action.hpp b/bmc/skip_action.hpp
index 65fcfc8..4fc9462 100644
--- a/bmc/skip_action.hpp
+++ b/bmc/skip_action.hpp
@@ -23,16 +23,9 @@
     SkipAction(SkipAction&&) = default;
     SkipAction& operator=(SkipAction&&) = default;
 
-    bool trigger() override
-    {
-        return true;
-    }
-    void abort() override
-    {}
-    ActionStatus status() override
-    {
-        return ActionStatus::success;
-    }
+    bool trigger() override;
+    void abort() override;
+    ActionStatus status() override;
 };
 
 } // namespace ipmi_flash
diff --git a/bmc/test/triggerable_mock.hpp b/bmc/test/triggerable_mock.hpp
index 9a63dcb..de2b025 100644
--- a/bmc/test/triggerable_mock.hpp
+++ b/bmc/test/triggerable_mock.hpp
@@ -18,6 +18,7 @@
     MOCK_METHOD0(trigger, bool());
     MOCK_METHOD0(abort, void());
     MOCK_METHOD0(status, ActionStatus());
+    using TriggerableActionInterface::cb;
 };
 
 std::unique_ptr<TriggerableActionInterface> CreateTriggerMock()
