Problem Statement: I want to connect rasa bot to WhatsApp when user says or select the button ‘want to talk with a human’ . It should connect to WhatsApp when someone wants to talk with a human instead of bot. So that we can send and receive messages from WhatsApp in a chat window only. In which file (eg. actions.py, nlu.md, domain.yml) what needs to be written and other code files which are required to connect to WhatsApp. (Note :- After connecting to WhatsApp it will be human to human conversation). Gone though different discussions on forum.rasa.com but did not get much idea.
Hello @rudi - Thanks a lot, I want to know how to connect it with chat window as this requires to login to WhatsApp (web.whatsapp.com) that means the person who was talking with a rasa bot will be redirected to web.whatsapp.com and he/she must have WhatsApp account. Please, help me to understand how we can integrate it with web So that, it does not look like responses are coming from WhatApp in a Chat Window and Thanks again.
WhatsApp requires both users to have a WhatsApp account, and to do that both users need to have a phone with whatsapp installed (whatsapp web just connects to that phone, the phone is the thing that does the actual messaging).
I think it should be possible using that, but keep in mind that with the whatsapp API, the messages have to be sent within 24 hours, otherwise you can only use pre-approved templates. So your helpdesk operators will have to send in a message at least once every 24 hours.
The way I would see this working is, your whatsapp business number is the “user”, and the people that the whatsapp business number is talking to are the helpdesk operators.
You’ll probably need to build a middle bit to handle the helpdesk operators, so that they can log in and log out, so that you don’t connect them to users while they’re logged out. And since every operator can only talk to one user at a time (unless you have multiple whatsapp business numbers), you’ll need to have some queueing system, and a way to select and connect operators to users, and to disconnect and mark them ready to accept a new user when they’re done, handle telling users where they are in the queue, etc.