Unique user_id for many channels in parallel: how to?

Hi, I have to design an e-learning tutorbot that has multiple possible channels living in parallel:

  1. A live chat (to support learner when browsing a website)
  2. A IM chat as Telegram (for asyncronous notifications)
  3. 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:

  1. An account_id on the website (e.g. solyarisoftware)
  2. A chat_id on Telegram (e.g. 1234567890)
  3. An email_address (e.g. [email protected])

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?


A solution: https://stackoverflow.com/a/61638240/1786393

1 Like