Anruferkontext
Den Anrufer erkennen, bevor er ein Wort gesagt hat — per CSV oder API-Abfrage.
Ohne Anruferkontext muss dein Agent jeden Anrufer nach Name, Kundennummer und Anliegen fragen. Mit Anruferkontext kann schon der erste Satz lauten:
„Guten Tag, Frau Weber. Schön, dass Sie anrufen — geht es wieder um den Vorgang bei der Acme GmbH?"
Die Anrufer-Suche schlägt die Telefonnummer des Anrufers nach, bevor die Begrüßung gesprochen wird, und stellt die gefundenen Werte als Variablen zur Verfügung.
Nur bei echten Anrufen
Die Anrufer-Suche greift ausschließlich bei eingehenden Anrufen über eine echte Rufnummer. Beim Testgespräch im Browser wird keine Anrufernummer übertragen, es gibt also nichts nachzuschlagen. Zum Testen einer personalisierten Begrüßung musst du den Agenten wirklich anrufen.

Aktivieren
Unter Anweisungen → Anruferkontext schaltest du Anrufer-Suche aktivieren ein. Danach erscheinen zwei Reiter:
| Modus | Was du lieferst | Wann sinnvoll |
|---|---|---|
| CSV-Datei | Eine hochgeladene Kontaktliste | Du hast eine Excel- oder CRM-Exportliste, aber keine API |
| API-Abfrage | Einen HTTPS-Endpunkt bei dir | Du hast ein CRM oder eine Datenbank, die eine Leseabfrage anbieten kann |
Der Rest des Agenten arbeitet identisch — die gefundenen Werte sind in beiden Fällen ganz normale {{variablen}}.
Wo die Werte landen
Ein Treffer wirkt an drei Stellen gleichzeitig:
- Im Gesprächseinstieg — Platzhalter werden gefüllt, bevor der Anrufer das erste Wort hört.
- Im System-Prompt — der Agent verhält sich von Anfang an anders, je nach Anrufer.
- Im Gesprächsgedächtnis — auch ohne Platzhalter bekommt der Agent die Daten als stillen Hinweis und kann sie später natürlich einfließen lassen. Der Anrufer hört davon nichts.
Zeitverhalten und Ausfälle
| Aspekt | Verhalten |
|---|---|
| Wann | Nach dem Verbindungsaufbau, vor der Begrüßung |
| Timeout (API) | 3 Sekunden. Ist dein Endpunkt langsamer, wird die Suche übersprungen. |
| Timeout (CSV) | Keins — die Datei liegt bei ScaleTalk |
| Bei Fehlschlag | Das Gespräch läuft ganz normal weiter mit der Standardbegrüßung |
| Protokollierung | Jeder Versuch wird in den Anrufdetails protokolliert |
Ein Fehlschlag kostet nie den Anruf
Wird nichts gefunden oder antwortet dein System nicht, werden leere Platzhalter entfernt und überflüssige Leerzeichen und Satzzeichen aufgeräumt. Aus Guten Tag, {{name}}, schön dass Sie anrufen. wird dann sauber „Guten Tag, schön dass Sie anrufen." Du musst also keine Wenn-dann-Begrüßungen bauen.
CSV-Datei
Der schnelle Weg — kein Entwickler nötig.
Vorlage herunterladen
Über Vorlage herunterladen bekommst du eine Beispiel-CSV im erwarteten Format.
Datei hochladen
Ziehe die Datei in den Uploadbereich, maximal 10 MB — das entspricht rund 100.000 Zeilen typischer Kontaktdaten.
telefon,vorname,nachname,firma,notiz
+49123456789,Max,Mustermann,Acme GmbH,Bestandskunde
+49987654321,Anna,Schmidt,Tech AG,Neuer Lead
0151 12345678,Thomas,Müller,StartUp Inc,Rückruf offen
004930123456,Sarah,Weber,,Letzte Woche angerufenTrennzeichen prüfen
ScaleTalk erkennt Komma, Semikolon, Tabulator und Pipe automatisch. Sieht die Vorschau falsch aus — etwa alles in einer einzigen Spalte —, stell das Trennzeichen um. Excel exportiert in Europa meist mit Semikolon.
Telefonnummern-Spalte wählen
Sag ScaleTalk, welche Spalte die Rufnummern enthält.
Spalten Variablen zuordnen
Für jede Spalte, die du nutzen willst, legst du einen Variablennamen fest:
| CSV-Spalte | Variablenname |
|---|---|
vorname | anruferName |
firma | anruferFirma |
notiz | anruferNotiz |
Danach sind {{anruferName}}, {{anruferFirma}} und {{anruferNotiz}} überall verwendbar.
Vorschau kontrollieren
Die ersten Zeilen werden angezeigt. Stimmen sie, ist die Suche einsatzbereit.
Rufnummern müssen nicht sauber sein
Beide Seiten werden vor dem Abgleich normalisiert. Diese Schreibweisen finden alle denselben Anrufer:
| In der CSV | Treffer |
|---|---|
+4917612345678 | ja |
004917612345678 | ja |
017612345678 | ja, deutsche Inlandsschreibweise |
+49 176 12345678 | ja, Leerzeichen werden entfernt |
49 176 12345678 | ja |
Passen mehrere Zeilen auf dieselbe Nummer, gewinnt die erste.
Die Datei liegt verschlüsselt und ist nur diesem Agenten zugeordnet. Über Datei ersetzen tauschst du sie aus — die neue gilt ab dem nächsten Anruf.
API-Abfrage
Für Live-Daten aus deinem CRM.
| Feld | Pflicht | Hinweis |
|---|---|---|
| API-Endpunkt | ja | Vollständige HTTPS-URL. Platzhalter {{fromNumber}}, {{toNumber}}, {{callId}} erlaubt. |
| HTTP-Methode | ja | GET oder POST |
| Header | nein | Etwa Authorization: Bearer … |
| Anfrage-Body | nur bei POST | JSON, Platzhalter erlaubt |
| Antwort-Variablen | für die Personalisierung | Zuordnung Variablenname → JSON-Pfad |
Beispiel-Endpunkt:
https://crm.example.com/api/v1/kunden?telefon={{fromNumber}}Was dein System zurückgeben muss — gültiges JSON mit Status 2xx, innerhalb von 3 Sekunden:
{
"data": {
"id": "C-12345",
"firstName": "Maria",
"lastName": "Garcia",
"isVip": true
}
}Antwort-Variablen zuordnen — mit Punkt-Notation:
| Variablenname | JSON-Pfad | Ergebnis |
|---|---|---|
anruferName | data.firstName | Maria |
kundenId | data.id | C-12345 |
vipStatus | data.isVip | true |
Kein Treffer ist kein Fehler
Findet dein System die Nummer nicht, gib 2xx mit leeren Daten zurück — kein 404. Ein Fehlerstatus wird als Ausfall gewertet und die Suche verworfen.
Die Rufnummer kommt immer im E.164-Format an (+49…). Speichert deine Datenbank anders, rechne im Endpunkt um.
Variablen verwenden
Im Gesprächseinstieg
Guten Tag {{anruferName}}, schön dass Sie anrufen.
Geht es wieder um {{anruferFirma}}?Im System-Prompt
# Anruferkontext
- Name: {{anruferName}}
- Firma: {{anruferFirma}}
- Notiz: {{anruferNotiz}}
Ist der Anrufer als VIP hinterlegt, behandle das Anliegen
vorrangig. Ist er nicht im System, frage höflich nach dem
Unternehmen.Auch in Öffnungszeiten-Nachrichten und in der Verabschiedung funktionieren die Platzhalter.
Variablennamen sind Groß- und Kleinschreibungs-empfindlich
{{anruferName}} ist nicht dasselbe wie {{anrufername}} oder {{AnruferName}}. Das ist die häufigste Ursache für eine Begrüßung, die stumm bleibt.
Anrufer-Gedächtnis
Direkt darunter liegt eine verwandte, aber eigenständige Funktion: das Anrufer-Gedächtnis. Ruft dieselbe Nummer erneut an, kennt der Agent die Variablen aus früheren Gesprächen und muss nicht noch einmal dieselben Fragen stellen.
| Einstellung | Standard | Bedeutung |
|---|---|---|
| Anrufer-Gedächtnis aktivieren | aus | Schaltet die Funktion ein |
| Aufbewahrungsdauer (Tage) | 180 | Wie alt ein früherer Anruf höchstens sein darf. Bereich 1–730. Ältere werden automatisch ausgeschlossen. |
Einwilligung und Verantwortlichkeit
Der Agent fragt zu Beginn jedes Anrufs ausdrücklich nach der Einwilligung, bevor er auf frühere Daten zugreift. Mit der Aktivierung bestätigst du, dass du der Verantwortliche im Sinne der DSGVO für diese Anruferdaten bist und die Betroffenenrechte — Auskunft, Löschung und die übrigen — übernimmst.
Wenn beides aktiv ist
Liefern Anrufer-Suche und Anrufer-Gedächtnis einen Wert für dieselbe Variable, gewinnt die Anrufer-Suche. Das ist Absicht: CSV oder API sind die aktuelle Quelle, während das Gedächtnis nur ergänzt, was die Suche nicht liefert. Eine Adresse, die sich seit dem letzten Anruf geändert hat, wird so nicht mit einem veralteten Wert überschrieben.
Anruferkontext und Variablenextraktion
Beides greift ineinander, arbeitet aber zu verschiedenen Zeitpunkten:
| Anruferkontext | Variablenextraktion | |
|---|---|---|
| Wann | Vor dem Gespräch | Während des Gesprächs |
| Quelle | CSV oder deine API | Was der Anrufer sagt |
| Zweck | Was du schon weißt | Was neu dazukommt |
Systemvariablen
Immer verfügbar, unabhängig von der Anrufer-Suche:
| Variable | Bedeutung | Beispiel |
|---|---|---|
{{fromNumber}} | Nummer des Anrufers, E.164 | +4917612345678 |
{{toNumber}} | Angerufene Nummer | +4930123456789 |
{{callId}} | Eindeutige ID des Anrufs | RM_abc123xyz |
Wenn etwas nicht klappt
Die Begrüßung bleibt unpersönlich
- Ist Anrufer-Suche aktivieren an und der Agent gespeichert?
- Stimmt die Schreibweise des Variablennamens exakt?
- (API) Kam ein
2xxinnerhalb von 3 Sekunden? Die Anrufdetails zeigen den Versuch. - (API) Ist der JSON-Pfad richtig?
data.firstName— nicht$.data.firstName. - (CSV) Wurde die Nummer gefunden? Siehe unten.
Die CSV findet nie einen Treffer
| Ursache | Erkennbar an | Lösung |
|---|---|---|
| Falsche Telefonspalte gewählt | Die Vorschau zeigt in der Spalte keine Nummern | Richtige Spalte wählen |
| Falsches Trennzeichen | Die Vorschau zeigt eine einzige Spalte voller Semikolons | Trennzeichen umstellen |
| Exotisches Nummernformat | Buchstaben oder Durchwahlen in der Nummer | CSV vor dem Upload bereinigen |
| Anrufer unterdrückt die Nummer | Keine Anrufernummer vorhanden | Nicht behebbar — die Suche wird übersprungen |
Der Endpunkt bekommt nie eine Anfrage
| Ursache | Lösung |
|---|---|
| Endpunkt läuft über HTTP statt HTTPS | Auf HTTPS umstellen, HTTP wird abgelehnt |
| Firewall blockiert ScaleTalk | Ausgehende Adressen freigeben, Liste über den Support |
| Antwort dauert länger als 3 Sekunden | Abfrage optimieren, Cache vorschalten oder auf CSV wechseln |
| DNS nicht öffentlich auflösbar | Der Endpunkt muss von außen erreichbar sein |
Zum schnellen Gegentest hilft ein Request-Inspector wie webhook.site als temporärer Endpunkt — dort siehst du genau, was ScaleTalk schickt.