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

# Feature Configuration

> Configure chat, voice, and conversation features

## chatEnabled

* **Type**: `boolean`
* **Default**: `true`
* **Description**: Enable or disable chat functionality

## voiceEnabled

* **Type**: `boolean`
* **Default**: `true`
* **Description**: Enable or disable voice functionality

## enableMemoryContext

* **Type**: `boolean`
* **Default**: `true`
* **Description**: Enable intelligent conversation continuity for onboarding agents
* **Requirements**:
  * `user_identifier` must be provided
  * Agent must be of type "onboarding"
* **Features**:
  * Tracks user progress across multiple conversations
  * Stores Q\&A responses and milestones completed
  * Personalizes agent responses based on previous interactions
  * Dynamically overrides first message for returning users

```javascript theme={null}
// Memory context is enabled by default for onboarding agents
initUnifiedWidget({
  agentConfigId: "your-onboarding-agent-id",
  agentKey: "your-agent-key",
  user_identifier: "user123", // Required for memory context
  enableMemoryContext: true // Default: true
});

// Explicitly disable memory context if not needed
initUnifiedWidget({
  agentConfigId: "your-agent-id",
  agentKey: "your-agent-key",
  user_identifier: "user123",
  enableMemoryContext: false
});
```

## enableConversationRestore

* **Type**: `boolean`
* **Default**: `false`
* **Description**: Enable conversation persistence across page refreshes for voice
* **Note**: Conversations restore if refreshed within 5 minutes

```javascript theme={null}
// Enable conversation persistence
initUnifiedWidget({
  agentConfigId: "your-agent-id",
  agentKey: "your-agent-key",
  enableConversationRestore: true
});
```

## Memory Context vs Conversation Restore

These are two different features that serve different purposes:

| Feature                       | Purpose                                              | Scope                         | Data Stored                                  |
| ----------------------------- | ---------------------------------------------------- | ----------------------------- | -------------------------------------------- |
| **enableMemoryContext**       | Remember user progress across multiple conversations | Cross-conversation continuity | User progress and Q\&A responses in database |
| **enableConversationRestore** | Restore conversation after page refresh              | Single conversation session   | Message history in localStorage              |

**Use `enableMemoryContext` when:**

* You have an onboarding agent that should remember user progress
* Users may return days or weeks later
* You want personalized experiences based on previous interactions
* Long-term progress tracking across multiple conversations

**Use `enableConversationRestore` when:**

* You want users to continue the same conversation after page refreshes
* Working with any agent type
* Short-term session persistence (5 minutes)

## autoStart

* **Type**: `boolean`
* **Default**: `false`
* **Description**: Automatically start a voice conversation when the widget loads
* **Requirements**: `voiceEnabled` must be `true`
* **Note**: Starts voice mode after a 2-second delay once the agent config is loaded

```javascript theme={null}
// Auto-start voice conversation
initUnifiedWidget({
  agentConfigId: "your-agent-id",
  agentKey: "your-agent-key",
  autoStart: true,
  voiceEnabled: true // Required for autoStart to work
});
```

## Examples

```javascript theme={null}
// Voice only
initUnifiedWidget({
  agentConfigId: "your-agent-id",
  agentKey: "your-agent-key",
  chatEnabled: false,
  voiceEnabled: true
});

// Chat only
initUnifiedWidget({
  agentConfigId: "your-agent-id",
  agentKey: "your-agent-key",
  chatEnabled: true,
  voiceEnabled: false
});

// Both with conversation restore
initUnifiedWidget({
  agentConfigId: "your-agent-id",
  agentKey: "your-agent-key",
  chatEnabled: true,
  voiceEnabled: true,
  enableConversationRestore: true
});

// Auto-start voice with conversation restore
initUnifiedWidget({
  agentConfigId: "your-agent-id",
  agentKey: "your-agent-key",
  autoStart: true,
  voiceEnabled: true,
  enableConversationRestore: true
});

// Onboarding agent with memory context (enabled by default)
initUnifiedWidget({
  agentConfigId: "your-onboarding-agent-id",
  agentKey: "your-agent-key",
  user_identifier: "user123",
  voiceEnabled: true,
  chatEnabled: true
  // enableMemoryContext: true (default, no need to specify)
});

// Onboarding agent without memory context
initUnifiedWidget({
  agentConfigId: "your-onboarding-agent-id",
  agentKey: "your-agent-key",
  user_identifier: "user123",
  enableMemoryContext: false // Explicitly disable
});

// Full featured onboarding with both memory and restore
initUnifiedWidget({
  agentConfigId: "your-onboarding-agent-id",
  agentKey: "your-agent-key",
  user_identifier: "user123",
  enableMemoryContext: true, // Long-term memory across sessions
  enableConversationRestore: true // Short-term restore after refresh
});
```
