Hi, I have to design an e-learning tutorbot that has multiple possible channels living in parallel:
- A live chat (to support learner when browsing a website)
- A IM chat as Telegram (for asyncronous notifications)
- An email (for anything else)
- …
Take a part the connectors gateway communication logics.
My problem/question is mainly about how to manage user identification.
I want that a user is identified with an unique identifier (call it conversation_id
) regardless of channel.
In the mentioned scenario user has one different ID for each channel:
- An
account_id
on the website (e.g.solyarisoftware
) - A
chat_id
on Telegram (e.g.1234567890
) - An
email_address
(e.g.giorgio.robino@gmail.com
)
So, how to let RASA chatbot accept requests coming from the same user (but from different channels)? In other words, how can I map multiple channel IDs into a RASA unique ID, say the conversation_id
?
At the end of the day I need to generate a lookup table that map a UUID with all channel ids. Right?
But is not clear to me what’s a good (simple) user experience. At first glance seems to me that that I need a sort of login/registration pattern: each time user submit a request on channel X, only for the first time, the user must identify himself somewhere (with his email/account_id?). So by example trough Telegram, when the Telegram connector server receive a /start
command, the bot must ask the user email(or account_id), to be able to associate 1-to-1 the TG chat_id
with that email. Not perfect in terms of security, I admit.
Any expereience/idea/suggestion?
Thanks/giorgio