Sign inGet started

Kontakte

Verwalten Sie Kontakte im Dashboard unter Contacts > All contacts, im Terminal mit bird contacts, über die Kontakte-API oder mit einem der SDKs.

Kontakte erreichen

Um einer Person eine E-Mail zu senden, verwenden Sie ihre Adresse mit der Versand-API. Der Kontaktdatensatz speichert ihre Informationen zur späteren Wiederverwendung. Um viele Personen gleichzeitig zu erreichen, senden Sie einen Batch oder fassen Sie sie in einer Zielgruppe zusammen und senden Sie einen Broadcast. Das Speichern eines Kontakts allein löst keinen Versand aus.

Die Seite Contacts

Die Seite Contacts zeigt Namen, Kennungen, Zielgruppenmitgliedschaften und Erstellungsinformationen des Kontakts. Suchen Sie nach Namen, E-Mail-Adresse oder Telefonnummer und wählen Sie eine Zeile aus, um den Kontakt zu öffnen. Über die Aktionen im Kopfbereich können Sie einen Kontakt hinzufügen oder mehrere importieren. Zum Anzeigen benötigen Sie die Leseberechtigung für email_marketing. Zum Hinzufügen, Bearbeiten und Löschen ist die Schreibberechtigung erforderlich.
Die Seite Contacts im Dashboard mit gespeicherten Kontakten nach E-Mail-Adresse, Name, externer ID und Erstellungsdatum sowie einer Suche und den Schaltflächen Properties, Import und Add contact

Welche Daten ein Kontakt enthält

Jeder Kontakt hat eine E-Mail-Adresse, eine Telefonnummer oder beides. Jede Kennung ist in Ihrem Workspace eindeutig. Optional können Sie einen Namen und eine eigene Kennung hinterlegen:
FeldBedeutung
emailDie Adresse ist in Ihrem Workspace eindeutig. Wir entfernen Leerzeichen am Anfang und Ende und speichern sie in Kleinbuchstaben. So werden Sam@Acme.com und sam@acme.com auf dieselbe Kennung normalisiert.
phone_numberDie Telefonnummer ist in Ihrem Workspace eindeutig. Die Formatierung wird in die internationale Form normalisiert. Beim Speichern werden weder Nummerierungsplan-Metadaten noch Inhaberschaft, Erreichbarkeit oder Einwilligung überprüft.
first_nameOptionaler Vorname, der zur Personalisierung einer Sendung verwendet wird.
last_nameOptionaler Nachname.
external_idOptional. Ihr eigener Primärschlüssel für die Person, etwa eine Benutzer-ID aus Ihrer Datenbank. Wenn gesetzt, ist er in Ihrem Workspace eindeutig. Damit ordnen Sie einen Kontakt Ihren eigenen Datensätzen zu, ohne von der E-Mail-Adresse abhängig zu sein.
dataWerte benutzerdefinierter Eigenschaften, einer pro registrierter Kontakteigenschaft.
Das Dashboard leitet die Labels Email und SMS aus den vorhandenen Kennungen ab. Die API gibt email und phone_number zurück, jedoch kein Feld channels. Diese Labels belegen weder eine Versandberechtigung noch die Erreichbarkeit über den Kanal.
Jeder Kontakt hat außerdem eine ID mit dem Präfix con_ sowie Zeitstempel für Erstellung und Aktualisierung. Die vollständige Feldspezifikation finden Sie in der API-Referenz.

Kontakteigenschaften

Kontakteigenschaften bilden das typisierte Schema für die benutzerdefinierten Felder eines Kontakts. Registrieren Sie eine Eigenschaft für Ihren Workspace. Danach kann jeder Kontakt unter data einen Wert dafür haben. Das vorab deklarierte Schema macht Personalisierung und Segmentierung zuverlässig: Ein Wert hat immer den deklarierten Typ, auf den sich ein Template oder Filter verlassen kann.
Die Seite Contact properties im Dashboard mit sechs Eigenschaften und ihren Schlüsseln, Typen, Ersatzwerten und Erstellungsdaten; eine Eigenschaft trägt das Label Archived
Verwalten Sie sie unter Contacts > Contact properties. Jede Eigenschaft hat einen Schlüssel, einen Typ und einen optionalen Ersatzwert:
  • Der Schlüssel ist der Name, unter dem Sie den Wert referenzieren, zum Beispiel plan_tier. Er muss kleingeschrieben sein und mit einem Buchstaben beginnen (^[a-z][a-z0-9_]*$). Nach dem Erstellen lässt er sich nicht mehr ändern.
  • Der Typ ist string, number, boolean oder datetime und lässt sich nach dem Erstellen ebenfalls nicht ändern. Ein Wert vom Typ datetime akzeptiert einen RFC-3339-Zeitstempel mit explizitem Offset, etwa 2026-01-15T11:30:00+02:00. Wir normalisieren ihn sekundengenau auf UTC, sodass dieser Wert als 2026-01-15T09:30:00Z gespeichert und zurückgegeben wird. Ein Datum ohne Uhrzeit wird abgelehnt. Das Dashboard bezeichnet diese Typen als Text, Number, True / false und Date & time.
  • Der Ersatzwert wird für einen Kontakt ohne eigenen Wert gelesen. Ein fehlender Wert für plan_tier kann so als free statt als leeres Feld erscheinen.
Eigenschaften werden archiviert statt gelöscht. Die Archivierung verhindert neue Schreibvorgänge auf den Schlüssel, erhält aber alle bereits gespeicherten Werte. Der Schlüssel bleibt reserviert und kann daher nie mit einem anderen Typ wiederverwendet werden. Heben Sie die Archivierung auf, um die Eigenschaft wieder zu nutzen. Diese Reservierung ist auch der Grund, warum der Typ unveränderlich ist: Ein gespeicherter Wert vom Typ number darf niemals plötzlich als string gelesen werden. Pro Workspace lassen sich bis zu 200 Eigenschaften registrieren. Archivierte Eigenschaften zählen mit, weil ihre Schlüssel weiterhin reserviert sind.
Legen Sie Eigenschaftswerte dort fest, wo Sie einen Kontakt bearbeiten. Das Kontaktformular im Dashboard zeigt pro aktiver Eigenschaft ein typisiertes Eingabefeld. Die CLI und die API akzeptieren dieselben Schlüssel unter data.

Kontakte importieren und synchronisieren

Um auf der Seite Contacts eine Liste zu importieren, wählen Sie Import und laden Sie eine CSV-, TSV- oder Excel-Datei hoch. Verwenden Sie eine Zeile pro Kontakt und eine Kopfzeile mit den Spaltennamen. Eine Datei darf bis zu 50.000 Kontakte enthalten. CSV-Dateien dürfen bis zu 50 MB, Tabellendateien bis zu 10 MB groß sein.
Die Kopfzeile hilft dabei, die Kontaktfelder zu erkennen. Spalten mit den Namen "Email Address", "E-Mail" oder "Correo electrónico" werden alle dem E-Mail-Feld zugeordnet. Eine einzelne Spalte mit einem vollständigen Namen wird in Vor- und Nachnamen aufgeteilt. Wenn zwei Spalten dasselbe Feld ausfüllen könnten, wird diejenige gewählt, deren Werte zu ihrem Namen passen. Jede Spalte zeigt einige Beispielwerte, damit Sie ihren Inhalt erkennen. Bei aufgeteilten Namen wird der ursprüngliche Wert zum Vergleich angezeigt. Über das Dropdown-Menü jeder Spalte können Sie die Zuordnung ändern. Alle Personen in der Datei können beim selben Import zu einer oder mehreren Zielgruppen hinzugefügt werden.
Jede Zeile wird anhand ihrer Kennungen einem bestehenden Kontakt zugeordnet und aktualisiert oder als neuer Kontakt angelegt. Ein erneuter Import derselben Datei führt somit einen Upsert durch und erzeugt keine Duplikate. Bevor etwas gespeichert wird, zeigt das Dashboard an, wie viele der anfänglich geprüften Zeilen mit der aktuellen Zuordnung nicht importiert werden können. Nach dem Durchlauf werden für jede übersprungene Zeile die ursprüngliche Zeilennummer und der Fehler angezeigt.
Für die Synchronisierung aus Ihrer eigenen Datenbank steuern Sie die CLI per Skript oder rufen Sie den Batch-Endpunkt auf. bird contacts create <email> fügt einen Kontakt hinzu. bird contacts batch erstellt oder aktualisiert bis zu 1.000 Kontakte mit einem Aufruf. Verwenden Sie einen Batch pro Durchlauf statt einer Anfrage pro Person, um Ihre Kontaktliste mit Ihrem System synchron zu halten.
const contact = await bird.contacts.create({
  email: "jane@acme.com",
  first_name: "Jane",
});
console.log(contact.id); // "con_…"
Jeder Batch-Eintrag wird automatisch anhand der übergebenen Kennungen abgeglichen: E-Mail-Adresse, Telefonnummer oder externe ID. Das optionale Feld match_on erzwingt stattdessen den Abgleich über genau eine dieser Kennungen. Ein Eintrag kann auch benutzerdefinierte Eigenschaftswerte setzen. Über audience_ids können alle Kontakte der Anfrage direkt zu Zielgruppen hinzugefügt werden. Jeder Eintrag ist unabhängig erfolgreich oder schlägt fehl. Die Antwort enthält ein Ergebnis pro Eintrag in der Reihenfolge der Übermittlung:
Codebeispiel
{
  "data": [
    {
      "contact_id": "con_01ky7q5t51echr7mqj5c08423b",
      "entry": { "email": "alex@example.com", "phone_number": null, "external_id": null },
      "matched_on": "email",
      "status": "updated"
    },
    {
      "contact_id": "con_01ky7q6mxdfhe86c9dqyt866pz",
      "entry": { "email": "jamie@example.com", "phone_number": null, "external_id": null },
      "matched_on": null,
      "status": "created"
    },
    {
      "contact_id": "con_01ky7q7rv9e9pt4vkr0w0gxq5e",
      "entry": { "email": "casey@example.com", "phone_number": null, "external_id": "user_2214" },
      "matched_on": "external_id",
      "status": "updated"
    }
  ]
}
Wenn die Kennungen eines Eintrags auf unterschiedliche bestehende Kontakte verweisen, schlägt der Eintrag mit einem zu prüfenden Konflikt fehl. Bereinigen Sie den Quelldatensatz, bevor Sie es erneut versuchen. Der Batch führt diese Kontakte nicht zusammen.
Zwei Standardverhaltensweisen sind für die Synchronisierung hilfreich. Ein Batch führt die Schlüssel unter data mit den bestehenden Kontaktdaten zusammen. Ein Import, der ein Attribut betrifft, löscht daher keine anderen. Senden Sie den Wert null, um einen Schlüssel zu leeren, oder setzen Sie data_mode: "replace", um die gesamte Zuordnung zu überschreiben. Setzen Sie bei jedem Kontakt Ihre eigene external_id, damit eine spätere Synchronisierung dieselbe Person auch nach einer Änderung der E-Mail-Adresse findet. Im Batch-Beispiel existiert user_2214 bereits. Der Eintrag wird daher diesem Kontakt zugeordnet und aktualisiert dessen E-Mail-Adresse.

Einen Kontakt löschen

Das Löschen eines Kontakts ist endgültig: Der Datensatz und seine Zielgruppenmitgliedschaften werden entfernt und lassen sich nicht wiederherstellen. Unterdrückungen und Präferenzen bleiben jedoch unverändert. Eine Adresse mit einem Hard Bounce bleibt nach dem Löschen des Kontakts auf Ihrer Unterdrückungsliste. Eine abgemeldete Adresse behält ihre Opt-out-Präferenz. Durch das Löschen wird eine Person somit niemals unbemerkt wieder anschreibbar.

Nächste Schritte

  • Zielgruppen: Kontakte in wiederverwendbaren Listen zusammenfassen
  • Unterdrückungen: die von Ihren Kontakten getrennte Liste der Adressen im Workspace, an die wir nicht zustellen
  • Batch-Versand: viele Empfänger mit einem Aufruf erreichen, bis zu 100 Nachrichten pro Anfrage
  • CLI: Kontakte, Eigenschaften und Zielgruppen mit dem Befehl bird per Skript verwalten
  • API-Referenz: vollständige Anfrage- und Antwortschemas