06 · Working with Sales & Customer Success¶
Sales and customer success are simultaneously your best discovery channel and the biggest single source of roadmap distortion. They talk to more customers in a week than you will in a quarter. They also operate on incentives that are not yours: a rep is paid this quarter for a deal that closes this quarter, and a CSM is measured on a renewal that lands in six weeks. Neither is paid for whether the thing they asked for was the right thing to build.
The failure mode is not that sales is pushy. It is that product has no process — so requests arrive as escalations, get decided by whoever escalates hardest, and the roadmap becomes a record of which conversations were most uncomfortable. The fix is unglamorous and completely reliable: publish an intake process, apply consistent arithmetic to every request, and report back on everything you decline.
The tension, stated honestly¶
| Sales | Customer Success | Product | |
|---|---|---|---|
| Paid on | Bookings this quarter | Renewal and expansion | Outcomes over years |
| Time horizon | 30–90 days | 90–365 days | 1–3 years |
| Sees | Deals that nearly closed | Customers at risk now | The whole system |
| Systematically over-weights | The last deal lost | The loudest at-risk account | Its own strategy |
| Systematically under-weights | Whether the feature was the real blocker | Accounts that quietly renew | Revenue in flight |
Every column has a real blind spot, including yours. The process below is designed to correct all three, not just theirs.
Intake: one door, one format¶
Requests that arrive by Slack DM, hallway, or a forwarded customer email are untriageable and unfair — they reward proximity. Publish a single intake form and refuse to process anything else. Six required fields:
| Field | Why it's required | Rejection rule |
|---|---|---|
| Account(s) and deal stage | Turns anecdote into revenue | No account named → returned |
| ARR at stake | Enables weighting | "Big" is not a number |
| The problem, in the customer's words | Separates problem from proposed solution | "They want a dropdown" → returned |
| Is this the actual blocker? | The single most inflated claim in B2B | Rep must state what else is unresolved |
| What they do today instead | Reveals the real cost | Blank → the pain may be theoretical |
| What happens if we say no | Forces honesty | "We lose the deal" needs evidence |
Two rules that make this stick: the form takes under three minutes, and every submission gets a written answer within ten working days, including the ones you decline. A no with a reason is fine. Silence is what makes people escalate.
Triage arithmetic¶
Attached pipeline is the number sales will quote you, and it is always the gross figure. Two discounts convert it into something decision-grade:
Expected ARR = Attached pipeline
× P(deal closes | we build it)
× P(this feature is the true blocker)
The second term is the one nobody applies, and it is where most of the inflation lives. Estimate it from win/loss data, not from the rep's opinion: if 7 deals cited a custom report builder and 5 of them were also unresolved on price, the feature was the true blocker in maybe a quarter of cases.
Then rank by expected ARR per engineer-week, exactly as in Module 4.
Worked example — ListUp's Q2 request triage¶
Thirty-four requests arrived in the quarter, deduplicated to six themes. Engineering capacity available for GTM-driven work: 16 engineer-weeks (20% of the quarter's total, a standing allocation agreed at planning).
| Theme | Deals | Attached pipeline | P(close) | P(true blocker) | Eng-wks | Expected ARR | EV/wk |
|---|---|---|---|---|---|---|---|
| Multi-account agency console | 9 | $196,000 | 0.55 | 0.85 | 10 | $91,630 | $9,163 |
| Two more marketplace channels | 4 | $86,000 | 0.60 | 0.90 | 6 | $46,440 | $7,740 |
| SSO / SAML | 5 | $124,000 | 0.45 | 0.70 | 8 | $39,060 | $4,882 |
| Bulk rule import | 6 | $41,000 | 0.50 | 0.30 | 2 | $6,150 | $3,075 |
| White-label branding | 3 | $52,000 | 0.35 | 0.55 | 7 | $10,010 | $1,430 |
| Custom report builder | 7 | $148,000 | 0.40 | 0.25 | 12 | $14,800 | $1,233 |
| Total | 34 | $647,000 | 45 | $208,090 |
Three things fall out of this table that no amount of discussion would have produced:
- $647,000 of "at-risk revenue" is really $208,090 — 32.2% of the headline. That gap is not dishonesty; it is what happens when you sum gross pipeline across overlapping deals.
- The custom report builder has the second-largest attached pipeline and ranks last. Seven deals cited it, but win/loss showed only two where it was the sole open issue, and it is the most expensive item on the list.
- 16 weeks of capacity funds the top two (10 + 6 = 16 exactly), capturing $138,070 of the $208,090 — 66% of the expected value for 36% of the requested effort.
The decisions, published to sales and CS the same week:
| Theme | Decision | Message to the field |
|---|---|---|
| Agency console | Build, Q2 | Ships week 9; two design partners named; demo available from week 6 |
| Two more channels | Build, Q2 | Ships week 13; sequenced by attached pipeline |
| SSO / SAML | Q3, committed | Not this quarter. Interim: IP allowlisting plus enforced 2FA satisfies 3 of the 5 security reviews — here is the written answer to use |
| Bulk rule import | Q3, small | Cheap and useful; parked only because capacity is exhausted |
| White-label branding | No, for 12 months | Strategy non-goal; agencies want a console, not our logo removed. Revisit only if it appears in 8+ deals |
| Custom report builder | No | The read API (Module 3) plus a partner analytics app covers 5 of the 7 deals. Here is the partner and the price |
Note what the last two rows do: a no with a substitute is a workable answer for a rep, and a no without one is an invitation to escalate. Half the value of triage is the workaround column.
Note also that SSO was declared a strategy non-goal until Q3 in Module 1 — and the triage arithmetic independently placed it third, outside capacity. When strategy and arithmetic agree, the conversation is short. When they disagree, that is real information about the strategy, and you should say so rather than quietly overriding one with the other.
The commitment log¶
Anything promised to a named customer with a date is a contract, whatever the deck says. Keep one log, owned by product:
| Account | Commitment | Date promised | Deal value | Sales owner | PM sign-off | Status |
|---|---|---|---|---|---|---|
| Northgate Agency | Multi-account console, ≥25 sub-accounts | 31 May | $59,700 | R. Okafor | Yes | On track |
| Delaney Retail | SSO via SAML | 30 Sep | $34,000 | R. Okafor | Yes | Q3 planned |
| Two Rivers | Custom report builder | 15 Apr | $22,000 | (unsigned) | No | Retracted — partner app offered |
The third row is the reason the log exists. A commitment made without PM sign-off gets retracted early and directly, with the PM on the call. That is uncomfortable once. Discovering it three weeks before the deadline is uncomfortable for a quarter.
Rule of thumb: more than three open committed items per quarter and you are running a consultancy with a product-shaped brochure.
What each side owes the other¶
Write this as a two-way agreement, not a set of product rules:
| Product owes GTM | GTM owes Product |
|---|---|
| A written answer to every request in 10 working days | All requests through the intake form, with the six fields |
| The declined list with reasons, every quarter | Honest P(true blocker), not the optimistic one |
| A rolling 6-month outlook, refreshed monthly | Win/loss recorded within 5 days of a deal closing |
| Enablement before GA, not after | No roadmap commitment without PM sign-off |
| Known limitations, in writing | The PM in 4 customer calls a month |
| The workaround when the answer is no | Telling product when a workaround stops working |
Using CS as a discovery instrument¶
CS sees the failure modes your analytics cannot: workarounds, spreadsheets, and the reason someone quietly stopped using a feature. Extract it systematically rather than waiting for escalations.
| Ritual | Cadence | Output for product |
|---|---|---|
| Churn post-mortem | Every churned account over $79/mo | A one-paragraph cause, categorised; product owns the category taxonomy |
| Ticket theme review | Monthly | Top 10 ticket drivers with volume and hours; candidates for design fixes rather than doc fixes |
| Save-play review | Quarterly | What CS says to keep an account — the gaps in what the product says for itself |
| PM on QBRs | 2 per month, silent listener | Unfiltered exposure to how customers talk about value |
| Onboarding shadowing | 1 per month | Where new accounts stall, before analytics shows it as churn |
One high-value pattern: whenever CS builds a spreadsheet, a macro or a saved query to serve customers, that is an unbuilt feature with a known audience and a measurable cost. ListUp's agency console originated exactly this way — a CSM was manually producing a cross-account status sheet for four agencies every Monday, about 5 hours a week. That artefact is stronger evidence than any request form, because someone was already paying for it in labour.
Handling the escalation you cannot win¶
Sometimes a genuinely large customer wants something genuinely wrong for the product. Four options, in order of preference:
| Option | When | Cost |
|---|---|---|
| Substitute — solve the underlying problem differently | The request is a proposed solution, not a problem | Discovery time; usually the best outcome |
| Sequence — commit to a date further out | It's on the roadmap anyway | A dated commitment you must honour |
| Partner — a third party solves it | Adjacent to your strategy | Ecosystem management (Module 3) |
| Decline and price the consequence | It contradicts the strategy | Say the number out loud: "this is $59,700 of ARR we are choosing to risk, and here is why" |
The fourth option is legitimate and underused. Executives can accept losing a deal on purpose. What they cannot accept is discovering it happened by accident.
How It Actually Works¶
The PM-sales-CS relationship is structured by a specific information flow problem: sales and CS sit closest to real customer conversations (a rich, high-frequency but unstructured data source), while PM sits closest to the aggregate product data (a structured but lower-fidelity data source), and most friction stems from each side implicitly treating their own data as sufficient without the other. The mechanism behind "one-off feature request" escalation problems is a sampling bias: sales and CS naturally over-index on whichever customer is currently loudest or closest to a renewal/close date, because that's the deal in front of them right now, while the PM's job is to filter that recency-biased signal against the full customer base's aggregate needs — a good intake process (a structured request log with account value, frequency, and urgency) exists specifically to strip the recency bias out of raw frontline feedback before it reaches prioritization. Win/loss debriefs and QBR (quarterly business review) participation work as a discovery channel because they sample from the highest-stakes moments in the customer relationship (a decision to buy, renew, or churn), and high-stakes moments reveal true priorities far more reliably than routine usage, because people reveal what actually matters to them when a real decision with real consequences is on the line, not through what they say matters in a low-stakes survey.
Exercise¶
- Design the intake form with your six required fields, and write the rejection rule for each. Publish it and route one existing Slack request through it.
- Triage a real quarter. Take every request from the last 90 days, dedupe to themes, and build the full table: deals, attached pipeline, P(close), P(true blocker), engineer-weeks, expected ARR, EV per week.
- Estimate P(true blocker) from win/loss data, not opinion. For your largest theme, count how many cited deals had other unresolved issues. Report the gap between gross attached pipeline and expected ARR as a percentage.
- Set a standing capacity allocation for GTM-driven work as a percentage of the quarter, get it agreed at planning, and draw the line on your ranked table where capacity runs out.
- Write the decision table including a workaround or substitute for every "no". Any "no" without one goes back for another pass.
- Build the commitment log with every open promise to a named customer. Count them, flag any without PM sign-off, and schedule the retraction conversations this week.
- Draft the two-way agreement — what product owes GTM and what GTM owes product — and get both leaders to sign it.
- Find one CS spreadsheet. Identify a manual artefact CS maintains, measure the hours per week it costs, and write it up as a feature brief with that number as the evidence.