Dataexport och migrering i Brevo: så flyttar du dina data in eller ut
Exportera kontakter, statistik och loggar från Brevo, lär dig exakt vad som inte följer med, och följ en checklista steg för steg för migrering åt båda hållen.
Sökvolymen för fraser som “brevo data export migration to another platform” drivs av en enda oro: att de data du samlat på dig är lättare att lägga in än att få ut. Det ärliga svaret för Brevo är att det mesta kommer ut rent, en del kommer ut i en form du får bygga om, och en liten men viktig del inte kan flyttas alls.
Den här guiden täcker båda riktningarna. Den listar exakt vad som exporteras, vad som inte gör det, API-anropen för konton som är för stora för gränssnittet, och en migreringschecklista som behandlar spärrlistor och avsändarrykte som förstahandsfrågor snarare än eftertankar.
Vad du faktiskt kan exportera från Brevo
| Data | Hur det kommer ut | Format |
|---|---|---|
| Kontakter och attribut | Export från kontaktsidan, eller POST /v3/contacts/export | CSV |
| Listmedlemskap | Export per lista, eller metadatafältet _listIds | CSV |
| Prenumerationsstatus | exportSubscriptionStatus i exportjobbet | CSV |
| Kampanjstatistik | Export av kampanjrapport, eller GET /v3/emailCampaigns | CSV, PDF, JSON |
| Transaktionella händelseloggar | GET /v3/smtp/statistics/events eller ett massexportjobb | JSON, CSV |
| Mallar | GET /v3/smtp/templates returnerar htmlContent | JSON |
| Företag och affärer | Export från respektive CRM-sida | CSV |
Kontakter och attribut
Vägen i gränssnittet är CRM och sedan Contacts. För att exportera hela databasen ska ingen lista och inget segment vara inläst och inga filter tillämpade. För att exportera en enskild lista eller ett segment klickar du på “Load a list or segment” och väljer det först.
Sedan väljer du vilka standardattribut och egna attribut som ska ingå. EMAIL, datum för senaste ändring och skapandedatum är förvalda, och resten lägger du till själv, vilket är steget folk oftast missar. Välj fältavgränsare för din CSV, semikolon eller komma, och slå eventuellt på “Send export by email” så att en nedladdningslänk går till kontoägarens adress. Klicka på “Start export” och ladda sedan ner filen från notisklockan bredvid ditt kontonamn.
Listor och segment
Listor exporteras som medlemskap: kör en export per lista, eller inkludera metadatat _listIds i en enda fullständig export och dela upp filen efteråt. GET /v3/contacts/lists ger dig listnamn, id:n och mapp-id:n så att du kan återskapa strukturen på andra sidan.
Segment är annorlunda, och här kommer den första verkliga luckan. GET /v3/contacts/segments returnerar bara id, segmentName, categoryName och updatedAt. Filtervillkoren som definierar ett segment exponeras inte. Du kan exportera medlemmarna i ett segment vid en viss tidpunkt, men regeln som skapade dem måste läsas av från skärmen och byggas om för hand i det nya verktyget. Ta skärmbild på varje segment innan du säger upp kontot.
Kampanjstatistik
Från en kampanjrapport kan du exportera data som CSV, och rapporter för e-post och SMS erbjuder även en PDF-version för att dela eller skriva ut. För en fullständig historisk hämtning tar GET /v3/emailCampaigns emot en statistics-parameter med värdena globalStats, linksStats eller statsByDomain, plus ett par av startDate och endDate som täcker upp till två år.
Transaktionella loggar
Två vägar, med olika fönster.
GET /v3/smtp/statistics/events returnerar enskilda händelser filtrerade på typ (delivered, opened, clicks, hardBounces, spam, unsubscribed och fler). Datumintervallet får inte överstiga 90 dagar, och det faller tillbaka på de senaste 30 dagarna om du varken anger ett intervall eller parametern days.
För massuttag skapar POST /v3/webhooks/export ett exportjobb över de senaste 7 dagarnas råa händelser, begränsat till 20 exportjobb per sjudagarsperiod. Det returnerar ett processId, anropar din notifierings-URL när det är klart, och levererar CSV med kolumner som date, email, event, message-id, reason, sending_ip, subject, tag och template_id. Stora volymer kommer som ett komprimerat arkiv med flera CSV-filer.
Den praktiska konsekvensen: om du vill ha mer än 90 dagars transaktionell historik behövde du ha exporterat den schemalagt hela tiden. Sätt upp det jobbet nu, inte den vecka du bestämmer dig för att lämna.
Vad som inte följer med dig
Det här är delen de flesta migreringsguider hoppar över.
- Strukturen i automatiserade flöden. API:et kan utlösa automatiseringar via händelser, men det finns ingen dokumenterad slutpunkt som läser tillbaka ett flödes grenar, fördröjningar och villkor. Varje flöde byggs om manuellt i den nya plattformen.
- Segmentens filterdefinitioner. Som ovan går bara namnen och de aktuella medlemmarna att hämta.
- Fullständig engagemangshistorik per kontakt. Du kan exportera de som öppnat, klickat, inte öppnat, avregistrerat sig, hårdstudsat eller mjukstudsat i en viss kampanj med
customContactFilterpå exportslutpunkten. Det du inte kan hämta är en enda prydlig fil med “varje öppning och klick den här kontakten någonsin gjort”, eftersom de råa händelseslutpunkterna är begränsade till 90 dagar. - Mallarnas renderingstrogenhet.
htmlContentexporteras rent, men dra-och-släpp-block, syntax för sammanfogningstaggar och platshållare för avregistreringslänkar är plattformsspecifika. HTML-koden du exporterar är en startpunkt, inte en färdig mall. Räkna med tid för att testa om varje mall i den nya editorn. - Rykte för leveransbarhet. Avsändarryktet lever på de avsändande IP-adresserna och den autentiserade domänen. Ny plattform, ny IP-pool, ny uppvärmning. Att behålla samma domän och DKIM-konfiguration bevarar domänsidan av ryktet, vilket verkligen hjälper, men det tar inte med IP-sidan.
- Identifierare för formulär, landningssidor och spårning. Registreringsformulär, landningssidor och spårningsskriptet har alla plattformsspecifika id:n. Allt som är inbäddat på din webbplats måste bytas ut, och all analys som är knuten till de id:na går sönder vid övergången.
Skriptad export för stora konton
Över ungefär 100 000 kontakter blir exporten i gränssnittet långsam och otymplig, och du vill ändå ha ett upprepbart jobb. Exportslutpunkten för kontakter är asynkron: den tar emot ett filter, returnerar ett process-id och ger dig en CSV när den är klar.
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" }'Ett lyckat anrop svarar HTTP 202 med en kropp som innehåller ett processId. exportMandatoryAttributes är sant som standard och täcker EMAIL, ADDED_TIME och MODIFIED_TIME, så exportAttributes är där du namnger dina egna fält. Att sätta exportSubscriptionStatus är det som lägger in samtyckesstatus för e-post och SMS i filen, och att utelämna det är det absolut vanligaste sättet att skapa en export som är oanvändbar för en regelrätt migrering.
Om du hellre bläddrar igenom poster än väntar på ett jobb tar GET /v3/contacts emot limit upp till 1000 med en offset, plus modifiedSince och createdSince för inkrementella hämtningar. Varje kontakt kommer tillbaka med emailBlacklisted, smsBlacklisted, listIds, listUnsubscribed och consentGroups, vilket är allt du behöver för att rekonstruera samtyckesläget.
Håll koll på hastighetsgränserna medan du skriptar detta. Kontaktslutpunkterna tillåter 36 000 anrop per timme och 10 per sekund på standardplaner, dubbelt så mycket på Professional och Enterprise, medan de flesta andra slutpunkter ligger på 100 anrop per timme. Att bläddra igenom en miljon kontakter med 1000 per sida är 1000 anrop, bekvämt inom kontaktbudgeten, men att hamra på kampanj- eller mallslutpunkter i en loop är det inte.
Varför din spärrlista måste migreras först
Flytta avregistreringarna innan du flyttar något annat.
Det juridiska argumentet är enkelt. En kontakt som avregistrerade sig drog tillbaka sitt samtycke från ditt varumärke. Det tillbakadragandet nollställs inte för att du bytte leverantör. Enligt GDPR är dokumentationen av samtycke och dess återkallande din skyldighet som personuppgiftsansvarig, och enligt CAN-SPAM måste en avregistrering respekteras inom tio arbetsdagar och gäller sedan för alltid. Att tappa listan i en migrering är inte en teknisk olycka, det är ett regelbrott med ett papperspår som pekar på dig.
Argumentet om leveransbarhet är värre i praktiken. Spärrade adresser är oproportionerligt ofta personer som anmälde spam, hårdstudsade eller aktivt ville bort. Att mejla dem från en helt ny IP-adress utan rykte är det snabbaste kända sättet att få en färsk sändningsuppsättning strypt eller blockerad under första veckan. Några tusen återanvända spamfällor och klagande kan förstöra en månads noggrann uppvärmning.
Så exportera de spärrade grupperna uttryckligen i stället för att hoppas att de är underförstådda. På exportslutpunkten tar actionForContacts emot unsubscribed för kontakter som spärrats på något sätt och unsubscribedPerList för kontakter som avregistrerat sig från en viss lista. Gör en separat körning för hardBounces per kampanj. På väg in i en ny plattform importerar du den filen till dess spärrlista, inte till en mejlbar lista.
Brevo klarar det omvända fallet också: det stöder import av en lista med spärrade kontakter, och import-API:et tar de booleska fälten emailBlacklist och smsBlacklist så att en importerad fil landar som spärrad. Notera asymmetrin som Brevo har rätt i att upprätthålla: kontakter kan inte avspärras i bulk, eftersom att massprenumerera någon som bad att bli lämnad ifred skulle vara olagligt. Spärrning är lätt att lägga till och medvetet svår att ta bort. Se det som korrekt beteende, inte som ett hinder.
Migreringschecklista, ut ur Brevo
- Inventera. Räkna kontakter, listor, segment, aktiva automatiseringar, mallar och integrationer. Skriv ner vilka integrationer som skriver in i Brevo, för det är de rören du kommer att behöva rikta om.
- Exportera. Kontakter med alla attribut plus prenumerationsstatus, en fil per lista eller en enda fil som bär
_listIds, spärrade grupper som separata filer, kampanjstatistik, transaktionella händelser så långt tillbaka som 90-dagarsfönstret tillåter, och mallarnas HTML. - Arkivera det som förfaller. Allt som är tidsbegränsat (råa händelser, loggar) är borta när fönstret rullar vidare. Lagra det i ditt eget datalager eller din egen objektlagring nu.
- Städa och mappa. Ta bort dubbletter, normalisera datum- och telefonformat, och skriv en uttrycklig mappning från kolumn till fält för den nya plattformen. Det här är också det naturliga tillfället att rensa bort adresser som inte engagerat sig på ett år, vilket är billigare än att betala för att värma upp dödvikt. Vår guide till listrensning går igenom tröskelvärdena.
- Ladda spärrlistan först. Importera avregistreringar och hårda studsar till den nya plattformens spärrlista, kontrollera att antalen stämmer med din export, och ladda först därefter in mejlbara kontakter.
- Värm upp. Börja med ditt mest engagerade segment, öka volymen gradvis, och följ studs- och klagomålsfrekvens dagligen. Vår guide till leveransbarhet har sekvensen i detalj.
- Kör parallellt. Håll Brevo igång och skickande för din kritiska transaktionella e-post medan den nya plattformen tar en växande andel av marknadsföringsutskicken. Byt inte båda samtidigt.
- Verifiera. Stäm av antalet kontakter, stickprova tjugo kontakter fält för fält, bekräfta att spärrade kontakter verkligen är spärrade genom att försöka med en testsändning, och jämför en veckas sändningsvolym mot den gamla plattformen.
- Byt över och behåll en återgång. Ändra DNS och integrationsslutpunkter i ett tidsfönster när någon är vaken. Håll Brevo-kontot aktivt och betalt i minst en hel faktureringsperiod efter övergången, med de exporterade filerna lagrade utanför båda plattformarna. Det, och inte ett löfte från en leverantör, är din faktiska återgångsplan.
Att migrera in i Brevo från en annan plattform
Samma checklista körs baklänges, med tre Brevo-specifika noteringar.
Få en riktig export från den nuvarande leverantören. De flesta plattformar ger dig kontakter och deras egna fält som CSV. Fråga uttryckligen efter spärrlistan och studslistan, som ofta ligger i en separat export som folk glömmer att begära. Om du kommer från en prismodell per kontakt kan du jämföra vad du faktiskt kommer att betala på vägen in med vår guide till Brevos priser.
Mappa fälten innan du laddar upp. Brevos attribut har typer (text, tal, datum, boolesk, kategori), och ett datum som landar i ett textattribut går inte att filtrera på senare. Skapa attributen med rätt typer först, importera sedan.
Importera via API:et för allt av storlek. POST /v3/contacts/import tar emot inbäddad CSV i fileBody, en JSON-array i jsonBody, båda begränsade till runt 10 MB, eller en fjärrfil via fileUrl, plus listIds eller ett newList-objekt. updateExistingContacts är sant som standard och matchar på e-postadress. Kör en import med emailBlacklist satt till true för din spärrfil, och sedan en andra import för mejlbara kontakter. De fullständiga skripten finns i vår guide till import av CSV-kontakter till Brevo med ett skript.
Bygg sedan om det som inte följde med: automatiseringar, segment, formulär och mallar. Skicka ett testutskick till en handfull inkorgsleverantörer innan du skickar till någon riktig mottagare.
Låt inte nästa migrering bli ett stup
Anledningen till att en plattformsmigrering känns som ett stup är att plattformen har blivit systemet med sanningen. Orderhistorik, prenumerantstatus och kampanjresultat lever inne hos en leverantör, och att flytta dem blir en evakuering.
Alternativet är att ha en egen källa till sanning och låta sändningsplattformen vara en destination i stället för ett valv. Om dina butiksdata, ditt samtyckesläge och dina engagemangshändelser synkroniseras löpande in i dina egna system blir det en konfigurationsändring i stället för ett projekt att byta eller lägga till en kanal. Det är jobbet Tajo gör mellan Brevo och en handlares tekniska stack: håller data flödande åt båda hållen så att plattformen aldrig är den enda kopian.
Hur du än gör är exportjobben som beskrivs ovan värda att köra schemalagt redan nu, oavsett om du planerar att lämna eller inte. Den billigaste migreringen är den där data redan ligger utanför plattformen när du bestämmer dig.