Client · Gestionnaire de renouvellements
Détecte le renouvellement à risque — avec les preuves — avant que vous ne le perdiez.
Chaque jour, le Gestionnaire de renouvellements passe en revue chacun de vos clients payants, regroupe les signaux de facturation, de CRM et de support dans un seul dossier de preuves, et détermine si le compte est en expansion, stable, à risque ou susceptible de partir — en citant les factures, étapes de transaction et fils de discussion précis qui ont fait pencher le verdict. Lorsque le verdict est « à risque », il rédige un e-mail de rétention ancré sur ces mêmes preuves et le dépose dans votre file d'attente. Vous approuvez chaque envoi.
D'une analyse quotidienne à un e-mail de rétention rédigé dans votre file d'attente
Analyse quotidienne
06:00 UTC — passe en revue chaque client payant.
Constitution des preuves
Stripe, CRM, support → un seul dossier.
Classer et consigner
Un verdict à 4 issues, sourcé, dans le journal.
Rédiger et vous approuvez
Un e-mail de rétention ou de montée en gamme attend dans votre file.
La même boucle s'exécute pour chaque client surveillé, chaque matin — renouvellements automatiques mensuels comme contrats annuels. Le départ survient un mardi ; l'assistant regarde ce mardi-là, pas 60 jours plus tard, quand la rétention n'est déjà plus qu'une remise.
Vous utilisez déjà le Moniteur de comptes clients ? Le Gestionnaire de renouvellements lit son journal de compte comme un signal supplémentaire — les deux se complètent bien, mais chacun fonctionne de façon autonome.
Le contrat
Ce qu'il fait en autonomie, ce qu'il vérifie avec vous, ce à quoi il ne touche pas.
Fait en autonomie
- Analyse chaque client surveillé une fois par jour — renouvellements automatiques mensuels comme contrats annuels.
- Constitue un dossier de preuves par client à partir des sources que vous connectez — facturation Stripe, étapes de transaction du CRM, signaux de support et d'usage.
- Classe chaque client expansion / standard / à risque / départ probable, avec les identifiants de source précis qui ont fait pencher le verdict.
- Ajoute un paragraphe immuable par client et par exécution à un journal de compte — jamais écrasé, jamais supprimé.
- Rédige un e-mail de rétention (à risque) ou de montée en gamme (expansion) ancré sur les mêmes preuves citées.
Vérifie d'abord avec vous
- Chaque e-mail de rétention ou de montée en gamme rédigé est placé en file pour votre approbation — il n'est jamais envoyé automatiquement. L'approbation est désactivée par défaut.
- Lorsque les preuves sont minces ou ambiguës, il s'abstient : il classe le compte comme standard, explique pourquoi et vous le transmet plutôt que d'inventer un scénario de départ.
- Si un e-mail rédigé cite un chiffre qu'il ne peut pas vérifier par rapport aux preuves, l'e-mail est abandonné et la ligne est signalée à votre attention.
- Lorsque la revue la plus critique est en désaccord avec elle-même, la ligne est remontée pour une décision humaine plutôt que d'être résolue automatiquement.
Ne touche pas à
- Envoyer un e-mail de rétention ou de montée en gamme à un client de sa propre initiative — la décision d'envoyer vous revient toujours.
- Outrepasser les règles de fenêtre de renouvellement — il suit la cadence que vous définissez, il ne la modifie pas.
- Inventer un fil Slack, une facture ou une transaction qu'il n'a pas vus — chaque affirmation doit renvoyer à un identifiant de source réel, sinon la ligne est rétrogradée.
- Trancher entre retenir le client ou le laisser partir — il rédige le scénario ; choisir de remiser, d'escalader ou de renoncer est une décision humaine.
- L'automatisation de reconquête sur la page d'annulation — c'est une autre surface, ce n'est pas le rôle de cet outil.
Matrice de capacités complète issue du registre des rôles
MAÎTRISÉ
- Daily 06:00 UTC scan of every paying customer 14-90 days from renewal. APScheduler IntervalTrigger(hours=24) advisory-locked at the system level (ADR-0019 pattern). Per-tenant fan-out queries monitored_customers WHERE days_to_renewal BETWEEN 14 AND 90 AND (last_run_at IS NULL OR last_run_at < NOW() - INTERVAL '23 hours'). The 23-hour skew is idempotency slack — yesterday at 06:00:00 vs today at 06:00:01 doesn't skip a customer.
- Source-anchored evidence with post-parse validation. Every claim in the diary entry, classification, and drafted email MUST cite a source_id that exists in the customer's input bundle. Unknown source_id → row rejected, classification forced to 'standard', severity 'LOW', abstain_reason 'source_validation_failed'. Anti-fabrication at the SCHEMA layer (ADR-0029 §3), not the prompt layer.
- Longitudinal account diary appended every run, append-only. customer_diary_entries is never updated, never deleted. After 6 months a tenant has 180 paragraphs of per-customer narrative that a Vitally rip-and-replace cannot backfill. The diary IS the time-based moat.
- Tier 3 cross-family supervisor on accounts >= $50K ARR. Worker (Sonnet 4.6) drafts; GPT-5 reads the 10-row batch output as a WHOLE and flags rows for revision; Gemini 2.5 tiebreaker fires on per-row classification disagreement. CLAUDE.md principle #3 made operational as a deterministic routing function, not a per-task judgment call (ADR-0029 §1).
- Batched 10-customer LLM calls grouped by route assignment. TIER1 / TIER2 / TIER3 customers chunked into route-homogeneous batches of 10. Supervisor reviews the 10-row batch as a whole to catch systematic drift (the worker drifted into doom-mode across 10 rows is detectable from batch shape; per-customer review can't see the pattern). Batch-of-50 fails empirically on Sonnet (attention contamination + 25K-output-token truncation); batch-of-10 is the council-verified sweet spot.
- Per-account drafted save / upsell email with anchor citations. drafted_email.anchors[] MUST be a subset of evidence[].source_id; a drafted email that cites a non-existent Slack thread becomes null and recommended_action drops to 'internal_alert'. Default auto_send=false — every draft sits in /app/renewal_hunter/inbox until the operator clicks Send.
- Weekly Monday digest of $ ARR in motion at 12:00 UTC. Separate scheduler job (12:00 UTC = 07:00 EST — the slot a human reads) summarising HIGH-severity accounts, total $ ARR at risk, top movers since last Monday, and the diary excerpts that justify each verdict. Source-anchored — no metric without its underlying source_id chain.
- Investigation depth — explicit signal citations, no opaque score. Output cites specific signals (stripe_invoice_4_late_in_q1, slack_thread_complaint_2025_12_03, hubspot_deal_stale_92_days) instead of emitting a single health-score float. Buyers in mid-market post-sale orgs have been burned by opaque scores; the citation is the unlock.
- Open factor-weight math, tenant-tunable in /app/renewal_hunter/settings. Four weights (payment_history / usage_trend / champion_status / support_sentiment) sum to 1.0, surface in the per-account drill-down UI, and write back to tenant_renewal_hunter_settings on POST. The model never hides the math — every classification shows which factor weight pushed it across the threshold.
- Internal LLM routing — 70/25/5 mix protects $79 Starter unit economics. route_customer() (ADR-0029 §1) selects Haiku / Sonnet / Sonnet+GPT-5+Gemini per customer per run deterministically from features computed BEFORE the LLM call. Distribution monitored via PostHog; drift outside 60-80 / 15-35 / 2-10 fires an alert. The TIER1 tail (~68% on Haiku 4.5) is the load-bearing cost-control primitive behind the 77% target gross margin on Starter.
ASSISTÉ
- Auto-send save / upsell emails (off by default, off-able per topic). Default auto_send=false — every drafted_email sits in the inbox until the operator clicks Send. Operator can flip auto_send on per route (e.g. low-severity expansion drafts on Growth tier and below) once they've reviewed ~30 drafts and trust the worker's tone. Enterprise + likely_churn always require operator approval regardless of auto_send setting.
- Severity transitions LOW → HIGH route every account through Tier 3. Any customer crossing into HIGH severity on this run gets the cross-family supervisor pass on its next batch — material score-move into the danger band is the second-most-expensive mistake-mode after enterprise account misclassification. Operator alerted in /app/renewal_hunter/inbox with the new + old diary entries side-by-side.
- Three-way supervisor disagreement on Tier 3 — operator review. When worker / supervisor / tiebreaker classifications all differ, the row flags for human review in /app instead of auto-resolving. Today: pick the worker's classification, log all three verdicts in the audit_log, surface the conflict in the per-account detail page. The deeper question — is a three-way disagreement evidence of an ambiguous account or a worker regression — needs >= 50 instances to answer.
- Source-validation failure rate > 5% triggers same-day operator review. Langfuse + PostHog wired: when the rolling-24h source_validation_failed rate exceeds 5%, a banner fires in /app/renewal_hunter/inbox and the founder is paged. Either the worker is regressing on schema discipline (prompt fix) or the bundle builder is dropping source_ids (code fix); either way the same-day investigation is on the operator.
REFUSÉ
- Auto-send a save email to the customer without operator approval. Default auto_send=false; even with auto_send enabled, Enterprise (>=$50K ARR) and likely_churn classifications hard-gate on operator approval regardless of supervisor verdict. The decision to ship an in-flight save email to a $200K account is the operator's, not the worker's.
- Cancel-page widget or in-product save-offer surface. ChurnKey owns the cancel-page surface — when a customer clicks Cancel, ChurnKey shows the save offer in-product. We don't compete on the cancel page; we own the 90 days BEFORE it. Different product surface, different integration cost, different buyer. No plans to ship a cancel-page widget.
- Post-cancel win-back automation. Phase 3 territory (post-PMF). The bundle builder / router / diary primitives generalise, but the buyer for post-cancel win-back is a marketing-ops persona — different ICP than the CSM persona who buys Renewal Hunter. Deferred until a paying Renewal Hunter customer asks for the cross-sell.
- Mass-market B2C subscription save (Spotify / Netflix / consumer SaaS). Different product. B2C subscription save lives in 'why did this individual user pause' territory — a different signal set (usage frequency in app, payment-method failure, content consumption drop), a different output (in-product nudge, not a save email to the champion), a different price point ($0.10 per saved sub, not $79-$1,199 per month per tenant). We do B2B SaaS renewals where the deal has a champion.
- Champion job-change detection via PDL or LinkedIn (V0). Deferred to V1, behind the ADR-0026 data-provider gateway, after the first paying customer's vertical confirms the champion-quit signal is worth the PDL spend. V0 reads champion_status from HubSpot contact_lifecycle + Slack channel activity; PDL champion-quit is the canonical high-signal event but it's vertical-dependent and we don't light up speculative spend.
- Cohort-level analysis ('all SMB customers with NRR < 90%'). V0 ships per-account analysis only. Cohort queries land in V1 once a customer demonstrates the workflow that needs it. Vitally and Gainsight ship cohort dashboards; we don't compete on dashboard surface — we compete on per-account investigation depth. Per-account FIRST, cohort patterns SECOND.
Ce que vous obtenez
Voici à quoi ressemble un verdict « à risque ».
Pas un simple score de santé opaque — la classification porte les preuves exactes qui la sous-tendent, et l'e-mail de rétention rédigé ne cite que ce que ces preuves montrent. Rien n'atteint le client tant que vous n'avez pas cliqué.
Client · Northwind Labs
À risqueARR
42 000 $ / an
Renouvellement
Annuel · dans 38 jours
Preuves citées par le verdict
-
stripe:in_1Q4lateDeux factures payées avec 11 jours de retard ou plus ce trimestre — toutes deux après une nouvelle tentative de paiement. -
hubspot:deal:88204Transaction de renouvellement bloquée depuis 41 jours à l'étape « Contrat envoyé » — aucun mouvement de contact. -
slack:1714…threadCanal partagé : l'interlocuteur clé a posé une question sur les options d'export, puis n'a plus donné de nouvelles pendant 3 semaines.
Les mêmes preuves sont consignées dans le journal de Northwind Labs sous forme d'un paragraphe. À l'exécution suivante, c'est le contexte de l'exécution précédente sur lequel l'assistant raisonne.
File d'approbation · e-mail de rétention rédigé
En attente de votre approbationObjet
Renouvellement Northwind — une vérification rapide avant la date du contrat
Bonjour — votre renouvellement arrive dans environ cinq semaines et je souhaitais vous contacter en amont plutôt qu'à la date du contrat. J'ai remarqué que les deux dernières factures ont été réglées avec un peu de retard, et que la question sur l'export depuis votre canal n'a jamais reçu de réponse claire — j'aimerais régler les deux avant ce renouvellement. Pourrions-nous prévoir 20 minutes cette semaine ? Je peux vous présenter les options d'export et m'assurer que la facturation est configurée comme votre équipe en a besoin.
Chaque détail de ce brouillon renvoie à une source citée. Un chiffre qui n'aurait pas pu être vérifié par rapport aux preuves aurait fait abandonner le brouillon et signaler la ligne.
Tarifs
Tarifé selon le nombre de clients que vous surveillez.
Une seule qualité d'analyse à chaque palier — le palier de prix correspond au nombre de clients que vous surveillez, pas à un meilleur modèle. Essai de 14 jours, sans carte. Annulation mensuelle.
Ce qu'il remplace
Le faire en interne, c'est un salaire complet, des charges et des mois de montée en puissance — pour une seule fonction. Ataski livre le résultat dès le premier jour, à un tarif mensuel fixe et prévisible.
Une qualité de niveau entreprise pour une fraction d'une embauche. Augmentez ou mettez en pause à tout moment : vous ne payez que les mois utilisés.
Team
$299 ≈ €275 / mois
100 clients surveillés
≈ $2.99 par client surveillé
- 100 clients dans l'analyse quotidienne
- Journal par client, en ajout uniquement
- Classifications sourcées
- E-mails de rétention / montée en gamme rédigés dans votre file
SaaS B2B en phase d'amorçage qui met en place une surveillance quotidienne des renouvellements sur tout son portefeuille pour la première fois.
Choisir TeamScale
$799 ≈ €735 / mois
500 clients surveillés
≈ $1.60 par client surveillé
- 500 clients dans l'analyse quotidienne
- Tout ce que comprend Team
- Signaux CRM HubSpot + Salesforce
- Scénarios de rétention avancés
Série A — où un seul compte de taille moyenne retenu finance l'année.
Choisir ScaleBusiness
$2,499 ≈ €2,299 / mois
2 000 clients surveillés
≈ $1.25 par client surveillé
- 2 000 clients dans l'analyse quotidienne
- Tout ce que comprend Scale
- Écriture en retour dans le CRM + cloisonnement multi-équipe
- SSO, export du journal d'audit, DPA
Mid-market avec une équipe Customer Success et un processus d'achat.
Choisir BusinessEnterprise · Sur mesure
Organisations Customer Success à fort volume nécessitant SLA, SAML, multi-entité et résidence régionale des données.
- · Clients surveillés illimités
- · Tout ce que comprend Business
- · SAML, multi-entité, résidence des données
- · Clés LLM en BYO, accompagnement dédié
Le nombre de clients est l'indicateur de valeur, pas un mur infranchissable — le véritable garde-fou de dépense est un plafond de coût quotidien par client, de sorte qu'une semaine chargée ne produit jamais de facture surprise. Le prépaiement annuel est remisé ; renseignez-vous au moment du paiement.
Configuration
Environ quinze minutes entre la connexion et la première analyse.
-
01
Connectez-vous et activez. La liste des clients surveillés et le journal de compte sont provisionnés automatiquement dans votre espace de travail.
-
02
Connectez Stripe — obligatoire. Collez une clé API restreinte en lecture seule. Elle alimente votre liste de clients et constitue la seule source sans laquelle le rôle ne peut pas fonctionner.
-
03
Connectez le CRM et le support — recommandé. HubSpot ou Salesforce, plus Slack ou un outil de support. Plus de sources, plus de preuves ; le rôle fonctionne tout de même avec Stripe seul.
-
04
Surveillez votre file. La première analyse quotidienne s'exécute au prochain top de 06:00 UTC ; les e-mails de rétention et de montée en gamme rédigés commencent à arriver.
Page de configuration : /app/renewal_hunter/setup. Une fois connecté, le rôle s'exécute sur /app/renewal_hunter/.
Sous le capot
Comment fonctionnent le routage et les garde-fous.
- Le routage maintient le prix honnête
- Les comptes calmes vont vers un modèle rapide et peu coûteux ; les comptes qui ont bougé vers un modèle de raisonnement plus puissant ; les plus critiques vers une revue croisée multi-fournisseurs
- La revue croisée multi-fournisseurs
- Un premier brouillon, une seconde IA indépendante d'un autre fournisseur qui le relit, et une troisième pour départager un véritable ex æquo
- Ancré sur les sources
- Chaque affirmation doit citer un identifiant de source présent dans le dossier de preuves — une source citée que le dossier ne contient pas force le verdict à revenir à standard ; un chiffre invérifiable fait abandonner l'e-mail
- Garde-fou de dépense
- Un plafond de coût quotidien par client est le garde-fou strict — une semaine chargée ne peut pas générer de facture surprise
- Confidentialité
- Chaque espace de travail est isolé par sécurité au niveau des lignes ; un journal d'audit en ajout uniquement enregistre chaque appel de modèle, chaque lecture externe et chaque classification
- Synthèse hebdomadaire
- Les renouvellements en cours peuvent être envoyés par e-mail au responsable que vous désignez, et sur Slack lorsque vous le connectez
Mettez une surveillance quotidienne sur chaque renouvellement.
Connectez-vous, branchez Stripe, et la première analyse s'exécute au prochain top de 06:00 UTC. Les e-mails de rétention rédigés commencent à arriver dans votre file — vous approuvez chaque envoi. Pas de carte pour l'essai de 14 jours ; ensuite, 299 $/mois en Team ou un palier supérieur.