Portfolio / Salesforce Personalization Core / AI Recommendations Engine
AI/ML Setup Agentic AI Recommenders Salesforce

The recommenders that decide what a customer sees — and the agents that help marketers set them up.

A companion case study to the Personalization Core platform redesign. Three connected surfaces that turn a deeply technical configuration problem — scoping a product or content catalog, defining filter rules, choosing a recommender strategy — into something a marketer can do with a conversation and a few clicks.

3 surfaces Catalog filters · NL agent filters · Recommender setup agent
Sole IC Senior PD on the recommendations workstream
2023–present Designed alongside the Core redesign
Simulate step of the recommender setup — profile explorer on the left, live recommendation preview on the right

The payoff: pick a real profile, hit Simulate, and see exactly what that person would be shown — before anything ships.

The decisioning brain behind every Personalization Campaign.

Salesforce Personalization is a real-time decisioning engine — it picks the right product, article, or piece of content for each customer in the moment. Recommenders are the configurable strategies that drive that decision: collaborative filtering, content-based scoring, behavioral signals, business rules, and combinations of all of the above.

Marketers don't think in terms of cosine similarity or graph traversal. They think: "I want first-time visitors to see our most-viewed seasonal items, but exclude anything we're running low on." The product had to bridge that gap — between marketer intent and a working ML strategy — without dumbing down what the engine could actually do.

The configuration core was the spine. Recommenders are where the AI actually shows up — the surface marketers reach for when they want a smarter answer than "show everyone the same thing."
1 Content variants 2 Decisioning 3 Delivered
1 Content Variants
Seasonal hero offer
Top-rated picks
Recently viewed
Cross-sell bundle
2 Decisioning Logic
Recommender strategy
ML scoring · rules · filters · signals
Qualifying audience
Who is eligible to see each variant
3 Delivered in the moment
● First-time visitor
Sees seasonal hero offer — in stock, region-eligible.
● Loyal customer
Sees cross-sell bundle tuned to past behavior.
Many content variants pass through the recommender's logic and an audience qualifier — each customer is delivered the single best-fit variant, in real time.

Catalogs are big. Rules are deep. Marketers aren't engineers.

Three problems sat on top of each other — each made the next one worse.

Problem 01 Catalogs are massive and messy Customers had product catalogs with hundreds of fields, nested categories, regional variants, inventory states, and thousands of attributes. Scoping the right items for a recommender required deep filter logic the legacy UI couldn't express.
Problem 02 Filter rules required a developer Building anything beyond a single AND/OR clause meant calling Professional Services. Marketers wrote tickets, waited days, and got back something they couldn't tweak themselves.
Problem 03 Recommender setup was a wall of jargon "Pick a strategy" meant choosing between collaborative filtering, content-based, popularity, hybrid — without any guidance on which one fit the goal. Most marketers picked whatever the previous campaign used and hoped.
Problem 04 Trust gap with AI When the engine made a recommendation, marketers couldn't see why. No preview, no explanation, no way to course-correct. AI without auditability is AI marketers won't ship.
Rule-Based Recommender Configuration modal — Calculated Insight, Sort measure, and Sort Order fields with a help panel on the right

Rule-based recommender setup. Three dropdowns named after the data model — "Calculated Insight," "Sort measure" — and a help panel doing the explaining the form couldn't.

Filters modal — Include/Exclude tabs with nested resource, type, operator rows and a WHERE clause containing metric and dimension conditions

The filter builder. Resource, Type, Operator, Profile DG Resource, then a nested WHERE clause underneath — a query language rendered as form fields, with no preview of what it actually matched.

The configuration flow, end to end

Every "customers also bought" strip, every "recommended for you" row, every product suggestion in an email starts as a configuration decision someone has to make. Salesforce describes the outcome in three words — collaborative filtering, content-based, hybrid — but a marketer setting one up has to answer harder questions: which data does this draw from, which of the three approaches fits the goal, which slice of a 65,000-item catalog is even eligible, and will the output hold up before it reaches a real customer. This flow is where those answers get made. Five steps, each one question, ending in a simulation against a real profile so nothing ships on faith.

The same spine, reused

This flow isn't a new pattern. It's the guided setup pattern I established for Personalization Campaigns, applied to a completely different object. Campaigns asked Where → What → Who → How; recommenders ask Data → Type → Objective → Filters → Review. Different questions, identical scaffolding: one decision per step, a persistent left rail that shows where you are and what's left, defaults pre-filled from admin settings, guidance in the rail rather than a separate tab, and a review table before anything commits.

That reuse was the test of the pattern. A configuration spine built for one object turned out to hold for another with a different data model, a different persona mix, and an ML step in the middle — which is what made it worth standardizing rather than treating as a one-off screen design.

Consistency & standards. A marketer who has configured a campaign already knows how to configure a recommender. The chrome, the step rhythm, the rail, and the commit moment are the same, so the only thing new to learn is the subject matter — not the interface.

Recognition over recall. Nothing asks the user to remember a value from three steps back. Every choice stays visible in the rail, filters render as editable rows instead of a saved query string, and the review table restates the whole configuration in place. The system carries the state; the marketer just reads it.

Scroll to walk through it — entry, Data, Recommender Type, Filters, Review, and Simulate.

Guided setup entry modal explaining what a personalization recommender does
Step 00 · Entry — A modal, not a blank form. Two sentences on what this produces and a single primary action. The old flow dropped you straight into field names.
Data step — Data Space, Profile Data Graph, Item Data Graph, and a fallback recommender toggle
Step 01 · Data — Three data selections, all pre-filled with the admin’s defaults, plus a fallback recommender so the surface never renders empty. Failure states are a setup decision, not an incident.
Recommender Type step showing two cards — Objective-Based and Rule-Based
Step 02 · Recommender Type — Two cards instead of a strategy dropdown. Each states what it uses and what it decides, so the choice is legible without knowing the ML vocabulary underneath.
Objective-Based selected, revealing an objective picker set to Maximize Revenue with an explanatory callout
Step 03 · Objective — Pick the outcome, not the algorithm. Selecting an objective reveals a plain-language description of the behavior it will drive — the machine learning stays inside.
Filters step with a natural-language input above the manual Include/Exclude builder
Step 04 · Filters — The natural-language field sits above the manual builder, not instead of it. Both paths lead to the same rule set.
A typed natural-language filter request with the builder showing a generating state
Step 05 · Filters · prompt — One sentence: blue, under $135, never purchased. A skeleton state makes the generation visible rather than blocking.
The generated filter rendered as three editable Resource / Type / Operator / Value rows
Step 06 · Filters · generated — The result lands as real, editable rows — not an opaque saved query. The prompt is echoed above as a Generated Filter banner, so the marketer can see what the agent understood and correct it.
Review & Save step with name, description, and a recommender details table
Step 07 · Review & Save — Everything the marketer chose, restated in one table before commit. The primary action says exactly what happens next: Save & Start Model Training.
Success dialog confirming the recommender was created and training has started
Step 08 · Confirmation — The dialog names the next step and where to find it, instead of a generic success toast.
Recommender detail page showing status In Training with the Simulate action disabled
Step 09 · Training — Status is In Training and Simulate is deliberately disabled. The system tells the truth about what it can and cannot do yet.
Simulate step — profile explorer on the left, live recommendation preview on the right
Step 10 · Simulate — Pick a real profile, set an anchor item, and see exactly what that person would be shown. The step that turns a configuration into something you can defend.
AI · Natural language

Describe the filter in plain English — the agent builds the rules.

A conversational layer that sits on top of the visual builder, not instead of it. The marketer types "show me men's running shoes under $120 that are in stock in the EU and have at least 50 reviews" — the agent proposes the filter graph, populates the visual builder, and shows the live match count. The marketer can then edit visually, refine in chat, or both. The agent is a starting point, not a black box.

  • Mixed-mode editing — chat OR drag, never trapped in one
  • Agent shows its work — every clause maps to a visual rule
  • Ambiguity surfacing — "Did you mean SKU price or list price?"
  • Catalog-grounded — agent only suggests fields and values that exist
  • Iterative refinement — "now exclude clearance items"
  • Auditable — every agent action shows up in the campaign history
The full agentic filter walkthrough — prompt, refinement, and catalog-grounded suggestions in one pass.
Feature 01 Prompt to filter graph The marketer describes the audience in plain language; the agent proposes the clauses and populates the visual builder underneath.
Feature 02 Iterative refinement Each follow-up narrows the set without starting over, and every clause the agent writes stays editable by hand.
Feature 03 Grounded in the catalog The agent only offers fields and values that exist in the customer's data, so a suggestion can never fail at runtime.
AI · Agent-led setup

An agent walks the marketer from goal → strategy → working recommender.

The marketer states an outcome — "recommend products that pair well with what's in the cart" — and the agent leads a guided setup: it proposes the right strategy (cross-sell, complementary, behavioral), suggests scoping filters, picks reasonable defaults for cold-start and fallback, and previews the live output against real customer profiles. The marketer ends with a tunable recommender, not a decision tree they have to navigate alone.

  • Goal-first prompt — strategy is inferred, not picked from a menu
  • Reasoning sidebar — why this strategy, what it'll do
  • Live preview against synthetic + real visitor profiles
  • Cold-start & fallback handled by default, surfaced for edit
  • Tunable post-setup — every agent decision becomes an editable control
  • Hand-off to the visual configuration core when the marketer wants to dig in
Agentforce panel docked beside the Personalization home page, showing a created recommender summary card with objective, data graphs, and filters, plus recommended next actions

The agent builds the recommender and hands back a summary card — objective, data space, both data graphs, and the filters it applied. "Add to Decision" and "Edit" sit right on the card, so the marketer can ship it or open it up. Below, suggested next moves keep the conversation going instead of leaving a blank prompt.

The same panel after a follow-up request, showing the recommender summary updated with an additional price filter and a lower catalog count

One sentence of refinement — "products below $200" — and the card updates in place: the filter list grows, the catalog count drops from 65k to 10k. The count is the honesty mechanism; the marketer sees the scope tighten before anything goes live.

Four rules I held the line on.

Principle 01 Agent + visual, never agent-only Every agent action is reflected in an editable visual control. No black-box "AI did a thing" — marketers can always see and tweak the result.
Principle 02 Ground the agent in the schema The agent never invents fields. It only proposes filters, values, and strategies the catalog and engine actually support — so trust isn't broken on the first run.
Principle 03 Show the matches, always A recommender setup without a live count and a preview drawer is a leap of faith. Every step shows what the engine would actually return — before the marketer commits.
Principle 04 Auditability is a feature Every agent decision lands in the campaign history with reasoning attached. When a campaign underperforms, the marketer can see exactly which call to question — and which to trust.

From "file a ticket" to "ship a campaign in an afternoon."

The recommendations workstream took the most technical surfaces in the product and made them the most marketer-friendly. Filter rules that previously required Professional Services became something a marketer could draft in a chat box. Recommender setup went from a wall of strategy options to a guided conversation. And every AI action stayed editable — which is what made the AI shippable in an enterprise org that had every reason to be cautious.

More information about the public Salesforce Personalization product: salesforce.com/marketing/personalization

© 2026 · aditya yellamraju · handcrafted, then robot-polished no designers were replaced in the making of this site
Vibe coded · Claude