> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ravenna.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Customize

> Customize agent personality, Slack response behavior, auto-respond settings, and conversational form filling to match your team's voice and workflow.

Define how your agent presents itself and communicates with users through personality settings, Slack behavior configuration, and auto-respond options.

## Personality model

Agent personality controls the communication style, not the behavior. Personality is separate from rules.

### Default communication style

All agents have a built-in communication style that applies when no custom prompt is set:

* Responses are direct and complete, without preamble, closers, or sign-offs
* The agent does not echo or paraphrase the user's question before answering
* Responses avoid sycophantic openers ("Certainly!", "Of course!", "Great question"), filler phrases ("It's worth noting", "utilize", "leverage", "delve"), stiff transitions ("Additionally", "Furthermore", "Moreover"), canned closers ("Hope this helps!", "Feel free to..."), and unprompted follow-up invitations

Formatting (bullets, headers, and lists) is unrestricted. A custom prompt overrides these defaults entirely.

### Configuration modes

Two configuration modes exist:

1. **Structured settings** (Response length, Tone, Emojis): Simple preset values. Response length options are Concise, Balanced, or Verbose. Tone options are Business, Casual, or Humorous. Emoji options are None, Minimal, Moderate, or High.
2. **Custom prompt**: A free-text personality prompt that overrides all structured settings. When a custom prompt is set, the structured settings are completely ignored.

**Key distinction:** Personality prompts define how the agent communicates (tone, verbosity, style). Rules define what the agent does (actions, tools, resource references). Keep these separate. Do not include behavioral instructions in the personality prompt, and do not include personality guidance in rules.

***

## Slack behavior model

### Channel response modes

The agent's response behavior in Slack channels is set to one of three modes:

| Mode                     | Behavior                                                       | Best for                                                         |
| ------------------------ | -------------------------------------------------------------- | ---------------------------------------------------------------- |
| Respond to all messages  | Agent replies to every message in the channel                  | Dedicated support channels with low noise                        |
| Respond to mentions only | Agent replies only when directly @mentioned                    | Channels with mixed conversation and support requests            |
| Respond to requests only | Agent replies only to messages detected as assistance requests | General channels where the agent should stay quiet unless needed |

### Thread response modes

Thread behavior has three modes:

| Mode                                                                      | Behavior                                                                                                                                                                                                                                                                                                                                 | Best for                                                          |
| ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| Respond to all messages                                                   | Agent replies to every message in the thread                                                                                                                                                                                                                                                                                             | Dedicated support threads where all messages need a response      |
| Respond to mentions only                                                  | Agent replies only when directly @mentioned in the thread                                                                                                                                                                                                                                                                                | Threads where humans and agents collaborate                       |
| Smart (classify intent) <Badge icon="bot" color="gray" stroke>V3+</Badge> | Agent uses an AI classifier to determine whether each message is directed at it before responding. Direct @mentions always bypass the classifier, and when the agent is mid-conversation (for example, waiting on a form answer), `@mention`-style replies are treated as answers rather than side-conversations. Default for V3 agents. | Threads with mixed human-to-human and human-to-agent conversation |

### Response elements

Three optional UI elements appear alongside agent responses in Slack:

* **Source links** (default: enabled): Shows links to knowledge base articles used to generate the answer.
* **Feedback buttons** (default: enabled): Thumbs up/down buttons for user feedback. When enabled, negative feedback can optionally auto-create a support ticket.
* **Create ticket button** (default: disabled): Allows users to create a ticket directly from the response. Only appears when a ticket has not already been published.

***

## Auto-respond model

Auto-respond enables the agent to automatically reply to tickets created from non-Slack sources:

* **Email auto-respond**: Replies to tickets created from inbound emails.
* **Integration auto-respond**: Replies to tickets created from Jira, Linear, GitHub, and other connected integrations.

Configuration options:

* **Response delay** (0 to 300 seconds): Delays the agent's response to allow additional context to be added to the ticket first. Available presets: 0s, 5s, 10s, 30s, 1m, 2m, 5m.
* **Auto-submit form**: When enabled (default), the agent automatically submits the ticket if all required form fields are pre-filled. Prefilled values are validated before submission; if the agent makes a mistake it retries with corrected values. When disabled, the user sees a pre-filled form for review. If required fields are missing, the form is shown to the user with valid prefills so they can complete it. Auto-submit is always disabled for private forms.

If the agent cannot provide a definitive answer to an auto-responded ticket, the ticket is tagged with `ai-unresolved` for human follow-up.

***

## Conversational form filling

Conversational form filling changes how the agent collects structured data. Instead of presenting a form UI, the agent asks for each field value through natural conversation.

### Activation logic

Conversational form filling activates when all four conditions are met:

1. The setting is enabled on the agent.
2. A rule triggers a form.
3. The form's effective field count is at or below the configured field threshold (default: 3). The effective count is the maximum number of fields a single user path can reveal — for forms with conditional (dependent) fields, only the longest visible branch counts, not the raw total.
4. The form is not private. Private forms always use the standard form UI to protect sensitive data.

If the form exceeds the threshold or is private, the agent falls back to the standard form UI regardless of the setting.

### Collection sequence

1. The agent identifies all required fields on the triggered form.
2. The agent extracts any field values already mentioned in the conversation.
3. For remaining required fields, the agent asks the user for each value one at a time. For forms with conditional fields, dependent fields are skipped until their parent field has a matching value.
4. For user selection fields, the agent uses User Lookup to resolve names to Ravenna user IDs.
5. For user group selection fields, the agent uses Group Lookup to resolve group names to IDs, respecting any allowlist or source constraints configured on the field.
6. Once all required fields are collected, the agent presents the form for review or auto-submits if auto-submit is enabled.

### When to use each mode

| Mode           | Best for                                                                                                        | Limitations                                                                                                                    |
| -------------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Conversational | Simple forms with few fields (password reset, basic requests)                                                   | Not suitable for forms with many fields, file attachments, or complex multi-select options. Always disabled for private forms. |
| Standard form  | Complex forms, forms with file uploads, forms where users benefit from seeing all fields at once, private forms | Interrupts the conversational flow                                                                                             |

***

## Constraints and gotchas

* **Custom prompt overrides all structured settings.** When a custom prompt is set, Response length, Tone, and Emojis settings are completely ignored. The custom prompt must specify all personality characteristics.
* **Personality is not behavior.** Keep personality prompts focused on communication style. Tool usage, form selection, and workflow triggers belong in rules, not personality.
* **Channel behavior applies per agent, not per channel.** The Slack response mode is set on the agent and applies to all channels the agent is deployed to.
* **Form threshold is a hard cutoff.** If a form's effective field count exceeds the threshold, conversational mode does not activate. There is no partial conversational collection. The effective count is the maximum number of fields a single user path can reveal, so deep dependent-field branches do not push otherwise simple forms over the threshold.
* **Auto-submit bypasses user review.** Auto-submit form is enabled by default. The agent creates the ticket immediately without showing the form when all required fields are prefilled. Prefilled values are validated before submission, so invalid values are corrected rather than silently dropped. Disable this setting if you want users to always review the form before submission. If required fields are missing, the form is shown to the user with valid prefills instead.
* **Private forms always use the standard form UI.** Conversational form filling and auto-submit are both disabled for private forms regardless of agent settings. This ensures sensitive data is collected through the secure form interface.
* **Conditional fields in conversational mode.** During conversational collection, the agent respects field dependencies from the form builder. Dependent fields are skipped until their parent field has a matching value. When using the standard form UI, field visibility is controlled by the form builder's built-in conditional logic.
* **Relative dates resolve in UTC.** Expressions like "tomorrow" and "next Monday" are resolved to `YYYY-MM-DD` relative to UTC. Near midnight in the user's local time, the resolved date may be off by one day.
* **Response delay applies to auto-respond only.** The delay setting affects email and integration auto-responses, not Slack conversations.
* **Negative feedback auto-ticket requires feedback buttons.** The "create ticket on negative feedback" option only works when feedback buttons are enabled.
