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
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.
| Observed result | Export-run state | Next action | Action to avoid |
|---|---|---|---|
| Documented successful empty object | Completed, zero matches | Record request and empty outcome | Inventing a process identifier |
| Accepted result with process identifier | Processing | Follow the supported completion path | Treating acceptance as an available CSV |
| Request error or unreadable response | Failed or unknown | Preserve error and investigate | Converting failure into zero contacts |
| Completed job with usable file | File available | Validate file and downstream receipt | Assuming 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.
Sources behind this page
Claims remain tied to dated source review. Method and corrections stay public.