Ir al contenido

Edit Fields

Edit Fields permite moldear el objeto de datos entre nodos: agregar campos nuevos, sobreescribir existentes, renombrar claves y eliminar propiedades no deseadas. Reemplaza el patron habitual de encadenar múltiples nodos Set Variable solo para reestructurar datos.

Dos modos disponibles:

  • Manual: editor visual de clave-valor — no requiere JSON
  • JSON: define directamente el objeto de salida completo con variables dinámicas

CampoTipoRequeridoDescripción
modeselectSimanual o json
setFieldskey_value_mappingNoCampos a agregar o sobreescribir (modo manual)
dataTypeselectNoTipo al que convertir los valores: Auto, String, Number, Boolean, Object, Array
renameFieldskey_value_mappingNoCampos a renombrar: Key = nombre actual, Value = nombre nuevo
removeFieldstextNoNombres de campos a eliminar, separados por coma
includeOtherFieldsbooleanNoSi esta activo, los campos del input no definidos explicitamente se mantienen en la salida
dotNotationbooleanNoNotación punto para objetos anidados (ej: user.name)
ignoreTypeErrorsbooleanNoMantener el valor original en lugar de producir error si la conversion de tipo falla
jsonDatajsonNoObjeto JSON completo de salida (solo modo json)

Cuando la Notación punto esta habilitada (por defecto), puedes crear o acceder a objetos anidados usando . en los nombres de campo:

KeyValueResultado
user.name{{@Webhook.name}}{ "user": { "name": "..." } }
address.cityMadrid{ "address": { "city": "Madrid" } }
totals.vat21{ "totals": { "vat": 21 } }

El nodo devuelve el objeto de datos transformado. Según includeOtherFields:

  • false (por defecto): solo estan presentes los campos definidos explicitamente en setFields (mas los renombrados)
  • true: todos los campos del input original se fusionan, con tus campos definidos tomando precedencia

Ejemplo 1 — Renombrar y limpiar un payload de webhook

Sección titulada «Ejemplo 1 — Renombrar y limpiar un payload de webhook»

Los datos entrantes de un webhook tienen nombres de campo inconsistentes. Normaliza antes de pasar al siguiente nodo.

{
"mode": "manual",
"renameFields": [
{ "key": "cust_id", "value": "customer_id" },
{ "key": "ord_total", "value": "total" }
],
"removeFields": "internal_ref, debug_flag",
"includeOtherFields": true
}

Entrada: { "cust_id": 42, "ord_total": 99.9, "internal_ref": "X", "debug_flag": true, "email": "a@b.com" }
Salida: { "customer_id": 42, "total": 99.9, "email": "a@b.com" }


Ejemplo 2 — Construir objeto anidado para una llamada API

Sección titulada «Ejemplo 2 — Construir objeto anidado para una llamada API»

Componer un payload estructurado requerido por una API externa.

{
"mode": "manual",
"setFields": [
{ "key": "order.id", "value": "{{@Webhook.order_number}}" },
{ "key": "order.customer.name", "value": "{{@Webhook.customer_name}}" },
{ "key": "order.total", "value": "{{@Webhook.amount}}" },
{ "key": "meta.source", "value": "floogos" }
],
"dotNotation": true
}

Salida:

{
"order": {
"id": "ORD-123",
"customer": { "name": "Maria Garcia" },
"total": 250.00
},
"meta": { "source": "floogos" }
}

Forzar campos numericos que llegan como strings (comun en envíos de formulario) a su tipo correcto.

{
"mode": "manual",
"setFields": [
{ "key": "cantidad", "value": "{{@FormTrigger.cantidad}}" },
{ "key": "precio", "value": "{{@FormTrigger.precio}}" }
],
"dataType": "number",
"includeOtherFields": true
}

Ejemplo 4 — Modo JSON para transformaciones complejas

Sección titulada «Ejemplo 4 — Modo JSON para transformaciones complejas»

Usa el modo JSON cuando la estructura de salida es mas fácil de expresar como objeto literal.

{
"mode": "json",
"jsonData": {
"id": "{{@HTTP.data.id}}",
"estado": "procesado",
"lineas": "{{@HTTP.data.line_items}}",
"procesado_en": "{{@HTTP.data.created_at}}",
"origen": "floogos-sync"
}
}

  • Orden de evaluación: primero se asignan los campos, luego se renombran, luego se eliminan.
  • La notación punto crea objetos intermedios automáticamente — si user no existe, al asignar user.name se crea toda la ruta.
  • removeFields también acepta notación punto: user.temp elimina solo la clave temp dentro de user, no el objeto user completo.
  • Cuando includeOtherFields es false y olvidas incluir un campo, este no estará en la salida — útil para esquemas de salida explicitos, pero hay que tener cuidado de no perder datos necesarios.