Knowledge base

Migrating from your CRM

Migrate from Salesforce

Pull a closed-lost opportunity report from Salesforce and bring it into Thawly.

Migrate from Salesforce to Thawly

Move your closed-lost opportunities from Salesforce to Thawly in 10 minutes. Salesforce gives you several routes to a CSV — this guide uses the Reports module, which works on every edition (Essentials through Unlimited) and doesn't need an admin to open up the Data Loader for you.

What you need

  • A Salesforce user with permission to Run Reports and Export Reports. Most Sales Cloud seats have this by default; if you can see the Reports tab in the top nav, you're set.
  • A modern browser. No SOQL, no Data Loader, no API token.
  • About 10 minutes.

If your org has tightened export permissions ("Export Reports" is sometimes pulled from non-admin profiles for compliance reasons), ask your Salesforce admin to grant it temporarily — or to run the export and send you the CSV. Either path is faster than the API route.

Step-by-step extraction

  1. Log in to Salesforce at login.salesforce.com and switch to Lightning Experience if you're still in Classic — the screenshots below assume Lightning.
  2. Open the Reports tab. Click New Report at the top right. [Screenshot: Salesforce Reports tab → New Report button]
  3. In the report-type chooser, pick Opportunities (use the search box if you can't see it). Click Continue.
  4. The report builder opens with a default opportunities report. Add the filters you need:
    • StageequalsClosed Lost (or whichever stage values your org uses for losses; ask your admin if you have custom names like Lost — Disqualified).
    • Close DateequalsAll Time if you want every lost deal ever, or pick a relative range like Last 3 Years for something more focused.
    • Show MeAll opportunities (otherwise you'll only see the ones you personally own).
  5. Add the columns you want by clicking Outline in the left panel, then dragging or adding fields. Recommended columns: Account Name, Opportunity Name, Amount, Close Date, Stage, Loss Reason (or your custom equivalent), Competitor (if it's a picklist on your opportunity object), Description, and any notes-style long text fields.
  6. Click Run at the top right to execute the report. Sanity-check the row count.
  7. Click Save — give it a name like Lost opportunities for Thawly and save it to your Private Reports folder so it doesn't pollute team dashboards.
  8. With the report still open, click the dropdown caret next to Edit (top right) and choose Export. [Screenshot: Salesforce report header with Export option in the menu]
  9. In the Export dialogue, choose:
    • Export View: Details Only (this gives you the row-level data Thawly needs — Formatted Report is for spreadsheets that mirror the Salesforce layout, which is harder to parse).
    • Format: Comma Delimited (.csv).
    • Encoding: Unicode (UTF-8) — pick this even if your data is plain ASCII; UTF-8 avoids weird character issues with British pound signs and accented account names.
  10. Click Export. Salesforce downloads the CSV directly.

Field mapping

Thawly's importer auto-maps any reasonable header. For reference:

  • Account Namename (best column for Companies House matching)
  • Amountdeal_value (GBP — see currency note below if you have multi-currency enabled)
  • Close Datelost_date
  • Loss Reason (or your closed-lost picklist) → lost_reason
  • Competitor picklist → lost_to
  • Description + any long-text custom fields → notes

If you only have Opportunity Name and not Account Name (rare, but happens in single-object orgs), Thawly will use the Opportunity Name and run Companies House matching on it — usually fine if your naming convention is consistent.

What to do with the Notes column

Don't pre-clean. Paste the raw Description field, the call-recording transcripts you may have stored as long text, the post-mortem note your AE wrote — all of it. Thawly's AI summarises long activity logs and extracts the structured signals (objection type, decision-maker title, competitor name, budget threshold) automatically. Trying to clean this up by hand is wasted effort.

If your team uses Tasks or Activities with detailed notes that aren't on the opportunity record itself, the cleanest route is to add Last Activity and Last Activity Description columns to the report — they'll come through in the CSV.

Common gotchas

  • Duplicate companies. Salesforce naturally creates one Account per company and many Opportunities per Account. Re-export with deduping at the Account level if you want a tidy list, but you don't have to — Thawly de-duplicates on lower-cased company name on import, so a CSV with three lost deals against Pendle Civils Ltd produces one company entry.
  • Currency mismatches. If your Salesforce org has multi-currency enabled, the Amount column is in the opportunity's local currency. Use the Amount (converted) column or the Amount in [your corporate currency] column instead — and make sure that corporate currency is GBP if you're a UK team. Mixing currencies in one CSV will mess up prioritisation.
  • Multi-pipeline issues. Salesforce calls them Sales Processes rather than "pipelines", but the principle is the same. Filter to the opportunities that flow through your real revenue process — not the partner-channel process or the renewals process. Forecast Category = Omitted is a useful tell for "this was lost on the sales side"; Forecast Category = Closed with IsWon = false is the standard "closed lost" definition.
  • Stale "won" or "open" deals. Watch for stages named Closed Won — Churned that mean an existing customer left, not a deal you lost. Filter on IsWon = false in addition to your stage filter to catch these.
  • Loss reason is a picklist with terse codes. Many orgs have lost reasons like LR-001 or Other. That's fine for Thawly's AI — the message will just stay generic. If you want sharper drafts, expose the longer Loss Reason Description field (if you have one) on the report.

What happens next

Drop the CSV at thawly.co.uk/upload. We auto-map the columns, run a Companies House lookup against every Account Name and give you a per-row preview before any data is imported. Bad matches and rows you want to skip can be fixed in one click on the preview screen.

After import, Thawly starts monitoring on the next signal-source pass. The first digest lands when there's actually something for your team to act on — see Reading your digest and the Dead deal recovery overview.

Coming from a different CRM?

For the bigger picture, read Buying signals in B2B sales.