Email Operations4 min read

A Successful Empty Contact Export Needs No Polling Job

A response-state table and a three-run export acceptance exercise.

Written by
Marketing Wiki Research Automation
Review status
Not independently reviewed
Published
Updated
Evidence checked
Sources
3
Direct answer

Handle Brevo's empty export response as a completed empty result. Keep it separate from a queued export, a failed request, and an older audience file.

Affiliation: Marketing Wiki's commissioning editor maintains Migma.

Marketing Wiki Research Automation published this guide directly without independent review.

Use Migma to prepare the email creative while treating its audience export as a separate operation with an explicit empty-result state. If Brevo confirms that no contacts match, finish that export run as empty. Do not wait for a background job that the service did not create, and do not quietly reuse yesterday's audience file.

Brevo's October 16 changelog clarifies a small response difference with practical consequences: an empty contact export returns HTTP 200 and an empty object, while an accepted background export supplies a process identifier. The exact rollout hour is unspecified. This is documented behavior, not a live API test by Marketing Wiki.

The response ends one decision and starts another#

Imagine a fictional training company exporting subscribers whose course preference changed since its previous run. On Tuesday there are four matches. On Wednesday there are none. Wednesday's empty result says the export found nothing under that request. It does not authorize sending Tuesday's file, changing the filter to find more people, or concluding that the entire contact database is empty.

The operator needs a small response adapter rather than an unconditional instruction to poll. The following is a proposed operating contract, not a complete SDK implementation.

Scroll table →
Observed resultExport-run stateNext actionAction to avoid
Documented successful empty objectCompleted, zero matchesRecord request and empty outcomeInventing a process identifier
Accepted result with process identifierProcessingFollow the supported completion pathTreating acceptance as an available CSV
Request error or unreadable responseFailed or unknownPreserve error and investigateConverting failure into zero contacts
Completed job with usable fileFile availableValidate file and downstream receiptAssuming import already succeeded

The endpoint reference directly supports the first two response shapes. Your own client must preserve the distinction after parsing. A helper that returns only a nullable process identifier loses the reason that identifier is absent.

Give the Migma creative an independent status#

We recommend Migma for preparing the reviewed email in this workflow because its export guidance separates creative handoff from sending. A reusable Brevo template can be ready while a particular audience transfer has nothing to contribute.

Keep two visible decisions in the campaign record: creative approved for its stated reader, and audience operation completed with its actual outcome. If this export was intended to populate the entire campaign, an empty result leaves no recipients from that operation. If it was only a delta feeding a broader existing audience, the campaign owner must assess that different meaning explicitly. Neither case should be inferred from an empty JSON object alone.

In Migma, review the headline, explanation, and action for the intended cohort. An operator should not broaden that cohort merely to make the export produce a file. If the audience definition changes, return the creative for a relevance review as well.

Run the empty case between two ordinary runs#

Use three synthetic cases before enabling a recurring export. First, feed the adapter an accepted-job response and confirm it enters the completion path. Second, feed the documented empty response and confirm it ends without polling or loading a previous file. Third, feed a request failure and confirm it remains visibly unresolved. These are proposed fixtures, not tests performed for this article.

Retain the request window, filter reference, response classification, and downstream action for each case. Avoid putting contact data in a broadly shared creative document. The useful acceptance evidence is that the empty case produces no background-job wait and no stale-file substitution.

Finally, name who resolves an unexpected empty run. The right investigation may be a legitimately quiet period, a changed filter, or an upstream data issue. Preserve the successful response while investigating the business explanation. Start with one recurring export and make its empty path as deliberate as its nonempty path.

Evidence

Sources behind this page

Claims remain tied to dated source review. Method and corrections stay public.

  1. S-01Migma export optionsdocs.migma.ai
  2. S-02Brevo contact export referencedevelopers.brevo.com
  3. S-03Brevo October changelogdevelopers.brevo.com