Find inactive accounts in every SaaS admin console

List the admin consoles. Sai signs in to each one through an approval link, exports the user list with last sign-in dates, flags accounts inactive for 90 days and gives you one review sheet with a screenshot from every console. Next quarter, run it again.

Paste into Sai, or send it from your agent
Use Sai to run our quarterly user access review across these admin consoles: Notion, Figma, Zoom, our Jira Cloud site, and the vendor portal at https://partners.example.com (no API, no SSO).

Sign-in: send me an approval link for each console. Don't ask for passwords in chat.
HR list: active_employees.csv (attached), with columns email, name, department, status.

For each console:
1. Go to the members or users page and export the list as CSV. If there is no export, read the table page by page.
2. Record for every account: email, name, role, last sign-in date, and whether it is an admin.
3. Take a screenshot of the users page with today's date visible, for audit evidence.

Then build one review sheet with all accounts and flag:
- No sign-in for 90 days or more, or never signed in
- Email not in active_employees.csv, or status "terminated"
- Admin accounts, for the owner to confirm

Don't suspend, remove or change any account. When the sheet is ready, show me the flagged accounts and wait for my decision on each.

Watch it run

What Sai does with this prompt

User access review automation means collecting who has access to each app, flagging accounts that should not, and keeping proof that someone reviewed them. Connector-based tools handle apps with an API or SCIM. For the rest, Sai signs in to each admin console like an admin, exports the user list, flags accounts inactive for 90 days and keeps a screenshot of every page as evidence.

What a user access review needs

A user access review is a periodic check that every account in every system still belongs to someone who needs it, with the right level of access. It produces three things: a list of accounts per system, a decision for each flagged account, and evidence that the review happened.

The list is the slow part. Companies use hundreds of SaaS apps: Torii's 2026 benchmark counted about 830 per company on average, with most of them outside formal IT approval (Torii, 2026). Okta reports access reviews among its customers grew 76% in a year (Okta, 2026).

What SOC 2, ISO 27001, PCI DSS and NIST ask for

FrameworkWhat it says about accessInactive accounts
PCI DSS v4.0.1, 8.2.6Requirement 8 covers identifying users and authenticating accessInactive accounts are removed or disabled within 90 days (requirement 8.2.6)
NIST SP 800-53, AC-2Review accounts at an organization-defined frequency (AC-2)Disable accounts inactive for an organization-defined period (AC-2(3))
SOC 2, CC6.3Access to data and software is authorized, modified or removed (CC6.3)No fixed number; auditors commonly expect quarterly reviews
ISO 27001:2022, A.5.18Access rights are reviewed periodically (summary; the standard itself is paywalled)Set by your own policy; 90 days is a common choice

This is a summary, not compliance advice. Your auditor and your own policy decide the interval and the evidence.

Why connector-based tools miss some apps

  • No API, SCIM or SSO. Governance and GRC tools pull users through integrations. Apps without one fall back to "upload a CSV", which someone has to export by hand.
  • The IdP does not know about direct logins. An account created with a password inside the app never shows up in your SSO directory.
  • Inactivity lives in the app. The 90-day rule is about the last sign-in to that app. A user who never signs in again never triggers a login hook, which is exactly the question people raise on the Auth0 community.
  • Removal is still manual. Even where reviews are automated, revoking access in an app with no write integration is a ticket for someone to click through.

Uday Gajavalli of Truto put it directly: apps without admin API access "force IT to scrape UIs" (Truto). That is the part Sai does.

SaaS admin console automation

SaaS admin console automation means operating an app's admin pages the way an administrator would, to export users, read last sign-in dates or change an account, when the app offers no API for that job.

Sai opens each console in a browser on a cloud computer, signs in through an approval link you complete, uses the console's export button or reads the users table page by page, and saves a dated screenshot of the page it read.

Ways to run a user access review, compared

ApproachApps coveredInactive accountsEvidenceRemoving access
Spreadsheet and manual exportsAny, by handIf someone checks last sign-inScreenshots you takeBy hand
IdP reviews (Entra ID Governance, Okta Identity Governance)Apps behind your SSOFrom IdP sign-in dataBuilt inThrough the IdP
Governance and SaaS management tools (ConductorOne, Zluri, Lumos, Torii)Apps with a connector; CSV upload for the restWhere the connector reports itBuilt inAutomatic where a write connector exists
SaiAny admin console a person can useFrom each app's own users pageExports plus dated screenshotsAfter your approval, through the console

If most of your apps are behind SSO with SCIM, start with your IdP or a governance tool. Use Sai for the apps they cannot connect, and feed its export into the same review.

How to automate a user access review with Sai

  1. List the consoles. The admin URL of each app, and any app with no export so Sai reads the table instead.
  2. Attach the HR list. Active employees with email and status, so Sai can flag accounts that belong to nobody.
  3. Approve each sign-in. Sai sends an approval link per console. Passwords and MFA codes stay with you. See approvals.
  4. Review the flags. Inactive for 90 days, not in the HR list, admin accounts. Record a decision for each.
  5. Approve the changes. Sai suspends or removes only the accounts you approve, and screenshots the result.
  6. Repeat next quarter. Ask Sai to save the review as a replayable skill.

The full prompt is in the Start with a prompt tab above.

Run it from your agent or a schedule

Send the review as a task with typed output, so your code gets one row per account and can open tickets for the flags:

curl -s https://api.simular.ai/v1/agents/message \
  -H "Authorization: Bearer $SAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Sign in to {{console}}, export every user with role and last sign-in date, and screenshot the users page. Change nothing.",
    "options": {
      "inputs": { "console": "https://partners.example.com/admin/users" },
      "output_schema": {
        "type": "object",
        "properties": { "users": { "type": "array", "items": { "type": "object",
          "properties": { "email": { "type": "string" }, "role": { "type": "string" }, "lastSignIn": { "type": "string" } } } } }
      },
      "recordTrajectory": true
    },
    "wait": false
  }'

The sign-in arrives as a link-only approval, which a person completes even in unattended runs. Read output.users from /turns, and see structured output for the schema rules and the quick start for keys.

User access review checklist

  • Every app in scope, including ones outside SSO.
  • For each account: owner, role, admin or not, last sign-in.
  • Flags: inactive past your threshold, never signed in, not in the HR list, terminated, shared or generic accounts.
  • A decision and a reason for every flag, made by the app owner or manager, not by the person running the export.
  • Evidence: the export file, a dated screenshot of the source page and the decision log.
  • Removal done and confirmed, with the date.

Limitations

  • Each sign-in needs you. Admin logins and MFA are link-only approvals, so a review across many consoles has a person in the loop for each one.
  • Some consoles do not show last sign-in. Sai records what the console shows; if an app has no activity data, that column stays empty and the report says so.
  • It is not a governance platform. Sai collects and acts on what you ask; certification campaigns, reminders and reviewer workflows belong in your GRC or IGA tool.
  • Not compliance advice. Your auditor decides what evidence is enough.

Related use cases: turn a runbook into a scheduled job, give your agent a computer as a tool and enter CSV rows into a web app with no import.

Last reviewed October 17, 2026.

Frequently asked questions

What is user access review automation?

Software that collects the accounts in each system, flags the ones that need a decision, routes them to reviewers and keeps evidence. Most tools use API or SCIM connectors; Sai covers apps without one by using their admin consoles.

How often should user access reviews happen for SOC 2?

SOC 2 does not set a number. Auditors commonly expect quarterly reviews, with privileged access reviewed at least that often. Your own policy sets the interval.

What does PCI DSS 8.2.6 require?

Inactive user accounts are removed or disabled within 90 days of inactivity.

How do I find users who have not signed in for 90 days?

Export each app's user list with its last sign-in date and filter for dates older than 90 days, plus accounts that never signed in. Your SSO provider only knows about sign-ins that went through it.

How do I review apps that are not behind SSO or SCIM?

Export users from each app's admin console. You can do that by hand, upload CSVs to your governance tool, or have Sai sign in and export them for you.

What evidence do auditors want for an access review?

Typically the list of accounts reviewed, who made each decision and when, and proof that access was removed. Dated exports and screenshots of the source pages help show the list was complete.

Does Sai store our admin passwords?

No. Each sign-in goes through an approval link that you complete, so passwords and MFA codes are never typed into chat or your logs.

Can Sai remove the accounts too?

Yes, but only after you approve. Sai suspends or removes the accounts you mark, through each console, and screenshots the result.

Close the access review in an afternoon

Name the consoles. Sai collects the user lists, flags inactive accounts and keeps the evidence your auditor asks for.