Função JavaScript
O NicoChat agora permite que seus usuários executem lógica de fluxo complexa usando a ação JavaScript. Os usuários podem escrever código JavaScript para montar diversos fluxos complexos e fórmulas que o NicoChat ainda não suporta nativamente.
Crie um bloco de nó de ação, clique em Ações avançadas e selecione o nó Função JavaScript.

Uma função JavaScript funciona exatamente como uma função. Todos os parâmetros passam primeiro por parse no bloco JavaScript antes de poderem ser usados. A parte superior da ação é usada para a entrada.

Nome do parâmetro: adicione o nome da variável que você está passando por parse.
Valor do parâmetro: adicione o campo do contato que você quer passar por parse na função JavaScript.
Valor de Teste: adicione um valor de teste que pode ser usado aqui para rodar testes.

O bloco de função suporta várias bibliotecas JavaScript.


Essas bibliotecas JavaScript estendem a funcionalidade do bloco de função nativo.
Estas são as bibliotecas disponíveis, com a versão que o bloco carrega:
map, groupBy, cloneDeepDateMarque no bloco as bibliotecas que o código vai usar — só as selecionadas ficam disponíveis na execução.
No bloco de função, você pode escrever seu código JavaScript.

Depois de escrever o código, você sempre precisa retornar o valor, porque o bloco de função funciona como uma função comum.
Observação: métodos nativos de JavaScript que exigem um navegador, como o console.log, não funcionam no nó Função JavaScript.

Você pode mapear os resultados do seu código para atualizar determinados campos do contato.

Observação: ao manipular JSONs, todos eles precisam passar por parse antes de serem usados dentro do código.
Todo valor de parâmetro chega ao código como texto, mesmo quando a variável guarda um número, uma lista ou um JSON. Antes de percorrer um array ou ler as chaves de um objeto, converta com 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
};O nome do parâmetro já existe como variável dentro do código — não declare de novo. Escrever const carrinho = ... para um parâmetro chamado carrinho quebra a execução.
O código não resolve {{variável}}: o que está escrito no editor vale como texto literal. Os dados do contato entram apenas pelo campo Valor do parâmetro, e é lá que a variável é substituída.
O que a função devolve é entregue dentro de result. No mapeamento, a chave total de um objeto retornado tem o caminho $.result.total — se você escrever só total ou $.total, o NicoChat completa para a forma certa.
return 45;$.resultreturn { total: 45 };$.result.totalreturn ['a', 'b'];$.result[0]areturn { itens: [...] };$.result.itensMapear $.result sozinho salva o objeto ou o array inteiro em uma única variável. Para gravar cada pedaço em um campo diferente, retorne um objeto e mapeie chave por chave.
- Sem acesso à rede. Para chamar uma API, use o bloco Solicitação Externa (API) e traga o resultado para cá.
- Tempo de execução curto, em torno de 5 segundos. Laço infinito ou processamento pesado é interrompido.
evalnão é permitido.- Nada que dependa do navegador:
console.log,documentewindownão existem aqui.
Não existe um bloco dedicado a manipular JSON no NicoChat: somar, contar, achar o maior valor, extrair uma chave ou remover um item é trabalho para este bloco. Depois do JSON.parse, é JavaScript comum.
reduce e lengthMath.max e Math.min sobre um mapmapObject.keysfindfilterAlém deste bloco, há JavaScript no pré-processamento do bloco Solicitação Externa (API). Os dois não se comportam igual, e trocar um pelo outro é a causa mais comum de mapeamento vazio.
JSON.parsepayload, com a resposta da API já pronta para usoresult — mapeie $.result.<chave>$.<chave>
