curl --request POST \
--url https://flowker.sandbox.lerian.net/v1/workflows \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "Payment Notification Flow",
"description": "Receives a webhook trigger and logs the payment event.",
"nodes": [
{
"id": "trigger-1",
"type": "trigger",
"name": "Webhook Trigger",
"position": {
"x": 0,
"y": 0
},
"data": {
"triggerId": "webhook"
}
},
{
"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"
}
}
'import requests
url = "https://flowker.sandbox.lerian.net/v1/workflows"
payload = {
"name": "Payment Notification Flow",
"description": "Receives a webhook trigger and logs the payment event.",
"nodes": [
{
"id": "trigger-1",
"type": "trigger",
"name": "Webhook Trigger",
"position": {
"x": 0,
"y": 0
},
"data": { "triggerId": "webhook" }
},
{
"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"
}
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Payment Notification Flow',
description: 'Receives a webhook trigger and logs the payment event.',
nodes: [
{
id: 'trigger-1',
type: 'trigger',
name: 'Webhook Trigger',
position: {x: 0, y: 0},
data: {triggerId: 'webhook'}
},
{
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'}
})
};
fetch('https://flowker.sandbox.lerian.net/v1/workflows', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Payment Notification Flow',
'description' => 'Receives a webhook trigger and logs the payment event.',
'nodes' => [
[
'id' => 'trigger-1',
'type' => 'trigger',
'name' => 'Webhook Trigger',
'position' => [
'x' => 0,
'y' => 0
],
'data' => [
'triggerId' => 'webhook'
]
],
[
'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'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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"
payload := strings.NewReader("{\n \"name\": \"Payment Notification Flow\",\n \"description\": \"Receives a webhook trigger and logs the payment event.\",\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 \"triggerId\": \"webhook\"\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 \"metadata\": {\n \"team\": \"payments\",\n \"environment\": \"sandbox\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.post("https://flowker.sandbox.lerian.net/v1/workflows")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Payment Notification Flow\",\n \"description\": \"Receives a webhook trigger and logs the payment event.\",\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 \"triggerId\": \"webhook\"\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 \"metadata\": {\n \"team\": \"payments\",\n \"environment\": \"sandbox\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flowker.sandbox.lerian.net/v1/workflows")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Payment Notification Flow\",\n \"description\": \"Receives a webhook trigger and logs the payment event.\",\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 \"triggerId\": \"webhook\"\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 \"metadata\": {\n \"team\": \"payments\",\n \"environment\": \"sandbox\"\n }\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2026-03-17T14:30:00Z",
"status": "draft",
"version": "1.0.0",
"workflowId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}{
"code": "FLK-0001",
"message": "Invalid input provided",
"title": "Bad Request"
}{
"code": "FLK-0001",
"message": "Invalid input provided",
"title": "Bad Request"
}{
"code": "FLK-0001",
"message": "Invalid input provided",
"title": "Bad Request"
}Crear un workflow
Utilice este endpoint para crear una nueva definición de workflow. Los nuevos workflows se crean con estado draft.
curl --request POST \
--url https://flowker.sandbox.lerian.net/v1/workflows \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "Payment Notification Flow",
"description": "Receives a webhook trigger and logs the payment event.",
"nodes": [
{
"id": "trigger-1",
"type": "trigger",
"name": "Webhook Trigger",
"position": {
"x": 0,
"y": 0
},
"data": {
"triggerId": "webhook"
}
},
{
"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"
}
}
'import requests
url = "https://flowker.sandbox.lerian.net/v1/workflows"
payload = {
"name": "Payment Notification Flow",
"description": "Receives a webhook trigger and logs the payment event.",
"nodes": [
{
"id": "trigger-1",
"type": "trigger",
"name": "Webhook Trigger",
"position": {
"x": 0,
"y": 0
},
"data": { "triggerId": "webhook" }
},
{
"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"
}
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Payment Notification Flow',
description: 'Receives a webhook trigger and logs the payment event.',
nodes: [
{
id: 'trigger-1',
type: 'trigger',
name: 'Webhook Trigger',
position: {x: 0, y: 0},
data: {triggerId: 'webhook'}
},
{
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'}
})
};
fetch('https://flowker.sandbox.lerian.net/v1/workflows', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Payment Notification Flow',
'description' => 'Receives a webhook trigger and logs the payment event.',
'nodes' => [
[
'id' => 'trigger-1',
'type' => 'trigger',
'name' => 'Webhook Trigger',
'position' => [
'x' => 0,
'y' => 0
],
'data' => [
'triggerId' => 'webhook'
]
],
[
'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'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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"
payload := strings.NewReader("{\n \"name\": \"Payment Notification Flow\",\n \"description\": \"Receives a webhook trigger and logs the payment event.\",\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 \"triggerId\": \"webhook\"\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 \"metadata\": {\n \"team\": \"payments\",\n \"environment\": \"sandbox\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.post("https://flowker.sandbox.lerian.net/v1/workflows")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Payment Notification Flow\",\n \"description\": \"Receives a webhook trigger and logs the payment event.\",\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 \"triggerId\": \"webhook\"\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 \"metadata\": {\n \"team\": \"payments\",\n \"environment\": \"sandbox\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flowker.sandbox.lerian.net/v1/workflows")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Payment Notification Flow\",\n \"description\": \"Receives a webhook trigger and logs the payment event.\",\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 \"triggerId\": \"webhook\"\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 \"metadata\": {\n \"team\": \"payments\",\n \"environment\": \"sandbox\"\n }\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2026-03-17T14:30:00Z",
"status": "draft",
"version": "1.0.0",
"workflowId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}{
"code": "FLK-0001",
"message": "Invalid input provided",
"title": "Bad Request"
}{
"code": "FLK-0001",
"message": "Invalid input provided",
"title": "Bad Request"
}{
"code": "FLK-0001",
"message": "Invalid input provided",
"title": "Bad Request"
}Autorizaciones
Clave de API para autenticar las solicitudes a la API de Flowker. Se aprovisiona mediante la variable de entorno API_KEY durante el despliegue.
Cuerpo
Cuerpo de la solicitud que contiene la definición del workflow.
Nombre único para el workflow.
1 - 100"Payment Notification Flow"
Descripción opcional legible por humanos del propósito del workflow.
500"Receives a webhook trigger and logs the payment event."
Conexiones entre nodos que definen el flujo de ejecución. Cada arista vincula un nodo de origen a un nodo de destino, opcionalmente con una condición.
200Show child attributes
Show child attributes
Pares clave-valor personalizados para etiquetar o categorizar el workflow.
Show child attributes
Show child attributes
{
"team": "payments",
"environment": "sandbox"
}
Los pasos que componen este workflow. Cada nodo es una unidad de trabajo: un disparador, una llamada a ejecutor, una rama condicional o una acción.
100Show child attributes
Show child attributes
Respuesta
Indica que el recurso fue creado exitosamente y la operación se completó según lo esperado.
Marca de tiempo de cuando se creó el workflow.
"2026-03-17T14:30:00Z"
Estado inicial del workflow (siempre draft al crear).
"draft"
Versión de la definición del workflow.
"1.0.0"
Identificador único del workflow creado.
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
¿Esta página le ayudó?

