Whitepaper and LLM instruction set · Sturdy × Claude

The page they open first.

The Portfolio Cockpit is an LLM instruction set that builds a CSM's daily working surface from what customers actually said, ranked by the money and dates in your CRM. Every claim on the page carries the customer's own sentence.

What the Portfolio Cockpit actually is

The thing
A Claude project. You paste an instruction set into the project's custom instructions and upload one HTML template to its files.
To run it
Ask for your cockpit. It detects what is connected, retrieves, computes, and renders one page.
It replaces
The cockpit, home page, or portfolio view in your CSP. It does not replace your CRM.
Permissions
It reads and it renders. The only write is one Salesforce activity record, after you confirm exactly what will be written.
Requires
Sturdy connected as an MCP server. Your CRM is optional and adds money, dates, and ownership.

Part 1 · The old way

Most portfolio views know a great deal about what customers did and very little about what customers said.

Every Customer Success Platform ships one. On paper it is exactly the right surface. Many are quietly abandoned after onboarding. That is a design problem, not a training problem.

Part 1 · The old way

The problem: what a portfolio view is built from, and why nobody can defend the score.

Part 2 · The new way

Our solution: detection from customer language, prioritization from the CRM, evidence under every claim.

Part 3 · What you get

The setup, the activity record, and the honest limits.

Part 1 · The old way

The most valuable customer data is already there

Customer language lives in email, Slack, support conversations, meeting transcripts, and call notes. It is where customers explain what they need, what is frustrating them, what they have committed to, and what they might buy next. It is some of the richest intelligence a company has, and it is remarkably difficult to use at scale.

Most systems built to understand customers were designed around structured data: product usage, CRM fields, survey scores, renewal dates. Until recently there was no practical way to read all the language, so companies asked people to summarize the conversations themselves. That decision sits underneath most of the problems with modern Customer Success tooling.

A CSM carrying twenty to sixty accounts does not have a reporting problem. They have a triage problem.

Every morning, some portion of the book needs attention and the rest does not. The job is to find that subset quickly, act on it, and avoid discovering problems for the first time on a renewal call eight weeks later.

Part 1 · The old way

Three reasons the category version fails

The human is the ingestion layer

The page is assembled from telemetry, surveys, CRM fields, and whatever the CSM remembered to log. Telemetry tells you what someone clicked, not what they think. Surveys are intermittent. CRM fields hold only what someone took the time to enter. The critical context sits untouched inside the conversations.

It is configured in advance, so it is generic by construction

Thresholds, alert rules, and playbooks are authored months before the situation they are meant to interpret. A rule written in advance cannot know that the person raising a concern is the same executive who stopped replying three weeks ago, or that the customer just started using the word "procurement."

It shows state, not change

A page that shows the same eleven amber accounts every morning teaches the user that opening it produces nothing new. A daily surface needs a diff: what changed, what moved, what went quiet, what came due.

An account appears green because usage is strong, even though the champion said on a call that their budget is under review. The customer already told the company what was happening. The system was not listening.

Part 1 · The old way

Two failures underneath those

Signal-only systems make quiet accounts look healthy

One of the strongest risk signals is the absence of communication. An account that stops responding generates no alert, no threshold breach, and no new sentence for a rules engine to classify. It stays green right up until the renewal does not happen.

Nobody can defend the health score

Composite scores blend usage, surveys, support activity, and custom weighting few users understand. Ask a CSM why an account is yellow and the answer is that it is what the system says. Once the score cannot be defended, it stops being treated as information.

A score without explanation is decoration. A score with evidence is useful.

Part 1 · The old way

The test that matters

Does the CSM still open it on day thirty without being told to, and can ten minutes with it end in three clear decisions? Everything below was designed against that standard.

Part 2 · The new way

Detection and prioritization are different jobs.

The most important structural decision in this build is separating them. The Sturdy Corpus supplies detection. The CRM supplies prioritization. Money and time.

Part 2 · The new way

Two layers, one page

Detection

The Sturdy Corpus

What the customer said, in their own words.

  • Signals with the original language attachedIngested across email, Slack, support systems, and meeting transcripts.
  • Risk, sentiment, requests, commitmentsPlus expansion interest, silence, and relationship breadth.
  • Resolution state and directionWho spoke last, and whether the thread was closed.

Prioritization

Your CRM

How much money is attached and how soon it matters.

  • ARR and renewal close datesMoney and dates come from the CRM or they do not appear.
  • Opportunity stage and ownershipOpen opportunities closing in the current fiscal quarter.
  • OptionalThe cockpit finds risk, silence, open loops, single threading, and expansion without it.

The CRM ranks findings by how much money is attached and how soon it matters. Useful, but downstream of the finding itself.

Part 2 · The new way

The components, and why each earns its place

Every element either changes what the CSM does today or explains why an account is in the state it is in. Nothing else belongs on the page.

Next three actionsRanked by value at stake and time remaining. Capped at three.
1

Get ahead of the Northwind procurement review before Friday

Northwind Logistics · $620K · Renews in 30 days

Cancellation language appeared three days ago and the account is single threaded on one contact.

We're going to need to pause the renewal until we've reviewed alternatives with procurement.

Dana Whitfield, VP Operations · Email · 3 days ago

Draft replyLog to Salesforce
2

Answer the Halden security review, they asked for a response this week

Halden Systems · $285K · Renews in 36 days

Security is a critical signal and this is one business day old. Fast, complete answers here usually close the issue outright.

Our infosec team flagged the SSO configuration during the annual review and wants a response this week.

Ana Duarte, IT Security Manager · Zendesk · 1 day ago

Draft replyLog to Salesforce
3

Give Arclight the export fix date we owe them

Arclight Health · $455K · Commitment due today

Support promised an ETA seven days ago and it has not been sent. The same account raised a value issue two days ago, so the open commitment is compounding.

Six months in and my team still exports everything to a spreadsheet to get the view they need.

Marcus Feld, Senior Director · Slack · 2 days ago

Draft replyLog to Salesforce

Next three actions · sample data

Next three actions

Not ten, and not a ranked backlog. If the CSM completes only these three items, they have done the highest-value work available that day.

Book value and quarterly renewal ARR

Book value splits into active, in renewal window, under churn notice, and unscored. Renewal ARR splits into committed, forecast, and at risk, because at risk is the number the CSM owns, explains, and reports upward.

What changed

New signals, risk-tier moves, accounts entering the renewal window, conversations going quiet, commitments coming due. This is the panel that creates the daily habit, and "no material change" is a good result to report.

Renewal opportunities, colored by risk

Sorted by ARR, colored by score. Every score expands into its reasons and the customer language behind them. The color prioritizes. The evidence holds up in a forecast call.

Top risk signals

Up to five cards, one per account, each with the quote, speaker, role, channel, timestamp, source, and suggested next step. "Budget Issue, Meridian Freight" tells the CSM very little. The sentence where the customer says their budget came back flat tells them what conversation to have.

Going quiet

Silence weighted by ARR and renewal proximity. An account with meaningful ARR, a renewal in sixty days, and no response in a month surfaces even if its health score is green.

Relationship coverage

Active contacts over ninety days, flagging single threading, executive changes, contacts going dark, and bouncing addresses. One active contact is one resignation away from a competitive evaluation with no internal advocate.

Open loops, split two ways

Inbound asks the customer is waiting on, and outbound commitments our side has not met. An unanswered request is a service failure. An unmet commitment is a credibility failure.

Expansion and advocacy

Expansion signals, reference candidates, and recurring feature requests, held to the same citation standard as the risk panels. Expansion interest recorded nowhere else is revenue the company may never capture.

Data hygiene

Missing renewal dates, missing ARR, past-due opportunities, unresolved contacts, undeliverable addresses, and the value excluded from scoring. Bad CRM data corrupts every panel above it, so the exclusions become a short list of fixes.

Part 2 · The new way

The score always matches its reasons

The listed contributions sum to the number displayed. CRM-sourced contributions are tagged, and the score is recomputed from the inputs actually available.

InputPointsSource
Critical signal40 eachCorpus
Warning signal15 eachCorpus
Info signal5 eachCorpus
Repeat of the same risk type within 30 days10 each, capped at 30Corpus
Customer spoke last, no reply after 3 business days20Corpus
Exactly one active contact in 90 days20Corpus
Expansion or Happy signal within 30 daysminus 15Corpus
Renewal inside 90 days25CRM
Renewal inside 45 days40, replacing the aboveCRM

Recency decay

Full weight inside 14 days, half at 30, one fifth at 60, zero past 90. Last quarter's problem does not keep voting at full strength.

Absence of evidence is never health

An account that cannot be scored renders Unscored, never Green.

Every claim carries a citation

Verbatim quote, speaker, role, channel, timestamp, link. Quotes are never paraphrased or assembled from fragments. A card without a citation is a defect.

Part 2 · The new way

Only two actions exist

Task creation, escalation, and opportunity creation are all possible with the same connectors. Each creates another object the CSM has to manage, and none is central to the job the cockpit does.

Draft reply

The reply lands in the conversation where the CSM can read and edit it. Short, answers the specific point the customer raised, proposes one next step, written in the CSM's voice. Nothing sends automatically.

The corpus reads from every system a customer talks to you in, but we can only write back into some of them. Drafting in the chat works the same way no matter where the message came from.

Log to Salesforce

One activity record, written only after a confirmation showing exactly what will be written. The conversation that never reaches the CRM is the conversation that disappears during handoffs, renewals, and escalations.

The write is narrow. It appears only for discrete, material communication events with a quote and a date that did not already sync from the CRM and are not offered elsewhere on the page.

Part 2 · The new way

It runs without a CRM

With a CRM connected, it produces the full page. Without one, it produces a corpus-only view. Money fields, renewal dates, and CRM hygiene rows are removed rather than estimated. The financial summary becomes a communications-derived view: accounts with coverage, open critical signals, silence, single threading, and no coverage. Scores are recalculated from the inputs actually available.

When data is missing, remove the dependent element and say why.

Part 3 · What you get

One instruction set, one template, one page per run.

Three pieces, and you probably already have two: the Sturdy Corpus, your CRM, and a Claude project holding the instruction set and template. Salesforce is the worked example. The pattern holds for any CRM with an activity object.

Part 3 · What you get

Setting it up

No configuration screen. No field-mapping exercise.

Connect the tools

Add the Sturdy connector and, for financial prioritization, your CRM connector. Add an email connector only if you want drafts pushed into a drafts folder.

Create the project

A new Claude Project with a clear name, such as My Cockpit. It becomes the place the CSM returns to each day.

Load the instruction set

Paste it into the project instructions field. It defines connector detection, retrieval, risk taxonomy, scoring, citations, actions, and the activity record format.

Load the HTML template

Upload it to the project files. It controls layout, design tokens, connector-specific behavior, confirmations, and score expansion.

Ask for the cockpit

The project detects what is connected, retrieves, computes, populates the data object, and renders the page.

The reasoning layer and the rendering layer meet in one populated data object. Redesign the page without changing how data is gathered, or change the gathering without redesigning the page. Every value traces back to a named field and a known source.

Part 3 · What you get

The Salesforce record

One completed activity record per logged event, created only after the CSM confirms.

POST /sobjects/Task
{
  "Subject":      "<risk type> noted",
  "Description":  "<channel>, <date>. <speaker>, <role>:\n\n\"<verbatim quote>\"\n\nLogged from Portfolio Cockpit. Source: <link>",
  "WhatId":       "<Opportunity id for renewal-scoped cards, otherwise Account id>",
  "WhoId":        "<Contact id, only when the match is confident>",
  "Status":       "Completed",
  "ActivityDate": "<date of the communication, not today>",
  "Type":         "Other",
  "Priority":     "Normal",
  "OwnerId":      "<the CSM's user id>"
}

ActivityDate is the date of the communication

Not the date it was logged. Backdating keeps the account timeline chronologically honest, which is the point of writing it.

AccountId is never set

Salesforce derives it from the related record. A direct write fails.

Subject classifies, Description carries evidence

Channel, date, speaker, role, quote, and source. The one interpretive element is labeled as a classification, not presented as something the customer said.

OwnerId must be the CSM

If the connector authenticates as a service account, every logged activity is attributed to the integration user and the activity reporting is ruined.

Part 3 · What you get

The honest limits of this instruction set

Six things it cannot do, stated plainly.

It cannot see what was never written down

A concern raised on a call and never confirmed in writing is invisible unless transcripts are ingested. Accounts with no communication coverage render Unscored.

It does not know when you last looked

There is no stored last-view timestamp. Tell it when you last looked and it computes against that. Otherwise it uses the last three days and labels the panel with the window it used.

It will not estimate money or dates

ARR and renewal dates come from the CRM or they do not appear. Nothing is inferred from conversation content.

Accounts are matched by name

Where a Sturdy account has no confident CRM match, money fields stay empty, the account renders Unscored, and it counts in Data hygiene. The same rule applies to contacts.

Repeat logging can duplicate

With an external id field for source communications, a repeat click updates rather than duplicates. Without one, it warns you once per session.

Thresholds need tuning against real behavior

Start with one portfolio rather than an entire team. Silence windows and score thresholds ship with defaults, and the defaults are not your book.

Sell it as armor rather than surveillance. It identifies risk before the renewal call, creates an evidence trail that supports the forecast, and eliminates two tedious tasks: logging context and composing follow-up.

Get the whitepaper and the instruction set

Everything ships ready to run.

  1. The whitepaper. The full argument, the scoring model, and the setup guide.
  2. The project instruction set. Paste it into a Claude project's custom instructions field.
  3. The Portfolio Cockpit render template. One HTML file, uploaded to the project's files.

If you would rather not build it yourself, we will stand it up with you against your own communication record in a single session. Email hello@sturdy.ai.

Send it to me

One email, three files, no sequence.

Loading the form. If it does not appear, email hello@sturdy.ai and we will send the files.