Script
O bloco "Script" permite a utilização de comandos dentro do Digital Contact Bots, tornando o fluxo mais versátil e permitindo a execução de funções programáveis dentro do bot. Com ele, é possível:
- manipular variáveis
- criar validações
- acessar APIs
- realizar integrações externas ao Digital Contact Bots
- entre outras funcionalidades
Configurações do bloco "Script" no Digital Contact Bots
O bloco "Script" pode ser encontrado no menu lateral esquerdo, na seção “Programação”:
Ao ser inserido no fluxo, o bloco será exibido da seguinte forma:
O menu lateral direito contém apenas o botão “Editar script”:
Ao clicar em Editar script, será exibido o modal de edição de scripts:

O Editor de Script possui os seguintes elementos:
- Adicionar variáveis: adiciona variáveis (globais ou do fluxo) ao editor de scripts.
- Carregar Templates: este botão insere um código inicial (template) no editor de scripts.
- Ele só funciona se o editor estiver vazio; caso contrário, permanecerá desabilitado.
-
Editor de código
O script pode utilizar diferentes campos dentro do response:
a. messages: array de mensagens enviadas ao cliente durante a execução do bloco de "script". (Pode incluir mensagens fixas ou com variáveis);
b. clientMessage: simula uma mensagem do cliente. (Funciona apenas no WebChat e não interage com IA, rotas de fuga ou variáveis globais);- No histórico, aparecerá com o nome “Via Script”, em vez de “Usuário”.
c. insertTags: Array de strings contendo as tags adicionadas ao fluxo no final da execução do script.
-
As tags podem ser criadas automaticamente pelo bloco, caso ainda não existam.
-
Como Testar:
- insira um novo bloco de "Script";
- verifique se o template está de acordo com a descrição;
- executar o fluxo;
- no relatório de Histórico de Eventos, verifique se as tags foram adicionadas corretamente;
d. updateVariables: Array de objetos que cria ou atualiza variáveis dentro do fluxo.
-
Cancelar
-
Salvar
Pontos de atenção
O menu de configurações do bloco exibe alertas caso algumas regras não sejam atendidas:
- bloco sem script cadastrado;
- script sem finalização;
Templates de Script
Abaixo estão alguns exemplos simples dos scripts mais comuns usados no bloco de "Script".
Consumo de APIs:
- este script consome a API do ViaCEP para obter informações de endereço.
// Valor inicial fornecido para buscar informações do endereço const inputValue = "$$valor$$";
// Removendo caracteres indesejados (hífens, no caso) do valor fornecido const sanitizedValue = inputValue.replace(/-/g, '');
// Fazendo uma requisição à API do ViaCEP para obter dados do endereço com base no valor fornecido const
{data: addressData}= await axios.get(https://viacep.com.br/ws/${sanitizedValue}/json/);// Inicializando o texto que irá conter as informações do endereço let addressInfoText = 'Informações do Endereço:\n';
// Iterando sobre os dados do endereço obtidos para formatar o texto de saída for (let key in addressData)
{addressInfoText +=- ${key}: ${addressData[key]}\n;}// Criando a resposta final com as mensagens de informações do endereço e variáveis atualizadas const response =
{ messages: [ addressInfoText // Adicionando o texto no bloco seguinte com as informações do endereço à lista de mensagens ], updateVariables: [addressData: JSON.stringify(addressData), // Convertendo os dados do endereço em formato JSON e atualizando a variável addressData já existente no fluxo da Boteria , ]};// Retornando a resposta final done(response);
- Este script realiza uma regra de três para calcular um valor proporcional.
// Valores conhecidos const knownValue1 = "$$valor1$$"; const knownEquivalentValue1 = "$$equivalenteValor1$$";
// Valor desconhecido const unknownValue2 = "$$valor2$$";
// Aplicando a regra de três para encontrar o valor desconhecido (x) const unknownEquivalentValue2 = (unknownValue2 * knownEquivalentValue1) / knownValue1;
// Mensagem com o resultado const resultMessage =
Se ${knownValue1} é equivalente a ${knownEquivalentValue1}, então ${unknownValue2} é equivalente a ${unknownEquivalentValue2}.;// Criando o objeto de resposta const response =
{messages: [ resultMessage // Adicionando a mensagem com o resultado à lista de mensagens ], insertTags: [ “newTag” // Adiciona a tag newTag ao fluxo ], updateVariables: [{"equivalenteValor2": unknownEquivalentValue2, // Atualizando a variável com o resultado encontrado}, ]};done(response); // Necessário para retornar a resposta final
Observação: embora o bloco de "Script" possa realizar requisições HTTP, é recomendado utilizar o bloco APIv2 para esse propósito.
- Vantagem: Usando o APIv2, você pode visualizar as requisições nos relatórios e identificar possíveis erros.
Uma boa prática de utilização é realizar a chamada com o bloco de APIv2 e caso necessário em seguida utilizar o bloco de script para fazer a manipulação e tratamento dos dados.
Melhorias
Este botão insere um código inicial (template) no editor de código, caso ele esteja vazio.
Caso contrário, o botão permanecerá desabilitado.
Limitações e Processamento do Bloco "Script"
Processamento de Variáveis
- Todas as variáveis delimitadas por
$$são substituídas pelo respectivo valor.- Exemplo:
let nome = "$$nome$$";será processado comolet nome = "João";.
- Exemplo:
Escape de Caracteres
- Apenas os seguintes caracteres são escapados dentro das variáveis:
\\n(quebra de linha com escape) =\n'(aspas simples) =\'"(aspas duplas) =\"`(crase) = ```\(contrabarra) =\\
Quebra de Linha
- Tanto
\nquanto\\nsão aceitos para representar quebras de linha.- Exemplo:
"Nome:\nJoão da Silva"será processado como:Nome:
João da Silva - Exemplo:
"Nome:\\nJoão da Silva"será processado como:Nome:
João da Silva
- Exemplo: