Looking for input on using chatbot to give small introduction to website

Hello guys,

I’m currently building a prototype chatbot for one of our internal web tools. The general idea is simply to support the users of said tool. Now the idea came up to include a small introduction “tour” as one of the features of the bot. I started playing around with implementing this, but quickly noticed that you run into the issue of there being minimal to no interaction and the bot just spamming you with messages.

I would be curious if any of you worked on something similar and if you have input for me on how to do something like this in an elegant way. I will give an example below so it becomes more clear. I am aware that a chatbot is maybe not the optimal thing to use for something like this, but it would be a nice easy use case to include for the early stages.

So far my interactions for this intro tour look something like this:

  • bot asks if user is new and would be interested in a quick tour of the tool.
  • user confirms interest in tour
  • bot explains a feature of website
  • bot asks if user would like to continue the tour or has questions at this point or would like to abandon the tour
  • user says he wants to continue
  • bot explains next feature

etc. you get the point.

Now this approach atleast has some interactivity and doesnt just spam the user with 10 messages. This also avoids the issue of messages coming in to fast to be read. But I’m still not super happy because I feel the user might get annoyed by being asked if he wants to continue 5 times.

Any input is appreciated.


Hello @isic5,

What if instead of explaining the function of the webtool in a specific order and asking the user if he wants to continue, we let the user pick what he want to know about the webtool ?

By this I assume you have about 5 or 6 features that need to be explained, maybe you can do it in 1 of the followings:

  • Make them as buttons, the user can choose which he wants to know about and click that button.
  • If 6 buttons are a little bit too much for the chat window, then maybe utter them as a list instead. Then cover the user’s messages such as: “I want to know about A”, “tell me about B”, “the first one”, etc,…

At the first time the user talks to the bot, we inform the user that whenever he wants to stop, he can just enter “stop” or “cancel”,… Of course we will handle that as an intent too, and stop the tour.

Those are just my first thoughts, maybe you can twitch them somehow to better fit in your situation :smile:

@fuih Thanks for the great input! I really like the idea, makes it definitely more interactive. Would you solve this by having 1 intent that is basically the tour and then having the different topics as enitities that get picked up? That would atleast be how I would try to set it up.

Thanks again :slight_smile:

That’s not a bad idea, but you need to consider below situation.

The normal flow is gonna be like this:

Bot: Please choose what feature that you want to know about this awesome tool:
       - A
       - B
User: Tell me about B
Bot: Explain feature B

// Now this is the tricky part, the bot has to prompt the user again, and repeat the process if possible

Bot: Feel free to pick another feature if you want to know about it:
       - A
       - B
User: Let's do C
Bot: Explain C
// Then keep doing this until the user says stop.

So you need some way to invoke the bot again, since in this type of flow, the bot is the one taking initiative. The user mostly just answer the bot. Maybe we can use FormAction for this ? Anyway, you should take this into account when choosing the approach for implementing.

Interesting point, maybe I am not getting the issue fully. Isn’t invoking the bot again just a matter of making the stories include another utterance? Lets suppose I make a simple story for the tour:


  • utter_greet (here bot would explain he can give a little tour)

*tour.general(intent for tour path)

  • utter_choose_feature(what feature are you interested i

*Inform(entity:feature, value:feature1)

  • utter_informs_feature1
  • utter_choose_feature

I’m guessing Im missing something here, but wouldnt that deal with the case you just mentioned?

You are quite close, but do you know how many time the user is gonna ask the bot ? Or in what order he’s gonna interact with the bot ?

Let’s say we implement the above story, do we know what will be next after inform(entity:feature, value:feature1) ?

What i think instead is you create an custom action that check the value of slot “feature”, then utter the information correspondingly. So instead having to declare multiple inform intents in your story (of which we don’t really know the order), we just need 1 inform intent:


The slot “feature” will be filled by entity “feature” of course.

Remember to declare 1 story in which there is only the above intent, so the user can invoke it whenever he wants (beside your first story with greeting and such of course).

1 Like

Cool, thanks for the input that seems like a nice workaround. I will try implement it as such and let you know of my results. Thanks a lot for that ! :slight_smile: