Is is appropriate to create a customer service chatbot using RASA?

Let’s just say, we have a kind of article subscription app, and we got dozens of feedback everyday.

Supposed we have several type of account:

  1. Free
  2. Buy article coins, and using these coins to read some articles
  3. Subscription users

Some of the feedback would look like:

  1. Why I can’t read article even I’m a subscription user?
  2. I can not by coins
  3. The article couldn’t be load
  4. Why all my 100 coins lost?
  5. My app crash.
  6. I have waited for 2 days for reply. Are you kidding me? I could read the article a month ago, and you just copy-and-pasted to reply me? DO YOU TAKE ME FOR SERIOUS??!! …

The traditional seq2seq chatbot seems not applying to my specific case, what I wanna to is:

  1. Know what the user want, like “Why I can’t read article even I’m a subscription user?”, we would like to ask the user send us the article ID or url, and check the user’s status from internal backend services.
  2. Classify the feedback type, like “My app crash.”, then upload the crash log from app and kick off a Jira ticket.
  3. Summarization, like " I have waited for 2 days for reply. Are you kidding me?.."

What’s more, we are not an English app, so we might need to train our model with our language.

I was wondering if maybe RASA is the right tool in this case?

Sounds like Rasa is well suited to your use case.

For your use case you could:

  • match the user question using an intent.
  • use a Rasa form (conversational version of a web form) to collect article id or url (unless provided in the initial question).
  • custom action (python script) to check user status.
  • intent label (e.g. app_crash) will/can be stored for classification purposes. You can then use reporting to view all stats/volumes for each intent label.
  • use custom action to upload crash log (not sure how you plan to get this log but am guessing you have a plan here) to Jira and create a ticket via their APIs.

I’m not sure what you mean in your third point as the quoted sentence is not a summary. If you really need to do summarization I would use a third party, or Spacy and possibly use that in a custom action, or set up a separate Flask app to handle summarization.

Rasa supports any language, so if you create training data for your language it should work fine.

Hope this helps!