Community

Lessons and Tips from a Chatbot Hackathon

Share this post:

Recently, I was a coach at a hackathon in Germany. Students were tasked to build solutions for a given topic and the solution had to include a chatbot based on the IBM Watson Conversation service. It was impressive how broad the solutions were, what other services were integrated with a chatbot and how easy it was to build a solution using IBM Bluemix. The following “lessons learned” and tips are from my work as coach. They hopefully help you design your own great chatbot.

Lessons Learned

Hackathons are intense events and require sharp focus and quick decisions. They pack everything from finding the right idea (brainstorming), defining a solution, its users and development phases (using Design Thinking) to building a prototype / minimal viable product (MVP) and pitching it. The first lessons learned and tips deal with the conversation, the dialog, the language itself:

  • Language as an aid“: When designing a chatbot-based solution, using written / typed language as the user interface should bring a value and simplify interaction, not complicate it. So consider when does a conversation help and where is “clicking around” the smarter approach? As an example: It is faster to type “next train from here to home” than to click through a structured menu.
  • Appropriate Language” and “Know your audience“: WHO is the target audience of the envisioned solution? Do they speak English, Spanish,French, German or other languages? Check the supported languages for IBM Watson Conversation and choose the language for your audience. At my recent hackathon chats in German (as local language) instead of English impressed the jury.
  • Appropriate Language” and “Know your audience“, again: Who is the audience and what language, which wording are they using? Is the bot facing users with a special vocabulary? Design the dialogs accordingly. Sometimes humor and tongue-in-cheek may add to a solution.
  • Know the concepts“: Almost all chatbot or conversation services use the concepts of intent, entity and dialog. So it is good to know that an intent is a goal or purpose, an entity represents a class of object or data type, and that a dialog combines the intents, entities and the context from the user input for the conversation.
  • Design the dialog“: The dialog is a very important part of the chatbot-based solution. Thus, it needs consideration and hence some design work. Think about the flow of conversation. How do you carry context through phases of the dialog? When and how do you want to end the chat? Providing just the timetable with the next trains might be good enough. But offering help to buy a ticket including guidance through tariffs might be the real value of a chatbot.

The next few topics discuss programming and deployment options:

  • Local Data Center“: Choose a Bluemix Region local to your audience for better bandwidth and performance. For the hackathon in Germany, the new Bluemix Public offering in Frankfurt was a good choice.
  • User Interface” or “Messenger Service“: A chatbot could be an app of its own, but often they are a non-human user in messenger or communication systems like Facebook Messenger, Slack, Telegram, Twitter, and many others. How do you reach your audience? You probably need to look at factors such as higher value and quicker implementation.
  • Coding Framework“: How do you want to code the chatbot? There are many options, such as the botkit-middleware for Watson Conversation, nodes and flows for the Node-RED flow-based programming environment, samples in different programming languages on https://ibm-bluemix.github.io/ and the IBM Watson Conversation page, and many more. The selection may depend on what other services, data sources, etc. you want to integrate. Some services might only provide SDKs for certain languages. Is the goal a quick prototype for the hackathon or are you planning longterm? Does the chosen approach support use of a toolchain and source code control on GitHub?

Finally, “know your resources” and come prepared to a hackathon is my last advise for today. Therefore, if you are not familiar with chatbots I recommend the “Overview of the IBM Watson Conversation service” as first step. It introduces a general solution architecture, explains the concepts behind the service and guides you to further resources. IBM Redbooks is currently preparing a series on “Building Cognitive Applications with IBM Watson Services” and volume 2 features the Watson Conversation service. The book is a great read over a weekend because it covers both the basics as well as next steps after the initial bot is up and running. In case you have programming questions, I recommend checking out the Watson Conversation Q&A on Stack Overflow or the Slack of the Watson Developer Community.

“Watson, what’s for dinner tonight?”

P.S.: How is your chatbot doing?

More Community Stories

ASP.NET Core buildpack removing support for .NET Core 1.0.0 RC2

Microsoft ended support for the .NET Core 1.0 RC2 runtime on September 27th, 2016. We recommend that users upgrade existing applications that are still using this runtime to other production-ready runtime versions already available in Bluemix.

Continue reading

Building a Java EE app on IBM Bluemix Using Watson and Cloudant

This how-to creates an example app using Java, Cloudant, and Watson. Imagine that you're a talent manager at a growing tech startup. You're looking for a new hire that would be a good fit on your team but the company is so popular that you have a huge inventory of resumes to sort through. With Watson services, you can solve for a problem like, “I’m looking for another developer like “[insert cool employee]” or “Find me a Developer like Craig Smith”.

Continue reading

Introducing mybluemix.net, the new domain for your application

We're excited to announce a new domain for all of our user applications: mybluemix.net. The new domain will help isolate Bluemix core components from the applications you have running on the platform. Going forward, [yourapp].mybluemix.net will be the default domain for any new applications you create in Bluemix.

Continue reading