Matching your old CRM's stages to ours

Your stage names don't have to match ours — the importer maps them for you, and shows what each one will do to those leads.

Who this is for

Anyone importing a file that has a stage, status or disposition column — which is most exports from a real CRM.

Steps

  1. Import as normal. If a stage column is detected, a "Stages" step appears after column mapping.
  2. The importer lists every distinct stage in your file with a count, and a suggested match.
  3. Check each one. Under every row it tells you what will actually happen to those leads — dialable, not prospected, or suppressed entirely.
  4. Leave anything you're unsure about as "Import as a new lead". That's the safe default and always workable.
  5. Continue to the preview and import.

Why you can't just bring your own stages over

Our stages aren't labels — they're wiring. A lead's stage decides whether it appears in the dialer queue, whether the AI is allowed to text it, and which automations fire. Importing a stage we don't know wouldn't put the lead somewhere slightly wrong; it would put them nowhere. They'd match no pipeline column and no dialer filter, and quietly disappear from every queue while the import reported success. So foreign stages are always translated, never stored raw.

You can still call them whatever you like

The naming half of the customization is separate and fully supported: under Pipelines you can rename any stage to your own wording. The behaviour stays attached to a stable key underneath. So "I want my stages" usually resolves to renaming ours plus mapping your data onto them once, at import.

Nothing is lost

Whatever your file said is preserved on every lead under a custom field called "Original Stage", whether it matched or not. You can search and filter on it, and if a mapping turns out wrong you still have the truth to fix it from.

The guesses

Most common vocabularies are recognised already — Closed Won, Quoted, No Answer, Left VM, Nurture, DNC, Not Interested and so on, across GoHighLevel, HubSpot, Salesforce and the dialer platforms. Compound stages like "Sold - Pending Issue" are matched on the most specific part. Anything unrecognised defaults to a plain new lead rather than a guess.

How to check it worked

  • On the Stages step, check the count next to each stage against what you expect from your old CRM.
  • Read the summary line under any stage you mapped to something terminal — it tells you how many leads will not be contacted.
  • After importing, open a lead and confirm "Original Stage" holds what their old CRM said.

Common mistakes

  • Rushing the step and accepting a suggestion for a stage that means something specific in your agency.
  • Mapping an ambiguous stage to something terminal. If in doubt, leave it as a new lead — a workable lead gets noticed, a suppressed one doesn't.

Related

Where this lives in the app

This is documentation for Virtual Closer. Book a walkthrough or sign in.