AI simulator: AI role-play for pharma field teams
A field rep's job is a ten-minute conversation with a clinician who is busy, skeptical, and already treating patients a particular way. The skill is not product recall. It is opening, probing, presenting to the concern they actually raised, handling the objection, and closing on a next step. AI simulator puts an AI clinician on the other side of the call. The design problem is what that implies: one simulation engine has to support two products with opposite psychological contracts.
Reps only get good at the conversation by having it
A field rep's job is a ten-minute conversation with a clinician who is busy, skeptical, and already treating patients a particular way. The skill is not product recall. It is opening, probing, presenting to the concern they actually raised, handling the objection, and closing on a next step.
The only way to train that is repetition against a realistic partner. In practice that means role-play with a manager: expensive, infrequent, inconsistently judged, and impossible to schedule for a whole field force before launch. Meanwhile the same conversation has to be certified. A rep must be signed off before they carry a therapy, and certification carries an audit obligation that casual role-play cannot meet.
AI simulator puts an AI clinician on the other side of the call. The design problem is what that implies: one simulation engine has to support two products with opposite psychological contracts.
Two modes, one engine, deliberately different rules
The first architecture treated Practice and Certification as one thing with a scoring flag. It failed on contact with users: reps stopped practising, because every run felt like it was on their record.
A practice is five objects, and the stages are the spine
Scores are only meaningful if they compare. That means every scenario, whatever the therapy area, has to be scored against the same skeleton.
Writing a scenario is describing a person, not configuring a bot
The authoring form asks for things a training manager already knows how to answer: who the clinician is, what mood they are in, what they care about, what the rep is trying to achieve. Profession and mood are picked from managed domain lists, so scenarios stay comparable and the AI gets consistent inputs.
Everything the AI is allowed to say is grounded in attached resources. An author adds real material (clinical data, promotional decks, compliance guidelines) and each item is processed into a knowledge summary the author can read and edit. That summary, not the raw file, is what the conversation draws on.
Each stage then carries its own objective, context, measurement, key evaluation criteria, and question-with-ideal-answer pairs. That is the scoring contract: the AI is not judging the conversation against a general idea of good selling, it is judging it against criteria the author wrote.
The green and amber ticks on the stage rail are deliberately not a progress bar. They say which stages are fully specified and which are running on defaults, so an author can ship a scenario knowing exactly where it is thin.
Pronunciation belongs to the domain, not to a scenario
A synthesised clinician who says "met-FOR-min" wrong is not a rough edge. It breaks the illusion the entire product depends on, and it teaches the rep the wrong pronunciation of the drug they are about to sell.
The obvious fix is a per-simulator field. I made it a domain object instead. The same drug appears in dozens of scenarios; the same therapeutic area is authored by several people. Fixing it once and having it wrong everywhere else is the failure mode that matters.
A video call, one exchange at a time
The simulation is framed as a two-panel video call rather than a chat window. The framing does real work: it sets the expectation that you speak out loud, in one take, under time, which is the skill being trained. A chat transcript would train writing.
The rep answers one line at a time and submits each one. That pacing is deliberate. It keeps the run recoverable, gives the scoring engine clean boundaries per exchange, and means a rep who freezes loses one line rather than the attempt.
Everything on screen is either the clinician, the rep, or the four controls a call needs. There is no scoring feedback during the run, no hints, no coaching in Certification mode. The run is evidence, and anything that helps mid-run makes it worse evidence.
Practice mode is where I put the affordances that would corrupt a certification: a suggested reply chip, unlimited retakes, and a transcript you can read while you go.
The AI scores; a human is still accountable
A certification decision has to be defensible years later, and "the model said so" is not a defence. So autonomy is a property of the scenario, set by the author, and the state machine differs accordingly.
Domain switches, not per-screen exceptions
Some customers will not show AI-written narrative feedback to their field force at all. The compliance position is that a generated sentence about a rep's performance is not something they want in a personnel context. That is a customer-level policy, not a per-practice preference.
So it lives once, in Core Tool Settings, and it cascades: when it is off, the AI narrative disappears from every analysis view and the per-practice toggle is disabled rather than quietly ignored.
The rule I held is that the criterion-based evaluation table is always shown. It is the part a human can check against the transcript. Turning off AI prose removes an opinion; it must never remove the evidence.
The same principle governs attempts. Caps are set by the author, spent attempts are never silently returned, and reopening one is an explicit manager grant that leaves a record.
Two audiences, two dashboards
A rep and a training director look at the same certification and want unrelated things. The rep wants to know where they are weak and whether they are improving. The director wants to know whether the cohort is going to be ready before launch, and where the programme is failing.
Rather than one compromise dashboard, the same data is cut twice: competency rings and streaks on the rep's side, funnel and volume on the admin side.
On the admin dashboard the status donut is the one chart that earns its place: it is not a vanity metric but a work queue in disguise. Twelve people in Manager Review in Progress is a bottleneck with a name attached, and fifteen in Re-Attempt Required is a content problem, not a people problem.
Directions I killed
What I'd carry forward
Psychological contract is an architecture decision. Practice and Certification differ by a handful of rules, but those rules are the whole product. Getting them wrong once cost more than any visual decision on this project.
Promote anything shared to a real object. The pronunciation dictionary started as a text field and became the clearest systems argument in the case for AI simulator, and the pattern generalises to every setting that turns out to be per-domain rather than per-item.
AI opinion and AI evidence are different things. Customers will switch off the narrative; none of them will switch off the criterion table. Separating the two is what let one product serve both postures.
What's unfinished. Speech scoring is currently framed as one score per stage; per-utterance attribution would make the coaching much sharper. Accessibility of a timed, voice-first assessment needs proper design. The current flow assumes a rep who can speak on demand into a working microphone, and certification is exactly the wrong place for that assumption.
AI simulator · ACTO platform · admin and user portals. Scenario data, HCP personas and clinical content shown in the interface are illustrative; screenshots are from the working prototypes. Built on the ACTO Product Design System.