Bring in your existing contacts and reach out to them

Import a spreadsheet of contacts, check how every row landed and settle anything held, then message them or add them to an outreach stream.

3 min read Updated October 15, 2026

By the end, your existing book of contacts is in Subcontext as leads, anything unclear has been settled, and you've sent them a message or started an outreach stream, only on the channels they agreed to.

You'll need

  • A CSV or Excel file with an email or phone column for each person (up to 10,000 rows).
  • Anyone on the team can import. Only owners and managers can record consent for a whole file, and settle items in Review.
  • Outreach streams on your plan, if you want to use one.

1. Import the file

  1. On Leads, open the menu next to New lead and choose Import from spreadsheet.
  2. Choose the file and press Upload & preview. Nothing is imported yet.
  3. Under Who each row is, check the email, phone and name columns. Every other column is kept with the lead and read for details.
  4. Under This book has consent to be contacted by…, tick only the channels these people really agreed to. With nothing ticked, they can't be cold-messaged until they get in touch.
  5. Optionally choose a Campaign, so you can find this group later.
  6. Press Import.

Every row goes through the same checks as a lead from an integration. People you already know are updated, not duplicated. Workflows set to run when A lead arrives run for each row, so pause any you don't want firing first.

2. Check how it landed

Open Past imports from the same menu. Each file shows how many rows Landed, Needs a person, were Discarded or Failed. Counts fill in as rows are processed, so refresh to watch.

3. Settle anything held

Press the Needs a person number to go to Review: - Held leads failed the campaign's rules. Open each, then Accept anyway or Reject. - Ambiguous identities could belong to more than one person. Choose who, Someone new or Discard. - Possible duplicates: press Review the pair, choose which to keep and Merge. Merges can't be undone.

4. Reach out

  1. On the leads list, filter by the campaign you chose. Tick the leads, or Select all matching (up to 500).
  2. Press Actions, then either:
    • Send message: the Reach panel shows how many can be reached on each channel, and who is out of reach and why. Pick a channel, write the message or use Draft with AI, choose whether the agent handles replies, and press Send.
    • Add to outreach stream: choose a stream. The preview shows how many messages will go out and Who is being left out, before you confirm.

Outside your contact hours you'll see a warning. Bulk messages sent then are queued and go out when contact hours begin.

Check it worked

  • Past imports shows the file as Done.
  • Sent messages appear on each lead's timeline, and replies land in the inbox.

If something goes wrong

  • Nobody can be reached: consent wasn't recorded at import. Once someone tells you they agree, record it with Edit on their lead page.
  • Rows failed or were discarded: check each row has an email or phone in the column you chose.

See Importing leads, The review queue and Consent, TPS and vulnerable customers.

Or ask the assistant: it can do these steps for you, asking before each change.

Using Subcontext?

Sign in and the assistant can do these steps for you. New here? We'll show you around.

Sign in Talk to Subcontext