Ir para conteúdo principal

Ferramentas Darwin: Código JavaScript

S
Escrito por Support Team

A ferramenta de código JavaScript permite executar código JavaScript personalizado diretamente na automação. Ela foi projetada para casos em que as ferramentas padrão não são suficientes, por exemplo, quando você precisa realizar cálculos, transformar dados, dividir valores ou gerar resultados personalizados antes de passá-los para as próximas etapas.

Esta ferramenta oferece a flexibilidade de trabalhar com dados dentro de uma automação usando a lógica JavaScript que você mesmo define.

Como funciona a ferramenta

  1. Para adicionar a ferramenta de código JavaScript à sua automação, clique no botão "+" em sua interface. Em seguida, selecione Código.

  2. Selecione JavaScript e clique em "Continuar".

  3. Primeiro, você deve configurar os dados de entrada. Isso significa criar variáveis, nomeá-las e definir os valores que serão atribuídos a cada uma. Essas variáveis podem ser usadas em seu código, juntamente com quaisquer variáveis novas que você definir dentro do script.

    Para cada variável, você deve:

    • definir um nome;

    • selecionar um valor das etapas anteriores.

    Para adicionar mais variáveis, clique em "Adicionar campo". Uma nova linha será criada onde você poderá especificar o nome da variável e definir seu valor. Se necessário, você pode excluir as variáveis (campos) que não precisar.


  4. Em seguida, configure os dados de saída. Aqui, especifique manualmente o nome e o tipo das variáveis que deseja obter como resultado. Nas próximas etapas da sua automação, você poderá utilizar os campos que definiu nesta seção.

    Configurar os dados de saída é obrigatório, mesmo que você não tenha criado nenhuma variável nova no código.



  5. Depois, escreva seu código JavaScript utilizando as variáveis que você declarou ou crie outras novas a partir delas.

  6. Nas etapas seguintes, você verá os mesmos campos que configurou na seção Dados de saída e poderá utilizá-los em toda a sua automação.

  7. Se, por qualquer motivo, o código não for executado corretamente, esta etapa da automação será considerada um erro. O registro de execução mostrará a mensagem de erro retornada pelo mecanismo JavaScript.

Limitações e segurança

  • A execução do JavaScript é realizada em um ambiente isolado.

  • Solicitações de rede externas não são permitidas.

  • fetch está desativado.

  • Erros de execução interrompem a etapa de automação.

Exemplos de execução de código JavaScript

Caso 1. Subtrair a data e hora de início da data e hora de término e retornar o resultado em minutos.

Este caso de uso é útil quando você precisa calcular a duração de um evento, como o tempo de processamento de um pedido ou a duração de uma chamada.

  • Entrada: dateStart, dateEnd

  • Saída: diffMinutes (Número)

    dateStart = new Date(dateStart); dateEnd = new Date(dateEnd); let difMinutes = (dateEnd – dateStart) / (1000 * 60);
    case1.png

Caso 2. Dividir a data e hora em valores de data e hora separados e recortar os segundos.

Utilize este exemplo quando um serviço retornar um único valor DateTime, mas a próxima etapa exigir que a data e a hora sejam campos separados.

  • Entrada: dateTime (timestamp Unix)

  • Saída: date (String), time (String)

    dateTime = new Date(+dateTime); function dateEdit(arr) { return arr.map((el) => { return el < 10 ? “0” + el : el; }); } let date = dateEdit([ dateTime.getDate(), dateTime.getMonth() + 1, dateTime.getFullYear(), ]).join(“.”); let test = dateEdit([dateTime.getHours(), dateTime.getMinutes()]).join(“:”);

case2.png

Caso 3. Dividir uma string em vários valores

Este caso de uso é útil quando um campo contém vários valores separados por um delimitador.

  • Entrada: value

  • Saída: first (String), second (String)

const parts = value.trim().split(/\s+|,|\|/);
const first = parts[0];
const second = parts?.[1];

Dividir vários valores usando um espaço como delimitador.


num4 = num4.trim().split(‘ ‘);
let name = num4[0];
let familyname = num4?.[1];
let surname = num4?.[2];

Dividir valores usando uma vírgula como delimitador.


A = A.trim().split(“\,”);
let num1 = A[0];
let num2 = A?.[1];

Dividir valores usando o delimitador "|".

UF_CRM_1669820909984 = UF_CRM_1669820909984.trim().split(“\|”);
let name = UF_CRM_1669820909984[0];
let surname = UF_CRM_1669820909984?.[1];

Dividir um nome completo em nome e sobrenome.


Utilize este exemplo quando um serviço retornar um nome completo como uma única string e você precisar dividi-lo em campos separados (por exemplo, nome e sobrenome) antes de passar os dados para as próximas etapas da sua automação.

  • Entrada: fullName (String)

  • Saída: name (String), lastname (String)

let [firstName, lastName] = fullName.trim().split(" ");
let name = firstName;
let lastname = lastName;
case3.png

Caso 4. Analisar parâmetros de consulta de uma URL

Utilize este exemplo para extrair parâmetros de uma string de consulta de URL.

  • Entrada: fullName (String)

  • Saída: name (String), lastname (String)

function parseQueryParams(url) { 
const queryString = url.split(“?”)[1];
if (!queryString) {
return {};
}
const queryParams = {};
const pairs = queryString.split(“&”);
for (let i = 0; i < pairs.length; i++) {
const pair = pairs[i].split(“=”);
const key = decodeURIComponent(pair[0]);
const value = decodeURIComponent(pair[1] || “”);
if (queryParams.hasOwnProperty(key)) {
if (Array.isArray(queryParams[key])) {
queryParams[key].push(value);
} else {
queryParams[key] = [queryParams[key], value];
}
} else {
queryParams[key] = value;
}
}
return queryParams;
}
const parsedGet = parseQueryParams(url);

Substitua o valor de entrada por url na última linha do código. Defina parsedGet como valor de saída com o tipo StringArray.

Você pode modificar o exemplo e adicionar:

let one = parsedGet[0]; let two = parsedGet[1];

Você também pode usar esses valores como variáveis de saída do tipo String.


Caso 5. Limpeza de tags HTML de um texto

Este exemplo é útil quando o conteúdo de um e-mail ou mensagem chega em formato HTML e precisa ser limpo antes do processamento posterior.

  • Entrada: html

  • Saída: html (String)

    let regexp = /<(\/?[^>]+)>|(\n)|(\s{4,})/gm;
    html = html.replace(regexp, ”).trim();

Caso 6. Conversão de data e hora para timestamp Unix

Utilize este exemplo quando um sistema externo exigir o horário Unix em vez de uma data formatada.

  • Entrada: amo_datetime (AAAA-MM-DD HH:MM:SS)

  • Saída: unixTime (Número)

let [fecha, hora] = amo_datetime.split(” “); 
let [año, mes, día] = date.split(“-“).map(Número);
let [horas, minutos, segundos] = time.split(“:”).map(Número);
let ls_deadline_unix = new Date(año, mes – 1, día, horas, minutos, segundos).getTime();

Caso 7. Retornar valores diferentes com base no dia da semana

Este exemplo pode ser usado para criar automações com lógica específica para cada dia. Utilize-o quando sua automação precisar enviar mensagens diferentes dependendo do dia da semana.

Por exemplo, você pode configurar a lógica para enviar uma mensagem na segunda-feira, outra na terça-feira, uma diferente na quarta-feira, e assim por diante.

const messages = { 
0: "Mensaje del domingo",
1: "Mensaje del lunes",
2: "Mensaje del martes",
3: "Mensaje del miércoles",
4: "Mensaje del jueves",
5: "Mensaje del viernes",
6: "Mensaje del sábado"
};
const resultado = mensajes[new Date().getDay()];

Caso 8. Colocar a primeira letra de cada palavra em maiúscula

Utilize este exemplo para formatar nomes ou valores de texto antes de enviá-los para outra aplicação.

  • Entrada: str

  • Saída: formatted (String)

function toCapitalLetter(str) {
if (!str) return str;
return str.trim().toLowerCase().split(" ").map(w => w[0].toUpperCase() + w.slice(1)).join(" ");
}
const formatted = toCapitalLetter(str);


Isto respondeu à sua pergunta?