diff --git a/src/renderer/components/Experiment/Workflows/NewWorkflowModal.tsx b/src/renderer/components/Experiment/Workflows/NewWorkflowModal.tsx
index b0b82e2eb0d4691467f24c208b78b76e019f143b..1b1fbb719ded94d7cd1ea82334612799ded89c30 100644
--- a/src/renderer/components/Experiment/Workflows/NewWorkflowModal.tsx
+++ b/src/renderer/components/Experiment/Workflows/NewWorkflowModal.tsx
@@ -14,29 +14,40 @@ import {
 } from '@mui/joy';
 import { useState } from 'react';
 
-export default function NewWorkflowModal({ open, setOpen }) {
+import * as chatAPI from 'renderer/lib/transformerlab-api-sdk';
+
+export default function NewWorkflowModal({ open, onClose, experimentId }) {
   const [state, setState] = useState(null);
 
   return (
-    <Modal open={open} onClose={() => setOpen(false)}>
+    <Modal open={open} onClose={() => onClose()}>
       <ModalDialog>
         <ModalClose />
         <DialogTitle>Create new workflow</DialogTitle>
         <DialogContent>Fill in the information.</DialogContent>
         <form
-          onSubmit={(event: React.FormEvent<HTMLFormElement>) => {
+          onSubmit={async (event: React.FormEvent<HTMLFormElement>) => {
             event.preventDefault();
-            setOpen(false);
+            const formData = new FormData(event.currentTarget);
+            const workflowName = formData.get('name') as string;
+            //const nodes = formData.get('nodes') as string;
+            await fetch(
+              chatAPI.Endpoints.Workflows.CreateEmpty(
+                workflowName,
+                experimentId
+              )
+            );
+            onClose();
           }}
         >
           <Stack spacing={2}>
             <FormControl>
               <FormLabel>Name</FormLabel>
-              <Input autoFocus required />
+              <Input autoFocus required name="name" />
             </FormControl>
             <FormControl>
               <FormLabel>Nodes</FormLabel>
-              <Textarea minRows={4} />
+              <Textarea minRows={4} name="nodes" />
               <FormHelperText>
                 Leave Blank to Create an Empty Workflow
               </FormHelperText>
diff --git a/src/renderer/components/Experiment/Workflows/index.tsx b/src/renderer/components/Experiment/Workflows/index.tsx
index 5bcffb35606709e6f6e71f552e09057e14ac1529..ece2e3ba25010c95e5d510f287905377c6128d78 100644
--- a/src/renderer/components/Experiment/Workflows/index.tsx
+++ b/src/renderer/components/Experiment/Workflows/index.tsx
@@ -28,6 +28,7 @@ export default function Workflows({ experimentInfo }) {
     data: workflowsData,
     error: workflowsError,
     isLoading: isLoading,
+    mutate: mutateWorkflows,
   } = useSWR(chatAPI.Endpoints.Workflows.List(), fetcher);
 
   const workflows = workflowsData;
@@ -77,7 +78,7 @@ export default function Workflows({ experimentInfo }) {
     return out;
   }
 
-  async function runWorkflow(workflowId: string){
+  async function runWorkflow(workflowId: string) {
     await fetch(chatAPI.Endpoints.Workflows.RunWorkflow(workflowId));
   }
 
@@ -93,7 +94,11 @@ export default function Workflows({ experimentInfo }) {
     >
       <NewWorkflowModal
         open={newWorkflowModalOpen}
-        setOpen={setNewWorkflowModalOpen}
+        onClose={() => {
+          setNewWorkflowModalOpen(false);
+          mutateWorkflows();
+        }}
+        experimentId={experimentInfo?.id}
       />
       <Typography level="h1">Workflows</Typography>
       <Typography level="body-lg" mb={3}>
@@ -174,16 +179,24 @@ export default function Workflows({ experimentInfo }) {
                 Select Workflow
               </Box>
             )}
-            {selectedWorkflow &&
-            <Box pl={2} display="flex" flexDirection="column" gap={1}>
-              {selectedWorkflow.status!="RUNNING" ? (
-                <Button startDecorator={<PlayIcon />} onClick={() => runWorkflow(selectedWorkflow.id)}>Run</Button>
-              ) : (
-                <Button startDecorator={<PlayIcon />} disabled={true}>Running</Button>
-              )}
-              <Button variant="outlined">Edit</Button>
-              <Button variant="outlined">Fight</Button>
-            </Box>}
+            {selectedWorkflow && (
+              <Box pl={2} display="flex" flexDirection="column" gap={1}>
+                {selectedWorkflow.status != 'RUNNING' ? (
+                  <Button
+                    startDecorator={<PlayIcon />}
+                    onClick={() => runWorkflow(selectedWorkflow.id)}
+                  >
+                    Run
+                  </Button>
+                ) : (
+                  <Button startDecorator={<PlayIcon />} disabled={true}>
+                    Running
+                  </Button>
+                )}
+                <Button variant="outlined">Edit</Button>
+                <Button variant="outlined">Fight</Button>
+              </Box>
+            )}
           </Box>
         </Box>
       </Sheet>
diff --git a/src/renderer/lib/transformerlab-api-sdk.ts b/src/renderer/lib/transformerlab-api-sdk.ts
index 79fcc6d92da9767d9eedade4bf4f3b6309442e37..5251ab07f390881e1ee3f29f8cdaf0cb4a6f84ed 100644
--- a/src/renderer/lib/transformerlab-api-sdk.ts
+++ b/src/renderer/lib/transformerlab-api-sdk.ts
@@ -1010,7 +1010,7 @@ function convertSlashInUrl(url: string) {
 
 Endpoints.Workflows = {
   List: () => API_URL() + 'workflows/list',
-  CreateEmpty: (name: string, experimentId) =>
+  CreateEmpty: (name: string, experimentId: string) =>
     API_URL() +
     'workflows/create_empty' +
     '?name=' +