Uploading your own list
An uploaded list enters through prospect_upload, which reads a spreadsheet or delimited file, turns each row into a prospect record, and puts every one of them through the same identity, evidence and compliance rules a discovered prospect goes through. A row you supply is not privileged: an address on it is still recorded with its provenance, and no missing address is filled in.
The file#
Uploads go through the same file service everything else in Connect uses — file_workspace over media_assets, already workspace-scoped and under row-level security, which is why an import needs no new storage and inherits the isolation the rest of your data has. CSV, TSV and XLSX are read with the standard library.
The Data grid at #/data has a prospects sheet with its own import, and it is the same path: the grid is a view over records, not a second database, and every change it makes goes through the service that owns the record. Importing there and importing from the prospects screen produce identical rows.
What a row needs#
A row must identify an organisation or a person well enough to be resolvable. Everything else is optional, and optional means genuinely optional — a row with a name and a town becomes a researched prospect with no contact method, which is a normal and useful state here rather than a broken one.
| What you supply | What Connect does with it | What it does not do |
|---|---|---|
| Organisation or person name | Uses it to resolve and to research | Does not treat it as verified because you typed it |
| Location | Narrows research and matching | Does not infer a location from a name |
| An email address | Records it with provenance: supplied by you, in this import, on this date | Does not test deliverability by sending to it |
| No email address | Keeps the prospect, sets a next action that is not email | Does not generate one from a name and a domain |
| Free-text notes | Kept against the record as your own claim | Does not promote it to an evidence-backed claim |
What happens to a row that fails#
A failing row does not stop the import and is not silently dropped. It is reported back with the reason, so the correction you make is to a handful of rows rather than to the whole file.
- Unreadable or empty row
- Skipped and listed. Usually a trailing line or a merged cell in the source spreadsheet.
- No resolvable subject
- Rejected. A row with an address and nothing else does not describe an organisation Connect can research.
- Resolves to an existing customer
- Not imported as a prospect. It is reported as a match so you can see who it was, because prospecting somebody you already serve is the failure this check exists to prevent.
- Resolves to a prospect already on your list
- Merged into the existing record rather than duplicated; supplied fields fill gaps and do not overwrite evidence-backed ones.
- Address on the suppression or do-not-contact list
- Imported as a prospect, but not contactable. The suppression is shown with its origin and is not cleared by an import.
After the import#
Read the import summary before doing anything with the list.
Result Rejected rows, customer matches and merges are all in one place; this is the only moment when they are easy to act on.
Let research run over the new rows.
Result Qualification, the fit reason and contactability come from research, not from your file, so an unresearched import looks thin until this finishes.
Check the counts above the list against the number of rows you sent.
Result The difference is exactly the rejections and merges in the summary. If it is not, the summary is the thing to trust.
Uploading the same file again is safe and is the normal way to add columns you did not have the first time. Matching happens per row, so the second pass merges rather than duplicates — and a field Connect has proved for itself is not replaced by an unevidenced value from your spreadsheet.
Questions#
Will Connect verify the addresses in my file?
It records them with provenance and treats them as contactable, but it does not probe them and does not send test messages to prove they exist. The first real signal is a bounce or a reply, and a bounce feeds suppression the same way it would for any other address.
Can I import a list and start outreach immediately?
The compliance check and sender readiness still run per message, so an import does not shorten the path to a send. What it skips is discovery, not the gates. Rows that arrive suppressed stay uncontactable.
What happens to rows with no email at all?
They are kept. A researched prospect with no address is a legitimate record with a different next action — a call, a form, a person to find — and it is counted separately in the headline numbers above the list.