Brevo Datenexport und Migration: So bewegst du deine Daten rein oder raus

Exportiere Kontakte, Statistiken und Logs aus Brevo, erfahre genau, was nicht mitkommt, und folge einer Schritt-für-Schritt-Checkliste für die Migration in beide Richtungen.

Brevo data export
Brevo Datenexport und Migration?

Das Suchvolumen für Formulierungen wie „brevo data export migration to another platform” speist sich aus einer Sorge: dass die angesammelten Daten leichter hinein- als hinauszubekommen sind. Die ehrliche Antwort für Brevo lautet, dass das meiste sauber herauskommt, ein Teil in einer Form herauskommt, die du nachbauen musst, und ein kleiner, aber wichtiger Teil sich gar nicht bewegen lässt.

Dieser Leitfaden deckt beide Richtungen ab. Er listet genau auf, was exportiert wird und was nicht, welche API-Aufrufe für Konten taugen, die zu groß für die Oberfläche sind, und eine Migrations-Checkliste, die Sperrlisten und Versandreputation als erstklassige Themen behandelt statt als Nachgedanken.

Was du wirklich aus Brevo exportieren kannst

DatenWie sie herauskommenFormat
Kontakte und AttributeExport auf der Contacts-Seite oder POST /v3/contacts/exportCSV
ListenzugehörigkeitExport pro Liste oder das Metadatenfeld _listIdsCSV
Abo-StatusexportSubscriptionStatus im Export-JobCSV
KampagnenstatistikenExport des Kampagnenberichts oder GET /v3/emailCampaignsCSV, PDF, JSON
Transaktionale Ereignis-LogsGET /v3/smtp/statistics/events oder ein Bulk-Export-JobJSON, CSV
VorlagenGET /v3/smtp/templates liefert htmlContentJSON
Unternehmen und DealsExport von der jeweiligen CRM-SeiteCSV

Kontakte und Attribute

Der Weg in der Oberfläche ist CRM und dann Contacts. Um die gesamte Datenbank zu exportieren, darf keine Liste und kein Segment geladen sein und es dürfen keine Filter aktiv sein. Für eine einzelne Liste oder ein Segment klickst du zuerst auf „Load a list or segment” und wählst sie aus.

Danach wählst du aus, welche Standard- und eigenen Attribute mitgehen. EMAIL, das Datum der letzten Änderung und das Erstellungsdatum sind standardmäßig ausgewählt, den Rest fügst du selbst hinzu. Genau diesen Schritt vergessen die meisten. Wähle dein CSV-Feldtrennzeichen, Semikolon oder Komma, und aktiviere optional „Send export by email”, damit ein Downloadlink an die Adresse der Kontoinhaberin oder des Kontoinhabers geht. Klicke auf „Start export” und lade die Datei dann über die Benachrichtigungsglocke neben deinem Kontonamen herunter.

Listen und Segmente

Listen exportieren sich als Zugehörigkeit: Führe einen Export pro Liste aus oder nimm die Metadaten _listIds in einen einzigen Gesamtexport auf und teile die Datei danach auf. GET /v3/contacts/lists liefert dir Listennamen, IDs und Ordner-IDs, damit du die Struktur auf der anderen Seite nachbauen kannst.

Bei Segmenten sieht es anders aus, und hier klafft die erste echte Lücke. GET /v3/contacts/segments liefert nur id, segmentName, categoryName und updatedAt. Die Filterbedingungen, die ein Segment definieren, werden nicht offengelegt. Du kannst die Mitglieder eines Segments zu einem Zeitpunkt exportieren, aber die Regel dahinter musst du vom Bildschirm ablesen und im neuen Tool von Hand nachbauen. Mach von jedem Segment einen Screenshot, bevor du das Konto kündigst.

Kampagnenstatistiken

Aus einem Kampagnenbericht kannst du die Daten als CSV exportieren, und E-Mail- und SMS-Berichte bieten zusätzlich eine PDF-Version zum Teilen oder Drucken. Für einen vollständigen historischen Abzug akzeptiert GET /v3/emailCampaigns einen Parameter statistics mit den Werten globalStats, linksStats oder statsByDomain sowie ein Paar aus startDate und endDate über einen Zeitraum von bis zu zwei Jahren.

Transaktionale Logs

Zwei Wege, mit unterschiedlichen Zeitfenstern.

GET /v3/smtp/statistics/events liefert einzelne Ereignisse, gefiltert nach Typ (delivered, opened, clicks, hardBounces, spam, unsubscribed und weitere). Der Zeitraum darf 90 Tage nicht überschreiten und fällt auf die letzten 30 Tage zurück, wenn du weder Zeitraum noch den Parameter days übergibst.

Für Massen erzeugt POST /v3/webhooks/export einen Export-Job über die rohen Ereignisse der letzten 7 Tage, gedeckelt auf 20 Export-Jobs pro 7-Tage-Zeitraum. Er gibt eine processId zurück, ruft deine Notify-URL auf, wenn er fertig ist, und liefert CSV mit Spalten wie date, email, event, message-id, reason, sending_ip, subject, tag und template_id. Große Volumen kommen als komprimiertes Archiv mehrerer CSV-Dateien.

Die praktische Folge: Wenn du mehr als 90 Tage transaktionale Historie willst, hättest du sie die ganze Zeit planmäßig exportieren müssen. Richte diesen Job jetzt ein, nicht in der Woche, in der du dich zum Wechsel entscheidest.

Was nicht mitkommt

Diesen Teil überspringen die meisten Migrationsleitfäden.

  • Strukturen von Automations-Workflows. Die API kann Automationen über Ereignisse auslösen, aber es gibt keinen dokumentierten Endpunkt, der Verzweigungen, Verzögerungen und Bedingungen eines Workflows zurückliest. Jeder Workflow wird in der neuen Plattform manuell nachgebaut.
  • Filterdefinitionen von Segmenten. Wie oben: Abrufbar sind nur die Namen und die aktuellen Mitglieder.
  • Vollständige Interaktionshistorie pro Kontakt. Mit dem customContactFilter am Export-Endpunkt kannst du die Öffnenden, Klickenden, Nichtöffnenden, Abmeldenden, Hard Bounces oder Soft Bounces einer bestimmten Kampagne exportieren. Was du nicht ziehen kannst, ist eine saubere Einzeldatei mit „jedem Öffnen und Klick, den dieser Kontakt je gemacht hat”, weil die rohen Ereignis-Endpunkte auf 90 Tage begrenzt sind.
  • Rendering-Treue der Vorlagen. htmlContent exportiert sauber, aber Drag-and-drop-Blöcke, Merge-Tag-Syntax und Platzhalter für Abmeldelinks sind plattformspezifisch. Das exportierte HTML ist ein Ausgangspunkt, keine fertige Vorlage. Plane Zeit ein, um jede Vorlage im neuen Editor erneut zu testen.
  • Reputation für die Zustellbarkeit. Absenderreputation lebt auf den sendenden IPs und der authentifizierten Domain. Neue Plattform, neuer IP-Pool, neues Warm-up. Dieselbe Domain und dieselbe DKIM-Konfiguration erhalten die Domain-Seite der Reputation, was wirklich hilft, aber die IP-Seite kommt nicht mit.
  • IDs von Formularen, Landingpages und Tracking. Anmeldeformulare, Landingpages und das Tracking-Skript haben alle plattformspezifische IDs. Alles, was auf deiner Website eingebettet ist, muss ausgetauscht werden, und jede Analytik, die an diesen IDs hängt, bricht beim Umschalten.

Skriptgesteuerter Export für große Konten

Ab etwa 100.000 Kontakten wird der Export über die Oberfläche langsam und sperrig, und du willst ohnehin einen wiederholbaren Job. Der Endpunkt für den Kontaktexport ist asynchron: Er nimmt einen Filter entgegen, gibt eine Prozess-ID zurück und übergibt dir am Ende eine CSV.

Terminal window
curl --request POST \
--url https://api.brevo.com/v3/contacts/export \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'api-key: YOUR_API_KEY' \
--data '{
"customContactFilter": { "actionForContacts": "allContacts" },
"exportMandatoryAttributes": true,
"exportAttributes": ["FIRSTNAME", "LASTNAME", "SMS", "COUNTRY"],
"exportMetadata": ["_listIds", "ADDED_TIME", "MODIFIED_TIME"],
"exportSubscriptionStatus": ["email_marketing", "sms_marketing"],
"exportDateInUTC": true,
"notifyUrl": "https://example.com/hooks/brevo-export"
}'

Ein erfolgreicher Aufruf liefert HTTP 202 und einen Body mit einer processId. exportMandatoryAttributes steht standardmäßig auf true und deckt EMAIL, ADDED_TIME und MODIFIED_TIME ab, in exportAttributes benennst du also deine eigenen Felder. exportSubscriptionStatus zu setzen ist das, was den Marketing-Opt-in-Status für E-Mail und SMS in die Datei bringt, und es wegzulassen ist der mit Abstand häufigste Weg, einen Export zu erzeugen, der für eine rechtskonforme Migration wertlos ist.

Wenn du lieber durch Datensätze blätterst, statt auf einen Job zu warten: GET /v3/contacts akzeptiert limit bis 1000 mit einem offset, dazu modifiedSince und createdSince für inkrementelle Abzüge. Jeder Kontakt kommt mit emailBlacklisted, smsBlacklisted, listIds, listUnsubscribed und consentGroups zurück, also mit allem, was du brauchst, um den Einwilligungsstatus zu rekonstruieren.

Behalte die Rate Limits im Blick, während du das skriptest. Kontakt-Endpunkte erlauben in Standardtarifen 36.000 Anfragen pro Stunde und 10 pro Sekunde, in Professional und Enterprise doppelt so viel, während die meisten anderen Endpunkte bei 100 Anfragen pro Stunde liegen. Eine Million Kontakte mit 1000 pro Seite zu blättern sind 1000 Anfragen, bequem innerhalb des Kontaktbudgets. Kampagnen- oder Vorlagen-Endpunkte in einer Schleife zu hämmern ist es nicht.

Warum deine Sperrliste zuerst migrieren muss

Bewege die Abmeldungen, bevor du irgendetwas anderes bewegst.

Das rechtliche Argument ist einfach. Ein Kontakt, der sich abgemeldet hat, hat deiner Marke gegenüber die Einwilligung widerrufen. Dieser Widerruf setzt sich nicht zurück, weil du den Anbieter gewechselt hast. Nach GDPR ist der Nachweis der Einwilligung und ihres Widerrufs deine Pflicht als Verantwortliche:r, und nach CAN-SPAM muss ein Opt-out innerhalb von zehn Werktagen umgesetzt werden und gilt danach unbefristet. Die Liste bei einer Migration zu verlieren ist kein technisches Missgeschick, sondern ein Compliance-Verstoß mit einer Papierspur, die auf dich zeigt.

Das Argument zur Zustellbarkeit wiegt in der Praxis noch schwerer. Gesperrte Adressen sind überproportional Menschen, die sich beschwert haben, hart gebounct sind oder aktiv rauswollten. Sie von einer brandneuen IP ohne Reputation anzuschreiben ist der bekannteste schnellste Weg, ein frisches Versand-Setup in der ersten Woche gedrosselt oder blockiert zu bekommen. Ein paar Tausend recycelte Spam-Traps und Beschwerdeführende machen einen Monat sorgfältiges Warm-up zunichte.

Exportiere die gesperrten Kohorten also ausdrücklich, statt zu hoffen, dass sie mitgemeint sind. Am Export-Endpunkt akzeptiert actionForContacts den Wert unsubscribed für auf beliebigem Weg gesperrte Kontakte und unsubscribedPerList für Kontakte, die sich aus einer bestimmten Liste abgemeldet haben. Mach einen separaten Durchlauf für hardBounces pro Kampagne. Auf dem Weg in eine neue Plattform importierst du diese Datei in deren Sperrliste, nicht in eine anschreibbare Liste.

Brevo beherrscht auch den umgekehrten Fall: Der Import einer Liste gesperrter Kontakte wird unterstützt, und die Import-API nimmt die Booleans emailBlacklist und smsBlacklist entgegen, sodass eine importierte Datei als gesperrt landet. Beachte die Asymmetrie, die Brevo zu Recht erzwingt: Kontakte lassen sich nicht in Massen entsperren, denn jemanden massenhaft wieder anzumelden, der in Ruhe gelassen werden wollte, wäre rechtswidrig. Sperren ist leicht hinzuzufügen und bewusst schwer zu entfernen. Behandle das als richtiges Verhalten, nicht als Hindernis.

Migrations-Checkliste, raus aus Brevo

  1. Bestandsaufnahme. Zähle Kontakte, Listen, Segmente, aktive Automationen, Vorlagen und Integrationen. Schreib auf, welche Integrationen in Brevo hineinschreiben, denn das sind die Leitungen, die du umlegen musst.
  2. Exportieren. Kontakte mit allen Attributen plus Abo-Status, eine Datei pro Liste oder eine einzige Datei mit _listIds, gesperrte Kohorten als eigene Dateien, Kampagnenstatistiken, transaktionale Ereignisse so weit zurück, wie das 90-Tage-Fenster reicht, und Vorlagen-HTML.
  3. Archiviere, was verfällt. Alles Zeitgebundene (rohe Ereignisse, Logs) ist weg, sobald das Fenster weiterrollt. Leg es jetzt in deinem eigenen Warehouse oder Objektspeicher ab.
  4. Bereinigen und zuordnen. Dedupliziere, normalisiere Datums- und Telefonformate und schreibe eine explizite Zuordnung von Spalte zu Feld für die neue Plattform. Das ist auch der natürliche Moment, um Adressen zu entfernen, die seit einem Jahr nicht reagiert haben, was billiger ist, als totes Gewicht warmzulaufen. Unser Leitfaden zur Bereinigung von E-Mail-Listen nennt die Schwellenwerte.
  5. Sperrliste zuerst laden. Importiere Abmeldungen und Hard Bounces in die Sperrliste der neuen Plattform, prüfe, ob die Zahlen zu deinem Export passen, und lade erst danach anschreibbare Kontakte.
  6. Warm-up. Starte mit deinem engagiertesten Segment, steigere das Volumen schrittweise und beobachte Bounce- und Beschwerderaten täglich. Unser Leitfaden zur E-Mail-Zustellbarkeit beschreibt die Abfolge im Detail.
  7. Parallel betreiben. Lass Brevo live und deine kritische transaktionale Post verschicken, während die neue Plattform einen wachsenden Anteil der Marketing-Sendungen übernimmt. Schalte nicht beides gleichzeitig um.
  8. Verifizieren. Gleiche die Kontaktzahlen ab, prüfe zwanzig Kontakte Feld für Feld stichprobenartig, bestätige mit einem Testversand, dass gesperrte Kontakte wirklich gesperrt sind, und vergleiche eine Woche Versandvolumen mit der alten Plattform.
  9. Umschalten und Rollback behalten. Ändere DNS und Integrations-Endpunkte in einem Zeitfenster, in dem jemand zuschaut. Halte das Brevo-Konto nach dem Umschalten mindestens einen vollen Abrechnungszyklus lang aktiv und bezahlt, mit den exportierten Dateien außerhalb beider Plattformen gespeichert. Das, und kein Anbieterversprechen, ist dein tatsächlicher Rollback-Plan.

Migration nach Brevo von einer anderen Plattform

Dieselbe Checkliste läuft rückwärts, mit drei Brevo-spezifischen Anmerkungen.

Hol dir einen echten Export vom bisherigen Anbieter. Die meisten Plattformen geben dir Kontakte und ihre eigenen Felder als CSV. Frage ausdrücklich nach der Sperrliste und der Bounce-Liste, die häufig in einem separaten Export stecken, den man zu bestellen vergisst. Wenn du von einem Preismodell pro Kontakt kommst, vergleiche mit unserem Brevo-Preisleitfaden, was du auf dem Weg hinein tatsächlich zahlen wirst.

Ordne Felder zu, bevor du hochlädst. Brevo-Attribute haben Typen (Text, Zahl, Datum, Boolean, Kategorie), und ein Datum, das in einem Textattribut landet, lässt sich später nicht filtern. Lege die Attribute erst mit den richtigen Typen an, dann importiere.

Importiere Größeres über die API. POST /v3/contacts/import akzeptiert Inline-CSV in fileBody, ein JSON-Array in jsonBody, beide bei rund 10 MB gedeckelt, oder eine entfernte Datei über fileUrl, dazu listIds oder ein newList-Objekt. updateExistingContacts steht standardmäßig auf true und gleicht über die E-Mail-Adresse ab. Führe einen Import mit emailBlacklist auf true für deine Sperrdatei aus, danach einen zweiten für die anschreibbaren Kontakte. Die vollständigen, funktionierenden Skripte stehen in unserem Leitfaden zum Import von CSV-Kontakten nach Brevo per Skript.

Danach baust du nach, was nicht mitkam: Automationen, Segmente, Formulare und Vorlagen. Schicke einen Seed-Test an eine Handvoll Postfachanbieter, bevor du an echte Menschen sendest.

Lass die nächste Migration keine Klippe werden

Eine Plattformmigration fühlt sich deshalb wie eine Klippe an, weil die Plattform zum System of Record geworden ist. Bestellhistorie, Abonnentenstatus und Kampagnenergebnisse leben in einem Anbieter, und sie zu bewegen heißt Evakuierung.

Die Alternative ist, deine eigene Quelle der Wahrheit zu behalten und die Versandplattform zum Ziel statt zum Tresor zu machen. Wenn deine Shopdaten, dein Einwilligungsstatus und deine Interaktionsereignisse fortlaufend in deine eigenen Systeme synchronisiert werden, ist ein Wechsel oder ein zusätzlicher Kanal eine Konfigurationsänderung statt eines Projekts. Genau das ist die Aufgabe, die Tajo zwischen Brevo und dem Stack eines Händlers erledigt: die Daten in beide Richtungen fließen lassen, damit die Plattform nie die einzige Kopie ist.

So oder so lohnt es sich, die oben beschriebenen Export-Jobs schon jetzt planmäßig laufen zu lassen, ganz gleich, ob du gehen willst oder nicht. Die günstigste Migration ist die, bei der die Daten schon außerhalb der Plattform liegen, wenn du dich entscheidest.

Häufig gestellte Fragen

Kann ich alle meine Daten aus Brevo exportieren?
Du kannst Kontakte und ihre Attribute als CSV exportieren, Kampagnenberichte als CSV oder PDF, transaktionale Ereignis-Logs als CSV und Vorlagen-HTML über die API. Für Automations-Workflows und die Filterdefinitionen von Segmenten gibt es keinen Exportweg, die baust du von Hand nach.
Wie exportiere ich Kontakte aus Brevo?
Gehe zu CRM und dann zu Contacts. Für einen Export von allem darf keine Liste, kein Segment und kein Filter geladen sein. Für eine einzelne Liste oder ein Segment klickst du zuerst auf Load a list or segment. Wähle die gewünschten Attribute, entscheide dich für Komma oder Semikolon als Trennzeichen, klicke auf Start export und lade die Datei über die Benachrichtigungsglocke herunter.
In welchem Format exportiert Brevo Kontakte?
Als CSV. Du wählst das Feldtrennzeichen, entweder Semikolon oder Komma. Auch der Export-Endpunkt der API liefert eine CSV-Datei, und transaktionale Ereignisexporte kommen als CSV, bei großem Volumen als Archiv aus mehreren CSV-Dateien.
Kommt meine Interaktionshistorie mit, wenn ich Brevo verlasse?
Nur teilweise. Statistiken auf Kampagnenebene lassen sich als Berichte exportieren, und du kannst die Öffnenden, Klickenden, Bounces oder Abmeldungen einer bestimmten Kampagne ausgeben. Rohe transaktionale Ereignis-Logs sind über den Ereignisbericht auf 90 Tage begrenzt und über den Bulk-Export-Job auf 7 Tage. Eine langfristige Historie pro Kontakt musst du also archivieren, bevor du gehst.
Muss ich meine Abmeldeliste mitnehmen?
Ja. Kontakte, die deine Mails abbestellt haben, haben das bei dir getan, nicht bei Brevo. Die Sperrpflicht folgt also deiner Marke auf die neue Plattform. Sie erneut anzuschreiben ist sowohl ein rechtliches Risiko nach GDPR und CAN-SPAM als auch der schnellste Weg zu Spam-Beschwerden auf einer frischen Versanddomain.
Kann ich meine Absenderreputation beim Plattformwechsel mitnehmen?
Nein. Reputation hängt an den sendenden IPs und der authentifizierten Domain, nicht an deinem Konto. Nutzt die neue Plattform andere IPs, startest du ein frisches Warm-up. Dieselbe Domain und derselbe DKIM-Selektor erhalten die Domain-Reputation, was hilft, aber geteilte IP-Pools setzen die IP-Seite komplett zurück.
Wie lange dauert eine Brevo-Migration?
Export und Import selbst dauern für Konten unter einigen hunderttausend Kontakten meist weniger als einen Tag. Realistisch sind zwei bis sechs Wochen, denn so lange brauchen ein Versand-Warm-up und ein Parallelbetrieb deiner wichtigsten Automationen, bevor du gefahrlos umschalten kannst.
Gibt es eine API für den Export von Brevo-Kontakten?
Ja. POST /v3/contacts/export startet einen asynchronen Job, gibt eine processId zurück und liefert eine CSV. Alternativ blätterst du mit GET /v3/contacts durch bis zu 1000 Datensätze pro Anfrage, was sich leichter skripten lässt, bei sehr großen Datenbanken aber langsamer ist.
Kann ich meine Sperrliste in Brevo importieren?
Ja. Brevo unterstützt den Import einer Liste gesperrter Kontakte, und die Import-API akzeptiert die Flags emailBlacklist und smsBlacklist, sodass eine importierte Datei als gesperrt landet statt als anschreibbar. Mach das, bevor du deine anschreibbaren Kontakte importierst.

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und eine E-Mail-Adresse oder Telefonnummer an. Wir melden uns mit den Details zum Tajo-Zugang bei dir.

automatische Erkennung
Brevo erhalten