License Reclamation
Wasted licence spend down 20% quarter-over-quarter
SaaS licences are the tax that grows quietly. Every employee onboarded gets a seat; every offboarded employee... often still holds one. Every trial that gets forgotten becomes a paid seat. Every team's over-purchase ("we might need 20 later") becomes 15 seats that never get used. Annual SaaS spend grows 15-25% year-over-year on autopilot, and 20% of it isn't touching any human.
An hour-by-hour walkthrough.
Step by step.
- 01
Scan usage across SaaS
Read seat assignments + last-active timestamps for each managed SaaS. Sources include SSO events (Okta, Google Workspace), API-native activity signals, and SaaS-management-platform data where available.
Okta · M365 · Google Workspace · Slack · Adobe · Zylo · Torii - 02
Identify seats unused > 60 days
Threshold configurable per SaaS ("unused" for Slack means 60 days without an action; for Datadog it's different). Categorise: offboarded / active-unused / team-moved.
Analysis · Context Graph - 03
Notify owner with 7-day window
For active-user unused: DM the user with reclamation notice. For team-changed: DM the license owner. Both parties can respond KEEP + reason or accept the reclaim. Deadline enforced automatically.
Slack · Email - 04
Revoke or reassign on timeout
On timeout without response: reclaim. On KEEP: log the reason for the next scan. On team-moved with reassignment: transfer the seat to the new team owner. All writes idempotent.
Okta · SaaS admin APIs
What you connect to make this run.
Okta · Microsoft Entra ID
read+writeSSO events read for last-active detection. Seat reclamation writes via the SaaS's own admin API (M365 licence release, Google Workspace user deletion, Slack account deactivation).
Zylo · Torii · Nudge Security
readSaaS-management platform integration for tools without native activity APIs. Shadow-IT discovery + usage-based reclamation.
Slack · Teams · Email
writeNudge cadence + response collection. Users respond in-thread; automated timeout enforcement.
Before and after, honestly.
Playbooks that pair with this one.
Proactive Device Health
Complementary optimisation — reclaim licences AND monitor device health quarterly.
Employee Offboarding
Reclamation catches accounts that offboarding missed — a signal to close the gap in offboarding coverage.
License Cost & Renewal Tracking
Reclamation savings feed into renewal negotiations.
User Access Reviews (UAR)
Access reviews + reclamation together drive least-privilege access at scale.
Answers about this playbook.
What counts as 'unused' for each SaaS?
Per-SaaS configurable. Slack: no message sent or channel joined in 60 days. Figma: no file opened. Datadog: no dashboard viewed. Defaults tuned per SaaS; can override per your workflow.
What if a user is on vacation and misses the 7-day nudge?
Nudge cadence respects out-of-office signals from calendar. If the user is on approved leave, extend the deadline; nudge again on their first day back.
Can we exempt specific users or teams?
Yes — exclusion list per team or per user. Common exclusions: sales leaders who use CRM sporadically for high-value deals, exec team, security team's Datadog for on-call.
How does this integrate with Zylo or Torii?
Coexists. Zylo/Torii provide the discovery + usage signal for SaaS without native APIs. Ivy adds the reclamation action + notification flow on top. Bring your existing SAM tool.
Can we auto-reclaim without user notification?
Only for offboarded accounts (auto-reclaim on termination). Active-user unused seats always get the 7-day notice — reclaiming silently is a friction moment worth avoiding.
See it run on your data.
Free plan, no credit card. Connect the systems this playbook needs and run it against a past event first.