Sim

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.

Funktionsblock mit Code-Editor

Ü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:

  1. Eingabe empfangen: Zugriff auf Daten aus vorherigen Blöcken über das input Objekt
  2. Code ausführen: Führen Sie Ihren JavaScript/Python-Code aus
  3. Ergebnisse zurückgeben: Verwenden Sie return, um Daten an den nächsten Block zu übergeben
  4. 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

  1. API-Block ruft Rohdaten der Kunden ab
  2. Funktionsblock verarbeitet und validiert Daten
  3. Funktionsblock berechnet abgeleitete Metriken
  4. Antwortblock gibt formatierte Ergebnisse zurück

Implementierung von Geschäftslogik

Szenario: Berechnung von Treuepunkten und Stufen

  1. Agent ruft Kaufhistorie des Kunden ab
  2. Funktionsblock berechnet Treuemetriken
  3. Funktionsblock bestimmt Kundenstufe
  4. Bedingungsblock leitet basierend auf der Stufenhöhe weiter

Datenvalidierung und -bereinigung

Szenario: Benutzereingaben validieren und bereinigen

  1. Benutzereingabe aus Formularübermittlung erhalten
  2. Funktionsblock validiert E-Mail-Format und Telefonnummern
  3. Funktionsblock bereinigt und normalisiert Daten
  4. API-Block speichert validierte Daten in der Datenbank

Beispiel: Treuepunkte-Rechner

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 }
};

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
Funktion