FruxonDocs
ApiWorkflowdraft

Autosave the draft head.

Writes a new head for the draft, appending an immutable entry to its undo/redo history (an identical payload is a no-op). Creates the draft on first call. Pass the draft `Version` you last saw as `If-Match`; a mismatch returns 409, signalling a concurrent edit from another client — preserve the local edit and reconcile.

PUT
/v1/tenants/{tenant}/workflows/{workflow}/revisions/{revision}/draft
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

workflow*string

The unique identifier of the Workflow.

revision*string

The base revision the draft forks from.

tenant*string

The tenant identifier

The new draft head — the current authoring state.

comment?string|null
flow*

Represents a sequence of steps in a agent flow, supporting versioning and ordered execution.

A valid flow has exactly one ENTRY_POINT step and exactly one EXIT_POINT step in Steps — these are not synthesized for you. The other steps (AGENT, TOOL, CLAUDE_BOX) sit between them, wired by Edges.

integrationSlots?|null
integrationBindings?|null
assets?|null
slots?|null
[key: string]?never

Response Body

curl -X PUT "https://api.fruxon.com/v1/tenants/string/workflows/string/revisions/string/draft" \  -H "Content-Type: application/json" \  -d '{    "flow": {}  }'
{
  "workflowId": "string",
  "baseRevision": 0,
  "version": 0,
  "historyCursor": 0,
  "canUndo": false,
  "canRedo": false,
  "updatedAt": 0,
  "headData": {
    "comment": "string",
    "flow": {
      "steps": [],
      "edges": []
    },
    "integrationSlots": [
      {
        "id": "00000000-0000-0000-0000-000000000000",
        "integrationId": "string",
        "displayName": "string",
        "tenantConfigId": "00000000-0000-0000-0000-000000000000"
      }
    ],
    "integrationBindings": {},
    "assets": [
      {
        "id": "string"
      }
    ],
    "slots": [
      {
        "name": "string",
        "displayName": "string",
        "requiredKind": "UNSPECIFIED"
      }
    ]
  },
  "history": [
    {
      "seqNo": 0,
      "contentHash": "string",
      "pinned": false,
      "label": "string",
      "createdAt": 0
    }
  ]
}
Empty
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}