diff --git a/CRM/Zapier/Form/ZapHooks.php b/CRM/Zapier/Form/ZapHooks.php
index 1e7937f8595b62cffd9e538dff579408c757ec8d..04d5e0709f1ea4f89b87400001b027616764905f 100644
--- a/CRM/Zapier/Form/ZapHooks.php
+++ b/CRM/Zapier/Form/ZapHooks.php
@@ -24,7 +24,7 @@ class CRM_Zapier_Form_ZapHooks extends CRM_Core_Form {
       ]
     ]);
 
-    $zapHooks = unserialize(Civi::settings()->get('zapierHooks') ?? '') ?: [];
+    $zapHooks = Civi::settings()->get('zapierHooks') ?? [];
     $this->setDefaults($zapHooks);
 
     // export form elements
@@ -34,11 +34,11 @@ class CRM_Zapier_Form_ZapHooks extends CRM_Core_Form {
 
   public function postProcess() {
     $values = $this->exportValues();
-    $zapHooks = serialize([
+    $zapHooks = [
       'create_contact' => $values['create_contact'] ?? '',
       'update_participant' => $values['update_participant'] ?? '',
-    ]);
-    Civi::settings()->set('zapierHooks', serialize($zapHooks));
+    ];
+    Civi::settings()->set('zapierHooks', $zapHooks);
     CRM_Core_Session::setStatus(E::ts('Zapier hooks are saved.'));
     parent::postProcess();
   }
diff --git a/CRM/Zapier/Upgrader.php b/CRM/Zapier/Upgrader.php
new file mode 100644
index 0000000000000000000000000000000000000000..29adfad9a9d4922be5b919038aeebec1f32aafbd
--- /dev/null
+++ b/CRM/Zapier/Upgrader.php
@@ -0,0 +1,40 @@
+<?php
+
+use CRM_Zapier_ExtensionUtil as E;
+
+/**
+ * Collection of upgrade steps.
+ */
+class CRM_Zapier_Upgrader extends CRM_Extension_Upgrader_Base {
+
+  public static function is_serialized($val) {
+    if (!is_string($val)) return false;
+    if (trim($val) == "") return false;
+    $val = trim($val);
+    if (preg_match('/^(i|s|a|o|d):.*{/si', $val) > 0) return true;
+    return false;
+  }
+
+  /**
+   * Example: Run a couple simple queries.
+   *
+   * @return TRUE on success
+   * @throws CRM_Core_Exception
+   */
+  public function upgrade_4200(): bool {
+    $this->ctx->log->info('Applying update 4200');
+    $val = Civi::settings()->get('zapierHooks');
+    if (self::is_serialized($val)) {
+      $val = unserialize($val);
+      if (self::is_serialized($val)) {
+        $val = unserialize($val);
+        if (is_array($val)) {
+          Civi::settings()->set('zapierHooks', $val);
+        }
+      }
+    }
+
+    return TRUE;
+  }
+
+}
diff --git a/CRM/Zapier/Utils.php b/CRM/Zapier/Utils.php
index b8dd0998060ff89fe6e4cd9569a46d6d9116916d..bcd6e93b091bcc238d013de4db3ff799f71837a0 100644
--- a/CRM/Zapier/Utils.php
+++ b/CRM/Zapier/Utils.php
@@ -33,8 +33,8 @@ class CRM_Zapier_Utils {
       return;
     }
 
-    $zapHooks[$trigger] = $url;
-    Civi::settings()->set('zapierHooks', serialize($zapHooks));
+    $zapHooks[$trigger]= $url;
+    Civi::settings()->set('zapierHooks', $zapHooks);
   }
 
   /**
@@ -55,7 +55,7 @@ class CRM_Zapier_Utils {
   }
 
   public static function getZapHooks() {
-    return self::unserialize_recursive(Civi::settings()->get('zapierHooks') ?? '') ?: [];
+    return Civi::settings()->get('zapierHooks') ?? [];
   }
 
   public static function getZapHook($name) {
@@ -63,37 +63,6 @@ class CRM_Zapier_Utils {
     return $zapHooks[$name] ?? NULL;
   }
 
-  public static function unserialize_recursive($val) {
-    // $pattern = "/.*\{(.*)\}/";
-    if (self::is_serialized($val)){
-      $val = trim($val);
-      $ret = unserialize($val);
-      if (is_array($ret)) {
-        foreach($ret as &$r) {
-          $r = self::unserialize_recursive($r);
-        }
-      }
-      return $ret;
-    }
-    elseif (is_array($val)) {
-      foreach($val as &$r) {
-        $r = self::unserialize_recursive($r);
-      }
-      return $val;
-    }
-    else {
-      return $val;
-    }
-  }
-
-  public static function is_serialized($val) {
-    if (!is_string($val)) return false;
-    if (trim($val) == "") return false;
-    $val = trim($val);
-    if (preg_match('/^(i|s|a|o|d):.*{/si', $val) > 0) return true;
-    return false;
-  }
-
   /**
    * @param $url
    * @param $data
diff --git a/info.xml b/info.xml
index b161843f218b3b1a9231cae493a83f2067900a82..0167835da1c78446f2c95912dc382406094f4800 100644
--- a/info.xml
+++ b/info.xml
@@ -18,7 +18,7 @@
   <version>1.0</version>
   <develStage>alpha</develStage>
   <compatibility>
-    <ver>5.27</ver>
+    <ver>5.38</ver>
   </compatibility>
   <comments>This is a new, undeveloped module</comments>
   <classloader>
@@ -36,4 +36,5 @@
     <mixin>menu-xml@1.0.0</mixin>
     <mixin>smarty-v2@1.0.1</mixin>
   </mixins>
+  <upgrader>CRM_Zapier_Upgrader</upgrader>
 </extension>
diff --git a/zapier.civix.php b/zapier.civix.php
index ac3d214cbd672bc08ef547b87abc414683e640ca..99f190ed45293e0027f8047f735d4a1b18f1e8f5 100644
--- a/zapier.civix.php
+++ b/zapier.civix.php
@@ -8,7 +8,7 @@
  */
 class CRM_Zapier_ExtensionUtil {
   const SHORT_NAME = 'zapier';
-  const LONG_NAME = 'nz.co.fuzion.zapier';
+  const LONG_NAME = 'zapier';
   const CLASS_PREFIX = 'CRM_Zapier';
 
   /**