BlogDelivery Workflow
Delivery Workflow

How to validate subscriber CSV files before batch delivery

Published June 3, 20263 min read

Distribution mode depends on clean CSV input. These validation steps catch the rows that would attach the wrong file to the wrong subscriber.

The CSV is part of your security model

Per-subscriber watermarking only works when recipient_id in your file maps to the person who receives that copy. A duplicate ID means two people share the same forensic fingerprint. A malformed row can silently skip someone or attach the wrong export.

Batch delivery magnifies small spreadsheet mistakes into trust incidents.

Minimum columns to verify

Foddo Distribution mode expects a CSV shaped like this:

  • recipient_id: stable unique key embedded in the invisible tracking ID
  • recipient_name: display label used for recipient folders when that option is enabled
  • custom_data: optional field stored in the invisible watermark payload and visible in Inspect
  • email: optional contact field for your own records

Before generating hundreds of outputs, confirm headers match this format and that no required column is empty for active rows.

Validate in the browser, then import into Foddo

The free Subscriber CSV Validator catches duplicate IDs, unsafe filename characters, and output-name previews before you commit to a batch run. Foddo Distribution mode imports the CSV but does not re-run those checks, and blank recipient_id rows are skipped silently on import rather than flagged as errors.

Validation checks that save retractions

  1. Duplicate recipient_id values: flag any ID used more than once in the free validator before import.
  2. Empty IDs on rows you intend to ship: catch blank keys in pre-flight validation; Foddo skips them silently during import.
  3. Unsafe filename characters: preview how IDs appear in recipient folder names.
  4. Row count vs expected audience: a sudden mismatch often means a filter mistake in your export.

Preview filenames before commit

Seeing release-042_subscriber-8812.webp on screen catches formatting issues early. If your IDs contain spaces, slashes, or platform-specific symbols, fix them in the sheet before the batch run.

Warning: Never treat “close enough” IDs as good enough. Leak attribution requires a one-to-one map between embedded ID and subscriber record.

From validated CSV to protected copies

Once the list passes the free validator, import it into Foddo Distribution mode to embed unique invisible IDs per row and produce one folder of files per recipient. Keep the validated CSV as the source of truth alongside your delivery log.

Make the browser validation step part of every release so duplicate IDs and blank rows cannot slip through under deadline pressure.