MySQLInactive Customers

How to Find Inactive Customers in MySQL — Without Writing SQL

MySQL powers an enormous share of the world's stores and customer databases — WooCommerce shops, membership sites, custom CRMs on LAMP stacks. Which means the classic question “who used to buy from us and stopped?” is usually a MySQL question, tangled up in DATEDIFF math, order-status filtering, and (in WordPress-style schemas) customer facts scattered across meta tables. If you're the owner or ops person without a data team, ask these five questions instead of writing that query.

Question 1

Which customers have not placed an order in the last 90 days?

Past buyers are the cheapest revenue you will ever re-acquire — they know you, they've paid you, and their email is already in your database. In WooCommerce-style schemas this means finding each customer's latest completed order while excluding cancelled and refunded statuses, which is exactly the fiddly filtering worth delegating.

You get: A table of lapsed customers ranked by days since last order, with lifetime spend and order count.

Ask this free
Question 2

How much did our now-inactive customers spend with us historically?

The dollar total of dormant customers is the business case for every win-back campaign you'll ever run. If lapsed buyers account for a large slice of historical revenue, even a modest reactivation rate outperforms buying the same revenue through ads.

You get: A total of historical revenue from inactive customers, bucketed by how long they’ve been gone.

Ask this free
Question 3

Which previously frequent buyers have suddenly gone quiet?

A customer who ordered monthly for a year and then stopped is a louder alarm than one who bought once and drifted. Comparing each customer's usual purchase rhythm to their current silence surfaces the highest-intent win-back targets first — the people most likely to come back with a single nudge.

You get: A list of formerly regular customers ranked by the gap between their usual cadence and current silence.

Ask this free
Question 4

What did inactive customers usually buy before they stopped?

Knowing the last products lapsed customers purchased makes your win-back email specific instead of generic — a restock reminder, an accessory, a new version. If dormancy clusters around particular products, you may also have found a quality or repurchase-cycle issue worth fixing at the source.

You get: A breakdown of the most common last-purchased products among inactive customers.

Ask this free
Question 5

How many customers go inactive each month, and is the pace accelerating?

Monthly dormancy flow tells you whether the leak is stable or widening — grouped by month, which in MySQL means DATE_FORMAT bucketing where an off-by-one on month boundaries quietly corrupts the trend. Get it computed consistently and check it alongside your acquisition numbers every month.

You get: A monthly count of newly inactive customers with the trend over the past year.

Ask this free

Stop reading. Ask.

Connect MySQL or start with sample data — first answers in under 2 minutes.

Ask this on your data — free

Free plan available · No credit card required

Frequently asked questions

I run the store, not the database — do I need SQL for any of this?

No. Ask the questions in plain English exactly as written; the AI writes the MySQL, runs it read-only, and hands back sortable tables you can export as CSV for your email platform.

Is pointing this at my live shop database risky?

No — the connection is read-only by default, so orders and customer records cannot be modified. If you want a hard guarantee, create a MySQL user with SELECT-only privileges or connect to a replica.

Guest checkouts mean some "customers" have no account. Are they included?

Yes, if you ask for it. Guest orders in WooCommerce-style schemas carry a billing email even without a user account, so the AI can group activity by email address instead of user ID and catch lapsed guest buyers too.