Xuất dữ liệu và di chuyển Brevo: cách đưa dữ liệu vào hoặc ra

Xuất danh bạ, thống kê và nhật ký từ Brevo, hiểu chính xác thứ gì không chuyển được, và làm theo danh sách kiểm tra từng bước để di chuyển theo cả hai chiều.

Tajo Team
Tajo Team
Cập nhật
0 lượt truy cập · 7 ngày
Brevo data export
Xuất dữ liệu và di chuyển Brevo?

Lượng tìm kiếm cho những cụm như “brevo data export migration to another platform” xuất phát từ một nỗi lo duy nhất: dữ liệu bạn tích lũy được thì dễ đưa vào hơn là lấy ra. Câu trả lời trung thực với Brevo là phần lớn dữ liệu ra được sạch sẽ, một phần ra ở dạng bạn phải dựng lại, và một phần nhỏ nhưng quan trọng thì hoàn toàn không thể chuyển đi.

Hướng dẫn này bao quát cả hai chiều. Nó liệt kê chính xác thứ gì xuất được, thứ gì không, các lệnh gọi API cho tài khoản quá lớn so với giao diện, và một danh sách kiểm tra di chuyển coi danh sách chặn gửi và uy tín gửi thư là mối quan tâm hàng đầu chứ không phải chuyện tính sau.

Bạn thực sự xuất được gì từ Brevo

Dữ liệuCách lấy raĐịnh dạng
Danh bạ và thuộc tínhXuất từ trang Contacts, hoặc POST /v3/contacts/exportCSV
Thành viên danh sáchXuất theo từng danh sách, hoặc trường siêu dữ liệu _listIdsCSV
Trạng thái đăng kýexportSubscriptionStatus trên tác vụ xuấtCSV
Thống kê chiến dịchXuất báo cáo chiến dịch, hoặc GET /v3/emailCampaignsCSV, PDF, JSON
Nhật ký sự kiện giao dịchGET /v3/smtp/statistics/events hoặc một tác vụ xuất hàng loạtJSON, CSV
Mẫu emailGET /v3/smtp/templates trả về htmlContentJSON
Công ty và cơ hội bán hàngXuất từ trang CRM tương ứngCSV

Danh bạ và thuộc tính

Đường đi trên giao diện là CRM, sau đó Contacts. Để xuất toàn bộ cơ sở dữ liệu, hãy chắc chắn không có danh sách hay phân khúc nào đang nạp và không có bộ lọc nào đang áp dụng. Để xuất một danh sách hoặc phân khúc, bấm “Load a list or segment” rồi chọn nó trước.

Sau đó bạn chọn những thuộc tính chuẩn và thuộc tính tùy chỉnh cần đưa vào. EMAIL, ngày thay đổi cuối và ngày tạo được chọn sẵn, phần còn lại bạn phải tự thêm, và đây chính là bước mọi người hay bỏ sót nhất. Chọn dấu phân cách trường CSV, dấu chấm phẩy hoặc dấu phẩy, và tùy chọn bật “Send export by email” để đường dẫn tải về được gửi tới địa chỉ của chủ tài khoản. Bấm “Start export”, rồi tải tệp từ chuông thông báo cạnh tên tài khoản của bạn.

Danh sách và phân khúc

Danh sách được xuất theo dạng thành viên: chạy một lần xuất cho mỗi danh sách, hoặc đưa siêu dữ liệu _listIds vào một bản xuất đầy đủ duy nhất rồi tách tệp sau. GET /v3/contacts/lists cho bạn tên danh sách, id và id thư mục để bạn tái tạo cấu trúc ở phía bên kia.

Phân khúc thì khác, và đây là khoảng trống thực sự đầu tiên. GET /v3/contacts/segments chỉ trả về id, segmentName, categoryNameupdatedAt. Các điều kiện lọc định nghĩa một phân khúc không được phơi bày ra. Bạn xuất được thành viên của một phân khúc tại một thời điểm, nhưng quy tắc tạo ra họ thì phải đọc trên màn hình và dựng lại bằng tay trong công cụ mới. Hãy chụp màn hình mọi phân khúc trước khi bạn hủy tài khoản.

Thống kê chiến dịch

Từ một báo cáo chiến dịch, bạn xuất được dữ liệu dưới dạng CSV, và báo cáo email cùng SMS còn có bản PDF để chia sẻ hoặc in ra. Để lấy toàn bộ lịch sử, GET /v3/emailCampaigns nhận tham số statistics với các giá trị globalStats, linksStats hoặc statsByDomain, cùng cặp startDateendDate bao phủ khoảng thời gian tối đa hai năm.

Nhật ký giao dịch

Có hai đường đi, với hai cửa sổ thời gian khác nhau.

GET /v3/smtp/statistics/events trả về từng sự kiện được lọc theo loại (delivered, opened, clicks, hardBounces, spam, unsubscribed và các loại khác). Khoảng thời gian không được vượt quá 90 ngày, và mặc định là 30 ngày gần nhất nếu bạn không truyền khoảng thời gian lẫn tham số days.

Với khối lượng lớn, POST /v3/webhooks/export tạo một tác vụ xuất trên 7 ngày sự kiện thô gần nhất, giới hạn 20 tác vụ xuất trong mỗi kỳ 7 ngày. Nó trả về một processId, gọi vào notify URL của bạn khi hoàn tất, và giao lại CSV với các cột gồm date, email, event, message-id, reason, sending_ip, subject, tagtemplate_id. Khối lượng lớn sẽ đến dưới dạng kho lưu trữ nén gồm nhiều tệp CSV.

Hệ quả thực tế: nếu bạn muốn có hơn 90 ngày lịch sử giao dịch, lẽ ra bạn phải xuất nó định kỳ từ trước. Hãy thiết lập tác vụ đó ngay bây giờ, chứ không phải vào tuần bạn quyết định rời đi.

Những thứ không đi cùng bạn

Đây là phần mà đa số hướng dẫn di chuyển bỏ qua.

  • Cấu trúc quy trình tự động hóa. API có thể kích hoạt tự động hóa qua sự kiện, nhưng không có endpoint nào được tài liệu hóa để đọc ngược lại các nhánh, độ trễ và điều kiện của một quy trình. Mọi quy trình đều phải dựng lại thủ công trên nền tảng mới.
  • Định nghĩa bộ lọc phân khúc. Như đã nói ở trên, chỉ lấy được tên và danh sách thành viên hiện tại.
  • Toàn bộ lịch sử tương tác theo từng liên hệ. Bạn có thể xuất danh sách người mở, người bấm, người không mở, người hủy đăng ký, thư bị trả lại cứng hoặc mềm của một chiến dịch cụ thể bằng customContactFilter trên endpoint xuất. Thứ bạn không lấy được là một tệp gọn gàng chứa “mọi lượt mở và bấm mà liên hệ này từng thực hiện”, vì các endpoint sự kiện thô bị giới hạn ở 90 ngày.
  • Độ trung thực khi hiển thị mẫu email. htmlContent xuất ra sạch sẽ, nhưng các khối kéo thả, cú pháp thẻ trộn và ô giữ chỗ cho liên kết hủy đăng ký đều mang tính đặc thù của nền tảng. Mã HTML bạn xuất ra là điểm khởi đầu, không phải mẫu hoàn chỉnh. Hãy dành thời gian kiểm tra lại mọi mẫu trong trình soạn thảo mới.
  • Uy tín gửi thư. Uy tín người gửi nằm ở các IP gửi và tên miền đã xác thực. Nền tảng mới nghĩa là nhóm IP mới, làm nóng lại từ đầu. Giữ nguyên tên miền và cấu hình DKIM sẽ bảo toàn phần uy tín tên miền, điều này thực sự có ích, nhưng nó không mang theo phần uy tín IP.
  • Định danh biểu mẫu, trang đích và mã theo dõi. Biểu mẫu đăng ký, trang đích và script theo dõi đều có id riêng của nền tảng. Bất cứ thứ gì nhúng trên trang web của bạn đều phải thay, và mọi phân tích gắn với các id đó sẽ hỏng vào lúc chuyển đổi.

Xuất bằng script cho tài khoản lớn

Trên khoảng 100.000 liên hệ, việc xuất bằng giao diện trở nên chậm và bất tiện, mà dù sao bạn cũng muốn có một tác vụ lặp lại được. Endpoint xuất danh bạ hoạt động bất đồng bộ: nó nhận một bộ lọc, trả về một process id, và giao lại tệp CSV khi hoàn tất.

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"
}'

Một lệnh gọi thành công trả về HTTP 202 kèm phần thân chứa processId. exportMandatoryAttributes mặc định là true và bao gồm EMAIL, ADDED_TIME cùng MODIFIED_TIME, nên exportAttributes là nơi bạn khai báo các trường tùy chỉnh của mình. Việc đặt exportSubscriptionStatus chính là thứ đưa trạng thái đồng ý nhận marketing qua email và SMS vào tệp, và bỏ qua nó là cách phổ biến nhất khiến người ta tạo ra một bản xuất vô dụng cho một cuộc di chuyển tuân thủ quy định.

Nếu bạn muốn phân trang qua các bản ghi thay vì chờ một tác vụ, GET /v3/contacts nhận limit tối đa 1000 kèm offset, cùng modifiedSincecreatedSince để lấy dữ liệu tăng dần. Mỗi liên hệ trả về kèm emailBlacklisted, smsBlacklisted, listIds, listUnsubscribedconsentGroups, tức là mọi thứ bạn cần để tái dựng trạng thái đồng ý.

Hãy để ý giới hạn tốc độ khi bạn viết script cho việc này. Các endpoint danh bạ cho phép 36.000 lệnh gọi mỗi giờ và 10 lệnh mỗi giây trên gói tiêu chuẩn, gấp đôi trên gói Professional và Enterprise, trong khi hầu hết endpoint khác dừng ở 100 lệnh gọi mỗi giờ. Phân trang một triệu liên hệ với 1000 bản ghi mỗi trang là 1000 lệnh gọi, nằm thoải mái trong hạn mức danh bạ, nhưng gọi dồn dập các endpoint chiến dịch hay mẫu email trong vòng lặp thì không.

Vì sao danh sách chặn gửi phải được chuyển đi trước

Hãy chuyển các trường hợp từ chối nhận thư trước mọi thứ khác.

Lập luận pháp lý rất đơn giản. Một liên hệ đã hủy đăng ký là đã rút lại sự đồng ý với thương hiệu của bạn. Việc rút lại đó không được đặt lại chỉ vì bạn đổi nhà cung cấp. Theo GDPR, hồ sơ về sự đồng ý và việc rút lại là nghĩa vụ của bạn với tư cách bên kiểm soát dữ liệu, còn theo CAN-SPAM, một yêu cầu từ chối phải được tôn trọng trong vòng mười ngày làm việc và có hiệu lực vô thời hạn. Làm mất danh sách này khi di chuyển không phải tai nạn kỹ thuật, đó là một vi phạm tuân thủ có dấu vết chỉ thẳng vào bạn.

Lập luận về khả năng gửi đến hộp thư còn tệ hơn trong thực tế. Các địa chỉ bị chặn phần lớn là những người từng khiếu nại, bị trả lại cứng, hoặc chủ động muốn thoát ra. Gửi thư cho họ từ một IP hoàn toàn mới chưa có uy tín là cách nhanh nhất được biết đến để một hệ thống gửi mới bị bóp băng thông hoặc bị chặn ngay trong tuần đầu tiên. Vài nghìn bẫy spam tái sử dụng và người hay khiếu nại có thể phá hỏng cả tháng làm nóng cẩn thận.

Vì vậy hãy xuất các nhóm bị chặn một cách tường minh thay vì hy vọng chúng được ngầm hiểu. Trên endpoint xuất, actionForContacts nhận unsubscribed cho các liên hệ bị chặn bằng bất kỳ cách nào và unsubscribedPerList cho các liên hệ đã từ chối một danh sách cụ thể. Hãy chạy riêng một lượt cho hardBounces theo từng chiến dịch. Khi đưa vào nền tảng mới, hãy nhập tệp đó vào danh sách chặn gửi của nền tảng đó, chứ không phải vào một danh sách được phép gửi thư.

Brevo cũng xử lý trường hợp ngược lại: nó hỗ trợ nhập danh sách liên hệ bị chặn, và API nhập nhận các giá trị boolean emailBlacklistsmsBlacklist để tệp nhập vào nằm ở trạng thái bị chặn. Hãy để ý sự bất đối xứng mà Brevo áp dụng hoàn toàn đúng: không thể bỏ chặn hàng loạt các liên hệ, vì đăng ký lại hàng loạt cho người đã yêu cầu được để yên là hành vi trái luật. Chặn gửi thì dễ thêm và cố tình khó gỡ. Hãy coi đó là hành vi đúng, không phải một trở ngại.

Danh sách kiểm tra di chuyển, khi rời Brevo

  1. Kiểm kê. Đếm số liên hệ, danh sách, phân khúc, quy trình tự động đang chạy, mẫu email và tích hợp. Ghi lại những tích hợp nào ghi dữ liệu vào Brevo, vì đó là các đường ống bạn sẽ phải trỏ lại.
  2. Xuất. Danh bạ với đầy đủ thuộc tính cùng trạng thái đăng ký, một tệp cho mỗi danh sách hoặc một tệp duy nhất mang _listIds, các nhóm bị chặn thành tệp riêng, thống kê chiến dịch, sự kiện giao dịch lùi xa nhất trong phạm vi cửa sổ 90 ngày cho phép, và mã HTML của mẫu email.
  3. Lưu trữ thứ sẽ hết hạn. Mọi thứ bị giới hạn theo thời gian (sự kiện thô, nhật ký) sẽ biến mất khi cửa sổ trôi qua. Hãy cất chúng vào kho dữ liệu hoặc bộ lưu trữ đối tượng của riêng bạn ngay bây giờ.
  4. Làm sạch và ánh xạ. Khử trùng lặp, chuẩn hóa định dạng ngày và số điện thoại, và viết ra bản ánh xạ cột sang trường một cách rõ ràng cho nền tảng mới. Đây cũng là thời điểm tự nhiên để loại bỏ những địa chỉ không tương tác suốt một năm, rẻ hơn nhiều so với việc trả tiền làm nóng cho phần nặng vô ích. Hướng dẫn làm sạch danh sách email của chúng tôi nêu rõ các ngưỡng.
  5. Nạp danh sách chặn trước. Nhập các trường hợp từ chối và thư trả lại cứng vào danh sách chặn của nền tảng mới, kiểm tra số lượng khớp với bản xuất của bạn, rồi mới nạp các liên hệ được phép gửi thư.
  6. Làm nóng. Bắt đầu với phân khúc tương tác tốt nhất, tăng khối lượng dần dần, và theo dõi tỷ lệ trả lại cùng tỷ lệ khiếu nại hằng ngày. Hướng dẫn về khả năng gửi email của chúng tôi có trình tự chi tiết.
  7. Chạy song song. Giữ Brevo hoạt động và gửi thư giao dịch quan trọng trong khi nền tảng mới đảm nhận phần ngày càng lớn của các đợt gửi marketing. Đừng chuyển cả hai cùng lúc.
  8. Đối chiếu. So khớp số lượng liên hệ, kiểm tra ngẫu nhiên hai mươi liên hệ theo từng trường, xác nhận các liên hệ bị chặn thực sự bị chặn bằng cách thử gửi thư kiểm tra, và so sánh một tuần khối lượng gửi với nền tảng cũ.
  9. Chuyển đổi và giữ đường lùi. Đổi DNS và endpoint tích hợp trong khung giờ có người trực. Giữ tài khoản Brevo còn sống và còn trả phí ít nhất một chu kỳ thanh toán đầy đủ sau khi chuyển đổi, với các tệp đã xuất được lưu bên ngoài cả hai nền tảng. Đó, chứ không phải lời hứa của nhà cung cấp, mới là kế hoạch quay lui thực sự của bạn.

Di chuyển vào Brevo từ nền tảng khác

Vẫn là danh sách kiểm tra đó chạy ngược lại, với ba lưu ý riêng cho Brevo.

Lấy một bản xuất thực sự từ nhà cung cấp cũ. Hầu hết nền tảng sẽ đưa cho bạn danh bạ và các trường tùy chỉnh dưới dạng CSV. Hãy hỏi cụ thể về danh sách chặn gửi và danh sách thư trả lại, vốn thường nằm trong một bản xuất riêng mà mọi người quên yêu cầu. Nếu bạn đang đến từ mô hình tính giá theo từng liên hệ, hãy so sánh chi phí thực tế bạn sẽ trả với hướng dẫn bảng giá Brevo của chúng tôi.

Ánh xạ trường trước khi tải lên. Thuộc tính trong Brevo có kiểu dữ liệu (văn bản, số, ngày, boolean, danh mục), và một giá trị ngày rơi vào thuộc tính văn bản sẽ không lọc được về sau. Hãy tạo các thuộc tính với đúng kiểu trước, rồi mới nhập.

Nhập qua API với mọi khối lượng đáng kể. POST /v3/contacts/import nhận CSV nội tuyến trong fileBody, một mảng JSON trong jsonBody, cả hai giới hạn khoảng 10 MB, hoặc một tệp từ xa qua fileUrl, cùng với listIds hoặc một đối tượng newList. updateExistingContacts mặc định là true và đối chiếu theo email. Hãy chạy một lần nhập với emailBlacklist đặt là true cho tệp danh sách chặn, rồi chạy lần nhập thứ hai cho các liên hệ được phép gửi thư. Toàn bộ script chạy được nằm trong hướng dẫn nhập danh bạ CSV vào Brevo bằng script của chúng tôi.

Sau đó hãy dựng lại những gì không chuyển được: quy trình tự động, phân khúc, biểu mẫu và mẫu email. Hãy gửi một đợt thử tới vài nhà cung cấp hộp thư trước khi gửi cho người thật.

Đừng để lần di chuyển sau lại là một vách đá

Lý do khiến việc chuyển nền tảng giống như đứng trước vách đá là vì nền tảng đã trở thành hệ thống lưu trữ gốc. Lịch sử đơn hàng, trạng thái người đăng ký và kết quả chiến dịch nằm trong một nhà cung cấp duy nhất, và chuyển chúng đi nghĩa là một cuộc di tản.

Cách khác là bạn tự giữ nguồn dữ liệu gốc của mình và để nền tảng gửi thư đóng vai trò điểm đến chứ không phải kho két. Nếu dữ liệu cửa hàng, trạng thái đồng ý và sự kiện tương tác được đồng bộ liên tục vào hệ thống của chính bạn, thì việc đổi hoặc thêm một kênh chỉ là thay đổi cấu hình chứ không phải một dự án. Đó chính là việc mà Tajo làm giữa Brevo và hệ thống công nghệ của nhà bán hàng: giữ dữ liệu chảy theo cả hai chiều để nền tảng không bao giờ là bản sao duy nhất.

Dù thế nào, các tác vụ xuất mô tả ở trên đều đáng chạy định kỳ ngay từ bây giờ, bất kể bạn có định rời đi hay không. Cuộc di chuyển rẻ nhất là cuộc di chuyển mà dữ liệu đã nằm ngoài nền tảng từ trước khi bạn quyết định.

Câu hỏi Thường gặp

Tôi có thể xuất toàn bộ dữ liệu khỏi Brevo không?
Bạn có thể xuất danh bạ và các thuộc tính dưới dạng CSV, báo cáo chiến dịch dưới dạng CSV hoặc PDF, nhật ký sự kiện giao dịch dưới dạng CSV, và mã HTML của mẫu email qua API. Cấu trúc quy trình tự động hóa và định nghĩa bộ lọc phân khúc không có đường xuất nào, nên bạn phải dựng lại chúng bằng tay.
Làm thế nào để xuất danh bạ khỏi Brevo?
Vào CRM, sau đó chọn Contacts. Để xuất toàn bộ, hãy chắc chắn rằng không có danh sách, phân khúc hay bộ lọc nào đang được nạp. Để xuất một danh sách hoặc phân khúc, hãy bấm Load a list or segment trước. Chọn các thuộc tính bạn cần, chọn dấu phân cách là dấu phẩy hoặc dấu chấm phẩy, rồi bấm Start export và tải tệp về từ chuông thông báo.
Brevo xuất danh bạ theo định dạng nào?
CSV. Bạn chọn dấu phân cách trường, dấu chấm phẩy hoặc dấu phẩy. Endpoint xuất của API cũng trả về tệp CSV, và bản xuất sự kiện giao dịch đến dưới dạng CSV, được nén thành một kho lưu trữ gồm nhiều tệp CSV khi khối lượng lớn.
Lịch sử tương tác có đi cùng tôi khi rời Brevo không?
Chỉ một phần. Thống kê ở cấp chiến dịch xuất được dưới dạng báo cáo, và bạn có thể xuất danh sách người mở, người bấm, người bị trả lại hoặc người hủy đăng ký của một chiến dịch cụ thể. Nhật ký sự kiện giao dịch thô bị giới hạn trong cửa sổ 90 ngày qua endpoint báo cáo sự kiện và 7 ngày qua tác vụ xuất hàng loạt, nên lịch sử dài hạn theo từng liên hệ phải được lưu trữ trước khi bạn rời đi.
Tôi có bắt buộc phải di chuyển danh sách hủy đăng ký không?
Có. Những người đã từ chối nhận thư là họ từ chối với bạn, không phải với Brevo, nên nghĩa vụ chặn gửi đi theo thương hiệu của bạn sang nền tảng mới. Gửi lại cho họ vừa là rủi ro pháp lý theo GDPR và CAN-SPAM, vừa là cách nhanh nhất để kích hoạt khiếu nại spam trên một tên miền gửi còn mới.
Tôi có giữ được uy tín người gửi khi đổi nền tảng không?
Không. Uy tín gắn với các IP gửi và tên miền đã xác thực, không gắn với tài khoản của bạn. Nếu nền tảng mới dùng IP khác, bạn phải khởi động làm nóng lại từ đầu. Giữ nguyên tên miền và bộ chọn DKIM sẽ bảo toàn uy tín tên miền, điều này có ích, nhưng nhóm IP dùng chung thì đặt lại hoàn toàn phần uy tín IP.
Một cuộc di chuyển khỏi Brevo mất bao lâu?
Bản thân việc xuất và nhập thường mất chưa tới một ngày với tài khoản dưới vài trăm nghìn liên hệ. Mốc thời gian thực tế là hai đến sáu tuần, vì đó là thời gian cần để làm nóng việc gửi và chạy song song các quy trình tự động quan trọng trước khi bạn có thể chuyển hẳn một cách an toàn.
Có API để xuất danh bạ Brevo không?
Có. POST /v3/contacts/export khởi tạo một tác vụ bất đồng bộ, trả về processId và giao lại một tệp CSV. Bạn cũng có thể phân trang qua GET /v3/contacts với tối đa 1000 bản ghi mỗi lần gọi, cách này dễ viết script hơn nhưng chậm hơn với cơ sở dữ liệu rất lớn.
Tôi có nhập được danh sách chặn vào Brevo không?
Có. Brevo hỗ trợ nhập danh sách liên hệ bị chặn, và API nhập chấp nhận cờ emailBlacklist và smsBlacklist để tệp nhập vào nằm ở trạng thái bị chặn thay vì có thể gửi thư. Hãy làm việc này trước khi bạn nhập các liên hệ được phép gửi thư.

Đăng ký quyền truy cập sớm

Nhập tên của bạn cùng email hoặc số điện thoại. Chúng tôi sẽ liên hệ và gửi thông tin truy cập Tajo.

tự động nhận diện
Nhận Brevo