How to Find Inactive Customers in Supabase — Without Writing SQL
Supabase quietly hands you the best inactivity dataset most products ever get: auth.users tracks last_sign_in_at for every single account, no instrumentation required. But the dashboard won't rank users by silence, join them to your subscriptions, or total up the revenue going quiet — that takes SQL across the auth and public schemas. If you're the founder without a data hire, these five questions do the work in plain English.
“Which users have not signed in for the last 90 days?”
Because Supabase stamps last_sign_in_at on every auth user, this list is sitting complete and current in your project right now. It's the raw material for every win-back email you'll ever send, and pulling it should take one sentence, not a session in the SQL editor.
You get: A table of users ranked by days since last sign-in, with email and signup date.
“Which paying customers are inactive, and what is their combined monthly revenue?”
Silent free users are a nuisance; silent paying users are churn with a date attached. Joining auth.users sign-in data to your subscriptions table puts a monthly dollar figure on the quiet accounts — the number that decides how urgently to act.
You get: A list of inactive paying customers with plan, MRR each, and total revenue at risk.
“What share of all our registered users are dormant, and is that share growing?”
A big signup count with a growing dormant share means your database is becoming a graveyard with a nice front gate. Tracking the dormant percentage monthly tells you whether product changes are actually improving stickiness or just the topline.
You get: A dormancy percentage with a month-by-month trend line.
“Which users created an account but never did anything in the app at all?”
These exist in auth.users but have zero rows in your public tables — signed up, looked around, left. They're distinct from lapsed users: nothing ever hooked them. The size of this group is a direct measurement of your first-session experience, and it's invisible without a cross-schema join.
You get: A count and list of zero-activity accounts with their signup dates and auth providers.
“Do users who signed up with OAuth go inactive faster than email-and-password users?”
One-click Google or GitHub signups lower the entry bar — which sometimes means lower commitment walks through it. Since Supabase stores the provider on every account, comparing dormancy by provider is free insight into which signup door brings users who stay.
You get: A comparison of inactivity rates by auth provider with cohort sizes.
Stop reading. Ask.
Connect Supabase or start with sample data — first answers in under 2 minutes.
Ask this on your data — freeFree plan available · No credit card required
Frequently asked questions
Can it query auth.users, or just my own tables?
Both, as long as the role you connect with has read access to the auth schema. That is exactly what makes inactivity analysis on Supabase so strong — last_sign_in_at, providers, and confirmation timestamps are all first-class queryable data.
Is it safe to connect my production Supabase project for this?
Yes — the connection is read-only by default, so no user record is ever touched. Use a dedicated read-only Postgres role created in the Supabase SQL editor, and remember RLS applies per role: exempt your analytics role or dormancy counts will be silently filtered.
last_sign_in_at only captures logins. What if users stay signed in for weeks?
Fair point — long-lived sessions make sign-in data understate activity. Blend it with behavioral rows from your public tables ("no sign-in AND no records created in 90 days") for a stricter definition; one follow-up question adjusts it.
Related question packs
How to Find Inactive Customers in Postgres — Without Writing SQL
Find inactive customers in your Postgres database with plain English questions. Win-back lists, at-risk revenue, and dormancy trends — no SQL.
How to Find Inactive Customers in MySQL — Without Writing SQL
Find inactive or lapsed customers in your MySQL database using plain English. Win-back lists and revenue at risk — no SQL, no DATEDIFF wrangling.
How to Analyze Your Signup Funnel in Supabase — Without Writing SQL
Analyze your signup funnel in Supabase using plain English. auth.users signups, verification, and activation drop-off — no SQL editor required.