Función
El bloque Función te permite ejecutar código JavaScript o TypeScript personalizado en tus flujos de trabajo. Úsalo para transformar datos, realizar cálculos o implementar lógica personalizada que no está disponible en otros bloques.

Descripción general
El bloque Función te permite:
Transformar datos: Convertir formatos, analizar texto, manipular arrays y objetos
Realizar cálculos: Operaciones matemáticas, estadísticas, cálculos financieros
Implementar lógica personalizada: Condicionales complejos, bucles y algoritmos
Procesar datos externos: Analizar respuestas, formatear solicitudes, gestionar autenticación
Cómo funciona
El bloque Función ejecuta tu código en un entorno seguro y aislado:
- Recibir entrada: Accede a los datos de bloques anteriores a través del objeto
input
- Ejecutar código: Ejecuta tu código JavaScript/Python
- Devolver resultados: Usa
return
para pasar datos al siguiente bloque - Manejar errores: Gestión de errores y registro integrados
Ejecución remota (E2B)
- Lenguajes: Ejecuta JavaScript y Python en un sandbox E2B aislado.
- Cómo activarlo: Activa “Ejecución de código remoto” en el bloque Función.
- Cuándo usarlo: Lógica más pesada, bibliotecas externas o código específico de Python.
- Rendimiento: Más lento que JS local debido al inicio del sandbox y la sobrecarga de red.
- Notas: Requiere
E2B_API_KEY
si se ejecuta localmente. Para la menor latencia, usa JS nativo local (Modo rápido).
Entradas y salidas
Código: Tu código JavaScript/Python para ejecutar
Tiempo de espera: Tiempo máximo de ejecución (por defecto 30 segundos)
Datos de entrada: Todas las salidas de bloques conectados disponibles a través de variables
function.result: El valor devuelto por tu función
function.stdout: Salida de console.log() de tu código
Casos de uso de ejemplo
Pipeline de procesamiento de datos
Escenario: Transformar respuesta de API en datos estructurados
- El bloque de API obtiene datos brutos del cliente
- El bloque de función procesa y valida los datos
- El bloque de función calcula métricas derivadas
- El bloque de respuesta devuelve resultados formateados
Implementación de lógica de negocio
Escenario: Calcular puntuaciones y niveles de fidelidad
- El agente recupera el historial de compras del cliente
- El bloque de función calcula métricas de fidelidad
- El bloque de función determina el nivel del cliente
- El bloque de condición enruta según el nivel
Validación y limpieza de datos
Escenario: Validar y limpiar la entrada del usuario
- Entrada del usuario recibida desde el envío del formulario
- El bloque de función valida el formato de correo electrónico y números de teléfono
- El bloque de función limpia y normaliza los datos
- El bloque de API guarda los datos validados en la base de datos
Ejemplo: Calculadora de puntuación de fidelidad
// 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 }
};
Mejores prácticas
- Mantén las funciones enfocadas: Escribe funciones que hagan una sola cosa bien para mejorar la mantenibilidad y la depuración
- Maneja los errores con elegancia: Usa bloques try/catch para manejar posibles errores y proporcionar mensajes de error significativos
- Prueba casos extremos: Asegúrate de que tu código maneje correctamente entradas inusuales, valores nulos y condiciones límite
- Optimiza el rendimiento: Ten en cuenta la complejidad computacional y el uso de memoria para grandes conjuntos de datos
- Usa console.log() para depuración: Aprovecha la salida stdout para depurar y monitorear la ejecución de funciones