diff --git a/src/modules/Elsa.Secrets/Elsa.Secrets.csproj b/src/modules/Elsa.Secrets/Elsa.Secrets.csproj
index 620ebdea0..ee8a03d51 100644
--- a/src/modules/Elsa.Secrets/Elsa.Secrets.csproj
+++ b/src/modules/Elsa.Secrets/Elsa.Secrets.csproj
@@ -14,6 +14,7 @@
+
diff --git a/src/modules/Elsa.Secrets/Expressions/SecretExpression.cs b/src/modules/Elsa.Secrets/Expressions/SecretExpression.cs
new file mode 100644
index 000000000..e41403685
--- /dev/null
+++ b/src/modules/Elsa.Secrets/Expressions/SecretExpression.cs
@@ -0,0 +1,19 @@
+using Elsa.Expressions.Models;
+
+namespace Elsa.Secrets.Expressions;
+
+///
+/// Creates Secret expressions that store references to named secrets.
+///
+public static class SecretExpression
+{
+ ///
+ /// The Secret expression type name.
+ ///
+ public const string TypeName = "Secret";
+
+ ///
+ /// Creates a Secret expression for the specified reference.
+ ///
+ public static Expression Create(SecretReference reference) => new(TypeName, reference);
+}
diff --git a/src/modules/Elsa.Secrets/Expressions/SecretExpressionHandler.cs b/src/modules/Elsa.Secrets/Expressions/SecretExpressionHandler.cs
new file mode 100644
index 000000000..7f7d136f9
--- /dev/null
+++ b/src/modules/Elsa.Secrets/Expressions/SecretExpressionHandler.cs
@@ -0,0 +1,24 @@
+using Elsa.Expressions.Contracts;
+using Elsa.Expressions.Helpers;
+using Elsa.Expressions.Models;
+
+namespace Elsa.Secrets.Expressions;
+
+///
+/// Resolves Secret expressions through the configured secret resolver.
+///
+public class SecretExpressionHandler(ISecretResolver secretResolver, IWellKnownTypeRegistry wellKnownTypeRegistry) : IExpressionHandler
+{
+ ///
+ public async ValueTask