Kontakte
Verwalte Kontaktdatensätze, Anmeldung und wählbereite Daten, damit Assistenten ausgehende und eingehende Sprachgespräche personalisieren können.
curl -X POST "https://app.talkturo.com/api/crm/contacts" \
-H "Authorization: Bearer tk_example_9xmk7q2r" \
-H "Content-Type: application/json" \
-d '{
"companyId": "cmp_7f3c2a91",
"firstName": "Maya",
"lastName": "Patel",
"phone": "+14155550182",
"email": "maya.patel@northstar.io",
"leadStatus": "qualified",
"source": "webinar",
"timezone": "America/Los_Angeles",
"tags": ["enterprise", "west-region"],
"customFields": {
"productInterest": "voice automation",
"employeeCount": 120
}
}'
const response = await fetch("https://app.talkturo.com/api/crm/contacts", {
method: "POST",
headers: {
"Authorization": "Bearer tk_example_9xmk7q2r",
"Content-Type": "application/json"
},
body: JSON.stringify({
companyId: "cmp_7f3c2a91",
firstName: "Maya",
lastName: "Patel",
phone: "+14155550182",
email: "maya.patel@northstar.io",
leadStatus: "qualified",
source: "webinar",
timezone: "America/Los_Angeles",
tags: ["enterprise", "west-region"],
customFields: {
productInterest: "voice automation",
employeeCount: 120
}
})
});
const data = await response.json();
console.log(data);
{
"id": "ctc_a1b2c3d4",
"companyId": "cmp_7f3c2a91",
"firstName": "Maya",
"lastName": "Patel",
"phone": "+14155550182",
"email": "maya.patel@northstar.io",
"leadStatus": "qualified",
"source": "webinar",
"timezone": "America/Los_Angeles",
"doNotCall": false,
"tags": ["enterprise", "west-region"],
"customFields": {
"productInterest": "voice automation",
"employeeCount": 120
}
}
{
"error": "Validation failed",
"details": {
"phone": "Phone must be in E.164 format"
}
}
{
"error": "Company does not belong to this workspace"
}
curl -X POST "https://app.talkturo.com/api/crm/contacts" \
-H "Authorization: Bearer tk_example_9xmk7q2r" \
-H "Content-Type: application/json" \
-d '{
"companyId": "cmp_7f3c2a91",
"firstName": "Daniel",
"lastName": "Ruiz",
"phone": "+12125550149",
"campaignId": "cam_4820af31",
"campaignPriority": 90
}'
{
"id": "ctc_g7h8i9j0",
"firstName": "Daniel",
"lastName": "Ruiz",
"phone": "+12125550149",
"companyId": "cmp_7f3c2a91",
"campaignEnrollment": {
"campaignId": "cam_4820af31",
"status": "pending",
"priority": 90
}
}
curl -G "https://app.talkturo.com/api/crm/contacts" \
-H "Authorization: Bearer tk_example_9xmk7q2r" \
--data-urlencode "search=maya" \
--data-urlencode "companyId=cmp_7f3c2a91" \
--data-urlencode "leadStatus=qualified" \
--data-urlencode "doNotCall=false" \
--data-urlencode "hasPhone=true" \
--data-urlencode "limit=25" \
--data-urlencode "offset=0"
{
"data": [
{
"id": "ctc_a1b2c3d4",
"firstName": "Maya",
"lastName": "Patel",
"phone": "+14155550182",
"email": "maya.patel@northstar.io",
"leadStatus": "qualified",
"doNotCall": false,
"companyId": "cmp_7f3c2a91"
}
],
"limit": 25,
"offset": 0
}
curl -X PUT "https://app.talkturo.com/api/crm/contacts/ctc_a1b2c3d4" \
-H "Authorization: Bearer tk_example_9xmk7q2r" \
-H "Content-Type: application/json" \
-d '{
"leadStatus": "customer",
"jobTitle": "Operations Director",
"doNotCall": true,
"customFields": {
"implementationStage": "contract-sent"
}
}'
{
"id": "ctc_a1b2c3d4",
"leadStatus": "customer",
"jobTitle": "Operations Director",
"doNotCall": true,
"customFields": {
"implementationStage": "contract-sent"
}
}
curl -X DELETE "https://app.talkturo.com/api/crm/contacts/ctc_a1b2c3d4" \
-H "Authorization: Bearer tk_example_9xmk7q2r"
{
"success": true
}
{
"error": "Contact is enrolled in an active campaign"
}
Kontaktdaten an einem Ort verwalten
Kontakte sind die Personen, die deine Assistenten anrufen, und die Personen, die deine Assistenten anrufen. Jeder Kontaktdatensatz speichert persönliche Details, Lead-Status, die Beziehung zum Unternehmen und benutzerdefinierte Felder, die Talkturo verwendet, um Gespräche zu personalisieren, Aktivitäten nachzuverfolgen und den Wählvorgang für Kampagnen zu unterstützen.
Ein vollständiger Kontaktdatensatz macht nachgelagerte Workflows zuverlässiger. Wenn Telefonnummern, Unternehmensverknüpfungen und Lead-Daten korrekt sind, können Assistenten Anrufe richtig weiterleiten, CRM-Datensätze nach Gesprächen aktualisieren und vermeiden, Kontakte anzurufen, die ausgeschlossen werden sollten.
Verwende Unternehmen, um geschäftliche Datensätze auf Unternehmensebene zu verwalten, die mit Kontakten verknüpft sind, und benutzerdefinierte Felder, um Workspace-spezifische Daten zu erfassen, die nicht in das Standardschema passen.
Kontaktfelder
Verwende diese Felder, wenn du Kontakte erstellst, importierst oder aktualisierst.
Vorname des Kontakts. Dieses Feld muss vorhanden und darf nicht leer sein.
Nachname des Kontakts. Dieses Feld muss vorhanden und darf nicht leer sein.
Primäre Telefonnummer im E.164-Format. Dieses Feld muss vorhanden sein und +[1-9] gefolgt von 6 bis 14 Ziffern entsprechen.
Speichere Telefonnummern im E.164-Format, zum Beispiel +14155550182. So bleiben Wählvorgang, Deduplizierung und der Abgleich eingehender Anrufer im gesamten Workspace konsistent.
E-Mail-Adresse des Kontakts.
Sekundäre Telefonnummer des Kontakts.
Berufsbezeichnung oder Rolle.
Aktueller Lead-Status für Qualifizierung, Routing oder Follow-up-Workflows.
Wie der Kontakt in deine Pipeline gelangt ist, zum Beispiel über ein Formular, eine Empfehlung oder eine hochgeladene Liste.
Zeitzone des Kontakts im IANA-Format, zum Beispiel America/Los_Angeles.
Bevorzugte Kontaktmethode des Kontakts.
Kennzeichnet den Kontakt als vom Wählvorgang in Kampagnen ausgeschlossen.
Freitextnotizen für Vertrieb, Support oder Qualifizierungskontext.
Workspace-spezifische strukturierte Daten, die für den Kontakt gespeichert werden. Verwende dieses Feld für Daten, die je nach Team oder Workflow variieren.
Zugehöriger Unternehmensdatensatz. Das Unternehmen muss zum selben Workspace gehören wie der Kontakt.
Kontakte erstellen
Erstelle Kontakte entweder einzeln im Dashboard oder programmgesteuert über die API. In beiden Fällen sind die mindestens erforderlichen Felder companyId, firstName, lastName und phone.
Einen Kontakt im Dashboard erstellen
Die Seite Kontakte öffnen
Gehe in deinem Workspace zur CRM-Seite Kontakte und beginne einen neuen Kontaktdatensatz.
Die erforderlichen Felder eingeben
Füge den Vornamen, den Nachnamen, die primäre Telefonnummer und das zugehörige Unternehmen des Kontakts hinzu. Wenn die Telefonnummer gültig ist, sollte sie im E.164-Format gespeichert werden und für Wählvorgang-Workflows bereit sein.
Optionalen Kontext hinzufügen
Fülle Lead-Status, Quelle, Zeitzone, Tags, Notizen und alle benutzerdefinierten Felder aus, die dein Team verwendet. Dieser Kontext steht Assistenten während Gesprächen und für Follow-up-Automatisierungen zur Verfügung.
Den Kontakt speichern
Speichere den Datensatz. Nach dem Speichern erscheint der Kontakt in der Kontaktliste und kann für Kampagnenanmeldung, Aktivitätsverfolgung und Opportunity-Workflows verwendet werden.
Einen Kontakt über die API erstellen
| Endpunkt | Methode | Zweck |
|---|---|---|
/api/crm/contacts | POST | Einen neuen Kontakt erstellen |
/api/crm/contacts | GET | Kontakte mit Filtern auflisten |
/api/crm/contacts/[id] | GET | Einen einzelnen Kontakt mit zugehörigen Aktivitäten abrufen |
/api/crm/contacts/[id] | PUT | Einen bestehenden Kontakt aktualisieren |
/api/crm/contacts/[id] | DELETE | Einen Kontakt löschen, falls zulässig |
Authentifiziere Kontakt-API-Anfragen entweder mit einer angemeldeten Sitzung oder einem API-Schlüssel.
Einen Kontakt bei der Erstellung in einer Kampagne anmelden
Du kannst einen Kontakt bei der Erstellung anmelden, indem du campaignId und campaignPriority in die Anfrage aufnimmst. Das ist nützlich, wenn importierte oder synchronisierte Kontakte sofort mit dem Wählvorgang beginnen sollen.
Kampagne, in die der Kontakt bei der Erstellung aufgenommen werden soll.
Wählpriorität für den Kontakt in dieser Kampagne. Höhere Werte werden früher gewählt.
Wenn der Kontakt als do not call markiert ist, erstellt die Kampagnenanmeldung keinen wählbaren Datensatz mit dem Status pending. Stattdessen setzt Talkturo den Kampagnenstatus auf skipped.
Kontakte aus CSV importieren
Verwende den CSV-Import, wenn du eine große Liste von Kontakten auf einmal hinzufügen musst. Der Importablauf unterstützt Spaltenzuordnung, Validierung und Deduplizierung, bevor Datensätze erstellt werden.
Die CSV-Datei vorbereiten
Füge eine Kopfzeile und mindestens die Spalten ein, die zum Zuordnen von firstName, lastName, phone und companyId oder eines anderen Felds benötigt werden, das dein Import-Workflow zur Identifizierung des Unternehmens verwendet. Formatiere Telefonnummern vor dem Upload einheitlich, um Validierungsfehler und doppelte Datensätze zu reduzieren.
Hochladen und Spalten zuordnen
Lade die CSV-Datei von der Seite Kontakte hoch und ordne jede CSV-Spalte dem richtigen Talkturo-Kontaktfeld zu. Ordne zusätzliche Spalten Feldern wie leadStatus, source, tags, notes oder den benutzerdefinierten Feldern deines Workspace zu.
Validierungsergebnisse prüfen
Talkturo validiert Feldformate und prüft während des Imports auf Duplikate. Erfolgreiche Zeilen sind bereit für den Import, während ungültige Zeilen korrigiert und erneut versucht werden können.
Den Import ausführen
Starte den Import, nachdem die Zuordnungen korrekt aussehen. Wenn der Import abgeschlossen ist, erscheinen die neuen Kontakte in der Liste und stehen für Filterung, Kampagnenanmeldung und Personalisierung durch Assistenten zur Verfügung.
Was der CSV-Import übernimmt
- Spaltenzuordnung zu standardmäßigen Talkturo-Kontaktfeldern
- Zuordnung benutzerdefinierter Felder für Workspace-spezifische Daten
- Validierung für erforderliche Felder und Telefonnummernformatierung
- Deduplizierung zur Reduzierung doppelter Kontakte
Kontakte suchen und filtern
Verwende Filter, um große Kontaktlisten einzugrenzen, bevor du Kontakte bearbeitest, exportierst oder in Kampagnen anmeldest.
| Filter | Typ | Verhalten |
|---|---|---|
teamId | Query-Parameter | Begrenzt Ergebnisse auf ein Team |
companyId | Query-Parameter | Begrenzt Ergebnisse auf ein Unternehmen |
search | Query-Parameter | Durchsucht Name, E-Mail und Telefonnummer mit Groß-/Kleinschreibung-unabhängiger Suche |
leadStatus | Query-Parameter | Filtert nach Lead-Status |
doNotCall | Query-Parameter | Filtert nach DNC-Flag |
hasPhone | Query-Parameter | Begrenzt Ergebnisse auf Kontakte mit Telefonnummer |
limit | Query-Parameter | Maximale Anzahl zurückgegebener Ergebnisse |
offset | Query-Parameter | Ergebnisversatz für Paginierung |
Die Suche verwendet Groß-/Kleinschreibung-unabhängige Übereinstimmung für Namens-, E-Mail- und Telefonnummernfelder. Die Paginierung verwendet limit und offset, wodurch sich inkrementelle Sync-Jobs leicht aufbauen oder große Ergebnismengen im Dashboard durchblättern lassen.
Bestehende Kontakte verwalten
Nachdem ein Kontakt existiert, kannst du den vollständigen Datensatz abrufen, CRM-Daten aktualisieren oder den Kontakt entfernen, sofern keine aktive Kampagne davon abhängt.
Kontakt-Endpunkte
| Endpunkt | Methode | Rückgabe |
|---|---|---|
/api/crm/contacts | GET | Paginierte Liste von Kontakten |
/api/crm/contacts/[id] | GET | Ein einzelner Kontakt mit zugehörigen Details |
/api/crm/contacts/[id] | PUT | Aktualisierter Kontaktdatensatz |
/api/crm/contacts/[id] | DELETE | Löschresultat oder blockierender Fehler |
Einen Kontaktdatensatz anzeigen
GET /api/crm/contacts/[id] gibt den Kontakt zusammen mit zugehörigem CRM-Kontext zurück. Verwende das, wenn du einen vollständigen Datensatz für Agent-Tools, interne Dashboards oder Synchronisierungslogik benötigst.
Die Detailansicht enthält zugehörige Aktivitäten, Opportunities und den Kampagnenverlauf. Dieser Verlauf hilft dir zu verstehen, was bei früheren Anrufen passiert ist und ob ein Kontakt bereits Teil einer laufenden Outreach-Maßnahme ist.
Einen Kontakt aktualisieren
Verwende PUT /api/crm/contacts/[id], um Standardfelder, benutzerdefinierte Felder, Tags, Lead-Status oder das do not call-Flag zu ändern.
Einen Kontakt löschen
Verwende DELETE /api/crm/contacts/[id], um einen Datensatz zu entfernen, der nicht mehr benötigt wird.
Talkturo blockiert das Löschen, wenn der Kontakt Teil einer aktiven Kampagne ist. Entferne den Kontakt aus aktiven Kampagnen-Workflows, bevor du es erneut versuchst.
Do not call-Verhalten
Setze doNotCall für jeden Kontakt, der niemals von Kampagnen gewählt werden soll. Dieses Flag wird auf mehreren Ebenen durchgesetzt, sodass ausgeschlossene Kontakte nicht über Importe, Aktualisierungen oder Kampagnenanmeldung erneut in Warteschlangen für den Wählvorgang gelangen.
Do not call-Kontakte sind vom Wählvorgang in Kampagnen ausgeschlossen. Wenn ein do not call-Kontakt in einer Kampagne angemeldet wird, setzt Talkturo den Kampagnenstatus auf skipped statt auf pending.
Der DNC-Status ist nützlich für Compliance, manuelle Unterdrückung und die Kontrolle der Lead-Qualität. Du kannst ihn in einzelnen Kontaktdatensätzen aktualisieren und per Filter prüfen, welche Kontakte aktuell unterdrückt sind.
Kampagnenanmeldung und Verlauf
Kontakte können Kampagnen beitreten, wenn du sie erstellst, oder später über die Seite für Kampagnenkontakte. Die Priorität steuert die Reihenfolge des Wählvorgangs, wobei höhere Werte früher gewählt werden.
Der Kampagnenverlauf erscheint in der Detailansicht des Kontakts. Nutze diesen Verlauf, um zu prüfen, ob ein Kontakt in die Warteschlange gestellt, übersprungen, kontaktiert oder von früherem Outreach verarbeitet wurde.
KI-Datenextraktion und Aktivitätsprotokollierung
Talkturo kann strukturierte Daten aus Anruftranskripten extrahieren und sie zurück in den Kontaktdatensatz schreiben. Dazu gehören Standard-CRM-Felder und customFields, sodass Assistenten Informationen erfassen können, ohne dass von Anfang an ein vollständig starres Schema erforderlich ist.
Jede extrahierte Aktualisierung ist mit einer CRM-Aktivität verknüpft. Kontaktdatensätze können protokollierte Anrufaktivitäten mit Aktivitätstyp, Betreff und Ergebnis enthalten, wodurch dein Team nachvollziehen kann, was passiert ist und warum Felder geändert wurden.
Ein vollständiger Kontaktdatensatz wird mit der Zeit wertvoller. Während Assistenten mehr Anrufe verarbeiten, bilden extrahierte Daten, Kampagnenverlauf und zugehörige Opportunities einen klareren Datensatz für Sales- und Support-Teams.