RFM Customer Segmentation Guide
AIVA scores every customer on three axes, continuously, as orders happen:
- Recency (R) - how recently they bought
- Frequency (F) - how often they buy
- Monetary (M) - how much they spend
Each axis gets a score, and the combination maps the customer into a segment. No overnight batch jobs: the scores move when the orders do.
The segments
| Segment | What it means | What Aiva does about it |
|---|---|---|
| Champions | Recent, frequent, high value. Your best customers. | Protect and reward: VIP treatment, early access, referral asks. |
| Loyal Customers | Regular buyers with solid value. | Keep the rhythm: replenishment nudges, loyalty points, cross-sells. |
| Potential Loyalists | Bought recently, but not often yet. | Convert the second purchase: welcome flows, complements, a reason to return. |
| At Risk | Used to buy often, but haven't lately. | Win-back before they're gone: personal check-ins, tailored offers. |
| Lost | Haven't bought in a long while. | Low-cost reactivation campaigns; stop paying to reach the truly gone. |
The point of RFM is that "your customers" is never one audience. A Champion and a Lost customer should never get the same email, and with segments attached to every customer record, they don't.
Query segments through the API
Every customer the API returns carries their RFM segment, and you can filter by it:
from aiva_sdk import AivaClient
client = AivaClient(
api_key=os.getenv('AIVA_API_KEY'),
merchant_id=os.getenv('AIVA_MERCHANT_ID')
)
# Everyone about to churn
at_risk = client.customers.list(segment='At Risk')
print(f"At-risk customers: {at_risk['total']}")
# What's that worth?
total_ltv = sum(c['totalSpent'] for c in at_risk['customers'])
print(f"Total LTV at risk: ${total_ltv:,.2f}")
See the language examples for the same patterns in JavaScript, PHP and C#.
Query segments through the MCP server
With the MCP server connected, your AI assistant can work with segments in plain language:
"Show me at-risk customers who haven't ordered in 90 days, and draft a win-back message for the top ten by lifetime spend."
Under the hood that uses the search_customers tool (search by RFM segment) and analyze_customer_health for the deeper analysis.
Where segments show up in Aiva's skills
- Sales Intelligence watches the At Risk segment and opens win-back conversations before the churn happens.
- Marketing sends different sequences per segment, so Champions never get the "we miss you" email.
- Loyalty & Rewards tunes rewards to the segment most likely to respond.
- Product Recommendations weights shelves by who's looking.
One scoring engine, every skill downstream of it. That's the mechanism.