Saving Your Work
Flow Studio uses explicit saving for workflow graphs — changes are not automatically pushed to the server. The system tracks unsaved changes with a dirty indicator and warns you before navigating away. Understanding the save model prevents accidental data loss.
How Saving Works
When you make changes to the workflow graph (add a node, connect nodes, change a configuration value), the workflowStore marks the workflow as dirty (isDirty: true). The dirty state is visible as a dot in the toolbar next to the process name.
Saving serialises the full graph — all nodes, their positions, their configurations, and all edges — and sends it as a single JSON payload to the backend:
PUT /api/v1/flow-studio/threads/{threadId}/graph
Content-Type: application/json
{
"nodes": [...],
"edges": [...],
"groups": [...],
"viewport": { "x": 0, "y": 0, "zoom": 1 }
}
How to Save
| Method | Action |
|---|---|
| Keyboard shortcut | Ctrl+S (Windows/Linux) or Cmd+S (Mac) |
| Toolbar button | Click the save icon in the Top Toolbar (only visible when isDirty) |
| Mode switch prompt | When switching to Execution Mode with unsaved changes, a prompt asks to save first |
| Exit prompt | When navigating to the dashboard, a dialog asks to save and unlock |
The isDirty Indicator
The dirty indicator is a small orange dot that appears next to the process name in the Top Toolbar. It disappears immediately when the save API call returns success. If the save fails, the dot remains and a toast notification explains the error.
What Happens After Saving
- The server persists the full graph to the database
isDirtyresets tofalse- The undo/redo history is cleared — you cannot undo past a save point
- The thread's
lastModifiedtimestamp is updated - If another browser tab has this thread open in read-only mode, it receives a real-time notification to reload the graph
Node Configuration Auto-Save
While the graph requires explicit saving, node configuration form values (in the right panel) are written back to the in-memory workflowStore node config as you type. This does not hit the server — it just updates the in-memory state, which will be included in the next full graph save.
Save Conflicts
Because only one user can hold the edit lock, save conflicts are rare. However, if your lock expires and another user acquires it, your next save attempt returns 409 Conflict. Flow Studio will:
- Show a conflict dialog explaining that the lock has changed
- Offer to download your current unsaved changes as a JSON file
- Reload the canvas with the current server state