diff --git a/apps/application/flow/step_node/variable_aggregation_node/i_variable_aggregation_node.py b/apps/application/flow/step_node/variable_aggregation_node/i_variable_aggregation_node.py
index f910300367e..d5a2f332a2e 100644
--- a/apps/application/flow/step_node/variable_aggregation_node/i_variable_aggregation_node.py
+++ b/apps/application/flow/step_node/variable_aggregation_node/i_variable_aggregation_node.py
@@ -17,7 +17,8 @@ class VariableListSerializer(serializers.Serializer):
class VariableGroupSerializer(serializers.Serializer):
id = serializers.CharField(required=True, label=_("Group id"))
- group_name = serializers.CharField(required=True, label=_("group_name"))
+ field = serializers.CharField(required=True, label=_("group_name"))
+ label = serializers.CharField(required=True)
variable_list = VariableListSerializer(many=True)
diff --git a/apps/application/flow/step_node/variable_aggregation_node/impl/base_variable_aggregation_node.py b/apps/application/flow/step_node/variable_aggregation_node/impl/base_variable_aggregation_node.py
index f5665ce0623..700f76dc3f6 100644
--- a/apps/application/flow/step_node/variable_aggregation_node/impl/base_variable_aggregation_node.py
+++ b/apps/application/flow/step_node/variable_aggregation_node/impl/base_variable_aggregation_node.py
@@ -38,7 +38,7 @@ def execute(self,strategy,group_list,**kwargs) -> NodeResult:
'variable_to_json': self.set_variable_to_json,
}
- result = { item.get('group_name'):strategy_map[strategy](item.get('variable_list')) for item in group_list}
+ result = { item.get('field'):strategy_map[strategy](item.get('variable_list')) for item in group_list}
return NodeResult({'result': result,**result},{})
diff --git a/ui/src/workflow/nodes/variable-aggregation-node/component/GroupFieldDialog.vue b/ui/src/workflow/nodes/variable-aggregation-node/component/GroupFieldDialog.vue
new file mode 100644
index 00000000000..98f3f2fdf6d
--- /dev/null
+++ b/ui/src/workflow/nodes/variable-aggregation-node/component/GroupFieldDialog.vue
@@ -0,0 +1,118 @@
+
+