diff --git a/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/HoistField.java b/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/HoistField.java
new file mode 100644
index 0000000..e4ab035
--- /dev/null
+++ b/library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/HoistField.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.kamelets.utils.transform;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.apache.camel.Exchange;
+import org.apache.camel.ExchangeProperty;
+import org.apache.camel.InvalidPayloadException;
+
+public class HoistField {
+
+    public JsonNode process(@ExchangeProperty("field") String field, Exchange ex) throws InvalidPayloadException {
+        ObjectMapper mapper = new ObjectMapper();
+        JsonNode body = ex.getMessage().getBody(JsonNode.class);
+        ObjectNode updatedNode = mapper.createObjectNode();
+        updatedNode.set(field, body);
+        return updatedNode;
+    }
+
+}
