Warning: This document is for an old version of Rasa Core.

Events

List of all the events the dialogue system is able to handle and supports.

Most of the time, you will set or receive events in their json representation. E.g. if you are modifying a conversation over the HTTP API, or if you are implementing your own action server.

General purpose events

Event Base Class

Short:Base class for all of Rasa Core’s events. Can not directly be used!
Description:Contains common functionality for all events. E.g. it ensures, that every event has a timestamp and a event attribute that describes the type of the event (e.g. slot for the slot setting event).
Class:

Set a Slot

Short:

Event to set a slot on a tracker

JSON:
{
    'event': 'slot',
    'name': 'departure_airport',
    'value': 'BER',
}
Class:
Effect:

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

    def apply_to(self, tracker):
        tracker._set_slot(self.key, self.value)

Restart a conversation

Short:

Resets anything logged on the tracker.

JSON:
{
    'event': 'restart'
}
Class:
Effect:

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

    def apply_to(self, tracker):
        from rasa_core.actions.action import ACTION_LISTEN_NAME
        tracker._reset()
        tracker.trigger_followup_action(ACTION_LISTEN_NAME)

Reset all Slots

Short:

Resets all the slots of a conversation.

JSON:
{
    'event': 'reset_slots'
}
Class:
Effect:

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

    def apply_to(self, tracker):
        tracker._reset_slots()

Schedule a reminder

Short:

Schedule an action to be executed in the future.

JSON:
{
    'event': 'reminder',
    'action': 'my_action',
    'date_time': '2018-09-03T11:41:10.128172',
    'name': 'my_reminder',
    'kill_on_user_msg': True
}
Class:
Effect:

When added to a tracker, core will schedule the action to be run in the future.

Pause a conversation

Short:

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

JSON:
{
    'event': 'pause',
}
Class:
Effect:

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

    def apply_to(self, tracker):
        tracker._paused = True

Resume a conversation

Short:

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

JSON:
{
    'event': 'resume',
}
Class:
Effect:

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

    def apply_to(self, tracker):
        tracker._paused = False

Force a followup action

Short:

Instead of predicting the next action, force the next action to be a fixed one.

JSON:
{
    'event': 'followup',
    'name': 'my_action'
}
Class:
Effect:

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

    def apply_to(self, tracker):
        # type: (DialogueStateTracker) -> None
        tracker.trigger_followup_action(self.action_name)

Automatically tracked events

User sent message

Short:

Message a user sent to the bot.

JSON:
{
    'event': 'user',
    'text': 'Hey',
    'parse_data': {
        'intent': {'name': 'greet', 'confidence': 0.9},
        'entities': []
    }
}
Class:
Effect:

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

    def apply_to(self, tracker):
        # type: (DialogueStateTracker) -> None

        tracker.latest_message = self
        tracker.clear_followup_action()

Bot responded message

Short:

Message a bot sent to the user.

JSON:
{
    'event': 'bot',
    'text': 'Hey there!',
    'data': {}
}
Class:
Effect:

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

    def apply_to(self, tracker):
        # type: (DialogueStateTracker) -> None

        tracker.latest_bot_utterance = self

Undo a user message

Short:

Undoes all side effects that happened after the last user message (including the user event of the message).

JSON:
{
    'event': 'rewind'
}
Class:
Effect:

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

    def apply_to(self, tracker):
        # type: (DialogueStateTracker) -> None

        tracker._reset()
        tracker.replay_events()

Undo an action

Short:

Undoes all side effects that happened after the last action (including the action event of the action).

JSON:
{
    'event': 'undo',
}
Class:
Effect:

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

    def apply_to(self, tracker):
        # type: (DialogueStateTracker) -> None

        tracker._reset()
        tracker.replay_events()

Log an executed action

Short:

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

JSON:
{
    'event': 'action',
    'name': 'my_action'
}
Class:
Effect:

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

    def apply_to(self, tracker):
        # type: (DialogueStateTracker) -> None

        tracker.set_latest_action_name(self.action_name)
        tracker.clear_followup_action()

Have questions or feedback?

We have a very active support community on Rasa Community Forum that is happy to help you with your questions. If you have any feedback for us or a specific suggestion for improving the docs, feel free to share it by creating an issue on Rasa Core GitHub repository.