CRM-Intelligence
Konversations-Intelligence-Zusammenfassungen abrufen, ausgehende Anrufe programmatisch starten und ausgehende Assistenten mit zugewiesenen Telefonnummern über die Talkturo API auflisten.
curl "https://api.talkturo.com/api/crm/intelligence?from=2026-09-01&to=2026-09-12&account=acme-sales&campaign_id=cmp_8f31a2&assistant_id=ast_4c92e1" \
-H "Cookie: sb-access-token=authenticated-session-token"
const response = await fetch(
"https://api.talkturo.com/api/crm/intelligence?from=2026-09-01&to=2026-09-12&account=acme-sales&campaign_id=cmp_8f31a2&assistant_id=ast_4c92e1",
{
headers: {
Cookie: "sb-access-token=authenticated-session-token"
}
}
);
const result = await response.json();
console.log(result);
{
"success": true,
"data": {},
"filters": {
"campaigns": [
{
"id": "cmp_8f31a2",
"name": "Produktdemo Q3"
}
],
"assistants": [
{
"id": "ast_4c92e1",
"name": "Sales Assistant"
}
]
}
}
{
"error": "Missing required query params: from, to (YYYY-MM-DD)"
}
{
"error": "Unauthorized"
}
{
"error": "Forbidden"
}
{
"error": "Account not found"
}
{
"error": "Internal server error"
}
curl -X POST "https://api.talkturo.com/api/crm/calls" \
-H "Authorization: Bearer tk_live_example_7mQ2x9Kp4s" \
-H "Content-Type: application/json" \
-d '{
"assistant_id": "8b7f2e35-4c8d-4c2a-9f15-2f3a6b7d9012",
"to_number": "+493012345678",
"from_number": "+493098765432",
"metadata": {
"lead_id": "lead_5d82c1",
"source": "crm"
}
}'
const response = await fetch("https://api.talkturo.com/api/crm/calls", {
method: "POST",
headers: {
Authorization: "Bearer tk_live_example_7mQ2x9Kp4s",
"Content-Type": "application/json"
},
body: JSON.stringify({
assistant_id: "8b7f2e35-4c8d-4c2a-9f15-2f3a6b7d9012",
to_number: "+493012345678",
from_number: "+493098765432",
metadata: {
lead_id: "lead_5d82c1",
source: "crm"
}
})
});
const result = await response.json();
console.log(result);
{
"success": true,
"call": {
"room_name": "call_01J8K2M4N6P8Q0R2S4T6",
"sip_call_id": "sip_9f31c2",
"from_number": "+493098765432",
"to_number": "+493012345678"
}
}
curl "https://api.talkturo.com/api/crm/outbound-assistants?teamId=7b1f2e35-4c8d-4c2a-9f15-2f3a6b7d9012" \
-H "Cookie: sb-access-token=authenticated-session-token"
const response = await fetch(
"https://api.talkturo.com/api/crm/outbound-assistants?teamId=7b1f2e35-4c8d-4c2a-9f15-2f3a6b7d9012",
{
headers: {
Cookie: "sb-access-token=authenticated-session-token"
}
}
);
const result = await response.json();
console.log(result);
{
"success": true,
"assistants": [
{
"id": "8b7f2e35-4c8d-4c2a-9f15-2f3a6b7d9012",
"name": "Sales Assistant",
"outbound_enabled": true,
"group_id": "grp_31a8f2",
"group_name": "Vertrieb",
"assigned_numbers": [
{
"id": "num_9c42e1",
"phone_number": "+493098765432",
"assistant_id": "8b7f2e35-4c8d-4c2a-9f15-2f3a6b7d9012",
"status": "active"
}
]
}
]
}
CRM-Daten und ausgehende Anrufe verwalten
Verwenden Sie diese Endpunkte, um Konversations-Intelligence-Daten abzurufen, ausgehende Anrufe zu starten und verfügbare ausgehende Assistenten mit ihren Telefonnummern zu ermitteln.
Die Endpunkte verwenden je nach Route eine Supabase-Websitzung oder einen Talkturo API-Key. Senden Sie Authentifizierungsdaten im Authorization-Header, sofern der jeweilige Endpunkt dies voraussetzt.
Konversations-Intelligence abrufen
Rufen Sie eine Zusammenfassung der Konversations-Intelligence für einen Account und einen Datumsbereich ab.
GET /api/crm/intelligence
Authentifizierung
Der Endpunkt erfordert eine gültige Supabase-Websitzung. Die Sitzung wird über das Supabase-Cookie des angemeldeten Benutzers geprüft.
Der Benutzer muss außerdem Mitglied des Accounts sein, der über den Query-Parameter account angegeben wird. Der Wert von account ist ein Account-Slug, keine Account-ID.
Anfrageparameter
Startdatum des Zeitraums im Format YYYY-MM-DD. Der Wert wird unverändert an die Datenbankabfrage übergeben.
Enddatum des Zeitraums im Format YYYY-MM-DD. Der Wert wird unverändert an die Datenbankabfrage übergeben.
Account-Slug, über den der Account aufgelöst und die Mitgliedschaft des Benutzers geprüft wird.
Optionale Kampagnen-ID. Wenn der Parameter fehlt, wird der Wert als null an die Abfrage übergeben.
Optionale Assistant-ID. Wenn der Parameter fehlt, wird der Wert als null an die Abfrage übergeben.
Anfrage
Antwort
Die Route gibt das Ergebnis der Datenbankfunktion conversation_intelligence_summary unverändert im Feld data zurück. Die konkreten Felder innerhalb von data hängen vom Ergebnis dieser Funktion ab.
Gibt an, ob die Anfrage erfolgreich verarbeitet wurde.
Rohes Ergebnis der Datenbankfunktion conversation_intelligence_summary. Die Route setzt das Feld auf ein leeres Objekt, wenn die Funktion kein Ergebnis zurückgibt.
Enthält die für die Filterung verfügbaren Kampagnen und Assistenten.
Bis zu 100 nicht gelöschte Kampagnen des Accounts. Jedes Element enthält id und name.
Bis zu 100 Assistenten des Accounts. Jedes Element enthält id und name.
Ein fehlender oder ungültiger Datumsbereich führt zu 400. Ein nicht vorhandener Account führt zu 404. Ohne Account-Mitgliedschaft gibt die Route 403 zurück.
Ausgehenden Anruf starten
Starten Sie einen ausgehenden Anruf mit einem bestimmten Assistant und einer Zielrufnummer.
POST /api/crm/calls
Authentifizierung
Der Endpunkt akzeptiert:
Verwenden Sie einen Talkturo API-Key im Authorization-Header. Der API-Key muss an einen Account gebunden sein und den Scope calls:create besitzen. Wildcard-Berechtigungen sowie der Scope calls:* erfüllen diese Anforderung ebenfalls.
Authorization: Bearer tk_live_example_7mQ2x9Kp4s
Verwenden Sie ein Supabase-Session-Token als Bearer-Token. Die Authentifizierung muss außerdem einen Account-Kontext bereitstellen, damit die Route den zu verwendenden Account ermitteln kann.
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.session.token
Anfragefelder
UUID des Assistants, der den ausgehenden Anruf ausführt. Der Assistant muss zum authentifizierten Account gehören und für ausgehende Anrufe aktiviert sein.
Zielrufnummer. Der Wert muss mindestens vier Zeichen enthalten und wird vom Dienst als E.164-Rufnummer normalisiert.
Optionale Absendernummer. Wenn Sie den Wert angeben, muss die Nummer aktiv und dem Assistant zugewiesen sein.
Optionale benutzerdefinierte Metadaten. Das Objekt wird als verschachtelte Benutzermetadaten an den Anrufdienst weitergegeben.
Anfrage
Erfolgsantwort
Gibt an, ob der Anruf erfolgreich eingerichtet wurde.
Enthält die technischen Daten des eingerichteten Anrufs.
Name des LiveKit-Raums für den Anruf.
SIP-ID des Anrufs. Das Feld kann null sein, wenn noch keine SIP-ID verfügbar ist.
Für den Anruf verwendete Absendernummer.
Normalisierte Zielrufnummer.
Fehler
Die Route gibt unter anderem folgende Fehler zurück:
401, wenn keine gültige Authentifizierung vorliegt oder kein Account-Kontext verfügbar ist.403, wenn der API-Key den Scopecalls:createnicht besitzt.400, wenn der Request-Body ungültig ist, die Zielrufnummer nicht akzeptiert wird oder der Assistant nicht für ausgehende Anrufe konfiguriert ist.402, wenn das Account-Guthaben für den Anruf nicht ausreicht.404, wenn der Assistant nicht zum Account gehört.500, wenn die LiveKit-Konfiguration fehlt oder die Einrichtung des Anrufs fehlschlägt.
Eine angegebene from_number muss aktiv und dem Assistant zugewiesen sein. Wenn keine gültige aktive Assistant-Nummer existiert, kann der Anruf nicht gestartet werden.
Ausgehende Assistenten auflisten
Rufen Sie die für einen Account aktivierten ausgehenden Assistenten und ihre zugewiesenen Telefonnummern ab.
GET /api/crm/outbound-assistants?teamId=account-id
Authentifizierung
Der Endpunkt erfordert eine gültige Supabase-Websitzung. Der Benutzer wird über sessionClient.auth.getUser() authentifiziert.
Anfrageparameter
ID des Accounts oder Teams, für das die ausgehenden Assistenten abgerufen werden.
Anfrage
Antwort
Gibt an, ob die Abfrage erfolgreich war.
Liste der Assistenten des angegebenen Accounts, für die ausgehende Anrufe aktiviert sind. Die Liste ist nach dem Namen des Assistants aufsteigend sortiert.
ID des Assistants.
Name des Assistants.
Gibt an, ob ausgehende Anrufe für den Assistant aktiviert sind. In dieser Antwort ist der Wert immer true.
ID der zugehörigen Assistant-Gruppe, sofern vorhanden.
Name der zugehörigen Assistant-Gruppe, sofern vorhanden.
Aktive, nicht gelöschte Telefonnummern, die dem Assistant und dem angegebenen Team zugewiesen sind. Die Liste ist nach der Telefonnummer aufsteigend sortiert.
ID der zugewiesenen Telefonnummer.
Zugewiesene Telefonnummer.
ID des Assistants, dem die Telefonnummer zugewiesen ist.
Status der Telefonnummer. Für die zurückgegebenen Nummern ist der Status active.
Die Route berücksichtigt nur Assistenten mit outbound_enabled=true. Zugewiesene Telefonnummern müssen aktiv und nicht gelöscht sein.
Fehler
400, wennteamIdfehlt.401, wenn keine authentifizierte Sitzung vorhanden ist.500, wenn das Laden der Assistenten oder Telefonnummern fehlschlägt.