One of 18 jobs

Take your contacts and email consent anywhere

Runner creates a versioned, read-only export of your contacts with the source, email consent state and opt-out state already attached to each one. It reports; it never rewrites what it reports.

Built into Runner

  • Contacts with their email consent and opt-outs, in one versioned export
  • Where each contact came from, carried with it
  • A read-only snapshot that leaves the live record untouched

Worth knowing

One export covers one product's contacts, read in a single request — check its row count against your directory — each carrying the email consent state already on its record — including unknown where no basis was recorded — and any opt-out. Permission for calls and for each messaging channel is kept separately and stays out of the file.

Your export arrives with each contact's permission already attached

Say you're moving your newsletter to a different email tool next week. On the contacts page, Migration export gives you two downloads: a CSV for anything that reads a spreadsheet, and a JSON file with the full evidence.

Each contact comes out with its email consent state for that product — subscribed, unsubscribed or unknown — where that consent came from and when, the date they opted out if they did, whether they're on your organisation's opt-out list and why, and every source Runner saw them through, with the first and last time it did. Runner records four opt-out reasons: a bounce, a complaint, an unsubscribe or a manual opt-out.

Consent is held per product and opt-outs across the whole organisation, and the file carries both. Someone subscribed to this product who bounced on another leaves with both facts on the same row.

The JSON is the version of record. It carries a format version, the moment it was generated, the row count, and first-seen and last-seen times for every source. The CSV flattens each source to a system and ID pair, for tools that don't read nested data.

The export reports what's recorded, and never fills a gap

A contact with no recorded basis leaves as unknown. The export never infers a consent state to make a file look complete, because a basis invented on the way out is one your next system would rely on without anyone having given it. Unknown in the file means exactly what it means in Runner.

Building the file writes nothing to your contacts. The one thing an export adds is a line in the log: who ran it, which format, and how many rows.

Exporting is a permission of its own. A teammate without it is told which permission to ask a product admin for, rather than handed a file with pieces missing.

One small thing, done on purpose: in the CSV, any cell that starts with =, +, - or @ gets a leading apostrophe, so a spreadsheet opens it as text and never runs it as a formula.

Try it

Open the CSV and filter the consent_state column to unknown. Those are the people nobody has recorded a basis for, and your next tool should start them in the same place.

Carry the evidence across, and know where the file stops

The next tool only has to read a file. It does need somewhere to keep the evidence. If it holds one subscribed field per person, map consent_state to it and bring consent_source and consent_at across as custom fields, or the proof behind each yes stays behind in the file.

Opt-out reasons use Runner's four words, so map them to the new tool's own terms rather than assuming they match. Source links say where Runner saw a person, not where the new tool will file them.

One export covers one product's contacts, as they stand when you click, read in a single request — so check the row count against your directory. It's a snapshot rather than a live sync, so run it again after anything changes. The consent in it is email consent: permission for calls and for each messaging channel is kept separately and stays out of this file, and so do deals, conversations and notes.

Questions buyers ask

Can I export contacts with their consent status?

Yes. Migration export on the contacts page downloads a product's contacts, each with its email consent state, where and when that consent was recorded, any opt-out and its reason, and where the contact came from, as CSV or JSON.

What happens to contacts with no recorded consent?

They leave as unknown. The export reports the state already on each record and never infers one, so your next system starts from what was actually recorded rather than a guess made to fill the column.

Is the export a live sync to another tool?

No. It's a file built from the record at the moment you run it, with no connection to anything on the other end. Run it again when you need a newer copy.

Who can export contacts, and is it logged?

Anyone with the contacts export permission. Everyone else is told which permission to ask a product admin for, and every export is logged with who ran it, the format and the number of rows.

Does the export include deals or conversations?

No. This file is the contact record: people, their email permission, their opt-outs and where they came from.

Use what already works

The file travels with you to whatever comes next, rather than a live connection to it. Nothing on the receiving end has to know what Runner is — which is the entire point of being able to leave.

How teams often buy this job

Nothing is usually bought for this job — it is a support ticket.