CRMCRM-Intelligence

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"
{
  "success": true,
  "data": {},
  "filters": {
    "campaigns": [
      {
        "id": "cmp_8f31a2",
        "name": "Produktdemo Q3"
      }
    ],
    "assistants": [
      {
        "id": "ast_4c92e1",
        "name": "Sales Assistant"
      }
    ]
  }
}
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"
    }
  }'
{
  "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"
{
  "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

query
fromstring
Required

Startdatum des Zeitraums im Format YYYY-MM-DD. Der Wert wird unverändert an die Datenbankabfrage übergeben.

query
tostring
Required

Enddatum des Zeitraums im Format YYYY-MM-DD. Der Wert wird unverändert an die Datenbankabfrage übergeben.

query
accountstring
Required

Account-Slug, über den der Account aufgelöst und die Mitgliedschaft des Benutzers geprüft wird.

query
campaign_idstring

Optionale Kampagnen-ID. Wenn der Parameter fehlt, wird der Wert als null an die Abfrage übergeben.

query
assistant_idstring

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.

successboolean
Required

Gibt an, ob die Anfrage erfolgreich verarbeitet wurde.

dataobject
Required

Rohes Ergebnis der Datenbankfunktion conversation_intelligence_summary. Die Route setzt das Feld auf ein leeres Objekt, wenn die Funktion kein Ergebnis zurückgibt.

filtersobject
Required

Enthält die für die Filterung verfügbaren Kampagnen und Assistenten.

filters.campaignsarray
Required

Bis zu 100 nicht gelöschte Kampagnen des Accounts. Jedes Element enthält id und name.

filters.assistantsarray
Required

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

Anfragefelder

body
assistant_idstring
Required

UUID des Assistants, der den ausgehenden Anruf ausführt. Der Assistant muss zum authentifizierten Account gehören und für ausgehende Anrufe aktiviert sein.

body
to_numberstring
Required

Zielrufnummer. Der Wert muss mindestens vier Zeichen enthalten und wird vom Dienst als E.164-Rufnummer normalisiert.

body
from_numberstring

Optionale Absendernummer. Wenn Sie den Wert angeben, muss die Nummer aktiv und dem Assistant zugewiesen sein.

body
metadataobject

Optionale benutzerdefinierte Metadaten. Das Objekt wird als verschachtelte Benutzermetadaten an den Anrufdienst weitergegeben.

Anfrage

Erfolgsantwort

successboolean
Required

Gibt an, ob der Anruf erfolgreich eingerichtet wurde.

callobject
Required

Enthält die technischen Daten des eingerichteten Anrufs.

call.room_namestring
Required

Name des LiveKit-Raums für den Anruf.

call.sip_call_idstring or null
Required

SIP-ID des Anrufs. Das Feld kann null sein, wenn noch keine SIP-ID verfügbar ist.

call.from_numberstring
Required

Für den Anruf verwendete Absendernummer.

call.to_numberstring
Required

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 Scope calls:create nicht 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

query
teamIdstring
Required

ID des Accounts oder Teams, für das die ausgehenden Assistenten abgerufen werden.

Anfrage

Antwort

successboolean
Required

Gibt an, ob die Abfrage erfolgreich war.

assistantsarray
Required

Liste der Assistenten des angegebenen Accounts, für die ausgehende Anrufe aktiviert sind. Die Liste ist nach dem Namen des Assistants aufsteigend sortiert.

assistants[].idstring
Required

ID des Assistants.

assistants[].namestring
Required

Name des Assistants.

assistants[].outbound_enabledboolean
Required

Gibt an, ob ausgehende Anrufe für den Assistant aktiviert sind. In dieser Antwort ist der Wert immer true.

assistants[].group_idstring or null
Required

ID der zugehörigen Assistant-Gruppe, sofern vorhanden.

assistants[].group_namestring or null
Required

Name der zugehörigen Assistant-Gruppe, sofern vorhanden.

assistants[].assigned_numbersarray
Required

Aktive, nicht gelöschte Telefonnummern, die dem Assistant und dem angegebenen Team zugewiesen sind. Die Liste ist nach der Telefonnummer aufsteigend sortiert.

assistants[].assigned_numbers[].idstring
Required

ID der zugewiesenen Telefonnummer.

assistants[].assigned_numbers[].phone_numberstring
Required

Zugewiesene Telefonnummer.

assistants[].assigned_numbers[].assistant_idstring or null
Required

ID des Assistants, dem die Telefonnummer zugewiesen ist.

assistants[].assigned_numbers[].statusstring or null
Required

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, wenn teamId fehlt.
  • 401, wenn keine authentifizierte Sitzung vorhanden ist.
  • 500, wenn das Laden der Assistenten oder Telefonnummern fehlschlägt.

Nächste Schritte