Pular para o conteúdo principal
O bloco Função permite executar código JavaScript ou TypeScript personalizado nos seus fluxos de trabalho. Use-o para transformar dados, realizar cálculos ou implementar lógica personalizada que não está disponível em outros blocos.
API

Visão geral

O bloco Função permite:
1
Transformar dados: Converter formatos, analisar texto, manipular arrays e objetos
2
Realizar cálculos: Operações matemáticas, estatísticas, cálculos financeiros
3
Implementar lógica personalizada: Condicionais complexos, loops e algoritmos
4
Processar dados externos: Analisar respostas, formatar solicitações, gerenciar autenticação

Como funciona

O bloco Função executa seu código em um ambiente seguro e isolado:
1
Receber entrada: Acessa os dados de blocos anteriores através do objeto input
2
Executar código: Executa seu código JavaScript/Python
3
Retornar resultados: Usa return para passar dados ao próximo bloco
4
Lidar com erros: Gerenciamento de erros e registro integrados

Execução remota (E2B)

  • Linguagens: Executa JavaScript e Python em um sandbox E2B isolado.
  • Como ativar: Ative “Execução de código remoto” no bloco Função.
  • Quando usar: Lógica mais pesada, bibliotecas externas ou código específico de Python.
  • Desempenho: Mais lento que JS local devido à inicialização do sandbox e sobrecarga de rede.
  • Notas: Requer E2B_API_KEY se executado localmente. Para menor latência, use JS nativo local (Modo rápido).

Entradas e saídas

  • Configuração
  • Variáveis
  • Código: Seu código JavaScript/Python para executar
  • Tempo de espera: Tempo máximo de execução (padrão 30 segundos)
  • Dados de entrada: Todas as saídas de blocos conectados disponíveis através de variáveis

Casos de uso de exemplo

Pipeline de processamento de dados

Cenário: Transformar resposta de API em dados estruturados

  1. O bloco de API obtém dados brutos do cliente
  2. O bloco de função processa e valida os dados
  3. O bloco de função calcula métricas derivadas
  4. O bloco de resposta retorna resultados formatados

Implementação de lógica de negócio

Cenário: Calcular pontuações e níveis de fidelidade

  1. O agente recupera o histórico de compras do cliente
  2. O bloco de função calcula métricas de fidelidade
  3. O bloco de função determina o nível do cliente
  4. O bloco de condição roteia de acordo com o nível

Validação e limpeza de dados

Cenário: Validar e limpar a entrada do usuário

  1. Entrada do usuário recebida do envio do formulário
  2. O bloco de função valida o formato de e-mail e números de telefone
  3. O bloco de função limpa e normaliza os dados
  4. O bloco de API salva os dados validados no banco de dados

Exemplo: Calculadora de pontuação de fidelidade

loyalty-calculator.js
// Process customer data and calculate loyalty score
const { purchaseHistory, accountAge, supportTickets } = <agent>;

// Calculate metrics
const totalSpent = purchaseHistory.reduce((sum, purchase) => sum + purchase.amount, 0);
const purchaseFrequency = purchaseHistory.length / (accountAge / 365);
const ticketRatio = supportTickets.resolved / supportTickets.total;

// Calculate loyalty score (0-100)
const spendScore = Math.min(totalSpent / 1000 * 30, 30);
const frequencyScore = Math.min(purchaseFrequency * 20, 40);
const supportScore = ticketRatio * 30;

const loyaltyScore = Math.round(spendScore + frequencyScore + supportScore);

return {
  customer: <agent.name>,
  loyaltyScore,
  loyaltyTier: loyaltyScore >= 80 ? "Platinum" : loyaltyScore >= 60 ? "Gold" : "Silver",
  metrics: { spendScore, frequencyScore, supportScore }
};

Melhores práticas

  • Mantenha as funções focadas: Escreva funções que façam uma única coisa bem para melhorar a manutenibilidade e depuração
  • Lide com erros elegantemente: Use blocos try/catch para lidar com possíveis erros e fornecer mensagens de erro significativas
  • Teste casos extremos: Certifique-se de que seu código lide corretamente com entradas incomuns, valores nulos e condições limite
  • Otimize o desempenho: Considere a complexidade computacional e o uso de memória para grandes conjuntos de dados
  • Use console.log() para depuração: Aproveite a saída stdout para depurar e monitorar a execução de funções