These docs are for version 1.x of Rasa Open Source.
[Docs for the new version 2.0 can be found here.](/content/docs/rasa/index.html)

# User Guide

- [Installation](https://legacy-docs-v1.rasa.com/1.9.7/user-guide/installation/)
- [Tutorial: Rasa Basics](https://legacy-docs-v1.rasa.com/1.9.7/user-guide/rasa-tutorial/)
- [Tutorial: Building Assistants](https://legacy-docs-v1.rasa.com/1.9.7/user-guide/building-assistants/)
- [Command Line Interface](https://legacy-docs-v1.rasa.com/1.9.7/user-guide/command-line-interface/)
- [Architecture](https://legacy-docs-v1.rasa.com/1.9.7/user-guide/architecture/)
- [Messaging and Voice Channels](https://legacy-docs-v1.rasa.com/1.9.7/user-guide/messaging-and-voice-channels/)
- [Testing Your Assistant](https://legacy-docs-v1.rasa.com/1.9.7/user-guide/testing-your-assistant/)
- [Setting up CI/CD](https://legacy-docs-v1.rasa.com/1.9.7/user-guide/setting-up-ci-cd/)
- [Validate Data](https://legacy-docs-v1.rasa.com/1.9.7/user-guide/validate-files/)
- [Configuring the HTTP API](https://legacy-docs-v1.rasa.com/1.9.7/user-guide/configuring-http-api/)
- [Deploying Your Rasa Assistant](https://legacy-docs-v1.rasa.com/1.9.7/user-guide/how-to-deploy/)
- [Cloud Storage](https://legacy-docs-v1.rasa.com/1.9.7/user-guide/cloud-storage/)

# NLU

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

# Core

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

# Conversation Design

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

# API Reference

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

# Migrate from (beta)

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

# Reference

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

# Versions
viewing: 1.9.7

# Actions [¶](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#actions "Permalink to this headline")

Actions are the things your bot runs in response to user input.
There are four kinds of actions in Rasa:

1. **Utterance actions**: start with `utter_` and send a specific message to the user.
2. **Retrieval actions**: start with `respond_` and send a message selected by a retrieval model.
3. **Custom actions**: run arbitrary code and send any number of messages (or none).
4. **Default actions**: e.g. `action_listen`, `action_restart`, `action_default_fallback`.

## [Utterance Actions](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#id4) [¶](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#utterance-actions "Permalink to this headline")

To define an utterance action (`ActionUtterTemplate`), add a response to the domain file that starts with `utter_`:

```
responses:
  utter_my_message:
    - "this is what I want my action to say!"
```

It is conventional to start the name of an utterance action with `utter_`. If this prefix is missing, you can still use the response in your custom actions, but the response cannot be directly predicted as its own action. See [Responses](https://legacy-docs-v1.rasa.com/1.9.7/core/responses/#responses) for more details.

## [Retrieval Actions](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#id5) [¶](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#retrieval-actions "Permalink to this headline")

Retrieval actions make it easier to work with a large number of similar intents like chitchat and FAQs. See [Retrieval Actions](https://legacy-docs-v1.rasa.com/1.9.7/core/retrieval-actions/#retrieval-actions) to learn more.

## [Custom Actions](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#id6) [¶](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#custom-actions "Permalink to this headline")

An action can run any code you want. Custom actions can turn on the lights, add an event to a calendar, check a user’s bank balance, or anything else you can imagine.

Rasa will call an endpoint you can specify when a custom action is predicted. This endpoint should be a webserver that reacts to this call, runs the code, and optionally returns information to modify the dialogue state.

To specify your action server use the `endpoints.yml`:

```
action_endpoint:
  url: "http://localhost:5055/webhook"
```

### [Custom Actions Written in Python](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#id7) [¶](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#custom-actions-written-in-python "Permalink to this headline")

For actions written in Python, we have a convenient [Rasa SDK](https://legacy-docs-v1.rasa.com/1.9.7/api/rasa-sdk/#rasa-sdk) which starts this action server for you.

## [Execute Actions in Other Code](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#id8) [¶](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#execute-actions-in-other-code "Permalink to this headline")

Rasa will send an HTTP `POST` request to your server containing information on which action to run. Furthermore, this request will contain all information about the conversation. [Action Server](https://legacy-docs-v1.rasa.com/1.9.7/api/action-server/#action-server) shows the detailed API spec.

As a response to the action call from Rasa, you can modify the tracker, e.g., by setting slots, and send responses back to the user. All of the modifications are done using events. There is a list of all possible event types in [Events](https://legacy-docs-v1.rasa.com/1.9.7/api/events/#events).

## [Default Actions](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#id9) [¶](https://legacy-docs-v1.rasa.com/1.9.7/core/actions/#default-actions "Permalink to this headline")

The available default actions are:

|     |     |
| --- | --- |
| `action_listen` | Stop predicting more actions and wait for user input. |
| `action_restart` | Reset the whole conversation. Can be triggered during a conversation by entering `/restart` if the [Mapping Policy](https://legacy-docs-v1.rasa.com/1.9.7/core/policies/#mapping-policy) is included in the policy configuration. |
| `action_session_start` | Start a new conversation session. Take all set slots, mark the beginning of a new conversation session and re-apply the existing `SlotSet` events. This action is triggered automatically after an inactivity period defined by the `session_expiration_time` parameter in the domain’s [Session configuration](https://legacy-docs-v1.rasa.com/1.9.7/core/domains/#session-config). Can be triggered manually during a conversation by entering `/session_start`. All conversations begin with an `action_session_start`. |
| `action_default_fallback` | Undo the last user message (as if the user did not send it and the bot did not react) and utter a message that the bot did not understand. See [Fallback Actions](https://legacy-docs-v1.rasa.com/1.9.7/core/fallback-actions/#fallback-actions). |
| `action_deactivate_form` | Deactivate the active form and reset the requested slot. See also [Handling unhappy paths](https://legacy-docs-v1.rasa.com/1.9.7/core/forms/#section-unhappy). |
| `action_revert_fallback_events` | Revert events that occurred during the TwoStageFallbackPolicy. See [Fallback Actions](https://legacy-docs-v1.rasa.com/1.9.7/core/fallback-actions/#fallback-actions). |
| `action_default_ask_affirmation` | Ask the user to affirm their intent. It is suggested to overwrite this default action with a custom action to have more meaningful prompts. |
| `action_default_ask_rephrase` | Ask the user to rephrase their intent. |
| `action_back` | Undo the last user message (as if the user did not send it and the bot did not react). Can be triggered during a conversation by entering `/back` if the MappingPolicy is included in the policy configuration.
