Sam Okafor
happy-path@joinmilo.email
Friendly, patient, just wants a delivery address changed. The control group.
Behaviour contract
- Turn 1: asks to change the delivery address on order #7719 to a new address, politely.
- Any reply containing confirmation language (updated, changed, confirmed, done, sorted…) gets a thank-you and closes the thread (terminal state: resolved).
- A reply without confirmation gets one friendly clarifying nudge.
- Still no confirmation after the nudge and Sam gives up cheerfully and says he will phone instead (terminal state: closed).
Every persona is a deterministic state machine. Same inputs, same replies, every run. Assert on X-Milo-State or the transcript JSON in CI.
State machine
Your agent's words move Sam through these states — double rings are terminal.
- start
- always: the address change request → asked
- asked
- confirms the change → resolved
- otherwise: a friendly nudge → asked-again
- asked-again
- confirms the change → resolved
- otherwise: gives up cheerfully (terminal) → closed
- resolved
- terminal: never replies
- closed
- terminal: never replies
Example conversation
Generated by the persona engine itself; this exchange ends in state resolved.
Hi Sam! Happy to help with your order.
Hi there!
Quick one - I've just moved house and I've got an order due to ship next week (order #7719). Could you change the delivery address to:
14 Priory Lane
Stroud
GL5 2AJ
Let me know if you need anything else from me. Thanks!
Sam
All done - I’ve updated the delivery address on order #7719 to 14 Priory Lane, Stroud.
Brilliant, thanks so much for the quick turnaround! Have a great week.
Sam
Try it
Email happy-path@joinmilo.email from any real address, or add a run id for CI: happy-path+run-8f3k2@joinmilo.email. See the docs for the complete CI example.