curl --request PUT \
--url https://flowker.sandbox.lerian.net/v1/workflows/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Payment Notification Flow v2",
"description": "Updated flow with additional logging step.",
"nodes": [
{
"id": "trigger-1",
"type": "trigger",
"name": "Webhook Trigger",
"position": {
"x": 0,
"y": 0
},
"data": {
"triggerType": "webhook",
"path": "payments/received",
"method": "POST",
"input_contract": "open",
"format": "json"
}
},
{
"id": "log-event",
"type": "action",
"name": "Log Payment Event",
"position": {
"x": 200,
"y": 0
},
"data": {
"action": "log"
}
}
],
"edges": [
{
"id": "e1",
"source": "trigger-1",
"target": "log-event"
}
]
}
'import requests
url = "https://flowker.sandbox.lerian.net/v1/workflows/{id}"
payload = {
"name": "Payment Notification Flow v2",
"description": "Updated flow with additional logging step.",
"nodes": [
{
"id": "trigger-1",
"type": "trigger",
"name": "Webhook Trigger",
"position": {
"x": 0,
"y": 0
},
"data": {
"triggerType": "webhook",
"path": "payments/received",
"method": "POST",
"input_contract": "open",
"format": "json"
}
},
{
"id": "log-event",
"type": "action",
"name": "Log Payment Event",
"position": {
"x": 200,
"y": 0
},
"data": { "action": "log" }
}
],
"edges": [
{
"id": "e1",
"source": "trigger-1",
"target": "log-event"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Payment Notification Flow v2',
description: 'Updated flow with additional logging step.',
nodes: [
{
id: 'trigger-1',
type: 'trigger',
name: 'Webhook Trigger',
position: {x: 0, y: 0},
data: {
triggerType: 'webhook',
path: 'payments/received',
method: 'POST',
input_contract: 'open',
format: 'json'
}
},
{
id: 'log-event',
type: 'action',
name: 'Log Payment Event',
position: {x: 200, y: 0},
data: {action: 'log'}
}
],
edges: [{id: 'e1', source: 'trigger-1', target: 'log-event'}]
})
};
fetch('https://flowker.sandbox.lerian.net/v1/workflows/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://flowker.sandbox.lerian.net/v1/workflows/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Payment Notification Flow v2',
'description' => 'Updated flow with additional logging step.',
'nodes' => [
[
'id' => 'trigger-1',
'type' => 'trigger',
'name' => 'Webhook Trigger',
'position' => [
'x' => 0,
'y' => 0
],
'data' => [
'triggerType' => 'webhook',
'path' => 'payments/received',
'method' => 'POST',
'input_contract' => 'open',
'format' => 'json'
]
],
[
'id' => 'log-event',
'type' => 'action',
'name' => 'Log Payment Event',
'position' => [
'x' => 200,
'y' => 0
],
'data' => [
'action' => 'log'
]
]
],
'edges' => [
[
'id' => 'e1',
'source' => 'trigger-1',
'target' => 'log-event'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://flowker.sandbox.lerian.net/v1/workflows/{id}"
payload := strings.NewReader("{\n \"name\": \"Payment Notification Flow v2\",\n \"description\": \"Updated flow with additional logging step.\",\n \"nodes\": [\n {\n \"id\": \"trigger-1\",\n \"type\": \"trigger\",\n \"name\": \"Webhook Trigger\",\n \"position\": {\n \"x\": 0,\n \"y\": 0\n },\n \"data\": {\n \"triggerType\": \"webhook\",\n \"path\": \"payments/received\",\n \"method\": \"POST\",\n \"input_contract\": \"open\",\n \"format\": \"json\"\n }\n },\n {\n \"id\": \"log-event\",\n \"type\": \"action\",\n \"name\": \"Log Payment Event\",\n \"position\": {\n \"x\": 200,\n \"y\": 0\n },\n \"data\": {\n \"action\": \"log\"\n }\n }\n ],\n \"edges\": [\n {\n \"id\": \"e1\",\n \"source\": \"trigger-1\",\n \"target\": \"log-event\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://flowker.sandbox.lerian.net/v1/workflows/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Payment Notification Flow v2\",\n \"description\": \"Updated flow with additional logging step.\",\n \"nodes\": [\n {\n \"id\": \"trigger-1\",\n \"type\": \"trigger\",\n \"name\": \"Webhook Trigger\",\n \"position\": {\n \"x\": 0,\n \"y\": 0\n },\n \"data\": {\n \"triggerType\": \"webhook\",\n \"path\": \"payments/received\",\n \"method\": \"POST\",\n \"input_contract\": \"open\",\n \"format\": \"json\"\n }\n },\n {\n \"id\": \"log-event\",\n \"type\": \"action\",\n \"name\": \"Log Payment Event\",\n \"position\": {\n \"x\": 200,\n \"y\": 0\n },\n \"data\": {\n \"action\": \"log\"\n }\n }\n ],\n \"edges\": [\n {\n \"id\": \"e1\",\n \"source\": \"trigger-1\",\n \"target\": \"log-event\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flowker.sandbox.lerian.net/v1/workflows/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Payment Notification Flow v2\",\n \"description\": \"Updated flow with additional logging step.\",\n \"nodes\": [\n {\n \"id\": \"trigger-1\",\n \"type\": \"trigger\",\n \"name\": \"Webhook Trigger\",\n \"position\": {\n \"x\": 0,\n \"y\": 0\n },\n \"data\": {\n \"triggerType\": \"webhook\",\n \"path\": \"payments/received\",\n \"method\": \"POST\",\n \"input_contract\": \"open\",\n \"format\": \"json\"\n }\n },\n {\n \"id\": \"log-event\",\n \"type\": \"action\",\n \"name\": \"Log Payment Event\",\n \"position\": {\n \"x\": 200,\n \"y\": 0\n },\n \"data\": {\n \"action\": \"log\"\n }\n }\n ],\n \"edges\": [\n {\n \"id\": \"e1\",\n \"source\": \"trigger-1\",\n \"target\": \"log-event\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Payment Notification Flow",
"description": "Receives a webhook trigger and logs the payment event.",
"status": "active",
"nodes": [
{
"id": "trigger-1",
"type": "trigger",
"name": "Webhook Trigger",
"position": {
"x": 0,
"y": 0
},
"data": {
"triggerType": "webhook",
"path": "payments/received",
"method": "POST",
"input_contract": "open",
"format": "json"
}
},
{
"id": "log-event",
"type": "action",
"name": "Log Payment Event",
"position": {
"x": 200,
"y": 0
},
"data": {
"action": "log"
}
}
],
"edges": [
{
"id": "e1",
"source": "trigger-1",
"target": "log-event"
}
],
"metadata": {
"team": "payments",
"environment": "sandbox"
},
"createdAt": "2026-03-17T14:30:00Z",
"updatedAt": "2026-03-17T14:31:00Z"
}{
"code": "FLK-0001",
"detail": "name is a required field",
"errors": [
{
"location": "body.nodes",
"message": "expected array length >= 1",
"value": "<unknown>"
}
],
"instance": "/v1/workflows",
"status": 400,
"title": "Bad Request",
"type": "https://errors.lerian.studio/v1/FLK-0001"
}{
"code": "FLK-0001",
"detail": "name is a required field",
"errors": [
{
"location": "body.nodes",
"message": "expected array length >= 1",
"value": "<unknown>"
}
],
"instance": "/v1/workflows",
"status": 400,
"title": "Bad Request",
"type": "https://errors.lerian.studio/v1/FLK-0001"
}{
"code": "FLK-0001",
"detail": "name is a required field",
"errors": [
{
"location": "body.nodes",
"message": "expected array length >= 1",
"value": "<unknown>"
}
],
"instance": "/v1/workflows",
"status": 400,
"title": "Bad Request",
"type": "https://errors.lerian.studio/v1/FLK-0001"
}{
"code": "FLK-0001",
"detail": "name is a required field",
"errors": [
{
"location": "body.nodes",
"message": "expected array length >= 1",
"value": "<unknown>"
}
],
"instance": "/v1/workflows",
"status": 400,
"title": "Bad Request",
"type": "https://errors.lerian.studio/v1/FLK-0001"
}Actualizar un workflow
Utiliza este endpoint para actualizar una definición de workflow existente. Solo se pueden actualizar workflows con estado draft.
curl --request PUT \
--url https://flowker.sandbox.lerian.net/v1/workflows/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Payment Notification Flow v2",
"description": "Updated flow with additional logging step.",
"nodes": [
{
"id": "trigger-1",
"type": "trigger",
"name": "Webhook Trigger",
"position": {
"x": 0,
"y": 0
},
"data": {
"triggerType": "webhook",
"path": "payments/received",
"method": "POST",
"input_contract": "open",
"format": "json"
}
},
{
"id": "log-event",
"type": "action",
"name": "Log Payment Event",
"position": {
"x": 200,
"y": 0
},
"data": {
"action": "log"
}
}
],
"edges": [
{
"id": "e1",
"source": "trigger-1",
"target": "log-event"
}
]
}
'import requests
url = "https://flowker.sandbox.lerian.net/v1/workflows/{id}"
payload = {
"name": "Payment Notification Flow v2",
"description": "Updated flow with additional logging step.",
"nodes": [
{
"id": "trigger-1",
"type": "trigger",
"name": "Webhook Trigger",
"position": {
"x": 0,
"y": 0
},
"data": {
"triggerType": "webhook",
"path": "payments/received",
"method": "POST",
"input_contract": "open",
"format": "json"
}
},
{
"id": "log-event",
"type": "action",
"name": "Log Payment Event",
"position": {
"x": 200,
"y": 0
},
"data": { "action": "log" }
}
],
"edges": [
{
"id": "e1",
"source": "trigger-1",
"target": "log-event"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Payment Notification Flow v2',
description: 'Updated flow with additional logging step.',
nodes: [
{
id: 'trigger-1',
type: 'trigger',
name: 'Webhook Trigger',
position: {x: 0, y: 0},
data: {
triggerType: 'webhook',
path: 'payments/received',
method: 'POST',
input_contract: 'open',
format: 'json'
}
},
{
id: 'log-event',
type: 'action',
name: 'Log Payment Event',
position: {x: 200, y: 0},
data: {action: 'log'}
}
],
edges: [{id: 'e1', source: 'trigger-1', target: 'log-event'}]
})
};
fetch('https://flowker.sandbox.lerian.net/v1/workflows/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://flowker.sandbox.lerian.net/v1/workflows/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Payment Notification Flow v2',
'description' => 'Updated flow with additional logging step.',
'nodes' => [
[
'id' => 'trigger-1',
'type' => 'trigger',
'name' => 'Webhook Trigger',
'position' => [
'x' => 0,
'y' => 0
],
'data' => [
'triggerType' => 'webhook',
'path' => 'payments/received',
'method' => 'POST',
'input_contract' => 'open',
'format' => 'json'
]
],
[
'id' => 'log-event',
'type' => 'action',
'name' => 'Log Payment Event',
'position' => [
'x' => 200,
'y' => 0
],
'data' => [
'action' => 'log'
]
]
],
'edges' => [
[
'id' => 'e1',
'source' => 'trigger-1',
'target' => 'log-event'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://flowker.sandbox.lerian.net/v1/workflows/{id}"
payload := strings.NewReader("{\n \"name\": \"Payment Notification Flow v2\",\n \"description\": \"Updated flow with additional logging step.\",\n \"nodes\": [\n {\n \"id\": \"trigger-1\",\n \"type\": \"trigger\",\n \"name\": \"Webhook Trigger\",\n \"position\": {\n \"x\": 0,\n \"y\": 0\n },\n \"data\": {\n \"triggerType\": \"webhook\",\n \"path\": \"payments/received\",\n \"method\": \"POST\",\n \"input_contract\": \"open\",\n \"format\": \"json\"\n }\n },\n {\n \"id\": \"log-event\",\n \"type\": \"action\",\n \"name\": \"Log Payment Event\",\n \"position\": {\n \"x\": 200,\n \"y\": 0\n },\n \"data\": {\n \"action\": \"log\"\n }\n }\n ],\n \"edges\": [\n {\n \"id\": \"e1\",\n \"source\": \"trigger-1\",\n \"target\": \"log-event\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://flowker.sandbox.lerian.net/v1/workflows/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Payment Notification Flow v2\",\n \"description\": \"Updated flow with additional logging step.\",\n \"nodes\": [\n {\n \"id\": \"trigger-1\",\n \"type\": \"trigger\",\n \"name\": \"Webhook Trigger\",\n \"position\": {\n \"x\": 0,\n \"y\": 0\n },\n \"data\": {\n \"triggerType\": \"webhook\",\n \"path\": \"payments/received\",\n \"method\": \"POST\",\n \"input_contract\": \"open\",\n \"format\": \"json\"\n }\n },\n {\n \"id\": \"log-event\",\n \"type\": \"action\",\n \"name\": \"Log Payment Event\",\n \"position\": {\n \"x\": 200,\n \"y\": 0\n },\n \"data\": {\n \"action\": \"log\"\n }\n }\n ],\n \"edges\": [\n {\n \"id\": \"e1\",\n \"source\": \"trigger-1\",\n \"target\": \"log-event\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flowker.sandbox.lerian.net/v1/workflows/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Payment Notification Flow v2\",\n \"description\": \"Updated flow with additional logging step.\",\n \"nodes\": [\n {\n \"id\": \"trigger-1\",\n \"type\": \"trigger\",\n \"name\": \"Webhook Trigger\",\n \"position\": {\n \"x\": 0,\n \"y\": 0\n },\n \"data\": {\n \"triggerType\": \"webhook\",\n \"path\": \"payments/received\",\n \"method\": \"POST\",\n \"input_contract\": \"open\",\n \"format\": \"json\"\n }\n },\n {\n \"id\": \"log-event\",\n \"type\": \"action\",\n \"name\": \"Log Payment Event\",\n \"position\": {\n \"x\": 200,\n \"y\": 0\n },\n \"data\": {\n \"action\": \"log\"\n }\n }\n ],\n \"edges\": [\n {\n \"id\": \"e1\",\n \"source\": \"trigger-1\",\n \"target\": \"log-event\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Payment Notification Flow",
"description": "Receives a webhook trigger and logs the payment event.",
"status": "active",
"nodes": [
{
"id": "trigger-1",
"type": "trigger",
"name": "Webhook Trigger",
"position": {
"x": 0,
"y": 0
},
"data": {
"triggerType": "webhook",
"path": "payments/received",
"method": "POST",
"input_contract": "open",
"format": "json"
}
},
{
"id": "log-event",
"type": "action",
"name": "Log Payment Event",
"position": {
"x": 200,
"y": 0
},
"data": {
"action": "log"
}
}
],
"edges": [
{
"id": "e1",
"source": "trigger-1",
"target": "log-event"
}
],
"metadata": {
"team": "payments",
"environment": "sandbox"
},
"createdAt": "2026-03-17T14:30:00Z",
"updatedAt": "2026-03-17T14:31:00Z"
}{
"code": "FLK-0001",
"detail": "name is a required field",
"errors": [
{
"location": "body.nodes",
"message": "expected array length >= 1",
"value": "<unknown>"
}
],
"instance": "/v1/workflows",
"status": 400,
"title": "Bad Request",
"type": "https://errors.lerian.studio/v1/FLK-0001"
}{
"code": "FLK-0001",
"detail": "name is a required field",
"errors": [
{
"location": "body.nodes",
"message": "expected array length >= 1",
"value": "<unknown>"
}
],
"instance": "/v1/workflows",
"status": 400,
"title": "Bad Request",
"type": "https://errors.lerian.studio/v1/FLK-0001"
}{
"code": "FLK-0001",
"detail": "name is a required field",
"errors": [
{
"location": "body.nodes",
"message": "expected array length >= 1",
"value": "<unknown>"
}
],
"instance": "/v1/workflows",
"status": 400,
"title": "Bad Request",
"type": "https://errors.lerian.studio/v1/FLK-0001"
}{
"code": "FLK-0001",
"detail": "name is a required field",
"errors": [
{
"location": "body.nodes",
"message": "expected array length >= 1",
"value": "<unknown>"
}
],
"instance": "/v1/workflows",
"status": 400,
"title": "Bad Request",
"type": "https://errors.lerian.studio/v1/FLK-0001"
}Autorizaciones
Token bearer JWT emitido por el provider de identidad. Envíalo en la cabecera Authorization como Bearer <token>.
Parámetros de ruta
Identificador único del workflow.
Cuerpo
Cuerpo de la solicitud que contiene la definición actualizada del workflow.
Nombre actualizado del workflow.
1 - 100"Payment Notification Flow v2"
Descripción actualizada del workflow.
500"Updated flow with additional logging step."
Conexiones actualizadas entre nodes.
200Show child attributes
Show child attributes
Metadatos personalizados actualizados.
Show child attributes
Show child attributes
Lista actualizada de nodes del workflow.
100Show child attributes
Show child attributes
Respuesta
Indica que la solicitud fue exitosa y la respuesta contiene los datos solicitados.
Marca de tiempo de cuando se creó el workflow.
"2026-03-17T14:30:00Z"
Descripción legible por humanos del workflow.
"Receives a webhook trigger and logs the payment event."
Conexiones entre nodes que definen el flujo de ejecución.
Show child attributes
Show child attributes
Identificador único del workflow.
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
Pares clave-valor personalizados para etiquetar o categorizar.
Show child attributes
Show child attributes
{
"team": "payments",
"environment": "sandbox"
}
Nombre único del workflow.
"Payment Notification Flow"
Los pasos que componen este workflow.
Show child attributes
Show child attributes
Estado actual del ciclo de vida: draft (editable), active (ejecutable) o inactive (archivado).
draft, active, inactive "active"
Marca de tiempo de la última actualización.
"2026-03-17T15:00:00Z"
¿Esta página le ayudó?

