diff --git a/src/citra_qt/configuration/configure_web.cpp b/src/citra_qt/configuration/configure_web.cpp
index fff466aaa..8715fb018 100644
--- a/src/citra_qt/configuration/configure_web.cpp
+++ b/src/citra_qt/configuration/configure_web.cpp
@@ -4,11 +4,15 @@
 
 #include "citra_qt/configuration/configure_web.h"
 #include "core/settings.h"
+#include "core/telemetry_session.h"
 #include "ui_configure_web.h"
 
 ConfigureWeb::ConfigureWeb(QWidget* parent)
     : QWidget(parent), ui(std::make_unique<Ui::ConfigureWeb>()) {
     ui->setupUi(this);
+    connect(ui->button_regenerate_telemetry_id, &QPushButton::clicked, this,
+            &ConfigureWeb::refreshTelemetryID);
+
     this->setConfiguration();
 }
 
@@ -30,8 +34,8 @@ void ConfigureWeb::setConfiguration() {
     ui->toggle_telemetry->setChecked(Settings::values.enable_telemetry);
     ui->edit_username->setText(QString::fromStdString(Settings::values.citra_username));
     ui->edit_token->setText(QString::fromStdString(Settings::values.citra_token));
-
-    updateWeb();
+    ui->label_telemetry_id->setText("Telemetry ID: 0x" +
+                                    QString::number(Core::GetTelemetryId(), 16).toUpper());
 }
 
 void ConfigureWeb::applyConfiguration() {
@@ -41,4 +45,8 @@ void ConfigureWeb::applyConfiguration() {
     Settings::Apply();
 }
 
-void ConfigureWeb::updateWeb() {}
+void ConfigureWeb::refreshTelemetryID() {
+    const u64 new_telemetry_id{Core::RegenerateTelemetryId()};
+    ui->label_telemetry_id->setText("Telemetry ID: 0x" +
+                                    QString::number(new_telemetry_id, 16).toUpper());
+}
diff --git a/src/citra_qt/configuration/configure_web.h b/src/citra_qt/configuration/configure_web.h
index 2c37b8f90..20bc254b9 100644
--- a/src/citra_qt/configuration/configure_web.h
+++ b/src/citra_qt/configuration/configure_web.h
@@ -21,7 +21,7 @@ public:
     void applyConfiguration();
 
 public slots:
-    void updateWeb();
+    void refreshTelemetryID();
 
 private:
     void setConfiguration();
diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp
index 61ba78457..d0f257f58 100644
--- a/src/core/telemetry_session.cpp
+++ b/src/core/telemetry_session.cpp
@@ -38,21 +38,21 @@ static u64 GenerateTelemetryId() {
     return telemetry_id;
 }
 
-static u64 GetTelemetryId() {
+u64 GetTelemetryId() {
     u64 telemetry_id{};
     static const std::string& filename{FileUtil::GetUserPath(D_CONFIG_IDX) + "telemetry_id"};
 
     if (FileUtil::Exists(filename)) {
         FileUtil::IOFile file(filename, "rb");
         if (!file.IsOpen()) {
-            LOG_ERROR(WebService, "failed to open telemetry_id: %s", filename.c_str());
+            LOG_ERROR(Core, "failed to open telemetry_id: %s", filename.c_str());
             return {};
         }
         file.ReadBytes(&telemetry_id, sizeof(u64));
     } else {
         FileUtil::IOFile file(filename, "wb");
         if (!file.IsOpen()) {
-            LOG_ERROR(WebService, "failed to open telemetry_id: %s", filename.c_str());
+            LOG_ERROR(Core, "failed to open telemetry_id: %s", filename.c_str());
             return {};
         }
         telemetry_id = GenerateTelemetryId();
@@ -62,6 +62,19 @@ static u64 GetTelemetryId() {
     return telemetry_id;
 }
 
+u64 RegenerateTelemetryId() {
+    const u64 new_telemetry_id{GenerateTelemetryId()};
+    static const std::string& filename{FileUtil::GetUserPath(D_CONFIG_IDX) + "telemetry_id"};
+
+    FileUtil::IOFile file(filename, "wb");
+    if (!file.IsOpen()) {
+        LOG_ERROR(Core, "failed to open telemetry_id: %s", filename.c_str());
+        return {};
+    }
+    file.WriteBytes(&new_telemetry_id, sizeof(u64));
+    return new_telemetry_id;
+}
+
 TelemetrySession::TelemetrySession() {
 #ifdef ENABLE_WEB_SERVICE
     backend = std::make_unique<WebService::TelemetryJson>();
diff --git a/src/core/telemetry_session.h b/src/core/telemetry_session.h
index cf53835c3..65613daae 100644
--- a/src/core/telemetry_session.h
+++ b/src/core/telemetry_session.h
@@ -35,4 +35,16 @@ private:
     std::unique_ptr<Telemetry::VisitorInterface> backend; ///< Backend interface that logs fields
 };
 
+/**
+ * Gets TelemetryId, a unique identifier used for the user's telemetry sessions.
+ * @returns The current TelemetryId for the session.
+ */
+u64 GetTelemetryId();
+
+/**
+ * Regenerates TelemetryId, a unique identifier used for the user's telemetry sessions.
+ * @returns The new TelemetryId that was generated.
+ */
+u64 RegenerateTelemetryId();
+
 } // namespace Core