diff --git a/shared/workspaces/workspaces/capability/schema.py b/shared/workspaces/workspaces/capability/schema.py
index 0905ffb1048c3dce8023d401da71a9dfd05af67f..3eff65e9949a42b53227d9adfb7c78660c1e0e73 100644
--- a/shared/workspaces/workspaces/capability/schema.py
+++ b/shared/workspaces/workspaces/capability/schema.py
@@ -1,13 +1,17 @@
 from __future__ import annotations
 
 import json
-from typing import Tuple
+from typing import Dict, Tuple
 
 import sqlalchemy as sa
 from sqlalchemy.ext.declarative import declarative_base
 from sqlalchemy.orm import relationship
 
-from workspaces.capability.enums import CapabilityEventType, CapabilityStepType
+from workspaces.capability.enums import (
+    CapabilityEventType,
+    CapabilityRequestState,
+    CapabilityStepType,
+)
 from workspaces.capability.helpers import CapabilitySequence, CapabilityStep
 from workspaces.capability.helpers_interfaces import CapabilitySequenceIF, ParameterIF
 from workspaces.capability.schema_interfaces import (
@@ -116,7 +120,7 @@ class Capability(Base, CapabilityIF):
         self.requests.append(request)
         return request
 
-    def to_dict(self):
+    def to_dict(self) -> Dict[str, str]:
         return {
             "name": self.name,
             "max_jobs": self.max_jobs,
@@ -124,13 +128,13 @@ class Capability(Base, CapabilityIF):
             "enabled": self.enabled,
         }
 
-    def __str__(self):
+    def __str__(self) -> str:
         return (
             f"Capability: {self.name}, max concurrent jobs of {self.max_jobs}"
             f"\nSequence: {self.steps}"
         )
 
-    def __json__(self):
+    def __json__(self) -> str:
         return json.dumps(self.to_dict())
 
 
@@ -152,19 +156,20 @@ class CapabilityRequest(Base, CapabilityRequestIF):
     versions = relationship("CapabilityVersion", back_populates="request")
     capability = relationship(Capability, back_populates="requests")
 
-    def update_status(self, status: str):
-        # TODO: create field in table
-        self.status = status
+    def update_state(self, state: CapabilityRequestState):
+        self.state = state.name
 
     def __str__(self):
         return f"CapabilityRequest object: {self.__dict__}"
 
-    def __json__(self, request) -> dict:
-        return dict(
-            id=self.id,
-            capability_name=self.capability_name,
-            state=self.state,
-            parameters=self.parameters,
+    def __json__(self) -> str:
+        return json.dumps(
+            {
+                "id": self.id,
+                "capability_name": self.capability_name,
+                "state": self.state,
+                "parameters": self.parameters,
+            }
         )
 
 
diff --git a/shared/workspaces/workspaces/capability/schema_interfaces.py b/shared/workspaces/workspaces/capability/schema_interfaces.py
index dd47a5aad44f981984ed6dc2a7bc1564ced6812a..8868fcc59be0b172f9f5c6daa8f425fec3c04838 100644
--- a/shared/workspaces/workspaces/capability/schema_interfaces.py
+++ b/shared/workspaces/workspaces/capability/schema_interfaces.py
@@ -27,7 +27,7 @@ class CapabilityRequestIF:
     future_products: str
     versions: List[CapabilityVersionIF]
 
-    def __json__(self, request: CapabilityRequestIF) -> dict:
+    def __json__(self) -> str:
         raise NotImplementedError