Saltar al contenido
NimbusNexus
Transforms · Pipelines declarativas para peticiones

Filtra, recorta y adapta una petición
sin escribir código.

Una pipeline es una lista corta de pasos: descartar una petición si no coincide, quitar o añadir campos, reconstruir el cuerpo a partir de una plantilla, poner cabeceras. Constrúyela en la consola o por la API, pruébala, guarda sus versiones, ejecútala por la API o haz referencia a ella por su id desde el producto que envía.

Cómo funciona

Constrúyela, pruébala y luego ejecútala donde haga falta.

Una pipeline es un documento JSON que se comprueba entero al guardarlo. Ningún paso ejecuta código tuyo, así que ninguno puede entrar en bucle, esperar ni hacer llamadas externas.

  1. Construye una pipeline

    Añade pasos en el formulario de la consola, pégalos como JSON o parte de una plantilla: mensajes de Slack, Discord y Teams, Keep only these fields, Drop personal data. Un documento que nunca podría ejecutarse se rechaza al guardarlo, con su paso, su ruta y el motivo.

  2. Pruébala

    Ejecuta lo que hay en el editor con una petición que pegues, y mira el cuerpo y las cabeceras que enviaría, el paso que la descartó o por qué falló. Una prueba no guarda nada ni suma al recuento.

  3. Guarda sus versiones

    Guardar contenido nuevo añade una versión, y una versión nunca cambia. Guardar el mismo contenido no añade ninguna, y restaurar una versión anterior es volver a guardar su contenido.

  4. Ejecútala

    Llama a la API con una petición y lee lo que hizo la pipeline, o haz referencia a la pipeline por su id desde Webhooks, que la ejecuta en su propio proceso antes de cada entrega.

Transforms no envía nada por sí mismo ni guarda nada de lo que procesa. No es un servicio de reenvío: Webhooks entrega eventos y Request Bins reenvía peticiones, y Transforms ejecuta la pipeline y responde con lo que hizo.

Lo que puede hacer una pipeline

Seis pasos, que se ejecutan en el orden en que los escribes.

Cubren las tareas para las que existen la mayoría de las transformaciones. Una pipeline no tiene bucles, ni reloj, ni red, así que la misma pipeline hace siempre lo mismo con la misma petición.

Filter

Mantén una petición solo si coincide, o descártala si coincide. Comprueba campos, objetos anidados y arrays con operadores como $gte, $in y $contains, y combínalos con $and, $or y $not.

Remove fields

Quita campos del cuerpo por su ruta. * equivale a un nivel y ** a cualquier profundidad, así que **.email quita todos los campos email, estén donde estén.

Set fields

Añade o sobrescribe campos con valores de un pequeño lenguaje de plantillas: {{ data.id }} inserta un valor como texto y {"$ref": "data.amount"} lo inserta con su tipo.

Reshape the body

Sustituye el cuerpo por uno que escribes tú, con filtros como money(), date(), truncate() y join(). Así es como una plantilla crea un mensaje de Slack, Discord o Teams.

Headers

Pon, quita y renombra cabeceras, con valores de plantilla. Una credencial no va aquí, donde se vería al leer la pipeline: para eso está el paso siguiente.

Credential

Indica que un bearer token, autenticación básica o una clave de API va en la petición, y nombra el slot del que sale. Los pasos Credential se ejecutan al final, así que ningún otro paso puede leer una credencial.

Plantillas

Mensajes de Slack, Discord y Teams a los que el texto del evento no puede dar formato ni cerrar antes de tiempo, Keep only these fields y Drop personal data. Al guardar una, obtienes una copia que es tuya.

Límites fijos

20 pasos, un cuerpo de 256 KiB y 100,000 valores leídos o copiados en una ejecución, en todos los planes. Al superar un límite, la ejecución falla con un motivo claro. Nunca se queda colgada.

En una petición

Envíale una petición. Lee lo que hizo la pipeline.

Esta pipeline mantiene las facturas pagadas de $1,000 o más, quita el email del cliente y cualquier número de teléfono, y añade dos campos y una cabecera. La ejecución responde con el resultado y no guarda nada de él.

La pipeline

{
  "version": 1,
  "steps": [
    { "filter": { "type": "invoice.paid", "data": { "amount": { "$gte": 100000 } } } },
    { "drop": ["data.customer.email", "**.phone"] },
    { "set": {
        "event_type": "{{ type }}",
        "amount_display": "{{ data.amount | money(data.currency) }}"
    } },
    { "headers": { "set": { "X-Event-Type": "{{ type }}" } } }
  ]
}

La ejecución

# Ejecuta la pipeline guardada con una petición
curl -X POST "https://transforms.nimbusnexus.net/v1/pipelines/$PIPELINE_ID/run" \
  -H "Authorization: Bearer $TRANSFORMS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"body":{"type":"invoice.paid","data":{"id":"in_42","amount":150000,"currency":"usd","customer":{"name":"Ana Silva","email":"[email protected]","phone":"+1 202 555 0142"}}}}'

La respuesta

{
  "status": "ok",
  "version": 3,
  "body": {
    "type": "invoice.paid",
    "data": {
      "id": "in_42",
      "amount": 150000,
      "currency": "usd",
      "customer": { "name": "Ana Silva" }
    },
    "event_type": "invoice.paid",
    "amount_display": "1,500.00 USD"
  },
  "body_changed": true,
  "headers": { "X-Event-Type": "invoice.paid" },
  "query": {},
  "step": null,
  "note": null,
  "reason": null,
  "error": null,
  "duration_ms": 0.4
}
Credenciales

Transforms no guarda credenciales. Las guarda el producto que envía.

Una pipeline puede indicar que una credencial va en una petición, y al leerla no se ve ningún valor, porque no tiene ninguno. Para enviar una, ejecuta la pipeline por referencia desde el producto que envía.

Un slot, no un valor

Un paso Credential indica qué tipo de credencial va dónde y nombra un slot. El documento contiene ese nombre y nada más, así que leer una pipeline de nuevo nunca muestra una credencial.

Se rellena donde se envía

Un producto que ejecuta la pipeline por referencia asigna el slot a un secreto de su propio almacén, con su propia clave, y lo envía a sus propias URLs. Fuera de ese producto, el slot no significa nada.

Aquí se muestra oculta

Test y la API de ejecución muestran lo que añadiría el paso, como Authorization: Bearer ••••. Ninguno de los dos puede enviar una credencial, porque Transforms no tiene ninguna que enviar.

Primero se ve dónde se ejecuta

Al leer una pipeline se ven los productos que la ejecutan por referencia y la versión que ejecuta cada uno. Una versión nueva con un paso Credential, o borrar la pipeline, exige nombrar antes a cada uno de ellos.

Para qué se usa

Las tareas para las que sirve, y ninguna necesita un script.

CREDENCIALES
Añade lo que pide un receptor

La API de un socio espera un bearer token o una clave de API. Un paso Credential lo indica, y el producto que envía lo rellena con sus propios secretos.

{"auth": {"type": "bearer", "secret": "sec_…"}}
ADAPTACIÓN
Envía el formato que espera una API

Un CRM quiere tres campos, con sus propios nombres. Un paso Reshape the body construye exactamente ese cuerpo a partir del evento y conserva el tipo de cada valor.

{"map": {"invoice_id": "{{ data.id }}", "total": {"$ref": "data.amount"}}}
FILTROS
Descarta lo que nadie necesita

Una suscripción solo coincide por el tipo de evento. Un filtro también lee el payload, así que “facturas pagadas de $1,000 o más” es un solo paso.

{"filter": {"data": {"amount": {"$gte": 100000}}}}
CHAT
Publica en Slack, Discord o Teams

Cada plantilla es un paso Reshape the body y una cabecera. Funciona con cualquier evento, y nada del evento puede dar formato al mensaje, mencionar a nadie ni cerrar antes de tiempo un bloque de código.

Slack message · Discord message · Microsoft Teams card
DATOS PERSONALES
Recorta una petición antes de que salga

Quita los datos personales antes de que los vea un proveedor de analítica, a cualquier profundidad, y de paso añade el tipo de evento a una cabecera.

{"drop": ["data.customer.email", "**.phone"]}
UNA SOLA DEFINICIÓN
Mantén una sola pipeline, no una por endpoint

Haz referencia a la pipeline por su id desde Webhooks. Los endpoints ejecutan su versión actual en el propio proceso de Webhooks, y cada versión nueva les llega sin cambiar ningún endpoint.

pipe_8e27d40b · version 3 · destinations: webhookd
Planes

Pipelines en todos los planes, incluido Free.

Todos los planes tienen los seis pasos, las plantillas, Test, la API de ejecución y la ejecución por referencia. Un plan de pago admite más pipelines y slots de credenciales, guarda más versiones y ejecuta más por minuto.

Free

Suficiente para construir, probar y ejecutar tus primeras pipelines.

$0

  • 5 pipelines
  • 5 slots de credenciales
  • 10 versiones guardadas por pipeline
  • 60 ejecuciones por minuto
Empezar

Starter

Para un producto que ejecuta pipelines en producción.

$9/ mes

$86.40 / año — ahorra 20 %

  • 25 pipelines
  • 25 slots de credenciales
  • 25 versiones guardadas por pipeline
  • 600 ejecuciones por minuto
Elegir Starter

Pro

Más pipelines, más versiones, espacio para todo un equipo.

$29/ mes

$278.40 / año — ahorra 20 %

  • 100 pipelines
  • 100 slots de credenciales
  • 50 versiones guardadas por pipeline
  • 3,000 ejecuciones por minuto
Elegir Pro

Custom

Compromisos de volumen, límites a medida y condiciones acordes.

Precio por contrato

  • 1,000 pipelines
  • 1,000 slots de credenciales
  • 100 versiones guardadas por pipeline
  • 12,000 ejecuciones por minuto
  • Requiere una cuenta de equipo
Hablemos

Las ejecuciones se cuentan, no se facturan, y la consola y GET /v1/usage muestran las del mes. Una ejecución que supera el límite de tasa del plan responde 429 con cuánto hay que esperar, y Test comparte ese límite. Una ejecución en un producto que hace referencia a la pipeline cuenta en el uso de ese producto. Una versión que un producto fija se conserva aunque supere el número del plan, igual que las cinco versiones anteriores que un producto ejecutó más recientemente en los últimos 30 días.

En todos los planes, incluido Free
  • Los seis pasos
  • Plantillas de Slack, Discord y Teams
  • Keep only these fields, Drop personal data
  • Prueba antes de guardar
  • Versiones que nunca cambian
  • La API de ejecución
  • Ejecución por referencia desde Webhooks
  • Aislamiento por workspace
Preguntas

Antes de construir tu primera pipeline.

No. Ejecuta la pipeline y responde con lo que hizo. Para que el resultado se envíe, llama a la API y envíalo tú, o haz referencia a la pipeline por su id desde Webhooks, que la ejecuta antes de cada entrega. Transforms no es un servicio de reenvío y no tiene ninguna URL a la que enviar.
Empezar

Construye una pipeline y mira lo que hace con una petición.

Free incluye 5 pipelines y 60 ejecuciones por minuto, con todos los pasos y todas las plantillas. Prueba una antes en el playground, sin cuenta.