Named forms vs. a flow's own form step
A form node lives inside one flow. A named, standalone form is its own object the assistant can find directly from what a resident actually types.
Two different things share the word "form" in Kav Studio, and mixing them up costs you either a form nobody can find or a flow doing more work than it needs to. A flow's own form step (covered in a separate guide) lives inside one specific conversation path — a resident reaches it only by walking that flow. A named, standalone resident form is its own object with its own slug, discoverable by the assistant directly from what someone typed, with no flow required at all.
How the assistant finds it
A named form's discoverability is a short description written in the resident's own words — "report a safety incident involving a child at a municipal school," not "Education incident intake form v2." It's matched by embedding similarity to what a resident actually types, which means operator-phrased text simply won't land where a resident's own sentence does.
There's no do_not_use_when field here, on purpose — an embedding can't represent an absence. If two forms' subjects overlap, the fix is describing each one better, not wording around the other; a hard exclusion belongs to routing rules, matched literally, not to this field.
Leave discoverability off and a form is invisible to the assistant's own search — which is exactly right for a form meant to be reached only from inside a flow instead.
Building it: identity, fields, a real preview
Three panes, in the order the work happens: the form's identity, its fields — each with its own conditions, validation and, where needed, options pulled live from a capability call — and a preview that runs the same evaluator the resident-facing widget actually uses, not an approximation of it.
What a resident reads once they're done
Outcome copy is optional; leave it unset and the platform's own wording is used. Set it, and every value comes from the submit capability's typed output, by field name — so a value the capability didn't return drops that whole line rather than shipping a label with nothing after it. A mid-submission sign-in requirement gets no outcome box at all, because asking someone to prove who they are and resubmit isn't a conclusion.
Publish is a boolean, not a second trip
Saving and publishing are the same call, one flag apart. A draft stays invisible to every path that could reach it, so a form left half-built overnight can't leak into a live conversation.
Describe the form the way a worried resident would actually type the question, not the way your own department files the case internally — that's the sentence the match is scored against.