Uploading a Contact List Without Creating Duplicates
Turn a CSV into a matched, de-duplicated list that lands in Salesforce as a membership value.
The Upload List wizard turns a CSV of people into something your team can act on. SignalRx matches every row against the records you already hold, removes duplicates, optionally fills in missing contact details, and hands the result back to Salesforce as a named list.
Why upload a list instead of importing it
A CSV from a conference, a webinar, or a partner is almost never clean, and importing it straight into Salesforce inherits whatever is wrong with it. Run it through SignalRx first and three things happen before anything is written.
- Match. Every row is resolved to a real person and company by triangulating the company website and domain, LinkedIn and other social, and third-party data against the records you already hold, not a single lookup, then matched against the Leads, Contacts, and Accounts you already have. The company domain drives the web and social resolution.
- De-duplicate. Matched rows attach to the existing record rather than creating a second one. Nothing is created for someone you already know.
- Enrich. Rows missing an email address or a phone number can have one sourced from web and third-party sources, and validated, before the list syncs.
The list name is the payoff. Whatever you call the list is written into the GW list membership fields on every member's record, and that is the value your Flows, reports, list views, and marketing platform key on. Name it as if a colleague has to recognise it in a report six months from now.

01 · Setup
List name
Type the name first. The helper text under the field is not decorative: this name appears in Salesforce and can't be changed after upload. Use the same naming convention you use for Revenue Plays, since both land in the same field.
What kind of upload is this?
Picking the right one is the only real decision in the wizard.
| Upload kind | Use it when | What SignalRx does |
|---|---|---|
| New contacts | People who may not be in Salesforce yet: an event scan list, a partner referral sheet. | Matches them to existing records where it can, and treats the rest as new. |
| Already in Salesforce | You exported the rows out of Salesforce, worked on them in a spreadsheet, and want them back as a list. | Matches on the Salesforce record ID, so no duplicates are created. |
| I already have GW IDs | You are working from a SignalRx export and only want to group records SignalRx has already processed. | Paste or upload the GW IDs. Nothing is re-processed and the list is ready straight away. |

Create new records in Salesforce
This checkbox decides whether the upload can write new records. When it is ticked and SignalRx cannot match an uploaded contact to an existing record, it creates the Lead or Contact and the associated Account as required. Untick it and the upload is read-only against your org: matched people join the list, unmatched people never appear in Salesforce.
Untick it for the first upload from any new source. Run the file, look at what matched and what did not, then decide whether that source deserves to create records. A few thousand badge scans is exactly the file you do not want creating Leads unreviewed.
Enrichment
Two optional checkboxes fill in missing contact details before syncing: source missing email addresses and source missing phone numbers. They only act on rows where the value is absent, so nothing you supplied is overwritten. Tick them when the list will be worked, not when you are staging data.
02 · Upload
Drop in the CSV. One header row, one person per row. A first name, last name, and either an email address or a company plus job title gives the matcher enough to work with. Company domain is the most useful extra column.

03 · Map columns
SignalRx proposes a mapping from your column headers to its fields; you confirm or correct it. The fields are grouped: Required (first and last name), Contact Identifier (email, LinkedIn URL, job title, at least one), Company Information (company name or domain, at least one), and Optional (lead source). Columns you do not need can be left unmapped. Check the company and email columns carefully, because they carry most of the matching weight.

04 · Review
The last step shows the rows exactly as they will import, under the list name, upload kind, and file name you chose, with a count of how many rows will import. Read this screen. If a column looks wrong, or the count is not what you expect, the usual causes are a company column that did not map, a file of personal email addresses, or the wrong upload kind on a file that came out of Salesforce. Go back rather than import. Nothing is written to Salesforce until you click Import.

What happens in Salesforce afterwards
SignalRx polls Salesforce on a roughly twenty-minute cycle, so the list appears within the next cycle rather than instantly.
- Every member carries the list name in its GW list membership field:
GW Contact List Membershipson Contact and Lead,GW Company List Membershipson Account and Lead. The fields are multi-select, so a record can sit in several lists and Revenue Plays at once. - New records appear only if you ticked the box, and only for rows that did not match. SignalRx writes standard fields only when it creates a record, and it respects your duplicate rules.
- Enriched values land in GW fields, not standard ones.
GW Contact EmailandGW Contact Phone Numberhold what was sourced from web and third-party sources and validated; the packaged Data Hygiene Flow copies them into the standard fields when those are blank.

The SignalRx Intelligence Card on each record shows the result of the enrichment at a glance: the person's Fit score and buyer segment, a short description, and the company SignalRx resolved for them, with its own score.


From there the list behaves like any other membership value. Filter a list view on it, report on it, or build a record-triggered Flow with contains as the operator and the list name as the value. See Getting Started with SignalRx for Salesforce.
FAQ
Can I rename a list after upload? No. The name is written into Salesforce and is fixed once the upload runs. Upload again under the right name.
What if the same person is in two uploads? They join both. Membership is multi-select, so the second upload adds a value rather than replacing one.
Does an uploaded list refresh itself? No. An upload is a fixed set of people. A Revenue Play is the evergreen equivalent: it re-evaluates continuously and members join and leave on their own.
Will an upload overwrite data a person entered? No. SignalRx writes to blank GW fields and never overwrites a human edit.
.avif)