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"
}Atualizar um workflow
Utilize este endpoint para atualizar uma definição de workflow existente. Somente workflows com status draft podem ser atualizados.
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"
}Autorizações
Token bearer JWT emitido pelo provider de identidade. Envie-o no cabeçalho Authorization como Bearer <token>.
Parâmetros de caminho
Identificador único do workflow.
Corpo
Corpo da solicitação contendo a definição atualizada do workflow.
Nome atualizado do workflow.
1 - 100"Payment Notification Flow v2"
Descrição atualizada do workflow.
500"Updated flow with additional logging step."
Conexões atualizadas entre nodes.
200Show child attributes
Show child attributes
Metadados personalizados atualizados.
Show child attributes
Show child attributes
Lista atualizada de nodes do workflow.
100Show child attributes
Show child attributes
Resposta
Indica que a solicitação foi bem-sucedida e a resposta contém os dados solicitados.
Marca temporal de quando o workflow foi criado.
"2026-03-17T14:30:00Z"
Descrição legível por humanos do workflow.
"Receives a webhook trigger and logs the payment event."
Conexões entre nodes que definem o fluxo de execução.
Show child attributes
Show child attributes
Identificador único do workflow.
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
Pares chave-valor personalizados para etiquetar ou categorizar.
Show child attributes
Show child attributes
{
"team": "payments",
"environment": "sandbox"
}
Nome único do workflow.
"Payment Notification Flow"
Os passos que compõem este workflow.
Show child attributes
Show child attributes
Status atual do ciclo de vida: draft (editável), active (executável) ou inactive (arquivado).
draft, active, inactive "active"
Marca temporal da última atualização.
"2026-03-17T15:00:00Z"
Esta página foi útil?

