Agentic customer segmentation and next-best-offer on a live graph
Turn customer holdings, spend behavior, category affinity, channel preferences, and campaign touches into a live graph that marketing agents can query and segment in real time.
Why marketing data breaks in SQL for AI agents
A marketing analyst rarely asks a single-table question. They ask: “Which customers hold an entry-tier card, increased grocery spend in the last 30 days, are eligible for our grocery accelerator offer, haven't been contacted too recently, and are opted in on push or email?” Answering that in raw SQL requires joining holdings, transactions, MCC rollups, eligibility, consent, and touch logs. In JetGraph, those are direct graph relationships.
Subject-area graph model
- Customer & holdings:
Customer -[:HOLDS]-> Card -[:OF_PRODUCT]-> CreditCardProduct, plusCustomer -[:LIVES_IN]-> LocationandCustomer -[:IN_SEGMENT]-> CustomerSegment. - Spend & categories:
Card -[:SPENT_AT]-> Merchant -[:IN_MCC]-> MccCategory(with compacttx_count,approx_sum, and hourly/daily histograms) andMerchant -[:BASED_IN]-> Locationfor away-from-home travel detection. - Campaigns & consent:
Campaign -[:RUNS]-> MarketingOffer,Customer -[:ELIGIBLE_FOR]-> MarketingOffer,Customer -[:CONTACTED]-> MarketingOffer,Customer -[:ACCEPTED]-> MarketingOffer, andCustomer -[:PREFERS_CHANNEL]-> Channel.
What AI agents do over MCP
- Discover audience semantics:
get_schemareturns every node and edge type'sbusiness_meaning(for instance, remembering to verify channel opt-in properties before recommending outreach). - Find lookalikes in one call:
find_similartakes weighted edges such asSPENT_ATandOF_PRODUCTto surface customers with matching spend and product overlap without writingSIMILAR_TOedges. - Spot contact fatigue & whitespace: compare
ELIGIBLE_FORedges againstCONTACTEDtx_countandget_histogramwindows to find untouched eligible cohorts or over-contacted customers. - Spot spend shifts & dormancy: compare short vs baseline
get_histogramwindows or useget_last_neighborrecency to detect cooling customers before churn. - Turn insights into live segments: agents call
create_signalandcreate_segmentsosegment-evaluatorkeeps audience membership up to date as new spend events stream in.
Predictable RAM for millions of customers
Because every Card -[:SPENT_AT]-> Merchant or Customer -[:CONTACTED]-> MarketingOffer relationship is stored as one compact record updated in place rather than an unbounded row-per-touch log, portfolio memory scales with active relationships instead of total campaign volume.