Skip to content

Capture surface

CSV email list import

Moving an existing list in. Rows are validated in the background, invalid ones are reported, and existing contacts update rather than duplicate by default.

What it records

  • The consent basis when the import changes a contact to subscribed
  • The import job and its result
  • Nothing about a page — there was no page

There is no page-level context to keep, so none is stored. Imports that change a contact to subscribed retain the consent basis in a consent event; the job retains validation results.

Setting it up

Upload the CSV with an email column. If contacts are imported as subscribed, provide the consent basis; the background job reports invalid rows and skipped suppressed addresses. Existing contacts are updated by default; set update_existing=false to skip them.

Setup docs: add a signup form to a website · capture emails from an API · signup provenance fields · double opt-in and suppression.

Other surfaces