Skip to main content
PUT
/
workflows
/
{id}
Update workflow
curl --request PUT \
  --url http://localhost:5173/api/flowdrop/workflows/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "description": "<string>",
  "nodes": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "type": "calculator",
      "position": {
        "x": 100,
        "y": 200
      },
      "data": {
        "label": "Math Calculator",
        "config": {
          "instanceTitle": "Email Summarizer",
          "instanceDescription": "Summarizes incoming emails into 3 bullet points",
          "instanceBadge": "LLM",
          "nodeType": "simple",
          "model": "gpt-4o-mini",
          "temperature": 0.7,
          "maxTokens": 1000,
          "apiKey": "sk-...",
          "dynamicInputs": [
            {
              "name": "extra_data",
              "label": "Extra Data",
              "dataType": "json",
              "required": false
            }
          ],
          "dynamicOutputs": [
            {
              "name": "result",
              "label": "Result",
              "dataType": "string"
            }
          ],
          "branches": [
            {
              "name": "success",
              "label": "Success",
              "condition": "status === 200"
            },
            {
              "name": "error",
              "label": "Error",
              "isDefault": true
            }
          ]
        },
        "metadata": {
          "id": "calculator",
          "name": "Calculator",
          "description": "Perform mathematical operations on input data",
          "category": "processing",
          "version": "1.0.0",
          "inputs": [
            {
              "id": "json",
              "name": "JSON Response",
              "dataType": "mixed",
              "required": false,
              "description": "Parsed JSON response from the HTTP request",
              "defaultValue": "<unknown>",
              "schema": {
                "type": "object",
                "properties": {
                  "user": {
                    "type": "object",
                    "title": "User",
                    "description": "User information",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "User ID"
                      },
                      "name": {
                        "type": "string",
                        "description": "User full name"
                      },
                      "email": {
                        "type": "string",
                        "description": "User email address"
                      },
                      "address": {
                        "type": "object",
                        "title": "Address",
                        "properties": {
                          "street": {
                            "type": "string"
                          },
                          "city": {
                            "type": "string"
                          },
                          "country": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  "orders": {
                    "type": "array",
                    "title": "Orders",
                    "description": "List of user orders",
                    "items": {
                      "type": "object",
                      "properties": {
                        "order_id": {
                          "type": "string"
                        },
                        "product_name": {
                          "type": "string"
                        },
                        "quantity": {
                          "type": "integer"
                        },
                        "price": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          ],
          "outputs": [
            {
              "id": "json",
              "name": "JSON Response",
              "dataType": "mixed",
              "required": false,
              "description": "Parsed JSON response from the HTTP request",
              "defaultValue": "<unknown>",
              "schema": {
                "type": "object",
                "properties": {
                  "user": {
                    "type": "object",
                    "title": "User",
                    "description": "User information",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "User ID"
                      },
                      "name": {
                        "type": "string",
                        "description": "User full name"
                      },
                      "email": {
                        "type": "string",
                        "description": "User email address"
                      },
                      "address": {
                        "type": "object",
                        "title": "Address",
                        "properties": {
                          "street": {
                            "type": "string"
                          },
                          "city": {
                            "type": "string"
                          },
                          "country": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  "orders": {
                    "type": "array",
                    "title": "Orders",
                    "description": "List of user orders",
                    "items": {
                      "type": "object",
                      "properties": {
                        "order_id": {
                          "type": "string"
                        },
                        "product_name": {
                          "type": "string"
                        },
                        "quantity": {
                          "type": "integer"
                        },
                        "price": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          ],
          "supportedTypes": [],
          "icon": "mdi:calculator",
          "color": "#3b82f6",
          "badge": "API",
          "portDataType": "trigger",
          "tags": [
            "math",
            "calculation",
            "processing"
          ],
          "formats": [
            "agentspec"
          ],
          "extensions": {
            "ui": {
              "hideUnconnectedHandles": true,
              "style": {
                "opacity": 0.8
              }
            },
            "agentspec:component_type": "llm_node",
            "myapp:analytics": {
              "trackUsage": true,
              "customField": "value"
            }
          }
        },
        "isProcessing": true,
        "error": "<string>",
        "nodeId": "<string>",
        "extensions": {
          "ui": {
            "hideUnconnectedHandles": true,
            "style": {
              "opacity": 0.8
            }
          },
          "agentspec:component_type": "llm_node",
          "myapp:analytics": {
            "trackUsage": true,
            "customField": "value"
          }
        }
      },
      "deletable": true
    }
  ],
  "edges": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "source": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "target": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "sourceHandle": "<string>",
      "targetHandle": "<string>",
      "selectable": true,
      "deletable": true,
      "data": {
        "label": "<string>",
        "condition": "<string>",
        "metadata": {
          "sourcePortDataType": "<string>"
        },
        "isToolConnection": true,
        "targetNodeType": "<string>",
        "targetCategory": "<string>"
      }
    }
  ],
  "metadata": {
    "tags": [
      "<string>"
    ],
    "author": "<string>"
  }
}
'
{
  "success": true,
  "data": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "name": "My AI Workflow",
    "nodes": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "type": "calculator",
        "position": {
          "x": 100,
          "y": 200
        },
        "data": {
          "label": "Math Calculator",
          "config": {
            "instanceTitle": "Email Summarizer",
            "instanceDescription": "Summarizes incoming emails into 3 bullet points",
            "instanceBadge": "LLM",
            "nodeType": "simple",
            "model": "gpt-4o-mini",
            "temperature": 0.7,
            "maxTokens": 1000,
            "apiKey": "sk-...",
            "dynamicInputs": [
              {
                "name": "extra_data",
                "label": "Extra Data",
                "dataType": "json",
                "required": false
              }
            ],
            "dynamicOutputs": [
              {
                "name": "result",
                "label": "Result",
                "dataType": "string"
              }
            ],
            "branches": [
              {
                "name": "success",
                "label": "Success",
                "condition": "status === 200"
              },
              {
                "name": "error",
                "label": "Error",
                "isDefault": true
              }
            ]
          },
          "metadata": {
            "id": "calculator",
            "name": "Calculator",
            "description": "Perform mathematical operations on input data",
            "category": "processing",
            "version": "1.0.0",
            "inputs": [
              {
                "id": "json",
                "name": "JSON Response",
                "dataType": "mixed",
                "required": false,
                "description": "Parsed JSON response from the HTTP request",
                "defaultValue": "<unknown>",
                "schema": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "object",
                      "title": "User",
                      "description": "User information",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "User ID"
                        },
                        "name": {
                          "type": "string",
                          "description": "User full name"
                        },
                        "email": {
                          "type": "string",
                          "description": "User email address"
                        },
                        "address": {
                          "type": "object",
                          "title": "Address",
                          "properties": {
                            "street": {
                              "type": "string"
                            },
                            "city": {
                              "type": "string"
                            },
                            "country": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "orders": {
                      "type": "array",
                      "title": "Orders",
                      "description": "List of user orders",
                      "items": {
                        "type": "object",
                        "properties": {
                          "order_id": {
                            "type": "string"
                          },
                          "product_name": {
                            "type": "string"
                          },
                          "quantity": {
                            "type": "integer"
                          },
                          "price": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              }
            ],
            "outputs": [
              {
                "id": "json",
                "name": "JSON Response",
                "dataType": "mixed",
                "required": false,
                "description": "Parsed JSON response from the HTTP request",
                "defaultValue": "<unknown>",
                "schema": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "object",
                      "title": "User",
                      "description": "User information",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "User ID"
                        },
                        "name": {
                          "type": "string",
                          "description": "User full name"
                        },
                        "email": {
                          "type": "string",
                          "description": "User email address"
                        },
                        "address": {
                          "type": "object",
                          "title": "Address",
                          "properties": {
                            "street": {
                              "type": "string"
                            },
                            "city": {
                              "type": "string"
                            },
                            "country": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "orders": {
                      "type": "array",
                      "title": "Orders",
                      "description": "List of user orders",
                      "items": {
                        "type": "object",
                        "properties": {
                          "order_id": {
                            "type": "string"
                          },
                          "product_name": {
                            "type": "string"
                          },
                          "quantity": {
                            "type": "integer"
                          },
                          "price": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              }
            ],
            "supportedTypes": [],
            "icon": "mdi:calculator",
            "color": "#3b82f6",
            "badge": "API",
            "portDataType": "trigger",
            "configSchema": {
              "type": "object",
              "properties": {},
              "required": [
                "<string>"
              ],
              "additionalProperties": false
            },
            "tags": [
              "math",
              "calculation",
              "processing"
            ],
            "formats": [
              "agentspec"
            ],
            "extensions": {
              "ui": {
                "hideUnconnectedHandles": true,
                "style": {
                  "opacity": 0.8
                }
              },
              "agentspec:component_type": "llm_node",
              "myapp:analytics": {
                "trackUsage": true,
                "customField": "value"
              }
            }
          },
          "isProcessing": true,
          "error": "<string>",
          "nodeId": "<string>",
          "executionInfo": {
            "executionCount": 5,
            "isExecuting": true,
            "lastExecuted": "2023-11-07T05:31:56Z",
            "lastExecutionDuration": 1500,
            "lastError": "<string>"
          },
          "extensions": {
            "ui": {
              "hideUnconnectedHandles": true,
              "style": {
                "opacity": 0.8
              }
            },
            "agentspec:component_type": "llm_node",
            "myapp:analytics": {
              "trackUsage": true,
              "customField": "value"
            }
          }
        },
        "deletable": true
      }
    ],
    "edges": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "source": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "target": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "sourceHandle": "<string>",
        "targetHandle": "<string>",
        "selectable": true,
        "deletable": true,
        "data": {
          "label": "<string>",
          "condition": "<string>",
          "metadata": {
            "sourcePortDataType": "<string>"
          },
          "isToolConnection": true,
          "targetNodeType": "<string>",
          "targetCategory": "<string>"
        }
      }
    ],
    "metadata": {
      "schemaVersion": "1.0.0",
      "createdAt": "2023-11-07T05:31:56Z",
      "updatedAt": "2023-11-07T05:31:56Z",
      "author": "admin",
      "tags": [
        "ai",
        "production"
      ],
      "versionId": "<string>",
      "updateNumber": 123,
      "format": "flowdrop"
    },
    "description": "<string>",
    "config": {}
  },
  "message": "<string>",
  "error": "<string>"
}

Authorizations

Authorization
string
header
required

JWT token for authentication

Path Parameters

id
string<uuid>
required

Workflow UUID

Body

application/json
name
string

Workflow name

Required string length: 1 - 200
description
string

Workflow description

Maximum string length: 1000
nodes
object[]
edges
object[]
metadata
object

Response

Workflow updated successfully

success
boolean

Whether the request was successful

data
object

Response data (type varies by endpoint)

message
string

Response message

error
string

Error message (if any)