# Events

Conversations in Rasa are represented as a sequence of events. This page lists the event types defined in Rasa Core.

**Note**  
If you are using the Rasa SDK to write custom actions in python, you need to import the events from `rasa_sdk.events`, not from `rasa.core.events`. If you are writing actions in another language, your events should be formatted like the JSON objects on this page.

## General Purpose Events

### Set a Slot  
Short  
Event to set a slot on a tracker

**JSON**  
```json  
evt = {"event": "slot", "name": "departure_airport", "value": "BER"}  
```  
Class `rasa.core.events.SlotSet`( _key_, _value=None_, _timestamp=None_, _metadata=None_)  
The user has specified their preference for the value of a `slot`.

### Restart a conversation  
Short  
Resets anything logged on the tracker.

**JSON**  
```json  
evt = {"event": "restart"}  
```  
Class `rasa.core.events.Restarted`( _timestamp=None_, _metadata=None_)  
Conversation should start over & history wiped.

### Reset all Slots  
Short  
Resets all the slots of a conversation.

**JSON**  
```json  
evt = {"event": "reset_slots"}  
```  
Class `rasa.core.events.AllSlotsReset`( _timestamp=None_, _metadata=None_)

### Schedule a reminder  
Short  
Schedule an intent to be triggered in the future.

**JSON**  
```json  
evt = {  
  "event": "reminder",  
  "intent": "my_intent",  
  "entities": {"entity1": "value1", "entity2": "value2"},  
  "date_time": "2018-09-03T11:41:10.128172",  
  "name": "my_reminder",  
  "kill_on_user_msg": true,  
}  
```  
Class `rasa.core.events.ReminderScheduled`( _intent_, _trigger_date_time_, _entities=None_, _name=None_, _kill_on_user_message=True_, _timestamp=None_, _metadata=None_)

### Cancel a reminder  
Short  
Cancel one or more reminders.

**JSON**  
```json  
evt = {  
  "event": "cancel_reminder",  
  "name": "my_reminder",  
  "intent": "my_intent",  
  "entities": [  
        {"entity": "entity1", "value": "value1"},  
        {"entity": "entity2", "value": "value2"},  
    ],  
  "date_time": "2018-09-03T11:41:10.128172",  
}  
```  
Class `rasa.core.events.ReminderCancelled`( _name=None_, _intent=None_, _entities=None_, _timestamp=None_, _metadata=None_)

### Pause a conversation  
Short  
Stops the bot from responding to messages. Action prediction will be halted until resumed.

**JSON**  
```json  
evt = {"event": "pause"}  
```  
Class `rasa.core.events.ConversationPaused`( _timestamp=None_, _metadata=None_)

### Resume a conversation  
Short  
Resumes a previously paused conversation. The bot will start predicting actions again.

**JSON**  
```json  
evt = {"event": "resume"}  
```  
Class `rasa.core.events.ConversationResumed`( _timestamp=None_, _metadata=None_)

### Force a followup action  
Short  
Instead of predicting the next action, force the next action to be a fixed one.

**JSON**  
```json  
evt = {"event": "followup", "name": "my_action"}  
```  
Class `rasa.core.events.FollowupAction`( _name_, _timestamp=None_, _metadata=None_)

## Automatically tracked events

### User sent message  
Short  
Message a user sent to the bot.

**JSON**  
```json  
evt = {  
    "event": "user",  
    "text": "Hey",  
    "parse_data": {  
        "intent": {"name": "greet", "confidence": 0.9},  
        "entities": []  
    },  
    "metadata": {},  
}  
```  
Class `rasa.core.events.UserUttered`( _text=None_, _intent=None_, _entities=None_, _parse_data=None_, _timestamp=None_, _input_channel=None_, _message_id=None_, _metadata=None_)

### Bot responded message  
Short  
Message a bot sent to the user.

**JSON**  
```json  
evt = {"event": "bot", "text": "Hey there!", "data": {}}  
```  
Class `rasa.core.events.BotUttered`( _text=None_, _data=None_, _metadata=None_, _timestamp=None_)

### Undo a user message  
Short  
Undoes all side effects that happened after the last user message (including the `user` event of the message).

**JSON**  
```json  
evt = {"event": "rewind"}  
```  
Class `rasa.core.events.UserUtteranceReverted`( _timestamp=None_, _metadata=None_)

### Undo an action  
Short  
Undoes all side effects that happened after the last action (including the `action` event of the action).

**JSON**  
```json  
evt = {"event": "undo"}  
```  
Class `rasa.core.events.ActionReverted`( _timestamp=None_, _metadata=None_)

### Log an executed action  
Short  
Logs an action the bot executed to the conversation. Events that action created are logged separately.

**JSON**  
```json  
evt = {"event": "action", "name": "my_action"}  
```  
Class `rasa.core.events.ActionExecuted`( _action_name_, _policy=None_, _confidence=None_, _timestamp=None_, _metadata=None_)

### Start a new conversation session  
Short  
Marks the beginning of a new conversation session. Resets the tracker and triggers an `ActionSessionStart` which by default applies the existing `SlotSet` events to the new session.

**JSON**  
```json  
evt = {"event": "session_started"}  
```  
Class `rasa.core.events.SessionStarted`( _timestamp=None_, _metadata=None_)  
Mark the beginning of a new conversation session.
