Funktion
Der Funktionsblock ermöglicht die Ausführung von benutzerdefiniertem JavaScript- oder TypeScript-Code in Ihren Workflows. Verwenden Sie ihn, um Daten zu transformieren, Berechnungen durchzuführen oder benutzerdefinierte Logik zu implementieren, die in anderen Blöcken nicht verfügbar ist.

Überblick
Der Funktionsblock ermöglicht Ihnen:
Daten transformieren: Formate konvertieren, Text analysieren, Arrays und Objekte manipulieren
Berechnungen durchführen: Mathematische Operationen, Statistiken, Finanzberechnungen
Benutzerdefinierte Logik implementieren: Komplexe Bedingungen, Schleifen und Algorithmen
Externe Daten verarbeiten: Antworten parsen, Anfragen formatieren, Authentifizierung verwalten
Funktionsweise
Der Funktionsblock führt Ihren Code in einer sicheren, isolierten Umgebung aus:
- Eingabe empfangen: Zugriff auf Daten aus vorherigen Blöcken über das
input
Objekt - Code ausführen: Führen Sie Ihren JavaScript/Python-Code aus
- Ergebnisse zurückgeben: Verwenden Sie
return
, um Daten an den nächsten Block zu übergeben - Fehler behandeln: Integrierte Fehlerbehandlung und Protokollierung
Remote-Ausführung (E2B)
- Sprachen: JavaScript und Python in einer isolierten E2B-Sandbox ausführen.
- Aktivierung: Schalten Sie “Remote Code Execution” im Funktionsblock ein.
- Einsatzbereich: Schwerere Logik, externe Bibliotheken oder Python-spezifischer Code.
- Leistung: Langsamer als lokales JS aufgrund von Sandbox-Start und Netzwerk-Overhead.
- Hinweise: Erfordert
E2B_API_KEY
bei lokaler Ausführung. Für niedrigste Latenz verwenden Sie nativ lokales JS (Fast Mode).
Eingaben und Ausgaben
Code: Ihr JavaScript/Python-Code zur Ausführung
Timeout: Maximale Ausführungszeit (standardmäßig 30 Sekunden)
Eingabedaten: Alle verbundenen Block-Ausgaben sind über Variablen verfügbar
function.result: Der von Ihrer Funktion zurückgegebene Wert
function.stdout: Console.log()-Ausgabe aus Ihrem Code
Beispielanwendungsfälle
Datenverarbeitungspipeline
Szenario: API-Antwort in strukturierte Daten umwandeln
- API-Block ruft Rohdaten der Kunden ab
- Funktionsblock verarbeitet und validiert Daten
- Funktionsblock berechnet abgeleitete Metriken
- Antwortblock gibt formatierte Ergebnisse zurück
Implementierung von Geschäftslogik
Szenario: Berechnung von Treuepunkten und Stufen
- Agent ruft Kaufhistorie des Kunden ab
- Funktionsblock berechnet Treuemetriken
- Funktionsblock bestimmt Kundenstufe
- Bedingungsblock leitet basierend auf der Stufenhöhe weiter
Datenvalidierung und -bereinigung
Szenario: Benutzereingaben validieren und bereinigen
- Benutzereingabe aus Formularübermittlung erhalten
- Funktionsblock validiert E-Mail-Format und Telefonnummern
- Funktionsblock bereinigt und normalisiert Daten
- API-Block speichert validierte Daten in der Datenbank
Beispiel: Treuepunkte-Rechner
// 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 }
};
Best Practices
- Funktionen fokussiert halten: Schreiben Sie Funktionen, die eine Sache gut erledigen, um die Wartbarkeit und Fehlersuche zu verbessern
- Fehler elegant behandeln: Verwenden Sie try/catch-Blöcke, um potenzielle Fehler zu behandeln und aussagekräftige Fehlermeldungen bereitzustellen
- Grenzfälle testen: Stellen Sie sicher, dass Ihr Code ungewöhnliche Eingaben, Null-Werte und Grenzbedingungen korrekt behandelt
- Auf Leistung optimieren: Achten Sie bei großen Datensätzen auf die Berechnungskomplexität und den Speicherverbrauch
- console.log() zum Debuggen verwenden: Nutzen Sie die Stdout-Ausgabe zum Debuggen und Überwachen der Funktionsausführung