# 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"}
```

The user has specified their preference for the value of a `slot`.

As a side effect the `Tracker`’s slots will be updated so that `tracker.slots[key]=value`.

Effect

When added to a tracker, this is the code used to update the tracker:

```python
def apply_to(self, tracker: "DialogueStateTracker") -> None:
    tracker._set_slot(self.key, self.value)
```

### Restart a conversation

Short

Resets anything logged on the tracker.

JSON

```json
evt = {"event": "restart"}
```

Conversation should start over & history wiped.

Effect

When added to a tracker, this is the code used to update the tracker:

```python
def apply_to(self, tracker: "DialogueStateTracker") -> None:
    tracker._reset()
    tracker.trigger_followup_action(ACTION_LISTEN_NAME)
```

### Reset all Slots

Short

Resets all the slots of a conversation.

JSON

```json
evt = {"event": "reset_slots"}
```

All Slots are reset to their initial values.

Effect

When added to a tracker, this is the code used to update the tracker:

```python
def apply_to(self, tracker) -> None:
    tracker._reset_slots()
```

### 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,
}
```

Schedules the asynchronous triggering of a user intent.

Effect

When added to a tracker, Rasa Core will schedule the intent (and entities) to be triggered in the future, in place of a user input.

### 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",
}
```

Effect

When added to a tracker, Rasa Core will cancel any outstanding reminders that match the `ReminderCancelled` event. For example:

- `ReminderCancelled(intent="greet")` cancels all reminders with intent `greet`

### Pause a conversation

Short

Stops the bot from responding to messages. Action prediction will be halted until resumed.

JSON

```json
evt = {"event": "pause"}
```

Effect

When added to a tracker, this is the code used to update the tracker:

```python
def apply_to(self, tracker) -> None:
    tracker._paused = True
```

### Resume a conversation

Short

Resumes a previously paused conversation.

JSON

```json
evt = {"event": "resume"}
```

Effect

When added to a tracker, this is the code used to update the tracker:

```python
def apply_to(self, tracker) -> None:
    tracker._paused = False
```

### 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"}
```

Effect

When added to a tracker, this is the code used to update the tracker:

```python
def apply_to(self, tracker: "DialogueStateTracker") -> None:
    tracker.trigger_followup_action(self.action_name)
```

## 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": {},
}
```

Effect

When added to a tracker, this is the code used to update the tracker:

```python
def apply_to(self, tracker: "DialogueStateTracker") -> None:
    tracker.latest_message = self
    tracker.clear_followup_action()
```

### Bot responded message

Short

Message a bot sent to the user.

JSON

```json
evt = {"event": "bot", "text": "Hey there!", "data": {}}
```

Effect

When added to a tracker, this is the code used to update the tracker:

```python
def apply_to(self, tracker: "DialogueStateTracker") -> None:
    tracker.latest_bot_utterance = self
```

### Undo a user message

Short

Undoes all side effects that happened after the last user message.

JSON

```json
evt = {"event": "rewind"}
```

Effect

When added to a tracker, this is the code used to update the tracker:

```python
def apply_to(self, tracker: "DialogueStateTracker") -> None:
    tracker._reset()
    tracker.replay_events()
```

### Undo an action

Short

Undoes all side effects that happened after the last action.

JSON

```json
evt = {"event": "undo"}
```

Effect

When added to a tracker, this is the code used to update the tracker:

```python
def apply_to(self, tracker: "DialogueStateTracker") -> None:
    tracker._reset()
    tracker.replay_events()
```

### Log an executed action

Short

Logs an action the bot executed to the conversation.

JSON

```json
evt = {"event": "action", "name": "my_action"}
```

Effect

When added to a tracker, this is the code used to update the tracker:

```python
def apply_to(self, tracker: "DialogueStateTracker") -> None:
    tracker.set_latest_action_name(self.action_name)
    tracker.clear_followup_action()
```

### Start a new conversation session

Short

Marks the beginning of a new conversation session. Resets the tracker and triggers an `ActionSessionStart`.

JSON

```json
evt = {"event": "session_started"}
```

Effect

When added to a tracker, this is the code used to update the tracker:

```python
def apply_to(self, tracker: "DialogueStateTracker") -> None:
    tracker._reset()
```

👋 I can help you get started with Rasa and answer your technical questions.
