NVG8

Case study

Two data sources, one clean dataset, and the end of twenty-hour SI prep calls

A Salesforce-native ISV had years of sales qualification notes (AE observations, SE technical detail, multi-call discovery summaries) sitting in Google Docs, attached to opportunities, going nowhere. They also had a Salesforce instance full of clean structured deal data, and neither was useful on its own. Here is what we built when we combined them.

Josh Weckesser · June 2026 · 8 min read

The problem was not a lack of data

The partner marketing lead at this ISV had a specific, measurable problem: preparing for a single SI meeting in the healthcare vertical took three days. Not because the information did not exist (it did, buried across dozens of qualification sheets from two years of sales calls) but because no one had ever made it queryable.

The underlying challenge was actually two problems stacked on each other. First, the company lacked a strong field relationship with Salesforce. Without relevant, recent, industry-specific stories to share, every conversation with a Salesforce AE stayed at the surface: transactional, product-feature-level, forgettable. Second, when System Integrators asked which customers the ISV had in their industry, the honest answer was: we probably have some, but we would need a few days to find and document them.

The symptom was slow prep time. The root cause was unstructured data that nobody had ever cleaned.

The build, step by step

This is not a complex system. That is the point. It is a sequence of specific, individually simple steps, each one producing a cleaner or more useful version of the data than the step before it. The sophistication is in the sequencing, not in any single prompt.

Step 01

Standardize the unstructured data

Every sales qualification sheet was a raw notes document: an AE typing observations from call one, an SE adding technical detail from call two, notes from the discovery session a month later. No standard format, no consistent categories, no way to query across them. We ran the full set through Claude with a structured prompt: extract industry, customer pain, solution fit, payment gateway in use, and the primary reason this customer chose the product. The output was a CSV. Messy input, clean output. That is exactly the kind of task where AI earns its keep before you get to anything clever.

Step 02

Enrich with standard categories

The raw notes used inconsistent industry labels: 'health system,' 'hospital,' 'provider group' all meant the same vertical. We ran a second pass to normalize every record against a standard industry taxonomy. This sounds trivial. It is not. Without it you cannot group records by vertical, you cannot spot patterns, and you cannot answer the question a partner asks thirty seconds before a joint customer call: 'what's your best story for healthcare?'

Step 03

Cross-reference with Salesforce opportunity data

Each qualification sheet was attached to a Salesforce opportunity. That meant we had a structured record for every deal: open date, close date, stage, deal value, won or lost. We joined the two datasets on the opportunity ID. Now every row in the master sheet had the unstructured why (why the customer chose the product, what problem they were solving, which competitor they evaluated) alongside the structured what: deal size, outcome, close date. Salesforce can tell you what happened. Qualification notes can tell you why. Combined, they are actually useful.

Step 04

Build the query layer

We created a custom GPT loaded with the master dataset as context. The query pattern was simple: describe a meeting or a partner, ask what to reference. 'I'm meeting with a regional bank's VP of Commercial Lending who is evaluating payment automation inside Salesforce Revenue Cloud. What should I lead with?' The response pulled from real customer data: a named reference in the same vertical, the qualifying questions that moved that deal forward, the objections that came up and how they were handled. Not generic best practices. Actual pattern-matched intelligence from the company's own history.

Step 05

Generate field-ready content

Salesforce's partner marketing team accepts win stories in a specific format: a brief, templated document that their internal systems can surface to AEs searching for relevant references. Building these manually required finding the customer, writing the narrative, fitting it into the template, and getting it approved. We generated them from the master dataset. Any record with a confirmed win, a documented outcome, and a referenceable customer became a draft win story in the Salesforce format in minutes. We also generated industry-specific PowerPoint decks for SI meetings, the same content that had previously required Bryan three days of manual compilation, now produced in a single prompt run against the dataset.

Step 06

Add adversarial review

The final step, one we would build in from day one if doing this again, is a judge model. After generating any outward-facing content, a second AI pass reviews the output against the original source material and flags anything that was overstated, misattributed, or fabricated. AI hallucination in a customer reference or a win story is not a minor error. The adversarial review step catches it before it reaches a partner or a Salesforce AE. Different model than the generator, different prompt, one job: find where the output diverges from the source. The review found issues on roughly one in five outputs in early runs: stories where the AI had extrapolated beyond what the notes actually said.

What changed

The most direct measurement: the healthcare SI prep that had taken twenty hours could be done in five minutes. That is not a rounding error. It is a different category of work. The difference between a task that takes three days and one that takes five minutes is not speed. It is whether you do it at all.

Beyond the time savings, the quality of partner conversations improved. Instead of pitching product features, the partner lead could walk into an SI meeting with the top three customer references in that vertical, the qualifying questions that moved those deals forward, the specific use case patterns the ISV had seen across similar customers, and the objections likely to come up based on actual deal history. That is a meaningfully different conversation.

The Salesforce field relationship improved for the same reason. AEs ask one question in every co-sell situation: do you have a customer like mine? The answer was now immediate, documented, and formatted for the Salesforce partner marketing system. Win stories that had never been created because the manual process was too slow were produced in a single run.

What made it work

Single-step prompts do not work. Sequences do.

Every step in this workflow did one thing. Standardize the format. Normalize the industry labels. Join the datasets. Generate the content. Review the output. Asking a single prompt to do all of this produces mediocre results across every dimension. Breaking it into a chain, where each step produces a clean artifact that feeds the next, produces results you can actually use.

The value is in the join

Salesforce records tell you what happened. Sales qualification notes tell you why. Neither dataset is especially useful without the other. A won deal at $40K in the healthcare vertical does not help you in an SI meeting unless you also know the customer was a regional health system consolidating billing across three revenue cycle vendors, that the key qualification question was whether the product integrated with Epic, and that the deal accelerated when a specific SE built a custom demo org. That detail is in the notes, not the CRM.

Start with the most painful, most measurable problem

We did not start by trying to build a comprehensive partner intelligence platform. We started because someone spent three days preparing for a meeting and said out loud that it was not sustainable. That specificity (a named task, a documented time cost, a clear definition of done) is what makes an AI workflow project tractable. ‘We should use AI for our data’ is not a project. ‘We need to cut SI prep time from twenty hours to five minutes’ is a project.

What we would do differently

Build the adversarial review in from day one

We added the judge model pass after seeing early outputs overstate customer outcomes. It should have been step one of the design, not a retrofit. Any workflow generating outward-facing content (win stories, partner pitch decks, field enablement materials) needs a validation step that checks the output against the source. The incremental cost of adding this step is low. The cost of a hallucinated customer story reaching a Salesforce AE is not.

Capture the ‘why’ at the moment it is fresh

The qualification sheets were useful because they contained real sales intelligence. But many of them were incomplete or inconsistently structured because the reps who wrote them had no reason to standardize. The right fix is upstream: a lightweight post-call template that captures the five fields you actually need, filled in while the conversation is still fresh. The AI cleanup step gets cheaper when the inputs are cleaner.

This dataset is also a sales tool, not just a partner tool

We built this to solve a partner marketing problem. We should have scoped the AE use case in parallel. The same query pattern (‘I am meeting with this type of customer, what should I know’) is equally useful for an AE preparing for a new prospect call. The dataset already existed. Extending it to the sales team required nothing more than a different audience for the same interface.

The takeaway

Most companies do not have a data problem. They have a data usability problem. The information exists (in call notes, qualification sheets, deal records, email threads, Slack messages) but it has never been cleaned, joined, or made queryable. AI does not create the intelligence. It makes the intelligence that already exists accessible.

The practical implication: before building anything, look for the highest-friction manual task in your current workflow. Find the thing that takes days and should take minutes. That is where to start, not because it is the most ambitious use of AI, but because it is the most tractable, the most measurable, and the most likely to produce a result that earns permission to do the next thing.

If you are sitting on a pile of unstructured sales data and a Salesforce instance that tells you what happened but not why, the Workflow Design Hour is the fastest way to scope whether this pattern fits your situation. Bring the messy data. We will figure out what to build from it.