diff --git a/control/json/actions/action.hpp b/control/json/actions/action.hpp
index 6c63a07..40547b9 100644
--- a/control/json/actions/action.hpp
+++ b/control/json/actions/action.hpp
@@ -197,6 +197,22 @@
         return _uniqueName;
     }
 
+    /**
+     * @brief Set the name of the owning Event.
+     *
+     * Adds it to the unique name in parentheses. If desired,
+     * the action child classes can do something else with it.
+     *
+     * @param[in] name - The event name
+     */
+    virtual void setEventName(const std::string& name)
+    {
+        if (!name.empty())
+        {
+            _uniqueName += '(' + name + ')';
+        }
+    }
+
   protected:
     /**
      * @brief Logs a message to the flight recorder using
@@ -218,7 +234,7 @@
 
     /* Unique name of the action.
      * It's just the name plus _actionCount at the time of action creation. */
-    const std::string _uniqueName;
+    std::string _uniqueName;
 
     /* Running count of all actions */
     static inline size_t _actionCount = 0;
diff --git a/control/json/actions/pcie_card_floors.hpp b/control/json/actions/pcie_card_floors.hpp
index d3b5710..7b73d39 100644
--- a/control/json/actions/pcie_card_floors.hpp
+++ b/control/json/actions/pcie_card_floors.hpp
@@ -98,6 +98,17 @@
      */
     void run(Zone& zone) override;
 
+    /**
+     * @brief Set the name of the owning Event.
+     *
+     * In the base class it's appending it to the action's unique name.  Don't
+     * do it for this action since there's only one instance of it so no need
+     * to distinguish it from ones under different events and also it just
+     * makes it uglier in the flight recorder.
+     */
+    void setEventName(const std::string& name) override
+    {}
+
   private:
     /**
      * @brief Runs the contents of the action when the settle timer expires.
diff --git a/control/json/event.cpp b/control/json/event.cpp
index a1392e5..0f9ab8a 100644
--- a/control/json/event.cpp
+++ b/control/json/event.cpp
@@ -243,6 +243,7 @@
                 std::move(actionGroups), std::move(actionZones));
             if (actObj)
             {
+                actObj->setEventName(_name);
                 _actions.emplace_back(std::move(actObj));
             }
         }
@@ -254,6 +255,7 @@
                 std::move(actionZones));
             if (actObj)
             {
+                actObj->setEventName(_name);
                 _actions.emplace_back(std::move(actObj));
             }
         }
