Dana Whitfield

refund-angry@joinmilo.email

Double-charged and furious about it. Your agent has four turns to make it right.

Behaviour contract

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 Dana through these states — double rings are terminal.

startopenedescalateddeescalatedboilingresolveddemanding-manager

Example conversation

Generated by the persona engine itself; this exchange ends in state resolved.

From: agent@acme-support.devHi! This is the Acme support assistant - how can I help today?
From: refund-angry@joinmilo.emailI've just been through my bank statement and you have charged me TWICE for order #48213. £59.98 has left my account for a £29.99 order. I want the duplicate charge refunded immediately. I've been a customer for two years and this is the second billing problem I've had - the first one took three weeks to sort out and I am not doing that again. Dana Whitfield
From: agent@acme-support.devI can see the duplicate charge on order #48213. A refund of £29.99 is on its way back to your card, and I’m sorry for the hassle.
From: refund-angry@joinmilo.emailFine. Thank you. Can you confirm exactly when the £29.99 will be back on my card? My statement still shows both charges as of this morning. Dana
From: agent@acme-support.devNot at all - it should appear within 3-5 working days.
From: refund-angry@joinmilo.emailOK - I can see the refund pending on my account now. Thanks for sorting it, although honestly it shouldn't have taken this much chasing. Dana

Try it

Email refund-angry@joinmilo.email from any real address, or add a run id for CI: refund-angry+run-8f3k2@joinmilo.email. See the docs for the complete CI example.