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.
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.
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.
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.
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.
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.
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.
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
}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.
Las tareas para las que sirve, y ninguna necesita un script.
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.
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.
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.
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.
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.
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.
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
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
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
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
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.
- 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
Antes de construir tu primera pipeline.
Relacionado
Adónde ir después
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.