diff --git a/src/main.cpp b/src/main.cpp
index 0b520a9..e81150a 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -10,6 +10,7 @@
 
 #include <boost/asio.hpp>
 #include <boost/endian/conversion.hpp>
+#include <sdbusplus/asio/object_server.hpp>
 #include <stdplus/fd/create.hpp>
 #include <stdplus/fd/impl.hpp>
 #include <stdplus/fd/managed.hpp>
@@ -87,11 +88,16 @@
         std::make_shared<BufferImpl>(std::move(pciDataHandler));
 
     // rdeCommandHandler initialization
+    std::shared_ptr<sdbusplus::asio::connection> conn =
+        std::make_shared<sdbusplus::asio::connection>(io);
+    conn->request_name("xyz.openbmc_project.bios_bmc_smm_error_logger");
+    sdbusplus::bus::bus& bus = static_cast<sdbusplus::bus::bus&>(*conn);
+
     std::unique_ptr<rde::FileHandlerInterface> fileIface =
         std::make_unique<rde::ExternalStorerFileWriter>();
     std::unique_ptr<rde::ExternalStorerInterface> exFileIface =
         std::make_unique<rde::ExternalStorerFileInterface>(
-            "/run/bmcweb", std::move(fileIface));
+            bus, "/run/bmcweb", std::move(fileIface));
     std::shared_ptr<rde::RdeCommandHandler> rdeCommandHandler =
         std::make_unique<rde::RdeCommandHandler>(std::move(exFileIface));
 
diff --git a/src/rde/external_storer_file.cpp b/src/rde/external_storer_file.cpp
index 0768134..97f2b10 100644
--- a/src/rde/external_storer_file.cpp
+++ b/src/rde/external_storer_file.cpp
@@ -44,10 +44,11 @@
 }
 
 ExternalStorerFileInterface::ExternalStorerFileInterface(
-    std::string_view rootPath,
+    sdbusplus::bus::bus& bus, std::string_view rootPath,
     std::unique_ptr<FileHandlerInterface> fileHandler) :
-    rootPath(rootPath),
-    fileHandler(std::move(fileHandler)), logServiceId("")
+    bus(bus),
+    rootPath(rootPath), fileHandler(std::move(fileHandler)), logServiceId(""),
+    cperNotifier(std::make_unique<CperFileNotifierHandler>(bus))
 {}
 
 bool ExternalStorerFileInterface::publishJson(std::string_view jsonStr)
@@ -115,8 +116,9 @@
     }
 
     std::string id = boost::uuids::to_string(randomGen());
-    std::string path = "/redfish/v1/Systems/system/LogServices/" +
-                       logServiceId + "/Entries/" + id;
+    std::string fullPath =
+        fmt::format("{}/redfish/v1/Systems/system/LogServices/{}/Entries/{}",
+                    rootPath, logServiceId, id);
 
     // Populate the "Id" with the UUID we generated.
     logEntry["Id"] = id;
@@ -124,7 +126,15 @@
     // a client.
     logEntry.erase("@odata.id");
 
-    return createFile(path, logEntry);
+    if (!fileHandler->createFile(fullPath, logEntry))
+    {
+        fmt::print(stderr, "Failed to create a file for log entry path: {}\n",
+                   fullPath);
+        return false;
+    }
+
+    cperNotifier->createEntry(fullPath + "/index.json");
+    return true;
 }
 
 bool ExternalStorerFileInterface::processLogService(
