diff --git a/platform-mc/manager.cpp b/platform-mc/manager.cpp
index db5175a..1b5ff74 100644
--- a/platform-mc/manager.cpp
+++ b/platform-mc/manager.cpp
@@ -45,5 +45,16 @@
     co_return PLDM_SUCCESS;
 }
 
+exec::task<int> Manager::oemPollForPlatformEvent(pldm_tid_t tid)
+{
+    for (auto& handler : pollHandlers)
+    {
+        if (handler)
+        {
+            co_await handler(tid);
+        }
+    }
+    co_return PLDM_SUCCESS;
+}
 } // namespace platform_mc
 } // namespace pldm
diff --git a/platform-mc/manager.hpp b/platform-mc/manager.hpp
index 29d924a..213f1f5 100644
--- a/platform-mc/manager.hpp
+++ b/platform-mc/manager.hpp
@@ -16,6 +16,9 @@
 namespace platform_mc
 {
 
+using PollHandler = std::function<exec::task<int>(pldm_tid_t tid)>;
+using PollHandlers = std::vector<PollHandler>;
+
 /**
  * @brief Manager
  *
@@ -209,6 +212,23 @@
         eventManager.registerPolledEventHandler(eventClass, handlers);
     }
 
+    /** @brief Register OEM flow to poll the PLDM Event use
+     *         PollForPlatformEventMessage command
+     *
+     *  @param[in] handler - Poll event handlerr
+     */
+    void registerOEMPollMethod(PollHandler handler)
+    {
+        pollHandlers.push_back(std::move(handler));
+    }
+
+    /** @brief OEM task to do OEM event polling
+     *
+     *  @param[in] tid - Destination TID
+     *  @return coroutine return_value - PLDM completion code
+     */
+    exec::task<int> oemPollForPlatformEvent(pldm_tid_t tid);
+
   private:
     /** @brief List of discovered termini */
     TerminiMapper termini{};
@@ -224,6 +244,9 @@
 
     /** @brief Store event manager handler */
     EventManager eventManager;
+
+    /** @brief map of PLDM event type to EventHandlers */
+    PollHandlers pollHandlers;
 };
 } // namespace platform_mc
 } // namespace pldm
diff --git a/platform-mc/sensor_manager.cpp b/platform-mc/sensor_manager.cpp
index 2ffc679..95dd422 100644
--- a/platform-mc/sensor_manager.cpp
+++ b/platform-mc/sensor_manager.cpp
@@ -189,6 +189,11 @@
                 tid, terminus->pollEventId, terminus->pollDataTransferHandle);
         }
 
+        if (manager && (!terminus->pollEvent))
+        {
+            co_await manager->oemPollForPlatformEvent(tid);
+        }
+
         sd_event_now(event.get(), CLOCK_MONOTONIC, &t1);
         auto toBeUpdated = roundRobinSensors[tid].size();
         while (((t1 - t0) < pollingTimeInUsec) && (toBeUpdated > 0))
