Plays — what you don't have to teach her
The operating experience Sarah arrives with. Four situations where a conversation is worth real money, what someone who has run them before actually does, and why the reflex answer is usually the expensive one.
A user tells you they're cancelling because they're "between projects right now."
The reflex is a discount. It's the wrong move twice over. It doesn't fix their problem — their problem is the calendar, not the price — and it permanently lowers what your plan is worth to them and to everyone they mention it to. The right move is a pause: it costs them nothing, keeps the card on file, and turns a churn into a gap. Most products don't offer one at all, which makes it the most underused save in SaaS.
Knowing that is not intelligence. It's experience. A play is a piece of that experience, written down and always in the room.
The part she brings herself
Three things decide what happens when Sarah meets a user, and it's worth seeing who supplies each one:
| Who supplies it | ||
|---|---|---|
| Moments | when she shows up | You — a URL, a trigger(), a button |
| Plays | what's worth doing once she's there | She arrives with them |
| Actions | what she can carry out | You — a small server you run |
Four plays ship with her, all on by default, all free — there is nothing to build and no server involved. They're the Layer 0 half of every stage page.
A play is not a script. She never reads lines, and there's no template to fill in. It's a set of rules about what these conversations actually are: what the first answer usually hides, which lever fits which reason, and what the obvious move costs you when it's aimed at the wrong problem.
The four
One per stage of the journey, and each is built around the thing that isn't obvious until you've run a few hundred of them.
| Play | The stage it serves |
|---|---|
| Onboarding rescue | 1 · Get them started |
| Win-back | 2 · Stop them leaving |
| Conversion | 3 · Grow the account |
They keep the industry's names rather than taking the stage's, because a stage is where the user is and a play is the move — and because a stage can pick up a second play later. The day failed-payment recovery ships, it lands under "Stop them leaving" next to Win-back, and it is a completely different move. Your dashboard tags each play with its stage, so you never have to hold both vocabularies at once.
Onboarding rescue — a new user says it doesn't work
It almost never is the product. A new user's "it doesn't work" or "this is trash" is usually a wrong setting, a tier limit, a content filter, or not knowing where to click. Assume fixable until proven otherwise, ask the single most diagnostic question, and give the concrete fix. Only after a real attempt to unblock them does the conversation get to become feedback — because a rescued user is worth more than a well-documented complaint.
→ Working in Get them started
Win-back — someone is leaving
The reason decides the move, and the first reason they give is usually not the real one. "Too expensive" is the most misread sentence in SaaS: it frequently means "it didn't deliver", and a discount aimed at it burns margin on a problem you don't have. (Moments has a real exit survey where exactly that happened.) So the play is: surface the actual reason with one question, match the lever to that — timing takes a pause, a trial that ran out takes time not money, real long-term price takes a matched discount, something broken takes a fix — then make one genuine attempt and respect the answer. People who are allowed to leave cleanly come back and recommend you; people who are ground down do neither.
→ Working in Stop them leaving
Conversion — someone is at the wall
A paywall is not an interview. Before someone can be sold, they have to understand what actually unblocks them — which plan, what a top-up buys, how usage works. Interrogating a blocked user about their willingness to pay, without first answering that, is how you lose a sale you already had.
The second half is sharper: the objection you can't settle with a fact is the one the trial answers. When somebody says a version of "I'd pay if I could see it do this", that sentence is not an obstacle — it's the offer moment. Pointing them at a free tier and wishing them luck ends the conversation and you never find out whether it worked.
→ Working in Grow the account
Why this isn't just left to the model
Two reasons, and the second is the one that matters.
The judgment is product-specific. A pause is meaningless for a one-off tool. Extending a trial isn't a lever on an annual B2B contract. The same words from a user call for different moves depending on what you sell, and a play is where that gets pinned down instead of improvised.
Which levers you're willing to offer is a business decision, not common sense. Plenty of founders never discount, on principle, and they're right to. That has to be a switch you own — not something re-decided from scratch in every conversation. A play is where the switch lives, which is why they're explicit, visible, and individually toggleable in Agent → Plays rather than buried in a personality.
Only the relevant ones load
Plays are gated by Moment. A cancel conversation carries win-back ; a welcome conversation carries onboarding rescue and not win-back. Unrelated conditional blocks dilute each other, and the irrelevant ones make the relevant one land less reliably.
Note that this is the opposite of how Actions work, and deliberately so. Her tools are never gated — every one is available in every conversation, because a Moment tells you what state someone arrived in, not what they'll turn out to want. Her capability stays constant; her judgment is fitted to the situation.
Next: Actions — what to build when the right move stops being something she can say.
Moments — when Sarah shows up
A Moment is a user state, not an event hook — the eleven states she recognises, what each costs you to enable, and how she avoids asking the same person twice.
Actions — what Sarah can do
How Sarah goes from talking to doing — granting credits, building a checkout, issuing a refund — by calling a small MCP server you run and control.