Skip to main content

Debugging AI personalization — how-to

An Einstein score looks wrong, a generated copy field is blank, or an agent answers confidently and incorrectly. The diagnostic is always the same: figure out which surface produced the value, then walk down to the layer where it actually breaks. The AI-personalization debugging playbook.

How-to·Last updated 2026-06-01·Drafted by Lira · Edited by German Medina

A value is wrong, blank, or surprising, and an AI surface produced it. An Einstein persona looks off for a contact you know well. A generated subject-line field is empty for half the audience. An Agentforce agent stated something confidently false about a customer. The instinct is to blame "the AI" — but each of the three surfaces fails at a different layer, so the first diagnostic step is always the same: which surface produced this value, and what does that surface actually read?

Step 0 — Which surface is this?

[ Einstein score / persona ]   → reads your tenant's engagement history
[ Generated copy field ]       → an external model call wrote (or failed to write) a DE
[ Agent answer / action ]      → Agentforce read the Data Cloud unified profile

Each surface has a different layer to walk down. Name the surface first; then follow the matching path below.

Einstein score looks wrong

An Engagement Scoring persona, an STO time, or a Content Selection pick that doesn't match what you'd expect.

  1. Is there enough history under it? The most common cause is a thin engagement history — a new Business Unit, a low-volume program, or a contact with almost no sends. The model extrapolates from little and reports a confident score anyway. Check the volume before anything else. (See gotchas — gotcha 1.)
  2. Is the model reading the data you think? Confirm the feature is scoped to the right Business Unit and the engagement it's learning from is the engagement you mean — not a test BU, not a sending pattern that changed last month.
  3. Did the sending pattern just change? A model trained on one cadence scores oddly right after a big shift (a new program, a frequency change). It re-learns; the transient is expected.

If history is adequate, the BU is right, and the pattern is stable, the score is probably telling you something true that contradicts your intuition — which is the point of having it.

Generated copy field is blank or wrong

A field an external model was supposed to populate is empty, garbled, or stale. This is a data-flow bug, debugged like any AMPscript blank — walk the layers.

[ External model call (Script Activity) ]
        ↓ writes
[ Data Extension field ]
        ↓ Lookup at render time
[ Email / CloudPage output ]
  1. Is the value in the DE? Look at the row for an affected SubscriberKey.
    • Blank in the DE — the model call failed or never ran for this contact. Check the Script Activity log: a non-200 status, a timeout, a rate-limit error partway through the run (the classic half-personalized send — gotcha 9). If you wrote a fallback on failure, this should show the fallback, not blank; if it's truly blank, the failure path is missing.
    • Correct in the DE — the generation worked; the bug is at the render/Lookup layer. The Lookup key or DE name is wrong, or the field's being read before the Automation that fills it has run.
  2. Is it wrong rather than blank? A non-deterministic model produced a bad output that no spot check caught (gotcha 8). This is why generation belongs ahead of time with validation and, for customer-visible copy, human approval — so a bad output is caught in the DE, before the send, not in an inbox.
  3. Did the run finish? A rate limit returning errors partway leaves the first N contacts personalized and the rest blank. The symptom is "blank for everyone after a certain point." Throttle and retry the unfilled rows.

Agent answered confidently and wrong

An Agentforce agent stated something false about a customer, or took an action on the wrong one. The agent is rarely the bug — the model under it usually is.

  1. Could a human analyst get this right from the unified profile? Ask the same question of the Data Cloud profile by hand. If a human also can't get a coherent answer, the bug is the data model, not the agent — identity didn't resolve, a relationship isn't modeled, an object isn't documented. The agent inherited the gap. (See the Data Cloud architecture gotchas.)
  2. Is identity resolved correctly? Two customers merged, or one split, produces an agent that's confidently wrong about who it's discussing. Check resolution before blaming the reasoning.
  3. For a wrong action: trace the action's approval and audit trail (gotcha 5). An agent that acted without a gate is a governance bug, not a model bug — the fix is the guardrail, not the prompt.

Quick reference

| Symptom | Surface | First thing to check | |---|---|---| | Persona / score looks off | Einstein | Engagement history volume under the model | | Copy field blank for some contacts | External model | Script Activity log — rate limit / failure path | | Copy field blank at render only | External model | Lookup key / DE name / Automation order | | Copy field wrong, not blank | External model | Validation + approval before the DE write | | Agent confidently wrong | Agentforce | Can a human answer it from the profile? | | Agent acted wrongly | Agentforce | Action approval gate + audit trail |

Related