Función JavaScript
NicoChat ahora permite que sus usuarios ejecuten lógica de flujo compleja usando la acción JavaScript. Los usuarios pueden escribir código JavaScript para crear diversos flujos complejos y fórmulas que NicoChat aún no admite de forma nativa.
Crea un bloque de nodo de acción, haz clic en Acciones avanzadas y selecciona el nodo Función JavaScript.

Una función JavaScript funciona exactamente como una función. Todos los parámetros se parsean primero en el bloque JavaScript antes de poder ser usados. La parte superior de la acción se usa para la entrada.

Nombre del Parámetro: agrega el nombre de la variable que estás parseando.
Valor del Parámetro: agrega el Campo del Contacto que quieres parsear en la función JavaScript.
Valor de Prueba: agrega un valor de prueba que se puede usar aquí para ejecutar pruebas.

El bloque de función admite varias bibliotecas JavaScript.


Estas bibliotecas JavaScript amplían la funcionalidad del bloque de función nativo.
Estas son las bibliotecas disponibles, con la versión que carga el bloque:
map, groupBy, cloneDeepDateMarque en el bloque las bibliotecas que usará el código: solo las seleccionadas están disponibles en la ejecución.
En el bloque de función, puedes escribir tu código JavaScript.

Después de escribir el código, siempre necesitas devolver el valor, porque el bloque de función funciona como una función común.
Nota: los métodos nativos de JavaScript que requieren un navegador, como console.log, no funcionan en el nodo Función JavaScript.

Puedes mapear los resultados de tu código para actualizar determinados Campos del Contacto.

Nota: al manipular JSONs, todos ellos deben parsearse antes de ser usados dentro del código.
Todo valor de parámetro llega al código como texto, incluso cuando la variable guarda un número, una lista o un JSON. Antes de recorrer un array o leer las claves de un objeto, conviértalo con JSON.parse.
// carrinho chega como texto: '[{"preco":30,"qtd":2},{"preco":15,"qtd":1}]'
const itens = JSON.parse(carrinho);
return {
total: itens.reduce(function (s, i) { return s + i.preco * i.qtd; }, 0),
quantidade: itens.length
};El nombre del parámetro ya existe como variable dentro del código: no lo declare de nuevo. Escribir const carrinho = ... para un parámetro llamado carrinho rompe la ejecución.
El código no resuelve {{variable}}: lo que está escrito en el editor vale como texto literal. Los datos del contacto entran solo por el campo Valor del Parámetro, y es ahí donde se reemplaza la variable.
Lo que devuelve la función se entrega dentro de result. En el mapeo, la clave total de un objeto devuelto tiene la ruta $.result.total: si escribe solo total o $.total, NicoChat lo completa a la forma correcta.
return 45;$.resultreturn { total: 45 };$.result.totalreturn ['a', 'b'];$.result[0]areturn { itens: [...] };$.result.itensMapear $.result solo guarda el objeto o el array entero en una sola variable. Para grabar cada parte en un campo distinto, devuelva un objeto y mapee clave por clave.
- Sin acceso a la red. Para llamar a una API, use el bloque Solicitud Externa (API) y traiga el resultado aquí.
- Tiempo de ejecución corto, alrededor de 5 segundos. Un bucle infinito o un procesamiento pesado se interrumpe.
evalno está permitido.- Nada que dependa del navegador:
console.log,documentywindowno existen aquí.
No existe un bloque dedicado a manipular JSON en NicoChat: sumar, contar, hallar el mayor valor, extraer una clave o quitar un elemento es trabajo de este bloque. Después de JSON.parse, es JavaScript común.
reduce y lengthMath.max y Math.min sobre un mapmapObject.keysfindfilterAdemás de este bloque, hay JavaScript en el preprocesamiento del bloque Solicitud Externa (API). Los dos no se comportan igual, y confundirlos es la causa más común de un mapeo vacío.
JSON.parsepayload, con la respuesta de la API ya lista para usarresult: mapee $.result.<clave>$.<clave>
