Forwarding messages to Slack and vice versa for human hand-off

I have got a (oneway) working implementation using RocketChat as the centralized router. It is early days, but so far it has been really good since RocketChat has been designed as an omnichannel router. I don’t need to think about routing, and queuing users to speak to live (human) agents,

I am using WhatsApp as my primary channel, and using the rasa bot as a live bot agent on RocketChat has worked well with this connector GitHub - RocketChat/Apps.Rasa: Integration between Rocket.Chat and the RASA Chatbot platform

It is transferring to a human all well through a custom action that calls the API endpoint specified by the app, but I am still figuring how to transfer it BACK to the bot.

When I get a properly working implementation I’ll definitely write it up since this seems to be a really common struggle, and there is hardly anything comprehensive I could find for Twilio/WhatsApp.

3 Likes

Yes, we were doing that to understand what triggered human handoff and kept on adding more use cases based on our analysis.

@manoj_kumar I have not been working on the handoff for a while now. I am unable to share exact codes due to org restrictions. However, I can help you with your implementation. You can reach out directly or I can collaborate on a shared GitHub repo.

Also interested in your implementation here. I am trying to do the same thing, where the customer is using SMS and the live agent is using Slack. Would also like to log all the messages from user and bot into the Slack channel so the live agent can see the whole history.

If you are available to consult, I would be very glad for it.

@ nchauras

Can we get the python code above for the handoff steps?

1 Like

I got the concept still not able to implement. Not found any simple implementation of it yet.

If you can provide any simple implementation for this, It will be very helpful for me.

hi i have tried the above app but not able to call the api mentioned in the app could you please share me the code

@armanjindal have you completed the implementation yet could you please share me the code

please can you share the code for human hand off

Hello @arpitd143. Got a little sidetracked on this project, and this took the back burner for a little bit. As I mentioned this is only a (slightly hacky) one-way transfer from Twillo (so WhatsApp & SMS) to RocketChat. Got the vise part but versa figured out. I check if I have called ‘action_default_fallback’ twice in a row, and if that’s the case (and the input channel is WhatsApp), I then call this method :

You get the ‘url’ by downloading the app to your rocketchat server and clicking the settings. Admin–> Settings → App. The detailed steps are here. Make sure you have the bot working first on rocket chat, and then give it the role of ‘live chat agent’. It is finicky to set up. I am still working on it. Once I do I plan on writing up a tutorial since RocketChat takes care of a lot of live-agent routing on their end, and might serve as a great OmniChannel Human Handoff platform.

Every one is talking about handoff policy can any one suggest how to implement it using slot

thank you so much

Actually i checked the link on postman which i got from rocketchat>apps>rasa is showing not found

Hi @nchauras can you please help me implementing human handoff my email- vivek22122014@gmail.com Can we connect please…

Hi @armanjindal ,

Any luck with it ? Would be awesome to see how this integration works

I am attaching the custom handoff policy I created based on fallback policy. This is not a completely working solution.

RasaHumanHandoffPolicy.py

I might pick it up sometime later, in which case, I will share a working solution with a code sample.

Cheers!

4 Likes

Hi Niraj

Have you worked on this later ? I want to try hence was seeking if I could get some guidance

Hi @nchauras can you share with us the implemented solution please ??

Hello Stephens, I understand your proposed solution. However, getting the client UI to switch is not possible, especially when we are developing it for MS Teams. Do you have any other approach?