diff --git a/control/json/triggers/init.cpp b/control/json/triggers/init.cpp
index dee8587..a060853 100644
--- a/control/json/triggers/init.cpp
+++ b/control/json/triggers/init.cpp
@@ -156,6 +156,7 @@
 
     return [handler = std::move(handler)](
                const std::string& eventName, Manager* mgr,
+               const std::vector<Group>& groups,
                std::vector<std::unique_ptr<ActionBase>>& actions) {
         for (auto& action : actions)
         {
diff --git a/control/json/triggers/signal.cpp b/control/json/triggers/signal.cpp
index 5786049..075697f 100644
--- a/control/json/triggers/signal.cpp
+++ b/control/json/triggers/signal.cpp
@@ -267,6 +267,7 @@
 
     return [subscriber = std::move(subscriber),
             jsonObj](const std::string& eventName, Manager* mgr,
+                     const std::vector<Group>& groups,
                      std::vector<std::unique_ptr<ActionBase>>& actions) {
         for (auto& action : actions)
         {
diff --git a/control/json/triggers/timer.cpp b/control/json/triggers/timer.cpp
index 6e03412..87c2a63 100644
--- a/control/json/triggers/timer.cpp
+++ b/control/json/triggers/timer.cpp
@@ -16,6 +16,7 @@
 #include "timer.hpp"
 
 #include "../manager.hpp"
+#include "group.hpp"
 #include "trigger_aliases.hpp"
 
 #include <fmt/format.h>
@@ -79,6 +80,7 @@
 
     return [type = std::move(type), interval = std::move(interval)](
                const std::string& eventName, Manager* mgr,
+               const std::vector<Group>&,
                std::vector<std::unique_ptr<ActionBase>>& actions) {
         auto tpPtr = std::make_unique<TimerPkg>(eventName, std::ref(actions));
         mgr->addTimer(type, interval, std::move(tpPtr));
diff --git a/control/json/triggers/trigger_aliases.hpp b/control/json/triggers/trigger_aliases.hpp
index 0c7d3b5..448bc20 100644
--- a/control/json/triggers/trigger_aliases.hpp
+++ b/control/json/triggers/trigger_aliases.hpp
@@ -16,6 +16,7 @@
 #pragma once
 
 #include "action.hpp"
+#include "group.hpp"
 #include "manager.hpp"
 
 #include <nlohmann/json.hpp>
@@ -30,8 +31,9 @@
 using json = nlohmann::json;
 
 // Trigger enablement function
-using enableTrigger = std::function<void(
-    const std::string&, Manager*, std::vector<std::unique_ptr<ActionBase>>&)>;
+using enableTrigger =
+    std::function<void(const std::string&, Manager*, const std::vector<Group>&,
+                       std::vector<std::unique_ptr<ActionBase>>&)>;
 
 // Trigger creation function
 using createTrigger =
