All help pages

Importing an existing subscriber list from a CSV

The file format Brieva accepts, what happens to each row, why every imported address still gets a confirmation email, and the rules on where a list can come from.

The short version

  • One address per line: email, then optional first name, then optional tags separated by | or ;. A header row is fine and is skipped.
  • Every imported address is stored as pending and sent the same confirmation email a form sign-up gets. They join the list only when they click it.
  • Up to 500 rows per request. The app splits a bigger paste into batches for you.
  • Duplicates of readers already on the list are skipped, invalid addresses are counted and skipped, and the import stops at your plan's subscriber cap.
  • Bought, rented or scraped lists are not allowed. Import only people who asked to hear from you.

What the file looks like

Brieva reads plain CSV. The first column is the email address. The second, if present, is a first name, which is used for the greeting in every issue and in the welcome email. The third, if present, is one or more tags separated by a vertical bar or a semicolon. Any further columns are ignored.

You can include a header row; Brieva detects it because the first cell is not an email address. Quotes around cells are handled. Line endings from Windows, Mac or Linux all work.

email,first_name,tags
jo@example.com,Jo,vip|auckland
sam@example.com,Sam,
priya@example.com,,trade

How to import

Open the newsletter, then the Subscribers panel, and click Import CSV. Either paste the rows into the box or choose a file with the file picker; the file is read in your browser and shown in the box so you can check it. Click Import and send confirmations.

A summary appears when it finishes: how many were imported, how many were already on the list, how many were invalid, and how many were over your plan's cap. Anything the summary does not mention did not happen, so if a number looks wrong, check the file and try again; re-importing the same rows is safe because existing readers are skipped.

Why imported readers still confirm

Brieva is double opt-in for every list and there is no switch to turn that off. An imported address is stored as pending, receives the confirmation email, and becomes active only when the reader clicks. This is what keeps your sending reputation clean: nobody receives an issue who has not personally confirmed they want it from this address, and addresses that no longer exist bounce on a single confirmation rather than on every issue.

It also means an import is not instant. Expect a portion of any older list never to confirm. That portion was not going to open your newsletter anyway, and carrying them would have cost you deliverability with everyone else.

Pending readers show in the Subscribers panel with a Resend confirmation link, rate-limited to two per hour per address.

Tags on import

If the newsletter has tags set up under Tags & segments, a tags column on the import applies them to each reader, which is the quickest way to segment an existing list. Tags not in the newsletter's vocabulary are still stored on the reader, and the import summary lists them so you can add them to the vocabulary or fix the file.

Tag names are lowercase letters, numbers, hyphens and underscores, up to 32 characters. Anything else is dropped from that row.

Limits

Each request handles up to 500 rows; the app breaks a bigger paste into 500-row batches and sends them one after another. Imports are rate-limited to twenty batches per newsletter per hour. Rows that would take you past your plan's subscriber cap are counted as capped and not imported; upgrade or remove readers, then import again.

CSV import is available on Solo and above. On Free the panel explains and links to Billing.

Where can the list come from?

Only from people who gave you their address expecting to hear from you: customers, event attendees, people who signed up on a previous platform. The Acceptable Use Policy prohibits purchased, rented or scraped lists, and Brieva's reputation guard will pause a newsletter whose bounce or complaint rate climbs past its thresholds, which is exactly what a bad list produces. Import the readers you actually have, and grow from the sign-up form.

Ready to set it up?