detailed_description. Velma reads your description as instructions — the more precisely you define the signal, the more reliably it identifies it.
Start with the title and short description
Before writing yourdetailed_description, nail the name and short_description first. These aren’t labels — they set the frame for everything that follows.
name— keep it under five words. It should be specific enough that someone unfamiliar with your setup understands immediately what the behavior catches. “Aggressive Language” is okay. “Customer Threat Toward Agent” is better.short_description— one sentence, the dictionary definition of the behavior. If you can’t summarize it in one sentence, the behavior is probably trying to do too much. Consider splitting it.
detailed_description.
Write criteria, not examples
Yourdetailed_description should be a list of explicit conditions that must be met for the behavior to fire. This is not a list of examples.
Examples narrow down what the system looks for and produce unreliable results when the audio doesn’t match them closely. Criteria define the underlying structure the examples would satisfy.
Do this:
Ground criteria in concrete language
Vague terms like “insults,” “hateful language,” or “inappropriate content” require Velma to make its own interpretive judgment — and that judgment may not match what you intended. Ground your criteria in concrete linguistic elements: sentence structure, subject-verb relationships, tense, person, and specific word types. Vague:Don’t restate the title in the description
If your behavior is named “Coercion Manipulation” and your description says “identify patterns of harassment and intimidation,” you haven’t told Velma anything it didn’t already infer from the title. Thedetailed_description must go deeper — into specific structural and linguistic markers — not sideways into synonyms.
Whenever you find yourself using words that mean the same thing as the behavior name, that is a signal the criteria need more work.
Specify who can trigger a behavior
Many behaviors are only meaningful when a specific participant exhibits them. A question like “Can you confirm the account number?” is routine from an agent, but a potential fraud signal from a customer. Without scoping, you will generate false positives. Useapplies_to_participant_role_uuids to restrict detection to specific roles:
detailed_description:
Include negation criteria
Once you have defined what the behavior catches, spend equal time on what it should not catch. Negation criteria prevent false positives from content that superficially resembles the target signal but isn’t what you’re after. A useful technique: think of the most common thing that looks like the behavior but clearly isn’t, then write a rule that excludes it.Define your umbrella terms
Broad category terms like “personal information,” “sensitive topics,” or “inappropriate content” will be interpreted by Velma using its own judgment. That judgment may not match what you have in mind for your specific industry or context. Always follow a broad term with an explicit list of what it includes. Without definition:Scope to context, not universality
A behavior that works well in one context rarely translates cleanly to another. A “return fraud” behavior scoped to an online clothing retailer will have different signals than return fraud at a food delivery service. Trying to write a single behavior that handles every edge case produces a definition that is harder to tune and less precise. Write a tighter version for the context you are actually working in. You can always create multiple variants for different conversation types usingapplies_to_conversation_type_uuids.
Checklist before you ship
Title and short description are locked
Name is under five words and unambiguous. Short description summarizes the behavior in one sentence.
Criteria are explicit conditions, not examples
The detailed description is a list of testable rules, not illustrative cases.
Criteria are grounded in language structure
Terms like “subject,” “adjective,” “future tense,” “conditional framing” rather than “insults,” “hostility,” “inappropriate content.”
Negation criteria are present
At least one “do not flag if” rule covering the most common false positive case.
Role scope is set if relevant
Behaviors that only apply to one participant type are scoped via applies_to_participant_role_uuids or have role context in the description.
Umbrella terms are defined
Any broad category term is followed by a concrete list of what it means in this context.
What to avoid
| Pattern | Problem | Fix |
|---|---|---|
| Description restates the title | Adds no new information for Velma | Go deeper into linguistic structure |
| Criteria are examples | Misses cases that don’t match the examples closely | Rewrite as explicit conditions |
| No negation criteria | High false positive rate for similar-looking content | Add “do not flag if” rules |
| Umbrella terms without definitions | Velma applies its own interpretation | List what the term means in your context |
| One behavior catches too much | Inconsistent results, harder to tune | Split into multiple specific behaviors |
Related
- Custom behaviors — how to define your own behaviors with all required fields
- Using behaviors — how to include behaviors in requests