Conversation flows

Writing retry and quota messages

Every attempt quota needs an extension and a real exit — the editor makes both the default, not an option an author has to remember.

By The Kav team Published 2 min read

This is the one editor in the flow builder built around a single WCAG rule: every attempt quota and step deadline has to offer an extension, because a fixed deadline with no way out is a timing failure — and it's exactly the bug the pattern this node type was generalized from actually had (three attempts and the conversation closed; ten minutes and the form was silently discarded).

Three ways the broken shape is hard to reach here

  1. The extension has no delete control. It isn't an optional section you can collapse away — it's rendered as a permanent part of the quota, with the success criterion named right beside it, and the underlying field is required in code rather than merely encouraged in the UI.
  2. The defaults already comply. An author who never opens this panel still ships two grants of three attempts and a two-minute warning, because sensible defaults are what a blank quota starts as.
  3. A degenerate value blocks publish. Setting zero attempts is the same failure written where the type system can't catch it — so it's caught as a blocking diagnostic instead, shown on the field itself, on the node, and again on the publish button.

Treat the built-in defaults as a floor, not a starting point to shrink for a "simple" step. They already reflect an accessibility review's own judgment — going below them is how the original bug comes back.

Choosing an exit

Every quota needs a real exit, and there's deliberately no bare "end" among the choices:

  • Handoff — to a person.
  • Go to node — somewhere else in the same flow.
  • End with a stated alternative — closes the conversation, but only paired with telling the resident exactly where to go instead.

A dead end with no next step isn't one of the options — closing a conversation without saying where to go is not something this editor lets you author.

When you pick "end with a stated alternative," name something specific — a phone number, a named form, a department. "Please try again later" is a dead end wearing different words.