Fonction
Le bloc Fonction vous permet d'exécuter du code JavaScript ou TypeScript personnalisé dans vos flux de travail. Utilisez-le pour transformer des données, effectuer des calculs ou implémenter une logique personnalisée qui n'est pas disponible dans d'autres blocs.

Aperçu
Le bloc Fonction vous permet de :
Transformer des données : convertir des formats, analyser du texte, manipuler des tableaux et des objets
Effectuer des calculs : opérations mathématiques, statistiques, calculs financiers
Implémenter une logique personnalisée : conditions complexes, boucles et algorithmes
Traiter des donnĂ©es externes : analyser des rĂ©ponses, formater des requĂȘtes, gĂ©rer l'authentification
Comment ça fonctionne
Le bloc Fonction exécute votre code dans un environnement sécurisé et isolé :
- Recevoir des entrées : accédez aux données des blocs précédents via l'objet
input
- Exécuter le code : lancez votre code JavaScript/Python
- Renvoyer les résultats : utilisez
return
pour transmettre des données au bloc suivant - Gérer les erreurs : gestion des erreurs et journalisation intégrées
Exécution à distance (E2B)
- Langages : exécutez JavaScript et Python dans un environnement sandbox E2B isolé.
- Comment l'activer : activez âExĂ©cution de code Ă distanceâ dans le bloc Fonction.
- Quand l'utiliser : logique plus lourde, bibliothÚques externes ou code spécifique à Python.
- Performance : plus lent que le JS local en raison du démarrage du sandbox et des délais réseau.
- Remarques : nécessite
E2B_API_KEY
si exécuté localement. Pour une latence minimale, utilisez le JS natif local (Mode rapide).
Entrées et sorties
Code : votre code JavaScript/Python à exécuter
Délai d'expiration : temps d'exécution maximum (30 secondes par défaut)
Données d'entrée : toutes les sorties des blocs connectés disponibles via des variables
function.result : la valeur renvoyée par votre fonction
function.stdout : sortie console.log() de votre code
Exemples de cas d'utilisation
Pipeline de traitement de données
Scénario : transformer une réponse d'API en données structurées
- Le bloc API récupÚre les données brutes des clients
- Le bloc de fonction traite et valide les données
- Le bloc de fonction calcule les métriques dérivées
- Le bloc de réponse renvoie les résultats formatés
Implémentation de la logique métier
Scénario : calculer les scores et niveaux de fidélité
- L'agent récupÚre l'historique d'achat du client
- Le bloc de fonction calcule les métriques de fidélité
- Le bloc de fonction détermine le niveau du client
- Le bloc de condition oriente en fonction du niveau
Validation et assainissement des données
Scénario : valider et nettoyer les entrées utilisateur
- Entrée utilisateur reçue depuis un formulaire
- Le bloc de fonction valide le format d'e-mail et les numéros de téléphone
- Le bloc de fonction assainit et normalise les données
- Le bloc API enregistre les données validées dans la base de données
Exemple : calculateur de score de fidélité
// 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 }
};
Bonnes pratiques
- Gardez les fonctions ciblées : écrivez des fonctions qui font bien une seule chose pour améliorer la maintenabilité et le débogage
- Gérez les erreurs avec élégance : utilisez des blocs try/catch pour gérer les erreurs potentielles et fournir des messages d'erreur significatifs
- Testez les cas limites : assurez-vous que votre code gÚre correctement les entrées inhabituelles, les valeurs nulles et les conditions aux limites
- Optimisez pour la performance : soyez attentif à la complexité computationnelle et à l'utilisation de la mémoire pour les grands ensembles de données
- Utilisez console.log() pour le débogage : exploitez la sortie stdout pour déboguer et surveiller l'exécution des fonctions