ooligo
claude-skill

Upsell-Signale aus der Produktnutzung mit Claude erkennen

Difficulty
Fortgeschritten
Setup time
45-90 min
For
csm · ae
Customer Success

Stack

Eine Claude Skill, die drei unabhängige Expansionssignale scannt — Produktnutzung aus Pendo, Seat-Verbrauch gegen das vertraglich vereinbarte Entitlement und Kaufabsichtssprache aus Gong-Calls — und ein Account-Book nach Expansionsreife rankt. Für jeden Account, der die Schwelle überschreitet, gibt sie ein einzeiliges Urteil aus, die drei Sub-Scores, die es erzeugt haben, das stärkste einzelne Beweisstück und einen empfohlenen Play (Seat-True-up, Tier-Upgrade, Land eines neuen Moduls oder Multi-Threading in ein neues Team). Die Ausgabe ist eine sortierte Markdown-Tabelle, die ein CSM in zwei Minuten überfliegt, plus ein Brief pro Account, den der AE in die Deal-Notiz einfügt. Das Artifact-Bundle liefert SKILL.md plus drei Referenzdateien, die das Team einmal anpasst und über das gesamte Book wiederverwendet.

Das Bundle liegt unter apps/web/public/artifacts/upsell-signal-detector-skill/: SKILL.md, references/1-signal-thresholds.md (die Scoring-Bänder und die Play-Mapping-Tabelle, die Sie auf Ihr Pricing abstimmen), references/2-usage-event-map.md (welche Pendo-Feature-Events auf welches kostenpflichtige Tier abbilden) und references/3-sample-output.md (das wörtliche Tabellen- und Brief-Format mit drei ausgefüllten Beispielen). Lesen Sie alle vier vor dem ersten Lauf.

Wann zu verwenden

Sie sind ein CSM oder AE mit einem Book von 30 bis 300 Accounts und möchten das Book vor Ihrem wöchentlichen Pipeline Review für Expansion triagiert haben, nicht eine generische Liste von „wer ist gesund”. Die Skill ist für den Fall gebaut, in dem drei Signale zusammen gelesen werden müssen, weil jedes für sich allein in die Irre führt: die Nutzung steigt, aber sie haben bereits das höchste Tier gekauft (kein Headroom), die Seats sind am Maximum, aber das Renewal ist in 11 Monaten (falsches Timing), Gong zeigt einen Budgetinhaber, der nach einem Modul fragt, das Sie ihm noch nicht verkaufen (das echte Signal). Die drei in Kombination zu lesen, ist das, was „sieht beschäftigt aus” von „bereit, mehr zu kaufen” trennt.

Sie erzeugt die nützlichste Ausgabe, wenn Pendo mindestens 28 Tage Nutzungshistorie auf dem Account hat, die vertraglich vereinbarte Seat-Zahl und das Tier in einem Feld erfasst sind, das die Skill lesen kann, und in den letzten 90 Tagen mindestens zwei Gong-Calls vorliegen. Unter diesen Schwellen gibt sie insufficient-signal für diesen Account zurück, statt zu raten — ein selbstsicheres Upsell-Ranking auf Basis eines einzigen Datenpunkts ist schlechter als gar kein Ranking, weil der AE danach handelt.

Wann NICHT zu verwenden

Verwenden Sie sie nicht als Detektor für Renewal-Risiko oder Churn. Hohe Nutzung und eine maximale Seat-Zahl werden hier als expansion-ready gelesen, aber derselbe Account kann einen schlechten QBR vom Churn entfernt sein; diese Skill scort Kaufreife, nicht Retention. Lassen Sie einen Health Score (die cs-health-score-builder-skill) parallel laufen und behandeln Sie ein rotes Health-Band als Veto gegen jeden Play, den diese Skill empfiehlt.

Richten Sie sie nicht auf Accounts in ihren ersten 60 Tagen. Nutzungsspitzen in der Onboarding-Phase sind Aktivierung, keine Expansionsabsicht, und die Skill liest ein Power-Onboarding fälschlich als Seat-True-up. Die Datei references/1-signal-thresholds.md liefert einen Guard min_account_age_days: 60; behalten Sie ihn bei.

Lassen Sie sie nicht automatisch Opportunities anlegen oder Outbound versenden. Sie rankt und empfiehlt; ein Mensch liest den Brief, prüft die Belege gegen Kontext, den die Skill nicht sehen kann (der Champion, der gerade gegangen ist, das im Off-Call erwähnte Budget-Freeze), und entscheidet. Die Ausgabe direkt in ein Sequenz-Tool zu verdrahten, verwandelt eine Triage-Hilfe in eine Spray-and-Pray-Maschine und verbrennt die Beziehung.

Verwenden Sie sie nicht dort, wo die Pendo-Nutzung nicht an bezahlten Wert gekoppelt ist. Wenn Ihre Feature-Events in references/2-usage-event-map.md nicht auf Tiers gemappt sind, ist der Nutzungs-Sub-Score Rauschen — intensive Nutzung eines kostenlosen Features ist kein Expansionssignal.

Setup

Etwa 45 bis 90 Minuten beim ersten Mal, der Großteil davon für das Mapping Ihrer eigenen Feature-Events auf kostenpflichtige Tiers und das Kalibrieren der Schwellen auf Ihr Pricing.

  1. Installieren Sie die Skill. Legen Sie das Bundle aus apps/web/public/artifacts/upsell-signal-detector-skill/ in ~/.claude/skills/upsell-signal-detector/ ab. Sie stellt einen einzigen Befehl bereit, rank_book(account_ids, window_days=90), plus interne Resolver für Pendo, die Quelle des Seat-/Tier-Felds und Gong.
  2. Verbinden Sie die Credentials. Setzen Sie PENDO_API_KEY (Lesen auf aggregierten Feature-Events und Account-Metadaten), GONG_API_KEY (Lesen auf Calls und Transkripten) und ENTITLEMENT_SOURCE — einen Pfad oder eine Query, die für jeden Account die vertraglich vereinbarte Seat-Zahl, die aktiven Seats und das aktuelle Tier zurückgibt. Die meisten Teams richten dies auf ein CRM-Feld oder einen Billing-Export; die Skill nimmt nicht an, dass Pendo den Vertrag hält.
  3. Mappen Sie Nutzungs-Events auf Tiers. Öffnen Sie references/2-usage-event-map.md und ersetzen Sie das Beispiel-Mapping durch Ihre echten Pendo-Feature-Event-IDs, gruppiert nach dem kostenpflichtigen Tier, das jedes freischaltet. Dies ist der tragende Setup-Schritt — der Nutzungs-Sub-Score ist nur so gut wie diese Karte. Markieren Sie Free-Tier-Events explizit, damit sie ausgeschlossen werden.
  4. Kalibrieren Sie die Schwellen. Öffnen Sie references/1-signal-thresholds.md und setzen Sie das Seat-Sättigungsband (Standard: ein True-up-Play feuert, wenn die aktiven Seats über 14 aufeinanderfolgende Tage bei oder über 90 % der vertraglich vereinbarten liegen), das Nutzungs-Headroom-Band und die Gong-Intent-Keyword-Liste (Standard-Seeds: „add seats”, „another team”, „upgrade”, „what would it cost to”, Namen von Wettbewerber-Modulen). Stimmen Sie die Play-Mapping-Tabelle so ab, dass jede Signalkombination auf den richtigen empfohlenen Play für Ihr Pricing abbildet.
  5. Führen Sie es für das Book aus. rank_book(account_ids=[...], window_days=90). Die Skill schreibt eine sortierte Markdown-Tabelle plus einen Brief pro qualifizierendem Account. Prüfen Sie den oberen Teil der Tabelle in Ihrem Pipeline-Meeting; die Briefs speisen die Deal-Notizen.

Was die Skill tatsächlich tut

Die Skill zieht die drei Signale pro Account parallel, weil sie unabhängige Systeme treffen und der Engpass die API-Latenz ist, nicht die Claude-Tokens. Pendo liefert die aggregierten Feature-Events des nachlaufenden Fensters; die Entitlement-Quelle liefert vertraglich vereinbarte Seats, aktive Seats und Tier; Gong liefert Call-Metadaten und Transkripte für das Fenster. Gibt eine Quelle leer zurück, wird dieser Sub-Score als unavailable erfasst und das Composite aus dem Rest berechnet, mit dem im Brief benannten Gap — niemals stillschweigend mit Null gefüllt.

Anschließend scort sie jedes Signal deterministisch vor jeglichem Claude-Reasoning, weil die Bänder Policy-Entscheidungen sind, die das Team besitzt, nicht Urteile, die ein Modell fällen sollte. Die Seat-Sättigung ist aktive Seats über vertraglich vereinbarte Seats, gescort gegen das Band in references/1-signal-thresholds.md; ein True-up-Signal feuert erst, nachdem die Sättigung 14 aufeinanderfolgende Tage hält, sodass eine eintägige Onboarding-Spitze es nicht auslöst. Das Nutzungs-Headroom mappt die am stärksten genutzten Features des Accounts über references/2-usage-event-map.md auf Tiers und scort, gegen wie viel bezahlten Wert oberhalb ihres aktuellen Tiers sie bereits drücken — intensive Nutzung von Features, die im nächsten Tier gesperrt sind, ist das stärkste einzelne Signal. Das Account-Alter und das Health-Veto werden hier als harte Gates angewendet, nicht als weiche Gewichte.

Nur das Gong-Signal geht an Claude, und nur als Zwei-Pass-Klassifikation, weil Intent-Sprache das eine Signal ist, das ein Keyword-Match falsch macht. Pass eins extrahiert aus den Transkripten die Kandidaten-Äußerungen für Intent; der System Prompt verbietet das Erfinden von Zitaten und verlangt, dass jeder Kandidat die wörtliche Zeile und die Rolle des Speakers zitiert. Pass zwei klassifiziert jeden Kandidaten als expansion-intent / status-quo / churn-risk-language und vergibt eine Confidence; alles unter 0,5 Confidence wird verworfen statt gezählt, weil ein weiches „vielleicht schauen wir uns irgendwann mehr Seats an” kein Signal ist und der AE ihm nicht nachjagen sollte. Extraktion von Klassifikation zu trennen, zählt: ein einzelner Pass über lange Transkripte übergewichtet den zuletzt gelesenen Call und bläht den Intent auf.

Compute Composite kombiniert die drei Sub-Scores mit den Gewichten pro Account (Standardwerte: Nutzung 0,4, Seats 0,35, Intent 0,25 — abstimmbar in der Schwellen-Datei), erzeugt einen Expansionsreife-Score von 0-100 und ein Band und wählt aus der Mapping-Tabelle nach dem dominanten Signal den empfohlenen Play. Write Brief lässt Claude dann das einzeilige Urteil und einen Drei-Satz-Brief erzeugen, der das stärkste einzelne Beweisstück mit seiner konkreten Zahl oder dem wörtlichen Zitat benennt — niemals eine synthetisierte Allgemeinheit. Die Tabelle ist absteigend sortiert; Accounts unterhalb des Qualifizierungsbands und insufficient-signal-Accounts werden separat unten gelistet, damit das Book vollständig erfasst und nicht stillschweigend fallengelassen wird.

Kostenrealität

Pro Account macht ein vollständiger Lauf drei externe Reads (Pendo, Entitlement-Quelle, Gong) plus zwei Claude-Calls — die Zwei-Pass-Gong-Klassifikation (etwa 4.000 bis 9.000 Input-Tokens je nach Transkriptvolumen, unter 600 Output) und den Brief (~800 Input, ~150 Output). Beim Claude-Sonnet-Pricing sind das etwa 2 bis 4 Cent pro Account; ein Book von 200 Accounts kostet rund 4 bis 8 $ pro vollständigem Lauf. Die dominante Input-Variable ist das Gong-Transkriptvolumen, sodass eine Begrenzung auf die sechs jüngsten Calls pro Account und je 4.000 Zeichen die Kosten beschränkt hält. Die Wall-Clock-Zeit für 200 Accounts landet bei rund 8 bis 14 Minuten, dominiert vom Gong-Fetch bei drei Calls pro Sekunde pro Workspace.

Gegen die manuelle Baseline: ein CSM, der ein Book von 200 Accounts nach Augenmaß für Expansion triagiert — Pendo öffnen, Seats im CRM prüfen, Call-Kontext erinnern — verbringt einen halben bis ganzen Tag pro Quartal und verpasst trotzdem die stillen Accounts, in denen das Signal in einem Call steckt, den niemand reviewt hat. Die Skill läuft in Minuten und liest jedes Transkript. Der ehrliche Tausch ist: sie bringt Kandidaten an die Oberfläche; der CSM verbringt die Urteilszeit weiterhin an den Top 10 bis 20, wo sie hingehört.

Wie Erfolg aussieht

Verfolgen Sie über ein Quartal die Conversion-Rate von „im Qualifizierungsband gerankt” zu „Expansion-Opportunity angelegt”. Eine nützliche Skill liegt über 30 % — das heißt, eine klare Mehrheit dessen, was sie an die Oberfläche bringt, ist mindestens ein Gespräch wert. Unter 20 % sind die Schwellen zu locker oder die Event-Karte ist falsch (meist Letzteres — kostenlose Features, die in den Nutzungs-Score lecken). Verfolgen Sie außerdem das von Skill-markierten Accounts stammende Expansions-ARR gegen die Book-Baseline sowie die Zahl der insufficient-signal-Accounts, die ein Frühindikator für Pendo- oder Gong-Abdeckungslücken ist, die Sie upstream beheben können.

vs Alternativen

vs das eigene Expansion- / Product-Qualified-Lead-Scoring von Gainsight oder Pendo. Wenn Sie bereits für Gainsights Expansion-Scorecards oder Pendos PQL-Signale zahlen, decken diese die Nutzungs- und Seat-Dimensionen gut ab und erfordern keinen Build. Was sie nicht tun, ist die Gong-Call-Sprache zu lesen — der Budgetinhaber, der nach einem Modul fragt, das er noch nicht besitzt — und sie in dasselbe Ranking zu falten. Diese Skill existiert, um das Gesprächssignal hinzuzufügen und einen Play auszugeben, nicht nur einen Score. Wenn Sie Gainsight haben, lassen Sie dies als die Gong-Intent-Schicht laufen und überlassen Sie Gainsight das Nutzungs-Rollup; sie sind komplementär.

vs eine DIY-SQL-Query über das Nutzungs-Warehouse. Eine Query ist das richtige Werkzeug für die Mathematik von Seat-Sättigung und Nutzungs-Headroom und im Maßstab günstiger auszuführen. Sie kann Call-Intent nicht klassifizieren und erzeugt eine Zahl, keinen empfohlenen Play mit einem zitierten Grund, auf den ein AE handeln kann. Nutzen Sie die Query für die deterministischen Sub-Scores, wenn Sie das Data Engineering haben; richten Sie diese Skill für den Intent-Pass und den Brief auf deren Ausgabe.

vs es im wöchentlichen Pipeline-Meeting nach Augenmaß machen. Der Status quo. Es funktioniert für ein Book von 30 Accounts und bricht bei 100 und mehr, weil der stille expansion-ready Account — stabile Nutzung, keine Brände, ein einziger Call, in dem jemand nach einem anderen Team fragte — genau der ist, den eine menschliche Triage verpasst. Der Vorteil der Skill: sie liest jede Woche jedes Transkript ohne Ermüdung.

Worauf zu achten ist

  • Free-Feature-Nutzung, die den Score aufbläht. Ist references/2-usage-event-map.md unvollständig, wird intensive Nutzung eines kostenlosen oder bereits besessenen Features als Expansions-Headroom gelesen und überschwemmt den oberen Teil der Tabelle mit False Positives. Guard: die Event-Karte verlangt, dass jedes gescorte Event ein explizites Tier-Tag trägt, und nicht gemappte Events werden aus dem Nutzungs-Sub-Score ausgeschlossen statt als generische Aktivität gezählt. Auditieren Sie die Karte quartalsweise gegen Ihr aktuelles Pricing.
  • Onboarding-Spitzen, die fälschlich als Expansion gelesen werden. Ein neuer Account, der hart hochfährt, sieht identisch aus mit einem gesättigten Account kurz vor dem True-up. Guard: das Gate min_account_age_days: 60 und die Anforderung von 14 aufeinanderfolgenden Sättigungstagen schließen beide Spitzen der Aktivierungsphase aus; die Skill gibt für Accounts unter dem Alters-Gate onboarding-phase statt eines True-up-Plays zurück.
  • Keyword-False-Positives beim Intent. „We’re not adding seats this year” enthält „adding seats”, und ein naiver Keyword-Match scort es als Intent. Guard: die Zwei-Pass-Claude-Klassifikation liest die vollständige Äußerung im Kontext, und der Confidence-Boden von 0,5 verwirft mehrdeutige oder verneinte Sprache; nur über dem Boden klassifizierter expansion-intent zählt.
  • Einen Account expandieren, der tatsächlich churn-gefährdet ist. Ein maximal ausgelasteter, stark nutzender Account kann trotzdem unzufrieden sein. Guard: das Health-Band-Veto — übergeben Sie einen Health Score, und jeder Account im roten Band wird in einen separaten do-not-expand-Abschnitt mit benanntem Health-Flag verschoben, sodass der AE nie einen Play auf einem Account erhält, den der CSM gerade löscht.
  • Veraltete Entitlement-Daten. Hinkt die Seat- und Tier-Quelle der Realität hinterher (ein True-up wurde letzte Woche abgeschlossen, aber das Feld hat nicht synchronisiert), ist die Sättigungsmathematik falsch. Guard: die Skill liest und berichtet im Brief den eigenen Last-Sync-Zeitstempel der Entitlement-Quelle; ist er älter als 7 Tage, wird der Seat-Sub-Score als entitlement-stale geflaggt und der True-up-Play unterdrückt, bis die Daten aktuell sind.

Stack

  • Pendo — aggregierte Feature-Events des nachlaufenden Fensters und Account-Metadaten (Pendo API)
  • Gong — Call-Transkripte für die Zwei-Pass-Intent-Klassifikation (Gong API, letzte 90 Tage, begrenzt auf sechs Calls pro Account)
  • Claude — Zwei-Pass-Gong-Intent-Klassifikation plus der Brief pro Account (Sonnet aus Kostengründen empfohlen; die deterministischen Sub-Scores laufen ohne Modell)
  • Entitlement source — vertraglich vereinbarte Seats, aktive Seats und aktuelles Tier (CRM-Feld oder Billing-Export — wählen Sie eine kanonische Quelle)