These docs are for version 1.x of Rasa Open Source.

## User Guide
- [Installation](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/installation/)
- [Tutorial: Rasa Basics](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/rasa-tutorial/)
- [Tutorial: Building Assistants](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/building-assistants/)
- [Command Line Interface](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/command-line-interface/)
- [Architecture](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/architecture/)
- [Messaging and Voice Channels](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/messaging-and-voice-channels/)
- [Evaluating Models](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/evaluating-models/)
- [Validate Data](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/validate-files/)
- [Configuring the HTTP API](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/configuring-http-api/)
- [Deploying Your Rasa Assistant](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/how-to-deploy/)
- [Cloud Storage](https://legacy-docs-v1.rasa.com/1.8.3/user-guide/cloud-storage/)

## NLU
- [About](https://legacy-docs-v1.rasa.com/1.8.3/nlu/about/)
- [Using NLU Only](https://legacy-docs-v1.rasa.com/1.8.3/nlu/using-nlu-only/)
- [Training Data Format](https://legacy-docs-v1.rasa.com/1.8.3/nlu/training-data-format/)
- [Choosing a Pipeline](https://legacy-docs-v1.rasa.com/1.8.3/nlu/choosing-a-pipeline/)
- [Language Support](https://legacy-docs-v1.rasa.com/1.8.3/nlu/language-support/)
- [Entity Extraction](https://legacy-docs-v1.rasa.com/1.8.3/nlu/entity-extraction/)
- [Components](https://legacy-docs-v1.rasa.com/1.8.3/nlu/components/)

## Core
- [About](https://legacy-docs-v1.rasa.com/1.8.3/core/about/)
- [Stories](https://legacy-docs-v1.rasa.com/1.8.3/core/stories/)
- [Domains](https://legacy-docs-v1.rasa.com/1.8.3/core/domains/)
- [Responses](https://legacy-docs-v1.rasa.com/1.8.3/core/responses/#)
- [Actions](https://legacy-docs-v1.rasa.com/1.8.3/core/actions/)
- [Reminders and External Events](https://legacy-docs-v1.rasa.com/1.8.3/core/reminders-and-external-events/)
- [Policies](https://legacy-docs-v1.rasa.com/1.8.3/core/policies/)
- [Slots](https://legacy-docs-v1.rasa.com/1.8.3/core/slots/)
- [Forms](https://legacy-docs-v1.rasa.com/1.8.3/core/forms/)
- [Retrieval Actions](https://legacy-docs-v1.rasa.com/1.8.3/core/retrieval-actions/)
- [Interactive Learning](https://legacy-docs-v1.rasa.com/1.8.3/core/interactive-learning/)
- [Fallback Actions](https://legacy-docs-v1.rasa.com/1.8.3/core/fallback-actions/)
- [Knowledge Base Actions](https://legacy-docs-v1.rasa.com/1.8.3/core/knowledge-bases/)

## Conversation Design
- [Dialogue Elements](https://legacy-docs-v1.rasa.com/1.8.3/dialogue-elements/dialogue-elements/)
- [Small Talk](https://legacy-docs-v1.rasa.com/1.8.3/dialogue-elements/small-talk/)
- [Completing Tasks](https://legacy-docs-v1.rasa.com/1.8.3/dialogue-elements/completing-tasks/)
- [Guiding Users](https://legacy-docs-v1.rasa.com/1.8.3/dialogue-elements/guiding-users/)

## API Reference
- [Action Server](https://legacy-docs-v1.rasa.com/1.8.3/api/action-server/)
- [HTTP API](https://legacy-docs-v1.rasa.com/1.8.3/api/http-api/)
- [Jupyter Notebooks](https://legacy-docs-v1.rasa.com/1.8.3/api/jupyter-notebooks/)
- [Agent](https://legacy-docs-v1.rasa.com/1.8.3/api/agent/)
- [Custom NLU Components](https://legacy-docs-v1.rasa.com/1.8.3/api/custom-nlu-components/)
- [Rasa SDK](https://legacy-docs-v1.rasa.com/1.8.3/api/rasa-sdk/)
- [Events](https://legacy-docs-v1.rasa.com/1.8.3/api/events/)
- [Tracker](https://legacy-docs-v1.rasa.com/1.8.3/api/tracker/)
- [Tracker Stores](https://legacy-docs-v1.rasa.com/1.8.3/api/tracker-stores/)
- [Event Brokers](https://legacy-docs-v1.rasa.com/1.8.3/api/event-brokers/)
- [Lock Stores](https://legacy-docs-v1.rasa.com/1.8.3/api/lock-stores/)
- [Training Data Importers](https://legacy-docs-v1.rasa.com/1.8.3/api/training-data-importers/)
- [Featurization of Conversations](https://legacy-docs-v1.rasa.com/1.8.3/api/core-featurization/)
- [TensorFlow Configuration](https://legacy-docs-v1.rasa.com/1.8.3/api/tensorflow_usage/)
- [Migration Guide](https://legacy-docs-v1.rasa.com/1.8.3/migration-guide/)
- [Rasa Open Source Change Log](https://legacy-docs-v1.rasa.com/1.8.3/changelog/)

## Migrate from (beta)
- [Dialogflow](https://legacy-docs-v1.rasa.com/1.8.3/migrate-from/google-dialogflow-to-rasa/)
- [Wit.ai](https://legacy-docs-v1.rasa.com/1.8.3/migrate-from/facebook-wit-ai-to-rasa/)
- [LUIS](https://legacy-docs-v1.rasa.com/1.8.3/migrate-from/microsoft-luis-to-rasa/)
- [IBM Watson](https://legacy-docs-v1.rasa.com/1.8.3/migrate-from/ibm-watson-to-rasa/)

## Reference
- [Glossary](https://legacy-docs-v1.rasa.com/1.8.3/glossary/)

## Responses
If you want your assistant to respond to user messages, you need to manage these responses. In the training data for your bot, your stories specify the actions your bot should execute. These actions can use responses to send messages back to the user.

There are three ways to manage these responses:

1. Responses are normally stored in your domain file, see [here](https://legacy-docs-v1.rasa.com/1.8.3/core/domains/#domain-responses)
2. Retrieval action responses are part of the training data, see [here](https://legacy-docs-v1.rasa.com/1.8.3/core/retrieval-actions/#retrieval-actions)
3. You can also create a custom NLG service to generate responses, see [here](https://legacy-docs-v1.rasa.com/1.8.3/core/responses/#custom-nlg-service)

### Including the responses in the domain
The default format is to include the responses in your domain file.

```yaml
intents:
 - greet
 - default
 - goodbye
 - affirm
 - thank_you
 - change_bank_details
 - simple
 - hello
 - why
 - next_intent

entities:
 - name

slots:
  name:
    type: text

responses:
  utter_greet:
    - text: "hey there {name}!"
  utter_channel:
    - text: "this is a default channel"
    - text: "you're talking to me on slack!"
  utter_goodbye:
    - text: "goodbye 😢"
    - text: "bye bye 😢"
  utter_default:
    - text: "sorry, I didn't get that, can you rephrase it?"
```
The `responses` section contains the responses the assistant uses to send messages to the user.

### Creating your own NLG service for bot responses
Retraining the bot just to change the text copy can be suboptimal. That’s why Core allows you to outsource the response generation and separate it from the dialogue learning. The assistant will send a message to the user using an external HTTP server. To configure this endpoint, you need to create an `endpoints.yml`.

### Proactively Reaching Out to the User with External Events
You may want to proactively reach out to the user, example to display output of a long-running background operation or notify the user of an external event.
