Dataeksport og migrering i Brevo: slik flytter du data inn eller ut
Eksporter kontakter, statistikk og logger fra Brevo, lær nøyaktig hva som ikke blir med, og følg en trinnvis sjekkliste for migrering i begge retninger.
Søkevolumet på fraser som “brevo data export migration to another platform” drives av én bekymring: at dataene du har samlet opp er lettere å få inn enn ut. Det ærlige svaret for Brevo er at det meste kommer rent ut, noe kommer ut i en form du må bygge opp igjen, og en liten men viktig del kan ikke flyttes i det hele tatt.
Denne guiden dekker begge retninger. Den lister nøyaktig hva som eksporteres, hva som ikke gjør det, API-kallene for kontoer som er for store for grensesnittet, og en migreringssjekkliste som behandler avmeldingslister og avsenderomdømme som førsteklasses hensyn i stedet for ettertanker.
Hva du faktisk kan eksportere fra Brevo
| Data | Slik kommer det ut | Format |
|---|---|---|
| Kontakter og attributter | Eksport fra Kontakter-siden, eller POST /v3/contacts/export | CSV |
| Listemedlemskap | Eksport per liste, eller metadatafeltet _listIds | CSV |
| Abonnementsstatus | exportSubscriptionStatus på eksportjobben | CSV |
| Kampanjestatistikk | Eksport av kampanjerapport, eller GET /v3/emailCampaigns | CSV, PDF, JSON |
| Transaksjonelle hendelseslogger | GET /v3/smtp/statistics/events eller en masseeksportjobb | JSON, CSV |
| Maler | GET /v3/smtp/templates returnerer htmlContent | JSON |
| Bedrifter og deals | Eksport fra den aktuelle CRM-siden | CSV |
Kontakter og attributter
Veien i grensesnittet er CRM, deretter Kontakter. For å eksportere hele databasen må du sørge for at ingen liste eller segment er lastet inn og at ingen filtre er aktive. For å eksportere én liste eller ett segment klikker du “Last inn en liste eller et segment” og velger den først.
Deretter velger du hvilke standard- og egendefinerte attributter som skal med. EMAIL, siste endringsdato og opprettelsesdato er valgt som standard, og resten legger du til selv, som er trinnet folk oftest bommer på. Velg feltskilletegnet i CSV-filen, semikolon eller komma, og slå eventuelt på “Send eksport på e-post” slik at en nedlastingslenke går til kontoeierens adresse. Klikk “Start eksport”, og last så ned filen fra varselbjellen ved siden av kontonavnet ditt.
Lister og segmenter
Lister eksporteres som medlemskap: kjør én eksport per liste, eller ta med metadataen _listIds i én full eksport og del opp filen etterpå. GET /v3/contacts/lists gir deg listenavn, ID-er og mappe-ID-er, slik at du kan gjenskape strukturen på den andre siden.
Segmenter er en annen sak, og her er det første reelle hullet. GET /v3/contacts/segments returnerer bare id, segmentName, categoryName og updatedAt. Filterbetingelsene som definerer et segment, eksponeres ikke. Du kan eksportere medlemmene i et segment på et gitt tidspunkt, men regelen som produserte dem må leses av skjermen og bygges opp igjen for hånd i det nye verktøyet. Ta skjermbilde av hvert segment før du sier opp kontoen.
Kampanjestatistikk
Fra en kampanjerapport kan du eksportere dataene som CSV, og rapporter for e-post og SMS tilbyr også en PDF-versjon til deling eller utskrift. For et fullt historisk uttrekk tar GET /v3/emailCampaigns imot en statistics-parameter med verdiene globalStats, linksStats eller statsByDomain, og et par av startDate og endDate som dekker et intervall på opptil to år.
Transaksjonelle logger
To veier, med ulike vinduer.
GET /v3/smtp/statistics/events returnerer enkelthendelser filtrert på type (delivered, opened, clicks, hardBounces, spam, unsubscribed og flere). Datointervallet kan ikke overstige 90 dager, og det faller tilbake på de siste 30 dagene hvis du hverken oppgir et intervall eller days-parameteren.
For masseuttrekk oppretter POST /v3/webhooks/export en eksportjobb over de siste 7 dagene med rå hendelser, begrenset til 20 eksportjobber per periode på 7 dager. Den returnerer en processId, kaller notify-URL-en din når den er ferdig, og leverer CSV med kolonner som date, email, event, message-id, reason, sending_ip, subject, tag og template_id. Store volumer kommer som et komprimert arkiv med flere CSV-filer.
Den praktiske konsekvensen: vil du ha mer enn 90 dager med transaksjonell historikk, måtte du ha eksportert den løpende hele veien. Sett opp den jobben nå, ikke i uken du bestemmer deg for å dra.
Hva som ikke blir med deg
Dette er delen de fleste migreringsguider hopper over.
- Strukturen i automatiserte arbeidsflyter. API-et kan utløse automatiseringer gjennom hendelser, men det finnes ikke noe dokumentert endepunkt som leser tilbake grenene, forsinkelsene og betingelsene i en arbeidsflyt. Hver arbeidsflyt bygges manuelt på nytt i den nye plattformen.
- Filterdefinisjonene i segmenter. Som over: bare navnene og de nåværende medlemmene kan hentes.
- Full engasjementshistorikk per kontakt. Du kan eksportere de som åpnet, klikket, ikke åpnet, meldte seg av, hardt sprettet eller mykt sprettet en bestemt kampanje ved å bruke
customContactFilterpå eksportendepunktet. Det du ikke får ut er én ryddig fil med “hver åpning og hvert klikk denne kontakten noen gang gjorde”, fordi de rå hendelsesendepunktene er avgrenset til 90 dager. - Nøyaktig gjengivelse av maler.
htmlContenteksporteres rent, men dra-og-slipp-blokker, syntaks for flettefelt og plassholdere for avmeldingslenker er plattformspesifikke. HTML-en du eksporterer er et utgangspunkt, ikke en ferdig mal. Sett av tid til å teste hver mal på nytt i den nye editoren. - Omdømme for leveringsevne. Avsenderomdømme bor på avsender-IP-ene og det autentiserte domenet. Ny plattform, ny IP-pool, ny oppvarming. Å beholde samme domene og DKIM-oppsett bevarer domenesiden av omdømmet, noe som virkelig hjelper, men det tar ikke med seg IP-siden.
- Identifikatorer for skjemaer, landingssider og sporing. Påmeldingsskjemaer, landingssider og sporingsskriptet har alle plattformspesifikke ID-er. Alt som er bygget inn på nettstedet ditt må byttes ut, og analyser knyttet til de ID-ene brytes ved overgangen.
Skriptet eksport for store kontoer
Over omtrent 100 000 kontakter blir eksporten i grensesnittet treg og tungvint, og du vil uansett ha en jobb du kan gjenta. Eksportendepunktet for kontakter er asynkront: det tar imot et filter, returnerer en prosess-ID og gir deg en CSV når det er ferdig.
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" }'Et vellykket kall returnerer HTTP 202 og en kropp som inneholder en processId. exportMandatoryAttributes er som standard true og dekker EMAIL, ADDED_TIME og MODIFIED_TIME, så exportAttributes er der du navngir de egendefinerte feltene dine. Å sette exportSubscriptionStatus er det som legger samtykkestatusen for markedsføring på e-post og SMS inn i filen, og å utelate den er den enkeltfeilen som oftest gir en eksport som er ubrukelig for en regelrett migrering.
Vil du heller bla gjennom oppføringer enn å vente på en jobb, tar GET /v3/contacts imot limit opptil 1000 med en offset, pluss modifiedSince og createdSince for inkrementelle uttrekk. Hver kontakt kommer tilbake med emailBlacklisted, smsBlacklisted, listIds, listUnsubscribed og consentGroups, som er alt du trenger for å rekonstruere samtykkestatusen.
Følg med på rategrensene mens du skripter dette. Kontaktendepunktene tillater 36 000 forespørsler per time og 10 per sekund på standardplaner, det dobbelte på Professional og Enterprise, mens de fleste andre endepunkter ligger på 100 forespørsler per time. Å bla gjennom en million kontakter med 1000 per side er 1000 forespørsler, godt innenfor kontaktbudsjettet, men å hamre løs på kampanje- eller malendepunkter i en løkke er det ikke.
Hvorfor avmeldingslisten må migreres først
Flytt reservasjonene før du flytter noe annet.
Det juridiske argumentet er enkelt. En kontakt som meldte seg av, trakk samtykket sitt fra din merkevare. Den tilbaketrekkingen nullstilles ikke fordi du byttet leverandør. Under GDPR er dokumentasjonen av samtykke og tilbaketrekking din plikt som behandlingsansvarlig, og under CAN-SPAM må en avmelding etterleves innen ti virkedager og gjelder deretter på ubestemt tid. Å miste listen i en migrering er ikke et teknisk uhell, det er et etterlevelsesbrudd med et spor som peker rett på deg.
Argumentet om leveringsevne er verre i praksis. Undertrykte adresser er uforholdsmessig ofte folk som klaget, hardt sprettet eller aktivt ville ut. Å sende til dem fra en helt ny IP uten omdømme er den raskeste kjente måten å få et ferskt sendeoppsett strupet eller blokkert i sin første uke. Noen tusen gjenbrukte spamfeller og klagere kan rive ned en måned med nøye oppvarming.
Så eksporter de undertrykte gruppene eksplisitt i stedet for å håpe at de er underforstått. På eksportendepunktet tar actionForContacts imot unsubscribed for kontakter blokklistet på noen som helst måte, og unsubscribedPerList for kontakter som har reservert seg mot én bestemt liste. Kjør en egen runde for hardBounces per kampanje. På vei inn i en ny plattform importerer du den filen i undertrykkelseslisten, ikke i en liste du kan sende til.
Brevo håndterer også det motsatte tilfellet: plattformen støtter import av en liste med blokklistede kontakter, og import-API-et tar imot de boolske verdiene emailBlacklist og smsBlacklist slik at en importert fil lander som undertrykt. Merk asymmetrien Brevo har rett i å håndheve: kontakter kan ikke fjernes fra blokklisten i bulk, fordi å masseabonnere noen som ba om å bli latt i fred ville vært ulovlig. Undertrykkelse er lett å legge til og bevisst vanskelig å fjerne. Se på det som riktig oppførsel, ikke som en hindring.
Migreringssjekkliste, ut av Brevo
- Kartlegg. Tell kontakter, lister, segmenter, aktive automatiseringer, maler og integrasjoner. Skriv ned hvilke integrasjoner som skriver inn i Brevo, for det er de rørene du må peke om.
- Eksporter. Kontakter med alle attributter pluss abonnementsstatus, én fil per liste eller én enkelt fil med
_listIds, undertrykte grupper som egne filer, kampanjestatistikk, transaksjonelle hendelser så langt tilbake som vinduet på 90 dager tillater, og HTML-en i malene. - Arkiver det som utløper. Alt som er tidsavgrenset (rå hendelser, logger) er borte når vinduet ruller videre. Legg det i ditt eget datavarehus eller objektlagring nå.
- Rydd og kartlegg. Fjern duplikater, normaliser dato- og telefonformater, og skriv en eksplisitt kartlegging fra kolonne til felt for den nye plattformen. Dette er også det naturlige tidspunktet for å droppe adresser som ikke har engasjert seg på et år, noe som er billigere enn å betale for å varme opp dødvekt. Guiden vår til å rense e-postlister dekker terskelverdiene.
- Last inn undertrykkelse først. Importer reservasjoner og harde sprett i den nye plattformens undertrykkelsesliste, kontroller at tallene stemmer med eksporten din, og først deretter laster du inn kontaktene du kan sende til.
- Varm opp. Start med det mest engasjerte segmentet ditt, øk volumet gradvis, og følg med på sprett- og klagerater daglig. Guiden vår til leveringsevne har rekkefølgen i detalj.
- Kjør parallelt. Hold Brevo i drift med den kritiske transaksjonelle posten din mens den nye plattformen tar en økende andel av markedsføringssendingene. Ikke bytt begge på én gang.
- Verifiser. Avstem kontakttall, stikkprøv tjue kontakter felt for felt, bekreft at undertrykte kontakter faktisk er undertrykt ved å forsøke en testsending, og sammenlign en uke med sendevolum mot den gamle plattformen.
- Gå over, og behold en rullback. Endre DNS og integrasjonsendepunkter i et tidsvindu der noen følger med. Hold Brevo-kontoen i live og betalt i minst én full faktureringssyklus etter overgangen, med de eksporterte filene lagret utenfor begge plattformene. Det, og ikke et løfte fra en leverandør, er den faktiske rullback-planen din.
Migrere inn i Brevo fra en annen plattform
Den samme sjekklisten kjører i revers, med tre Brevo-spesifikke merknader.
Få en reell eksport fra den nåværende leverandøren. De fleste plattformer gir deg kontakter og egendefinerte felter som CSV. Be spesifikt om undertrykkelseslisten og sprettlisten, som ofte ligger i en egen eksport folk glemmer å be om. Kommer du fra en prismodell per kontakt, sammenlign hva du faktisk kommer til å betale på vei inn med Brevo-prisguiden vår.
Kartlegg felter før du laster opp. Brevo-attributter har typer (tekst, tall, dato, boolsk, kategori), og en dato som lander i en tekstattributt kan ikke filtreres på senere. Opprett attributtene med riktige typer først, importer så.
Importer gjennom API-et for alt av størrelse. POST /v3/contacts/import tar imot CSV inline i fileBody, en JSON-liste i jsonBody, begge begrenset til rundt 10 MB, eller en ekstern fil gjennom fileUrl, pluss listIds eller et newList-objekt. updateExistingContacts er som standard true og matcher på e-post. Kjør én import med emailBlacklist satt til true for undertrykkelsesfilen din, deretter en ny import for kontaktene du kan sende til. De fullstendige, fungerende skriptene ligger i guiden vår til å importere CSV-kontakter til Brevo med et skript.
Bygg så opp igjen det som ikke ble med: automatiseringer, segmenter, skjemaer og maler. Send en testsending til en håndfull innbokstilbydere før du sender til noen ekte.
Ikke la neste migrering bli et stup
Grunnen til at en plattformmigrering føles som et stup, er at plattformen har blitt fasiten. Ordrehistorikk, mottakerstatus og kampanjeresultater bor inne hos én leverandør, og å flytte dem betyr en evakuering.
Alternativet er å ha din egen kilde til sannhet og la sendeplattformen være en destinasjon i stedet for et hvelv. Hvis butikkdataene, samtykkestatusen og engasjementshendelsene dine synkroniseres kontinuerlig inn i dine egne systemer, blir det å bytte eller legge til en kanal en konfigurasjonsendring i stedet for et prosjekt. Det er jobben Tajo gjør mellom Brevo og en forhandlers tekniske stack: holde dataene i bevegelse begge veier slik at plattformen aldri er den eneste kopien.
Uansett er eksportjobbene beskrevet over verdt å kjøre fast allerede nå, enten du planlegger å dra eller ikke. Den billigste migreringen er den der dataene allerede ligger utenfor plattformen når du bestemmer deg.