diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js
index 944bf6743e4244b63e6207b0b8953048fa3a9646..f96df4b886d368a0c367c60f74d09178c170cc67 100644
--- a/javascript/src/iframe/viamapi-iframe.js
+++ b/javascript/src/iframe/viamapi-iframe.js
@@ -6,7 +6,8 @@ import {
   stringToUtf8Base64,
   utf8Base64ToString,
   base64ToByteArray,
-  byteArrayToBase64
+  byteArrayToBase64,
+  hexStringToUtf8ByteArray
 } from "../utilities/stringUtilities";
 import { extractMessageID } from "../helpers/mailparser";
 
@@ -1950,6 +1951,11 @@ const connection = Penpal.connectToParent({
         result(byteArrayToBase64(ba));
       });
     },
+    hexStringToUtf8ByteArray(str) {
+      return new Penpal.Promise(result => {
+        result(hexStringToUtf8ByteArray(str));
+      });
+    },
 
     // Collabora APIs
     collaboraDiscovery() {
diff --git a/javascript/src/utilities/stringUtilities.js b/javascript/src/utilities/stringUtilities.js
index 1e2e39d9655873a3a1779f7253505c6adb7c7851..e2899b1aac162a706ed830c45ad70633effc08f5 100644
--- a/javascript/src/utilities/stringUtilities.js
+++ b/javascript/src/utilities/stringUtilities.js
@@ -51,3 +51,11 @@ export const byteArrayToBase64 = ba => {
   const res = ba.toString("base64");
   return res;
 };
+
+export const hexStringToUtf8ByteArray = str => {
+  if (typeof str !== "string") {
+    str = str.toString();
+  }
+  const res = Buffer.from(str, "hex");
+  return res;
+};