API-Anfrage
Den Agenten während des Gesprächs mit externen Systemen sprechen lassen — per HTTP-Request.
Mit einer API-Anfrage holt dein Agent während des Telefonats Daten aus einem anderen System oder trägt sie dort ein: ein Ticket im Helpdesk, ein Lead im CRM, ein Bestellstatus aus dem Warenwirtschaftssystem.

So funktioniert es
Jede aktivierte API-Anfrage wird dem Sprachmodell als eigenes Werkzeug mit typisierten Parametern angeboten. Der Agent erkennt die Situation, sammelt die fehlenden Angaben im Gespräch, ruft die API auf und arbeitet mit dem, was zurückkommt.
Anrufer ──▶ Agent erkennt die Situation
Agent fragt fehlende Angaben ab
Agent ruft deine API auf ──▶ dein System
antwortet
Agent spricht weiter ◀──Angelegt wird sie über Kompetenzen → Fähigkeiten → API-Anfrage → + in einem vierstufigen Assistenten.
Schritt 1 — Grundlagen
Alle drei Felder sind Pflicht, sonst geht es nicht weiter.
| Feld | Zweck |
|---|---|
| Name des Tools | Kurzer Name, z. B. Ticket anlegen. Darüber referenzierst du das Tool im Prompt. |
| Was macht das Tool? | Welche Funktion es hat und was es zurückgibt. |
| Wann soll es verwendet werden? | In welcher Situation der Agent es aufrufen soll. |
Die letzten beiden Felder werden zu einer Beschreibung zusammengesetzt, und genau die liest das Sprachmodell. Sie entscheidet darüber, ob das Tool überhaupt aufgerufen wird — also konkret formulieren, keine Romane:
Was macht das Tool?
Legt ein Ticket für ein sonstiges Anliegen an — kein Termin,
keine Weiterleitung.
Wann soll es verwendet werden?
Aufrufen, sobald Name und Anliegen vollständig erfasst sind.Umlaute im Namen sind kein Problem
Intern braucht das Werkzeug einen technischen Namen. ScaleTalk übersetzt Umlaute (ä→ae, ö→oe, ü→ue, ß→ss) und ersetzt alle übrigen Sonderzeichen durch _. Aus Ticket anlegen wird Ticket_anlegen, aus Rückruf anfragen wird Rueckruf_anfragen. Im Prompt nutzt du den Namen, wie du ihn eingetragen hast.
Schritt 2 — API-Konfiguration
Wann soll die API aufgerufen werden?
| Modus | Verhalten |
|---|---|
| Dynamisch (Standard) | Der Agent entscheidet im Gespräch, wann er aufruft. Für Aktionen wie Ticket anlegen oder Daten abrufen. |
| Bei Anrufbeginn | Läuft einmal beim Anrufstart, bevor die Begrüßung gesprochen wird. Für CRM-Abfragen zur Personalisierung. |
Der Modus Bei Anrufbeginn ist derselbe Mechanismus wie der Anruferkontext — dort ist er ausführlich beschrieben, inklusive CSV-Variante ohne eigene API. Für diesen Modus empfiehlt sich ein Timeout von 3000 ms, damit der Anrufer nicht auf die Begrüßung wartet.
Endpunkt
| Feld | Standard | Bedeutung |
|---|---|---|
| URL | — | Vollständige Adresse inklusive https://. Unterstützt {{variable}}-Platzhalter. |
| HTTP-Methode | POST | Siehe Tabelle unten |
| Ausführungstext | leer | Was der Agent während des Aufrufs sagt |
| Timeout | 5000 ms | Maximale Wartezeit auf die Antwort |
| Methode | Wofür | Wie die Parameter reisen |
|---|---|---|
GET | Daten abrufen | Query-String |
POST | Neue Einträge anlegen | JSON-Body |
PUT | Daten komplett ersetzen | JSON-Body |
PATCH | Daten teilweise ändern | JSON-Body |
DELETE | Daten löschen | Query-String |
Der Ausführungstext entscheidet, ob der Agent die Antwort sieht
Das ist die wichtigste Einstellung auf dieser Seite, und die am häufigsten missverstandene.
Ausführungstext gefüllt → Der Agent spricht genau diesen Satz und bekommt die Antwort deiner API gar nicht zu sehen. Er kann also keine Ticketnummer vorlesen.
Ausführungstext leer → Der Agent erhält die ersten 500 Zeichen der Antwort und kann damit weitersprechen — Bestätigungsnummer vorlesen, Bestellstatus nennen, Termin bestätigen.
Faustregel: Ausführungstext nur setzen, wenn ein fester Satz reicht. Sobald der Agent etwas aus der Antwort zurückgeben soll, Feld leer lassen.
Bei längeren Workflows das Timeout hochsetzen — 5 bis 15 Sekunden sind praxisnah. Alles darüber lässt den Anrufer in der Leitung warten.
Schritt 3 — Parameter und Header
Header
Schlüssel-Wert-Paare für Authentifizierung und Format. Leere Zeilen werden beim Speichern verworfen.
| Header | Beispielwert |
|---|---|
Authorization | Bearer sk-abc123xyz… |
Content-Type | application/json |
Accept | application/json |
Dynamische Parameter (JSON-Schema)
Hier beschreibst du als JSON-Schema, welche Werte der Agent aus dem Gespräch ziehen soll. Das Schema legt die Struktur fest, nicht die Werte — die füllt der Agent zur Laufzeit.
{
"type": "object",
"properties": {
"name": { "type": "string", "description": "Vollständiger Name des Anrufers" },
"anliegen": { "type": "string", "description": "Worum es geht, in ein bis zwei Sätzen" },
"prioritaet": {
"type": "string",
"enum": ["niedrig", "mittel", "hoch"],
"description": "Wie dringend die Sache ist"
}
},
"required": ["name", "anliegen"]
}| Eigenschaft | Zweck |
|---|---|
type | string, number, boolean, array oder object |
description | Erklärt dem Agenten den Parameter — wichtig, wird bei 200 Zeichen gekürzt |
enum | Erlaubte Werte |
required | Welche Parameter der Agent zwingend erfragen muss |
Der Dialog bietet fertige Beispiele (Einfache Felder, Mit Auswahloptionen, Support-Ticket), prüft dein JSON live und kann es über JSON formatieren aufräumen.
Kein JSON schreiben wollen?
Beschreib einer KI in einem Satz, welche Felder du brauchst, und lass dir das Schema erzeugen — „Erstelle mir ein JSON-Schema mit Name und Anliegen, beides Pflicht, jeweils mit Beschreibung." Das Ergebnis kopierst du hier hinein und formatierst es.
Fixe Parameter
Konstante Werte, die bei jedem Aufruf mitgehen — API-Keys, Mandanten-IDs, Konfigurationsflags:
{
"apiKey": "dein-api-key",
"quelle": "telefon"
}Was am Ende wirklich gesendet wird
Drei Quellen werden zusammengeführt, von der schwächsten zur stärksten:
Systemvariablen → fixe Parameter → vom Agenten extrahierte Parameter
(schwächste) (stärkste)Bei gleichem Schlüssel gewinnt also immer der Wert aus dem Gespräch. Platzhalter in der URL werden aus demselben zusammengeführten Satz ersetzt.
Systemvariablen
Diese Werte stellt ScaleTalk automatisch bereit — als Parameter und als {{platzhalter}} in der URL:
| Variable | Bedeutung | Beispiel |
|---|---|---|
{{fromNumber}} | Nummer des Anrufers | +4917612345678 |
{{toNumber}} | Angerufene Nummer | +4930123456789 |
{{callId}} | Eindeutige ID des Anrufs | RM_abc123xyz |
{{language}} | Sprache des Agenten, multi bei Automatik | de |
https://crm.example.com/kunden/{{fromNumber}}/ticketsLeere Systemvariablen werden vor dem Senden entfernt.
Schritt 4 — Prüfen und testen
Der letzte Schritt fasst alles zusammen und bietet einen echten Testaufruf:
- Auf Test klicken — der Assistent füllt Beispielwerte aus deinem Schema vor
- Werte anpassen und Test ausführen
- Statuscode, Antwort und Laufzeit prüfen
Der Test läuft serverseitig über ScaleTalk, nicht aus dem Browser — dadurch gibt es keine CORS-Probleme und der Aufruf entspricht dem echten Betrieb. Aufrufe an localhost und andere lokale Adressen werden blockiert, und das Timeout ist im Test auf 30 Sekunden gedeckelt.
Speichern ist möglich, sobald Name, beide Beschreibungen und die URL gesetzt sind.
Grenzen
| Grenze | Wert | Was passiert beim Überschreiten |
|---|---|---|
| API-Tools pro Agent | 10 | Nur die ersten 10 aktivierten werden registriert, der Rest fällt still weg |
| Tool-Beschreibung | 500 Zeichen | Wird gekürzt |
| Parameter-Beschreibung | 200 Zeichen | Wird gekürzt |
| Genutzte Antwort ohne Ausführungstext | 500 Zeichen | Wird abgeschnitten |
| Timeout | 5000 ms Standard | Pro Tool einstellbar |
| Timeout im Test | max. 30 000 ms | Wird gedeckelt |
Die Anzahl der Header und Parameter innerhalb eines Tools ist nicht begrenzt.
Was der Agent bei Fehlern erfährt
| Fall | Was beim Agenten ankommt |
|---|---|
2xx | Ausführungstext gesetzt: nichts. Sonst die ersten 500 Zeichen der Antwort. |
4xx / 5xx | „Die API-Anfrage ist fehlgeschlagen: HTTP <Status>" |
| Timeout | „Die API-Anfrage hat zu lange gedauert." |
| Netzwerkfehler | „Verbindung zur API nicht möglich." |
| Ungültige Parameter | „Ungültige Parameter: <Fehler>" |
Schreib in den Prompt, was in diesen Fällen passieren soll — sonst improvisiert der Agent.
Integration mit n8n
Die häufigste Variante in der Praxis ist n8n: Die Automationsplattform nimmt den Request entgegen, verarbeitet ihn und antwortet. Kein eigener Server nötig, und fast jedes gängige System ist dort schon angebunden.
Ablauf
- In n8n einen Webhook-Node anlegen, Methode
POST— er erzeugt eine URL - Diese URL in ScaleTalk als URL eintragen
- Der Agent löst den Request aus, ScaleTalk schickt die Daten an n8n
- n8n verarbeitet sie — Ticket anlegen, CRM aktualisieren, Zeile in Google Sheets schreiben
- n8n antwortet, der Agent nutzt die Antwort im Gespräch
Workflow einrichten
Ein typischer Ablauf:
Webhook → Daten aufbereiten → Ticket erstellen → Respond to WebhookDer letzte Node muss Respond to Webhook sein, sonst bekommt der Agent nichts zurück:
{
"success": true,
"ticket_id": "TK-20260218-042",
"message": "Ticket erfolgreich erstellt"
}Damit sagt der Agent: „Ich habe Ticket TK-20260218-042 für Sie angelegt."
Zwei Stolperfallen bei n8n
Production-URL verwenden, nicht die Test-URL — die Test-URL nimmt nur einen einzigen Aufruf entgegen, solange der Editor offen ist.
Fast immer POST. Auch wenn du nur Daten abholst, erwartet der n8n-Webhook meist POST. Die Methode in ScaleTalk muss zu der im Webhook-Node passen.
Bei n8n-Webhooks ist in der Regel keine Authentifizierung nötig — die URL selbst ist das Geheimnis. Behandle sie entsprechend.
Im Prompt referenzieren
Die Konfiguration allein löst nichts aus. Im System-Prompt legst du fest, wann das Tool gerufen wird:
### Wenn der Anrufer eine allgemeine Frage oder einen
### Rückrufwunsch zu einem neuen Thema hat:
1. Erfasse Name und Anliegen vollständig.
2. Rufe das Tool "Ticket anlegen" auf.
3. Nenne dem Anrufer die zurückgegebene Ticketnummer.
4. Wenn das Tool fehlschlägt: Sage zu, dass du das Anliegen
manuell weitergibst, und beende das Gespräch normal.Wenn etwas nicht klappt
| Symptom | Ursache | Lösung |
|---|---|---|
| Tool wird nie aufgerufen | „Wann verwenden" zu vage, Tool deaktiviert, oder mehr als 10 Tools am Agenten | Beschreibung schärfen, Beispielformulierungen ergänzen, Tools reduzieren |
| Parameter kommen leer an | Fehlende oder unklare description im Schema | Je Parameter eine konkrete Beschreibung setzen |
| Agent liest die Antwort nicht vor | Ausführungstext ist gesetzt | Feld leeren |
| Antwort wird abgeschnitten | Über 500 Zeichen | Antwort kürzen, wichtigen Wert an den Anfang stellen |
| Aufruf schlägt fehl | URL, Zugangsdaten, Timeout oder Erreichbarkeit | Im Testmodus prüfen |
Zum Debuggen hilft ein Request-Inspector wie webhook.site als temporärer Endpunkt — dort siehst du exakt, was ScaleTalk sendet.