Bot that starts a conversation


How can I write a rule in RASA 3.0 (using rasa shell) that would initiate the conversation.
For example instead of a dialog\

User: Hello\
Bot: Hello, how can I help you?\
User: Could you solve my problem with ...

I wish to obtain:\

Bot: Hello, how can I help you?\
User:  Hello, could you solve my problem with ...

Welcome to the forum :slight_smile:

There are so many threads asking this already, please check them out:

I picked some of them for you:

Thank you for replying.

I read suggested threads. They explained the topic thoroughly.

However, it is a pity that, for such basic functionality, one has to code the starting action in frontend application instead of writing a rule like:

- rule: welcome message
  conversation_start: true
  - action: utter_welcome_message

You need to understand how socketio or rest based channel works, unless a connection is established how rasa will know, this can only be achieved through front-end. If you can go through this Repo you will be able to understand how frontend is playing a role for these kind of tasks in socketio folder.

1 Like

I agree, it would have been so much better.

But, as @bharath-madduri said, you need to open the channel to the bot first, which makes sense.

I understand that connection must be established before the start of communication. However, the frontend may open a channel before the user make his first utterance (for example when a widget with webchat is shown on screen). Then a predefined intent that trigger a welcome message may be sent to RASA via this channel. I expected that such functionality is a part of the library and do not need to be encoded separately for each application.