1
votes

Designing a Watson Assistant chatbot for a website and Facebook Messenger raises some issues due to the different way these channels format the Watson response. I am trying to understand how to deal with this.

Currently, a Watson Assistant dialog node allows responses that include text, image, pause, and an option. So far so good. The problem is that in text response I need:

  1. add some empty line. In HTML I can use <br/> and it works fine on Website but not on Facebook.
  2. add a link. In HTML I use <a href="">link</a> while Facebook Messenger render directly the single URL
  3. I need to list an unordered or ordered list. In HTML I can use ol/li or ul/li tags in Facebook messenger no.
  4. carriage return. In HTML I can use <br/> in Facebook see 1.

How do I deal with these incompatibilities?

I expect to have somewhere best practices documented to write a multi-channel chatbot but I haven't found them.

1

1 Answers

1
votes

When building a chatbot with IBM Watson Assistant that has to face different output channels (in your case website and Facebook Messenger), I see two options:

  1. Limit the responses to the common output features. Watson Assistant supports rich responses with multi-line support. Use that instead of <br/>. Check with the integration-specific docs, here Facebook Messenger integration, what is supported.
  2. Use two bots, one for the website and one for Facebook Messenger. In that case you could use the native response format supported by Watson Assistant. The downside is that you have to maintain two bots.
  3. (not an option from your description) Add a wrapper around Watson Assistant and translate your generic responses to your desired output channel with optimized formatting. It would require more effort, but has the best output.

As a common format, consider some basic Markdown as supported by Watson Assistan and some output channels.