NexaWorks
nexaworks

Signals · Salesforce

The churn signals hiding in your Salesforce.

You don't need new software to see renewal risk. Your Salesforce already records it — in pushed close dates, quiet champions, and polite notes nobody re-reads. Five queries surface most of it.

“Haven't logged in for 23 days / Removed half their team 6 weeks ago / Last feature they used: Export CSV.” — the signals one CSM listed after a churn, r/CustomerSuccess, 2026. All visible beforehand. None were in a report.

The five queries that matter.

Each one ships with its honest failure mode — because a query without false-positive notes is a superstition with a dashboard.

Query 1

Close-date pushes on renewals

The highest-value field in the building. An opportunity whose close date moves twice is not a forecasting problem — it's a customer telling you, in the only language Salesforce records, that something changed. Track push count and days-pushed per renewal opportunity, not just the current date.

Where it lies: Reps push dates for innocent reasons (procurement cycles, budget calendars). The signal is the pattern — repeated pushes on the same account — not any single move.

Query 2

Days since champion activity

Filter activities to contacts in champion and economic-buyer roles, then compute days since the last meaningful touch per account. A champion who went from weekly to silent 47 days ago is the single most common thread in churn post-mortems.

Where it lies: Activity logging discipline varies by rep. Calibrate per-rep before trusting per-account — bulk Friday logging makes 'last activity date' lie.

Query 3

Contact role and title changes

Your champion got promoted, left, or moved teams — and nobody told CS. Monitor contact title changes and role reassignments on open accounts. A sponsor change without a re-onboarding motion is a renewal risk with a timer on it.

Where it lies: Title changes are noisy (promotions aren't churn). The risk is specifically the departure or sidelining of your mapped stakeholders without replacement.

Query 4

Case volume vs the account's baseline

Join support cases to accounts and compare against each account's own history — not a global threshold. A normally-quiet account suddenly filing five cases is a louder signal than a noisy account filing six.

Where it lies: One platform outage skews every account at once. Check account-specificity before flagging, and exclude incident-tagged cases from baselines.

Query 5

The 'we'll manage' pattern in notes

Search activity notes and Chatter for soft-objection language: 'we'll manage,' 'it's not a blocker,' 'let's revisit next quarter.' Customers this polite are usually already shopping — they're just too professional to say so on a call.

Where it lies: Never read a single note as signal. These phrases matter in patterns across touches, not as one-off anecdotes.

What to do on Monday.

  • Enable field history tracking on Opportunity close dates if it isn't already — it's the cheapest high-value change in this list.
  • Build the five reports above as list views first. Dashboards come later; the discipline of looking weekly comes first.
  • Pick your ten most valuable renewals in the next 180 days and run the queries against them by hand. You'll find something.
  • When the manual version proves its worth, automate the joins — or have us build the pipeline in a pilot.

Questions, answered honestly.

Do we need any new Salesforce licenses or apps for this?

No. Everything above runs on standard objects — Opportunities, Contacts, Activities, Cases — plus field history tracking, which most orgs already have or can enable in an afternoon. These are reports and list views, not an implementation project.

Our Salesforce data is messy. Is this still worth doing?

Start with close-date pushes and case volume — those two survive messy data because they're system-generated, not rep-entered. Champion activity tracking needs decent logging discipline; if yours is bad, the honest answer is to fix logging first, and the audit will tell you that plainly.

How does this connect to the rest of our stack?

Salesforce signals are the commercial layer — they tell you what's happening to the money and the people. They get dramatically stronger paired with call transcripts (what was actually said) and product usage (what's actually happening). That's the signal layer: each source covers the others' blind spots.