diff --git a/src/modules/Elsa.Workflows.Management/Contracts/IWorkflowSerializer.cs b/src/modules/Elsa.Workflows.Management/Contracts/IWorkflowSerializer.cs
new file mode 100644
index 000000000..2434bffa0
--- /dev/null
+++ b/src/modules/Elsa.Workflows.Management/Contracts/IWorkflowSerializer.cs
@@ -0,0 +1,16 @@
+using Elsa.Workflows.Core.Activities;
+
+namespace Elsa.Workflows.Management.Contracts;
+
+///
+/// Serializes and deserializes workflows.
+///
+public interface IWorkflowSerializer
+{
+ ///
+ /// Serializes the specified workflow.
+ ///
+ /// The data representing the workflow.
+ /// A deserialized workflow.
+ Workflow Deserialize(string serializedWorkflow);
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Workflows.Management/Features/WorkflowManagementFeature.cs b/src/modules/Elsa.Workflows.Management/Features/WorkflowManagementFeature.cs
index 00b7287de..aca2cbc0a 100644
--- a/src/modules/Elsa.Workflows.Management/Features/WorkflowManagementFeature.cs
+++ b/src/modules/Elsa.Workflows.Management/Features/WorkflowManagementFeature.cs
@@ -159,6 +159,7 @@ public class WorkflowManagementFeature : FeatureBase
.AddMemoryStore()
.AddActivityProvider()
.AddSingleton()
+ .AddSingleton()
.AddSingleton()
.AddSingleton()
.AddSingleton()
diff --git a/src/modules/Elsa.Workflows.Management/Services/WorkflowSerializer.cs b/src/modules/Elsa.Workflows.Management/Services/WorkflowSerializer.cs
new file mode 100644
index 000000000..1ed5b184d
--- /dev/null
+++ b/src/modules/Elsa.Workflows.Management/Services/WorkflowSerializer.cs
@@ -0,0 +1,32 @@
+using Elsa.Workflows.Core.Activities;
+using Elsa.Workflows.Core.Contracts;
+using Elsa.Workflows.Management.Contracts;
+using Elsa.Workflows.Management.Mappers;
+using Elsa.Workflows.Management.Models;
+
+namespace Elsa.Workflows.Management.Services;
+
+///
+/// A serializer that parses JSON.
+///
+public class WorkflowSerializer : IWorkflowSerializer
+{
+ private readonly IApiSerializer _apiSerializer;
+ private readonly WorkflowDefinitionMapper _workflowDefinitionMapper;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public WorkflowSerializer(IApiSerializer apiSerializer, WorkflowDefinitionMapper workflowDefinitionMapper)
+ {
+ _apiSerializer = apiSerializer;
+ _workflowDefinitionMapper = workflowDefinitionMapper;
+ }
+
+ ///
+ public Workflow Deserialize(string serializedWorkflow)
+ {
+ var model = _apiSerializer.Deserialize(serializedWorkflow);
+ return _workflowDefinitionMapper.Map(model);
+ }
+}
\ No newline at end of file