# 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`.

Every slot has a name and a value. This event can be used to set a value for a slot on a conversation.

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

### Restart a conversation

Short

Resets anything logged on the tracker.

JSON

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

Class `rasa.core.events.Restarted` (_timestamp=None_, _metadata=None_)

Conversation should start over & history wiped.

Instead of deleting all events, this event can be used to reset the trackers state (e.g. ignoring any past user messages & resetting all the slots).

### Reset all Slots

Short

Resets all the slots of a conversation.

JSON

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

Class `rasa.core.events.AllSlotsReset` (_timestamp=None_, _metadata=None_)

All Slots are reset to their initial values.

If you want to keep the dialogue history and only want to reset the slots, you can use this event to set all the slots to their initial values.

### Schedule a reminder

Short

Schedule an intent to be triggered in the future.

JSON

```json
evts = {
  "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_)

Schedules the asynchronous triggering of a user intent (with entities if needed) at a given time.

### Cancel a reminder

Short

Cancel one or more reminders.

JSON

```json
evts = {
  "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
evts = {"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
evts = {"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
evts = {"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
evts = {
    "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_)

The user has said something to the bot.

As a side effect a new `Turn` will be created in the `Tracker`.

### Bot responded message

Short

Message a bot sent to the user.

JSON

```json
evts = {"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
evts = {"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
evts = {"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
evts = {"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
evts = {"event": "session_started"}
```

Class `rasa.core.events.SessionStarted` (_timestamp=None_, _metadata=None_)

Mark the beginning of a new conversation session.
