Saltar al contenido principal
POST
/
v1
/
organizations
/
{organization_id}
/
flows
Crear un flujo
curl --request POST \
  --url https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/flows \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": {
    "en-EN": "Daily Backup Flow",
    "es-ES": "Proceso de copia diaria"
  },
  "description": {
    "en-EN": "Automated daily backup process",
    "es-ES": "Proceso automatizado de copia de seguridad diaria"
  },
  "type": "workspace",
  "detection_only": false,
  "cooldown_minutes": 60,
  "enabled": false,
  "init_text": {
    "en-EN": "Starting backup process...",
    "es-ES": "Iniciando proceso de copia..."
  },
  "ok_text": {
    "en-EN": "Backup completed successfully",
    "es-ES": "Copia completada correctamente"
  },
  "ko_text": {
    "en-EN": "Backup failed. Please check logs.",
    "es-ES": "Copia fallida. Revise los registros."
  },
  "target": {
    "type": "workspaces",
    "ids": [
      "507f1f77bcf86cd799439012",
      "507f1f77bcf86cd799439013"
    ]
  },
  "microservice_id": "507f1f77bcf86cd799439014",
  "conditions": [
    {
      "condition_type_id": "507f1f77bcf86cd799439015",
      "operator": "gt",
      "compare_to": "80",
      "check_every": 300
    }
  ]
}
'
import requests

url = "https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/flows"

payload = {
"name": {
"en-EN": "Daily Backup Flow",
"es-ES": "Proceso de copia diaria"
},
"description": {
"en-EN": "Automated daily backup process",
"es-ES": "Proceso automatizado de copia de seguridad diaria"
},
"type": "workspace",
"detection_only": False,
"cooldown_minutes": 60,
"enabled": False,
"init_text": {
"en-EN": "Starting backup process...",
"es-ES": "Iniciando proceso de copia..."
},
"ok_text": {
"en-EN": "Backup completed successfully",
"es-ES": "Copia completada correctamente"
},
"ko_text": {
"en-EN": "Backup failed. Please check logs.",
"es-ES": "Copia fallida. Revise los registros."
},
"target": {
"type": "workspaces",
"ids": ["507f1f77bcf86cd799439012", "507f1f77bcf86cd799439013"]
},
"microservice_id": "507f1f77bcf86cd799439014",
"conditions": [
{
"condition_type_id": "507f1f77bcf86cd799439015",
"operator": "gt",
"compare_to": "80",
"check_every": 300
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: {'en-EN': 'Daily Backup Flow', 'es-ES': 'Proceso de copia diaria'},
description: {
'en-EN': 'Automated daily backup process',
'es-ES': 'Proceso automatizado de copia de seguridad diaria'
},
type: 'workspace',
detection_only: false,
cooldown_minutes: 60,
enabled: false,
init_text: {
'en-EN': 'Starting backup process...',
'es-ES': 'Iniciando proceso de copia...'
},
ok_text: {
'en-EN': 'Backup completed successfully',
'es-ES': 'Copia completada correctamente'
},
ko_text: {
'en-EN': 'Backup failed. Please check logs.',
'es-ES': 'Copia fallida. Revise los registros.'
},
target: {
type: 'workspaces',
ids: ['507f1f77bcf86cd799439012', '507f1f77bcf86cd799439013']
},
microservice_id: '507f1f77bcf86cd799439014',
conditions: [
{
condition_type_id: '507f1f77bcf86cd799439015',
operator: 'gt',
compare_to: '80',
check_every: 300
}
]
})
};

fetch('https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/flows', 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://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/flows",
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' => [
'en-EN' => 'Daily Backup Flow',
'es-ES' => 'Proceso de copia diaria'
],
'description' => [
'en-EN' => 'Automated daily backup process',
'es-ES' => 'Proceso automatizado de copia de seguridad diaria'
],
'type' => 'workspace',
'detection_only' => false,
'cooldown_minutes' => 60,
'enabled' => false,
'init_text' => [
'en-EN' => 'Starting backup process...',
'es-ES' => 'Iniciando proceso de copia...'
],
'ok_text' => [
'en-EN' => 'Backup completed successfully',
'es-ES' => 'Copia completada correctamente'
],
'ko_text' => [
'en-EN' => 'Backup failed. Please check logs.',
'es-ES' => 'Copia fallida. Revise los registros.'
],
'target' => [
'type' => 'workspaces',
'ids' => [
'507f1f77bcf86cd799439012',
'507f1f77bcf86cd799439013'
]
],
'microservice_id' => '507f1f77bcf86cd799439014',
'conditions' => [
[
'condition_type_id' => '507f1f77bcf86cd799439015',
'operator' => 'gt',
'compare_to' => '80',
'check_every' => 300
]
]
]),
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://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/flows"

payload := strings.NewReader("{\n \"name\": {\n \"en-EN\": \"Daily Backup Flow\",\n \"es-ES\": \"Proceso de copia diaria\"\n },\n \"description\": {\n \"en-EN\": \"Automated daily backup process\",\n \"es-ES\": \"Proceso automatizado de copia de seguridad diaria\"\n },\n \"type\": \"workspace\",\n \"detection_only\": false,\n \"cooldown_minutes\": 60,\n \"enabled\": false,\n \"init_text\": {\n \"en-EN\": \"Starting backup process...\",\n \"es-ES\": \"Iniciando proceso de copia...\"\n },\n \"ok_text\": {\n \"en-EN\": \"Backup completed successfully\",\n \"es-ES\": \"Copia completada correctamente\"\n },\n \"ko_text\": {\n \"en-EN\": \"Backup failed. Please check logs.\",\n \"es-ES\": \"Copia fallida. Revise los registros.\"\n },\n \"target\": {\n \"type\": \"workspaces\",\n \"ids\": [\n \"507f1f77bcf86cd799439012\",\n \"507f1f77bcf86cd799439013\"\n ]\n },\n \"microservice_id\": \"507f1f77bcf86cd799439014\",\n \"conditions\": [\n {\n \"condition_type_id\": \"507f1f77bcf86cd799439015\",\n \"operator\": \"gt\",\n \"compare_to\": \"80\",\n \"check_every\": 300\n }\n ]\n}")

req, _ := http.NewRequest("POST", 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.post("https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/flows")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": {\n \"en-EN\": \"Daily Backup Flow\",\n \"es-ES\": \"Proceso de copia diaria\"\n },\n \"description\": {\n \"en-EN\": \"Automated daily backup process\",\n \"es-ES\": \"Proceso automatizado de copia de seguridad diaria\"\n },\n \"type\": \"workspace\",\n \"detection_only\": false,\n \"cooldown_minutes\": 60,\n \"enabled\": false,\n \"init_text\": {\n \"en-EN\": \"Starting backup process...\",\n \"es-ES\": \"Iniciando proceso de copia...\"\n },\n \"ok_text\": {\n \"en-EN\": \"Backup completed successfully\",\n \"es-ES\": \"Copia completada correctamente\"\n },\n \"ko_text\": {\n \"en-EN\": \"Backup failed. Please check logs.\",\n \"es-ES\": \"Copia fallida. Revise los registros.\"\n },\n \"target\": {\n \"type\": \"workspaces\",\n \"ids\": [\n \"507f1f77bcf86cd799439012\",\n \"507f1f77bcf86cd799439013\"\n ]\n },\n \"microservice_id\": \"507f1f77bcf86cd799439014\",\n \"conditions\": [\n {\n \"condition_type_id\": \"507f1f77bcf86cd799439015\",\n \"operator\": \"gt\",\n \"compare_to\": \"80\",\n \"check_every\": 300\n }\n ]\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/flows")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": {\n \"en-EN\": \"Daily Backup Flow\",\n \"es-ES\": \"Proceso de copia diaria\"\n },\n \"description\": {\n \"en-EN\": \"Automated daily backup process\",\n \"es-ES\": \"Proceso automatizado de copia de seguridad diaria\"\n },\n \"type\": \"workspace\",\n \"detection_only\": false,\n \"cooldown_minutes\": 60,\n \"enabled\": false,\n \"init_text\": {\n \"en-EN\": \"Starting backup process...\",\n \"es-ES\": \"Iniciando proceso de copia...\"\n },\n \"ok_text\": {\n \"en-EN\": \"Backup completed successfully\",\n \"es-ES\": \"Copia completada correctamente\"\n },\n \"ko_text\": {\n \"en-EN\": \"Backup failed. Please check logs.\",\n \"es-ES\": \"Copia fallida. Revise los registros.\"\n },\n \"target\": {\n \"type\": \"workspaces\",\n \"ids\": [\n \"507f1f77bcf86cd799439012\",\n \"507f1f77bcf86cd799439013\"\n ]\n },\n \"microservice_id\": \"507f1f77bcf86cd799439014\",\n \"conditions\": [\n {\n \"condition_type_id\": \"507f1f77bcf86cd799439015\",\n \"operator\": \"gt\",\n \"compare_to\": \"80\",\n \"check_every\": 300\n }\n ]\n}"

response = http.request(request)
puts response.read_body
{
  "id": "507f1f77bcf86cd799439011"
}
{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}
{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}
{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}
{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}
{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}
{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}

Autorizaciones

Authorization
string
header
requerido

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Encabezados

Accept-Language
enum<string>
predeterminado:es-ES

Código de idioma para campos de texto que admiten varios idiomas. Al crear o actualizar recursos, esto especifica el idioma de los valores de texto proporcionados. Al recuperar recursos, esto determina qué variante de idioma de los campos de texto multilingües se devuelve. Valores aceptados: 'en-EN' (inglés), 'es-ES' (español), 'pt-BR' (portugués), 'ca-ES' (catalán), 'eu-ES' (euskera). El valor predeterminado es 'es-ES' si no se proporciona.

Opciones disponibles:
en-EN,
es-ES,
pt-BR,
ca-ES,
eu-ES

Parámetros de ruta

organization_id
string
requerido

El identificador único de la organización

Maximum string length: 24
Pattern: ^[0-9a-f]{24}$

Cuerpo

application/json
name
object
requerido

Nombre del flujo. Se requiere al menos una clave de idioma; cada valor debe tener entre 1 y 512 caracteres.

description
object
requerido

Descripción del flujo. Se requiere al menos una clave de idioma; cada valor debe tener entre 1 y 512 caracteres.

type
enum<string>
requerido
Opciones disponibles:
session,
workspace
detection_only
boolean
requerido
cooldown_minutes
number
requerido

Tiempo de espera en minutos. Debe estar entre 10 y 1440.

Rango requerido: 10 <= x <= 1440
target
object
requerido
microservice_id
string
requerido
Maximum string length: 24
Pattern: ^[0-9a-f]{24}$
conditions
object[]
requerido
enabled
boolean
predeterminado:false

Si es true, el flujo queda habilitado tras su creación (requiere condiciones, microservicio y objetivo válidos). Si se omite o es false, se crea un flujo deshabilitado.

init_text
object

Mensaje de texto inicial. Se omite si no es necesario. Cuando se proporciona, se requiere al menos una clave de idioma; cada valor debe tener entre 1 y 512 caracteres.

ok_text
object

Mensaje de texto de éxito. Se omite si no es necesario. Cuando se proporciona, se requiere al menos una clave de idioma; cada valor debe tener entre 1 y 512 caracteres.

ko_text
object

Mensaje de texto de error. Se omite si no es necesario. Cuando se proporciona, se requiere al menos una clave de idioma; cada valor debe tener entre 1 y 512 caracteres.

Respuesta

Flujo creado correctamente. La respuesta contiene el recurso creado.

Detalle del flujo tal como lo devuelve GET flow by id. La organización está implícita por la ruta /v1/organizations/{organization_id}/flows/{flow_id}. Los workspaces/grupos de destino se normalizan en target.ids (cadenas hexadecimales de ObjectId de MongoDB).

id
string
requerido
Maximum string length: 24
Pattern: ^[0-9a-f]{24}$
created_at
string<date-time>
requerido
name
string
requerido

Resuelto para Accept-Language cuando es multilingüe

description
string
requerido

Resuelto para Accept-Language cuando es multilingüe

type
enum<string>
requerido
Opciones disponibles:
session,
workspace
version
number
requerido
detection_only
boolean
requerido
cooldown_minutes
number
requerido

Tiempo de espera en minutos

enabled
boolean
requerido
target
object
requerido

Destino de ejecución: type selecciona el alcance; ids enumera valores de _id de Workspace, _id de grupo de Workspace o _id de Grupo de reporte (vacío cuando type es ALL_WORKSPACES)

conditions
object[]

Omitido o vacío cuando el flujo no tiene condiciones

trigger
string | null
microservice_id
string | null

ID del microservicio vinculado cuando está presente

init_text
string | null

Resuelto para Accept-Language cuando es multilingüe

ok_text
string | null

Resuelto para Accept-Language cuando es multilingüe

ko_text
string | null

Resuelto para Accept-Language cuando es multilingüe

execution_metrics
object | null

Presente cuando se calcularon métricas para este flujo