diff --git a/utils.hpp b/utils.hpp
index 24ced13..298a91d 100644
--- a/utils.hpp
+++ b/utils.hpp
@@ -1,6 +1,6 @@
 #pragma once
 
-#include <sdbusplus/message/types.hpp>
+#include <sdbusplus/message/native_types.hpp>
 
 #include <cstring>
 #include <stdexcept>
@@ -47,9 +47,8 @@
      *  struct Make specialization if Arg is in T (int -> variant<int, char>).
      */
     template <typename T, typename Arg>
-    struct Make<
-        T, Arg,
-        typename std::enable_if<std::is_convertible<Arg, T>::value>::type>
+    struct Make<T, Arg,
+                typename std::enable_if_t<std::is_convertible_v<Arg, T>>>
     {
         static auto make(Arg&& arg)
         {
@@ -57,6 +56,40 @@
         }
     };
 
+    /** @struct Make
+     *  @brief Return variant visitor.
+     *
+     *  struct Make specialization if Arg is a string, but not otherwise
+     *  directly convertable by C++ conversion constructors.  Strings might
+     *  be convertable using underlying sdbusplus routines, so give them an
+     *  attempt.
+     */
+    template <typename T, typename Arg>
+    struct Make<
+        T, Arg,
+        typename std::enable_if_t<
+            !std::is_convertible_v<Arg, T> &&
+            std::is_same_v<std::string,
+                           std::remove_cv_t<std::remove_reference_t<Arg>>> &&
+            sdbusplus::message::has_convert_from_string_v<T>>>
+    {
+        static auto make(Arg&& arg) -> T
+        {
+            auto r = sdbusplus::message::convert_from_string<T>(
+                std::forward<Arg>(arg));
+            if (r)
+            {
+                return *r;
+            }
+
+            throw std::runtime_error(
+                std::string("Invalid conversion in MakeVariantVisitor::") +
+                __PRETTY_FUNCTION__);
+
+            return {};
+        }
+    };
+
     /** @brief Make variant visitor.  */
     template <typename Arg>
     auto operator()(Arg&& arg) const
