builtin_tool_error-Anrufereignis, und der Assistent spricht einfach weiter mit dem Anrufer – ein kaputtes Tool bringt nie den ganzen Anruf zum Absturz.
Bei Messaging (Telegram, Slack, Messenger, Teams, Discord, Google Chat, X) und automatischen E-Mail-Antworten laufen dieselben textsicheren integrierten Tools im Next.js-Antwortpfad (auch API/MCP/Wissensdatenbank/Kalender). Reine Sprach-Tools (end_call, Weiterleitungen, DTMF/Tastenfeld, Zahlungskarte) sind dort nicht registriert.
Die eigenständigen Tools
Die Tastenfeld-Erfassung ist an den Flow gebunden: Füge dazu einen Collect-Node im Flow Builder hinzu – dort kann der Worker den DTMF-Status und die Übergänge sicher selbst verwalten. Kalenderaktionen kommen von den Integrationen. Die alten eigenständigen Konfigurationen
dtmf_input, collect_keypad und calendar_integration bleiben nur zur abwärtskompatiblen Anzeige erhalten und können nicht mehr als neue, wiederverwendbare Tools angelegt werden.
Ein Tool aktivieren
Öffne Tools, erstelle ein integriertes Tool, fülle die Felder aus und weise es einem Assistenten zu. Der erforderliche Name ist der exakte Funktionsname, der dem Modell zur Verfügung steht, während die Beschreibung dem Modell sagt, wann es das Tool nutzen soll. Aufrufe werden in der Runs-Ansicht dem wiederverwendbaren Tool zugeordnet.Anruf beenden
Keine weitere Konfiguration außer der Beschreibung. Das Modell muss die Anfrage erst abschließen und sich verabschieden, bevor es die Funktion aufruft; der Worker markiert den Anruf danach als beendet und legt auf.Anrufweiterleitung (kalt)
- Telefonnummer – das feste Ziel.
- KI kann die Zielnummer dynamisch bestimmen – macht das Ziel stattdessen zu einem Funktionsargument.
- Warm-Transfer-Nachricht – optionale, nicht unterbrechbare Ansage vor der kalten Weiterleitung.
Warme Anrufweiterleitung
Stellt den Anrufer in die Warteschleife und ruft zuerst einen Kollegen an:- Supervisor-Telefon – wer angerufen wird; dabei wird der konfigurierte ausgehende Trunk des Workspace genutzt.
- Wartemusik – an oder aus, plus eine optionale gesprochene Wartenachricht.
- Briefing – Zusammenfassungs-Anweisungen (wie der Anruf für den Kollegen zusammengefasst wird) und ein Briefing-Opener, der dem Kollegen vorgesprochen wird; beide unterstützen
{{variables}}. - Klingel-Timeout und Fallback – das Gespräch fortsetzen, beenden oder kalt weiterleiten, falls der Rückfrageanruf fehlschlägt.
Übergabe an Assistent (KI→KI)
Übergibt die laufende Sitzung an einen anderen Assistenten im selben Workspace, ohne aufzulegen:- Zielassistent (
assistant_id) – erforderlich; muss zum Workspace gehören. - Nachricht vor der Übergabe – optionale, nicht unterbrechbare Zeile, die vor der Übergabe gesprochen wird.
- Übergabe-Begrüßung sprechen – wenn aktiv (Standard), läuft nach dem Wechsel die erste Nachricht bzw. Begrüßung des Zielassistenten.
- Beschreibung – erforderlich: Sag dem Modell, wann es übergeben soll (z. B. Preisfragen → Vertriebsassistent).
reason und eine conversation_summary mitgeben, damit der übernehmende Assistent den Kontext behält. Der Worker baut STT/LLM/TTS (oder Realtime) für das Ziel neu auf, ruft session.update_agent auf und schreibt die Anrufereignisse assistant_transfer bzw. assistant_transfer_failed. Ein Anruf kann maximal drei Mal übergeben werden (Schutz vor Endlosschleifen). Eine Übergabe an denselben Assistenten wird abgelehnt.
SMS senden
Der Assistent formuliert den Text selbst aus dem Gesprächsverlauf und verschickt ihn während des Anrufs:- Empfänger (
sms_to_mode) –caller(Standard: die eigene Nummer des Anrufers) odercustommit einer festen benutzerdefinierten Nummer (sms_custom_number, E.164, z. B.+491701234567).
E-Mail senden
Das E-Mail-Tool trennt Empfängererfassung, Absenderidentität, Inhalt und Signatur, damit jeder Teil dort, wo nötig, deterministisch bleibt:- Empfänger (
email_to_mode) –asknutzt einen eigenen E-Mail-Erfassungs-Workflow, der undeutlich gesprochene Adressen normalisiert und explizit bestätigen lässt;fixedverwendetemail_fixed_to. Fehlerhafte oder aus Sprache erkannte Adressen werden beim Versand nie erraten. - Absender (
email_sender_mode) –autoversucht zuerst die verifizierte SendGrid-Adresse des Assistenten, dann Workspace-/Reseller-SMTP und zuletzt die Plattform-Mail. Alternativ wählst du explizit Workspace-SMTP, Plattform-Mail oder eine verifizierte Adresse ausGET /api/v1/email-senders. Eine explizite Auswahl schlägt im Fehlerfall klar fehl, statt stillschweigend auf etwas anderes auszuweichen. - Anzeigename (
email_from_name) – optionale Überschreibung pro Tool. - Inhalt (
email_content_mode) –llmlässt das Modell Betreff und Text aus dem Gespräch schreiben;fixedverschickt immer den konfigurierten, festen Text;templatelöst{{call_variables}}auf und blockiert den Versand, wenn ein Wert fehlt. - Signatur (
email_signature_mode) – Workspace-Standard (mit{agent_name}/{{assistant_name}}), eine individuelle Signatur pro Tool oder keine. Sie wird einmalig vom Anwendungscode angehängt und nicht vom Modell improvisiert. - Zustellstatus – ein erfolgreiches Tool-Ergebnis heißt nur, dass der SMTP-Anbieter die Nachricht angenommen hat – nicht, dass sie im Posteingang angekommen ist. Bekannte SendGrid-Bounces, -Blocks und -Spam-Sperren werden vor dem Versand geprüft und dem Assistenten als Zustellfehler zurückgemeldet.
Geschäftszeiten
Lässt den Assistenten ehrlich beantworten, wenn jemand fragt „Habt ihr gerade geöffnet?” – und sich außerhalb der Öffnungszeiten entsprechend anders verhalten:- Geschäftszeiten (
business_hours) – ein Wochenplan mit einem oder mehreren Zeitfenstern pro Wochentag ({"mon": [["09:00", "17:00"]], ...}– im gleichen Format wie die Anruffenster von Kampagnen). - Hinweis (
hours_note) – ein optionaler Freitext-Hinweis, der zusammen mit dem Ergebnis zurückgegeben wird (z. B. „An Feiertagen geschlossen”).
Rückruf planen
Der Assistent vereinbart mit dem Anrufer einen Rückruftermin; die Plattform speichert ihn, und ein Cron-Job wählt den Rückruf automatisch, sobald er fällig ist:- Rückrufnummer (
callback_to_mode) –caller(Standard: den Anrufer unter seiner eigenen Nummer zurückrufen) odercustommit einer festen benutzerdefinierten Nummer (callback_custom_number, E.164). - Max. Tage im Voraus (
max_days_ahead) – wie weit in der Zukunft ein Rückruf gebucht werden darf (1–365 Tage).
Zahlungskarte erfassen
Aktiviert Zahlungskarte-Collect-Nodes im Flow Builder. Das ist keine vom LLM aufrufbare Aktion – sie schaltet den Flow-Node frei und legt fest, welches Stripe-Konto die Payment Method erhält.- Hinterlege deinen Stripe Secret Key unter Tools → App Store → Stripe.
- Erstelle ein integriertes Tool vom Typ
collect_payment_cardund wähle das Stripe-Konto (stripe_connection_id) aus. - Weise das Tool einem Assistenten zu.
- Füge im Flow einen Collect-Node vom Typ Zahlungskarte hinzu.
card_last4, card_brand und stripe_payment_method_id – niemals die vollständige Kartennummer oder der CVV. Setzt das Plan-Feature Zahlungskarten erfassen voraus. Wird pro erfolgreicher Erfassung abgerechnet (siehe Credit-Einstellungen).
Ohne verbundenen Stripe Secret Key zeigt das Tool-Formular einen Hinweis, zuerst einen zu hinterlegen – für Kartendaten von Kunden gibt es keinen Plattform-Fallback.
Anrufvariable setzen
Lässt den Assistenten während des Anrufs einen Wert speichern (zum Beispiel den Firmennamen des Anrufers), damit spätere Tools, E-Mails, Flow-Bedingungen und der Post-Call-Webhook ihn nutzen können:- Erlaubte Keys (
allowed_keys) – optionale Allowlist im snake_case-Format. Leer = jeder gültige Key außer den reservierten Plattform-Keys (assistant_name,direction,call_id,date,time,datetime,weekday). - Beschreibung – sag dem Modell, wann gespeichert werden soll (z. B. nachdem der Anrufer sein Unternehmen genannt hat).
{"updated":{"key":"value"}} zurück, damit das Modell den gespeicherten Wert über das Tool-Ergebnis erfährt. Es schreibt den System-Prompt nicht mitten im Anruf um (Realtime-Modelle würden das ohnehin ignorieren). Ein leerer String löscht einen Key.
System-Tool: get_current_time
Unabhängig von den konfigurierbaren Tools oben hat jeder Assistent immer das System-Toolget_current_time – ohne Konfiguration, und es lässt sich nicht deaktivieren. Das Modell ruft es auf, sobald das aktuelle Datum oder die Uhrzeit relevant ist (etwa um „morgen um 3” aufzulösen, eine Frist zu prüfen oder einen Termin zu buchen).
Die zurückgegebene Zeit ist auf die Zeitzone des Assistenten lokalisiert (assistants.timezone, ein IANA-Bezeichner wie Europe/Berlin). Bei Kampagnenanrufen überschreibt die Zeitzone der Kampagne sie pro Anruf (meta.timezone ?? assistant.timezone) – siehe Zeitzone.
API & MCP
Integrierte Tools liegen imbuiltin_tools-Array des Assistenten (aus Kompatibilitätsgründen wird auch tools akzeptiert). Setze sie über die öffentliche API:
GET /api/v1/email-senders und das MCP-Tool list_email_senders legen den secrets-freien Absenderkatalog offen; siehe die API-Referenz.