I Asked ChatGPT to Segment Our Customers and Got Better Results Than Our Agency13

I Asked ChatGPT to Segment Our Customers and Got Better Results Than Our Agency13

I Asked ChatGPT to Segment Our Customers and Got Better Results Than Our Agency

The Problem With Legacy Segmentation

Most companies still segment customers the way they did in 2015. You pull a spreadsheet, group rows by a handful of attributes—age, location, purchase frequency—and call it a day. The agency charges $12,000 for the exercise. Marketing teams use the output for a quarter, then the segments drift, nobody updates them, and you're back to square one.


Here's what I did instead: I fed a raw, messy customer dataset to ChatGPT, asked it to find natural groupings, and iterated on the output until the segments actually matched how our customers behave. Total cost: a few dollars in API usage. Time: one afternoon.


The result wasn't just cheaper. It was more useful. And that's the point I want to make.

What "Better" Actually Means

Let's be precise about what I mean by "better than our agency," because "better" is a fuzzy word.


I'm not claiming the agency's work was bad. Their segments were defensible. They followed a standard RFM (Recency, Frequency, Monetary) framework, layered in a few demographic cuts, and delivered a 6-page PDF with four segment names and recommended channels.


What they didn't do—and what I needed—was:

  • Find non-obvious subgroups. Not "high-value" vs. "low-value." Something like: customers who buy once, wait 4 months, then buy again, and never buy a third time. That's a distinct behavioral pattern that a 4-way RFM cut flattens.

  • Explain the segments in plain language that a sales rep can use in a cold call, not a marketing scientist can use in a model.

  • Suggest next actions per segment. Not "target with email." More like: "These 312 customers open emails but don't click. Your CTA is above the fold; move it below the hero image and add a second CTA at the 60% scroll mark."

  • Update gracefully when new data arrives. The agency gave me a static file. I wanted a process I could rerun every week.

So "better" here means: more granular, more actionable, more explainable, and more maintainable. Four dimensions. The agency scored 2/4. My ChatGPT pipeline scored 4/4.

The Dataset I Used

Let's ground this. I'm not talking about a toy dataset.

Attribute

Value

Customers

48,312

Time span

24 months

Fields

41 (demographics, transactions, web events, support tickets)

Raw size

~2.1 GB CSV

Missing values

3.2% (imputed)

Duplicate rows

1,847 (deduped)

A real operational dataset. Not clean. Not pre-structured. The kind of thing an agency would want to charge you for "data preparation" before they even start segmenting.

How I Set Up the Task

I didn't just paste a CSV into the chat window and type "segment these." That's not how you get a good result from an LLM. You have to be a director, not a commander.


Here's the structure I used. Three passes.

Pass 1: Exploration

I gave ChatGPT the schema (41 column names + types + a sample of 200 rows) and asked:

"Here's our customer data schema. Before you suggest any segments, tell me what patterns you think are most likely to exist. What questions should I ask the data? What columns are most informative for behavioral clustering vs. least?"

This is important. I wasn't asking for segments yet. I was asking for a hypothesis list. The model responded with a structured breakdown:

  • Purchase cadence (inter-purchase intervals, not just count)

  • Product mix (which category combinations co-occur)

  • Support behavior (ticket frequency, resolution time, sentiment)

  • Web engagement depth (pages per session, time on task pages, CTA interactions)

  • Lifecycle stage (new, growing, stable, declining, lapsed)

Five axes. I'd probably have picked three. The model picked five. Two of them (support behavior, web depth) were things our agency had explicitly excluded because "that's not a customer attribute." But for a B2B SaaS product, support behavior is a massive signal. A customer who files three tickets in a month and gets them all resolved is a very different persona than a customer who files zero tickets. One is engaged and trusting. The other might be indifferent or disengaged.

Pass 2: Clustering

Now I asked for segments. But I constrained the output format:

"Using the 5 axes you identified, propose 5–8 customer segments. For each segment, give me:

  1. A one-line behavioral description (not a name like 'Platinum Buyers')

  2. The defining criteria (specific column thresholds)

  3. Estimated size (rough %)

  4. The 2–3 most distinguishing features vs. all other segments

  5. One concrete next action for marketing, one for sales, one for product

Don't give me RFM. Give me behavior."

The output was a JSON-like structure with 7 segments. I'll walk through a few.


Segment: The Patient Evaluators

  • Description: 3–5 page views per session, 12+ minutes on pricing and comparison pages, zero support tickets, 1 purchase in the last 6 months, purchase decision took 3–5 weeks.

  • Size: ~14% of base

  • Distinguishing features: Longest consideration period; high web depth but low interaction; never contacts support.

  • Next actions:

    • Marketing: Retarget with case studies and comparison tables, not discounts.

    • Sales: Don't call. Send a 3-minute Loom video walkthrough of the specific features they viewed.

    • Product: A "compare plans" page that loads in under 1 second.

Segment: The Support-Dependent Loyalists

  • Description: 2+ support tickets/month, 90% first-contact resolution, 4+ purchases in 12 months, average order value 22% above median.

  • Size: ~9% of base

  • Distinguishing features: Highest support volume; highest LTV; tickets resolved in <2 hours.

  • Next actions:

    • Marketing: Feature in testimonials (with permission); they like talking to us.

    • Sales: Assign a named CSM; they expect a human.

    • Product: These users drive the roadmap. Their ticket topics = feature requests.

Segment: The Window-Shoppers

  • Description: 15+ page views per session, 8+ minutes on site, 0 purchases in 24 months, 0 support tickets, 60%+ of sessions end at the cart.

  • Size: ~11% of base

  • Distinguishing features: High engagement, zero conversion, zero support. The "ghost" segment.

  • Next actions:

    • Marketing: Cart abandonment flow with a 24-hour and 72-hour email.

    • Sales: No action. Don't waste SDR time.

    • Product: A "save for later" feature; they're comparing, not abandoning.

Seven segments total. Each one had a behavioral definition, not a demographic one. You can't fake being a Patient Evaluator. You can't accidentally be a Window-Shopper. These are observable patterns, not labels.

The Iteration Loop

This is where the agency process and the LLM process diverge most. The agency gives you a deliverable. I had a conversation.


After seeing the 7 segments, I said:

"Segments 3 and 5 look overlapping. The 'Growing Adopters' and the 'Patient Evaluators' both have 3–5 page views and 12+ minutes. How do I distinguish them?"

And the model responded:

"The distinction is temporal. Growing Adopters show an increasing session depth over 3 consecutive months. Patient Evaluators show stable depth. If you compute the slope of session depth over a 90-day window, you can separate them. Threshold: slope > 0.3 sessions/week = Growing Adopter. Slope between -0.1 and 0.2 = Patient Evaluator."

That's a specific, implementable criterion. Not "they're similar but different." A threshold. A slope. A window. I could hand that to a data engineer and have a query running in an hour.


I did four more rounds like this. Each round tightened the criteria, resolved overlaps, and added a next-action that was specific enough to assign to a person.

Cost Comparison

Let's make this concrete.

Dimension

Agency

ChatGPT Pipeline

Cost

$12,000

~$14 (API)

Time to first draft

3 weeks

1 day

Time to final

6 weeks

1 day

Segments delivered

4

7

Actionable next steps

1 per segment (generic)

3 per segment (specific)

Explainability

PDF, 6 pages

Conversational, iterative

Reusability

Static file

Repeatable process

Update cost

$3,000 per refresh

~$2 per refresh

Granularity

RFM + demographics

5-axis behavioral

The cost difference is 857x. That's not the point. The point is the quality difference. 7 segments with 3 specific actions each, vs. 4 segments with 1 generic action each. That's not an incremental improvement. That's a different artifact.

What the Agency Did Right

Fairness. The agency wasn't useless. Three things they did that I didn't:

  • Stakeholder buy-in. They sat in a room with the CMO and the VP of Sales. They negotiated the segment names. They made the output political. I had to do that myself, and it took a week.

  • Validation. They cross-referenced the segments against historical campaign performance. "Segment B converted 2.3x better on email than segment A." I had to build that validation myself.

  • Accountability. If the segments were wrong, I could call them. I can't call ChatGPT. The model doesn't owe me a revision.

So the agency sold certainty and accountability. I bought granularity and speed. Different products. You need both.

The Process, Generalized

If you want to do this for your own company, here's the pipeline:

  1. Clean your data. Deduplicate. Impute. Get the schema in a readable format. This is 60% of the work.

  2. Ask for hypotheses, not segments. Give the model the schema and sample rows. Ask it to list 4–6 axes that matter. Let it think out loud.

  3. Constrain the output format. Ask for behavioral descriptions, not labels. Ask for specific thresholds. Ask for 3 next actions per segment (marketing, sales, product).

  4. Iterate. Find overlaps. Ask for distinguishing criteria. Ask for edge cases. "What about a customer who fits two segments?" "How do I handle a new customer with only 2 data points?"

  5. Validate. Pull 50 customers from each segment. Manually check: does this person feel like they belong in this segment? If not, adjust the criteria.

  6. Automate. Write a script that reruns the pipeline on fresh data weekly. Feed the output to your CRM or marketing automation tool.

Total engineering effort: about 2 days. Total analyst effort: about 1 week. Total agency cost: $12,000.

What This Isn't

Let me be clear about what this isn't, because I think there's a risk of overclaiming.


This isn't replacing your data team. This isn't replacing your agency. This isn't a magic box where you type a prompt and get a strategy.


This is a collaboration tool. The model is a very fast, very patient analyst who never gets tired of you asking "what if?" It doesn't replace judgment. It accelerates judgment. You still have to decide which segments matter, which actions are worth executing, and which stakeholders to bring on board.


The agency gave me a product. ChatGPT gave me a process. And a process is more valuable than a product, because a process can be improved, shared, and scaled.

The Deeper Point

The interesting thing about this exercise wasn't the cost savings. It was the shift in what's possible.


When segmentation costs $12,000 and takes 6 weeks, you do it once a year. You get 4 segments. You accept them. You build campaigns around them. You move on.


When segmentation costs $14 and takes a day, you do it weekly. You get 7 segments. You iterate. You test which actions actually move the metric. You discover that the "Window-Shoppers" segment converts at 4x the rate when you add a "save for later" button, and you ship that feature in two sprints. You discover that the "Support-Dependent Loyalists" are your best case-study source, and you build a testimonial pipeline around them.


The granularity of the analysis enables a granularity of action. And that's where the real value lives. Not in the segments. In what you do with them.


The agency sold me a map. ChatGPT sold me a compass. And a compass is more useful than a map, because a compass tells you which way to turn right now, not just where you were six weeks ago.


Written by a data-obsessed product person who spent one afternoon talking to a language model and got more useful output than a six-week consulting engagement.