Skip to content

Sales CRM pipeline histories for AI training

A sales CRM dataset is a record of how deals actually moved through a company's pipeline: opportunities with their stage changes, close-date pushes and amount edits timestamped, the emails, meetings and notes logged against them, and the final won or lost outcome with its reason. SourceX sources multi-year pipeline histories from established companies running Salesforce, HubSpot, Microsoft Dynamics 365 or Pipedrive, pseudonymizes accounts and contacts, and keeps the outcome labels that make the history worth licensing.

Dataset manifest

Sourced to your spec
What it is
Opportunity histories with stage changes, logged activities and won or lost outcomes
Typical systems
Salesforce Sales Cloud, HubSpot, Microsoft Dynamics 365 Sales, Pipedrive, Zoho CRM
Typical history
Multi-year pipeline histories; usable length varies by partner and CRM migrations
Modality
Structured opportunity tables plus free-text notes, emails and loss reasons
Delivery formats
Agreed per order; Parquet or CSV tables, or JSONL with one deal per line
Preparation
Accounts, contacts and email addresses pseudonymized; amounts banded where required
Licensing
Permitted use agreed per license; use as a lead or contact list excluded
Availability
Depends on partners holding usable multi-year CRM history; not guaranteed

What a delivery contains

Fields vary by source system and are fixed per order. A typical delivery includes:

FieldTypeWhat it holds
opportunity_idstringPseudonymous deal identifier, stable across the stage, activity and outcome tables.
accountobjectPseudonymous account ID with bucketed firmographics such as industry, employee band, region and customer status.
deal_typeenumNew business, expansion, renewal or upsell, as the partner classified it.
originobjectLead source and creation date, such as an inbound demo request, an outbound sequence or a partner referral.
stage_historyarrayEvery recorded stage transition with its timestamp, including backward moves and reopened deals.
close_date_historyarrayEach change to the expected close date, showing how often and how far a deal slipped.
amount_historyarrayChanges to deal value, currency and products over the life of the opportunity.
forecast_historyarrayPeriodic snapshots of the forecast category, such as pipeline, best case or commit.
buying_rolesarrayPseudonymous contacts with their role on the deal and a title band, without names, emails or phone numbers.
activitiesarrayLogged emails, calls, meetings and tasks with timestamps, direction and participant roles.
activities[].textstringEmail bodies and meeting or call notes, de-identified, where the partner logged them and rights allow.
competitorsarrayCompetitors recorded on the deal, kept or tokenized as agreed in scope.
outcomeobjectWon, lost or no decision, with close date, final amount and the reason as a code and free text.
post_saleobjectLater renewal, expansion or churn for won deals, where the partner links them.

Example record

{
  "opportunity_id": "opp_4c81e2",
  "account": { "id": "acct_19f0", "industry": "logistics", "employees": "1000-4999",
               "region": "EMEA", "existing_customer": false },
  "deal_type": "new_business",
  "origin": { "lead_source": "inbound_demo_request", "created_at": "2023-01-09T10:14:00Z" },
  "stage_history": [
    { "t": "2023-01-09T10:14:00Z", "to": "discovery" },
    { "t": "2023-01-27T16:02:11Z", "to": "solution_validation" },
    { "t": "2023-03-02T09:45:40Z", "to": "proposal" },
    { "t": "2023-04-18T13:20:05Z", "to": "solution_validation" },
    { "t": "2023-06-29T17:58:12Z", "to": "closed_lost" }
  ],
  "close_date_history": ["2023-03-31", "2023-05-31", "2023-09-29"],
  "amount_history": [
    { "t": "2023-01-27", "amount": 48000, "currency": "EUR" },
    { "t": "2023-03-02", "amount": 61500, "currency": "EUR", "change": "added_sso_module" }
  ],
  "forecast_history": [
    { "week": "2023-W12", "category": "commit" },
    { "week": "2023-W17", "category": "best_case" },
    { "week": "2023-W25", "category": "pipeline" }
  ],
  "buying_roles": [
    { "contact": "ct_a71", "role": "champion", "title_band": "director" },
    { "contact": "ct_b02", "role": "economic_buyer", "title_band": "vp" }
  ],
  "activities": [
    { "t": "2023-02-14T15:00:00Z", "type": "meeting", "attendee_roles": ["champion", "it_security"] },
    { "t": "2023-04-17T08:31:00Z", "type": "email_inbound", "from_role": "champion",
      "text": "Procurement wants a second quote first. [CONTACT_NAME] is pushing for [COMPETITOR_B]." },
    { "t": "2023-04-18T13:19:00Z", "type": "note", "author_role": "account_executive",
      "text": "Security review reopened and budget pushed to Q3. Moving back to validation." }
  ],
  "competitors": ["[COMPETITOR_B]"],
  "outcome": { "status": "closed_lost", "closed_at": "2023-06-29", "reason_code": "lost_to_competitor",
               "reason_text": "Lower price and an existing relationship with the economic buyer." },
  "post_sale": null
}

Synthetic record for illustration. Field names, structure and format are agreed per order.

What AI teams use it for

Train sales agents on what moves deals forward

Activities joined to the stage changes that followed them show which follow-ups, meetings and stakeholders came before progress, and which came before a stall.

Build win-probability and forecast models

Stage durations, close-date slips, amount changes and forecast calls, each with a known final outcome, are the labeled history a forecast model needs.

Evaluate pipeline-review agents on held-out deals

Freeze a deal as it looked on a past date and ask an agent to assess its risk or call the result. The real outcome is the answer key.

Automate CRM updates from emails and meetings

Logged communications paired with the field changes reps made afterwards teach models to propose next steps, stage moves and close dates.

Explain why deals are lost

Loss codes, free-text reasons, competitor fields and notes support classifying and summarizing loss drivers across segments and years.

Use-case guides: Sales agents, Private evaluation sets

What makes this data valuable

True field history

Timestamped changes to stage, amount, close date and forecast category, not a current-state export.

Reasoned outcomes

Closed deals carry a coded and a free-text reason, and no-decision outcomes are kept apart from competitive losses.

Linked activity

Emails, meetings and notes attached to the opportunity they belong to, with participant roles.

Stable stage definitions

Documented stages and exit criteria, with dates and a mapping for every pipeline redesign.

Post-sale follow-through

Renewals, expansions and churn tied back to the original deal show whether a win held up.

Segment breadth

Several segments, deal types and sales motions, rather than one product sold one way.

Record-keeping changes that look like sales changes

Some of the strongest patterns in a CRM history come from how the system was used, not from how deals were sold. When a company switches on automatic email and calendar capture, logged activity per deal jumps overnight, and a model that reads activity volume as seller effort learns the cutover date instead. A field that becomes mandatory in a given year makes every earlier deal look incomplete. When a rep leaves, their open deals move to a new owner, so unless owner history is kept, the owner on the record may not be the person who ran most of the deal.

Deletions bias the picture as well. Teams that delete junk or duplicate opportunities instead of closing them leave a history that looks cleaner and converts better than the real pipeline did. Knowing when these practices changed, and carrying the dates in the delivery's documentation, lets you model around them rather than learn them.

Labels that do not leak the outcome

Most uses of pipeline data are predictions made partway through a deal, so features have to be rebuilt as they stood at that moment. Amounts edited at signature, probabilities set to 100 when a deal closes and reasons typed in afterwards all give the answer away if they are read from the final record. The change log is what makes a point-in-time view possible, which is why it matters more than the final opportunity table.

Open deals need a decision too. Opportunities still open on the export date have no outcome yet, and dropping them tilts the data toward deals that closed quickly, so long enterprise cycles end up underrepresented. Keeping them as unresolved, with their age at export, preserves that information for models that can use it.

Splits deserve the same care. Deals at the same account, run by the same rep or closed in the same quarter share information, and renewals repeat the context of the original sale. Holding out by time and by account gives a more honest estimate than a random split.

What to check before licensing

  • Ask where stage, amount and close-date history comes from. Some CRMs keep history only for fields an admin chose to track, and some limit how long it is retained, so older years may need rebuilding from snapshots or a forecasting tool.
  • Get the stage definitions for every period covered. Pipeline redesigns rename, split and merge stages, and a history without a mapping table mixes incompatible labels.
  • Measure loss-reason coverage on the sample, including how often a catch-all value such as "Other" was picked just to get past a required field.
  • Look for bulk updates. Quarter-end or year-end cleanups that close stale deals in one batch create lost labels that reflect pipeline hygiene, not a buyer's decision.
  • Check for duplicate opportunities and accounts. Duplicates double-count outcomes, and merging records can leave one side's activity history behind.
  • Check pseudonymization where CRM data hides identities in unexpected places, such as opportunity names that embed the account name, email signatures, notes and custom fields.
  • Ask whether customer or reseller agreements restrict sharing deal terms. Prices and discounts can be confidential, and the partner may require banding, scaling or exclusions.

How licensing works through SourceX

  1. 1

    Define

    Send the domain, modality, volume, format, timeline and permitted use you need.

  2. 2

    Source

    SourceX identifies businesses that hold matching data and are open to licensing it.

  3. 3

    Qualify

    Fit, rights and quality are checked, and you review samples before committing.

  4. 4

    License

    Scope, permitted use, exclusivity, price and obligations are agreed in writing.

  5. 5

    Deliver

    Approved data is prepared, de-identified where required and transferred securely.

Questions buyers ask

Can I license a lead list or contact database through SourceX?

No. Standalone contact lists are out of scope. SourceX sources pipeline history, meaning how opportunities progressed and how they ended. Contacts appear only as pseudonymous IDs with a role on the deal and a title band, and the license can prohibit attempts to re-identify or contact anyone in the data.

Does a CRM export include the full stage history or only current values?

It depends on what the partner tracked. A plain export of the opportunity table shows only where each deal ended up. History comes from the CRM's history tables, field-history tracking, scheduled snapshots or a forecasting tool, and each source has its own gaps. Ask which fields have history and for which years, then check completeness on the sample.

How reliable are won and lost reasons as labels?

Less reliable than the outcome itself. Whether a deal was won is recorded accurately; why it was lost is often picked from a short list at the moment a rep closes it, sometimes just to satisfy a required field. Free-text reasons, competitor fields, notes and late-stage emails give a fuller picture, so check reason coverage and the spread of codes before treating them as ground truth.

Are email bodies and meeting notes included?

They can be, where the partner logged them in the CRM or a sales engagement tool and rights allow. Emails carry the prospect's own words, signatures and sometimes information about third parties, so they are de-identified before delivery, and some partners provide activity metadata only. Say in your request whether you need full text, metadata or both.

How are customer identities and deal values protected?

Account names become pseudonymous IDs and firmographics are bucketed, so a record shows an industry, an employee band and a region rather than a company name. Deal amounts are kept exact, banded or scaled, and competitor names are kept or tokenized, depending on what the partner agrees to. These choices are fixed in scope because they change what a model can learn, for example whether it can reason about discounting.

What happens to pipeline history when a company changes CRM?

Often some of it is lost. Migrations tend to carry accounts, contacts and opportunities across with their current values, while field history, stage timestamps and activity links can stay behind, and record IDs change. SourceX's partners typically hold multi-year pipeline histories, so ask which years are native to the current CRM, which were migrated, and whether exports from the old system survive, then check each era on the sample.

Evaluating this data for procurement?

Diligence packets are prepared per dataset. Rights, privacy processing and quality differ between datasets.

Request dataset diligence

Tell us what your models need

Send your spec — domain, volume, format, timeline and permitted use — and SourceX will match it against partner data and come back with what can be licensed.

Updated 3 October 2026. Own data like this? See how companies license it to AI developers.

See if you qualify