@@ -44,13 +48,22 @@ function WorkflowEditor() {
return null;
}
+ const isGlobalWorkflow = globalWorkflows?.some(
+ (globalWorkflow) =>
+ globalWorkflow.workflow_permanent_id === workflowPermanentId,
+ );
+
const settings: WorkflowSettings = {
persistBrowserSession: workflow.persist_browser_session,
proxyLocation: workflow.proxy_location,
webhookCallbackUrl: workflow.webhook_callback_url,
};
- const elements = getElements(workflow.workflow_definition.blocks, settings);
+ const elements = getElements(
+ workflow.workflow_definition.blocks,
+ settings,
+ !isGlobalWorkflow,
+ );
return (
diff --git a/skyvern-frontend/src/routes/workflows/editor/WorkflowHeader.tsx b/skyvern-frontend/src/routes/workflows/editor/WorkflowHeader.tsx
index cfa453e3..86e79989 100644
--- a/skyvern-frontend/src/routes/workflows/editor/WorkflowHeader.tsx
+++ b/skyvern-frontend/src/routes/workflows/editor/WorkflowHeader.tsx
@@ -9,11 +9,15 @@ import {
import {
ChevronDownIcon,
ChevronUpIcon,
+ CopyIcon,
PlayIcon,
+ ReloadIcon,
} from "@radix-ui/react-icons";
import { useNavigate, useParams } from "react-router-dom";
import { useGlobalWorkflowsQuery } from "../hooks/useGlobalWorkflowsQuery";
import { EditableNodeTitle } from "./nodes/components/EditableNodeTitle";
+import { useCreateWorkflowMutation } from "../hooks/useCreateWorkflowMutation";
+import { convert } from "./workflowEditorUtils";
type Props = {
title: string;
@@ -33,6 +37,7 @@ function WorkflowHeader({
const { workflowPermanentId } = useParams();
const { data: globalWorkflows } = useGlobalWorkflowsQuery();
const navigate = useNavigate();
+ const createWorkflowMutation = useCreateWorkflowMutation();
if (!globalWorkflows) {
return null; // this should be loaded already by some other components
@@ -54,41 +59,67 @@ function WorkflowHeader({
/>
-
-
-
-
-
- Save
-
-
-
-
+ {isGlobalWorkflow ? (
+
+ ) : (
+ <>
+
+
+
+
+
+ Save
+
+
+
+
+ >
+ )}
);
diff --git a/skyvern-frontend/src/routes/workflows/editor/nodes/LoopNode/LoopNode.tsx b/skyvern-frontend/src/routes/workflows/editor/nodes/LoopNode/LoopNode.tsx
index c4aa4e48..e183096d 100644
--- a/skyvern-frontend/src/routes/workflows/editor/nodes/LoopNode/LoopNode.tsx
+++ b/skyvern-frontend/src/routes/workflows/editor/nodes/LoopNode/LoopNode.tsx
@@ -55,6 +55,14 @@ function LoopNode({ id, data }: NodeProps