Forging A Successful Chatbot Project

Your Chatbot Project

In this article we will show how we can carry out your successful chatbot project at The Bot forge. We’ll share a few things we’ve learned from building chatbots. We’ll look at messaging platforms, voice interfaces and the importance of conversation design. Giving you a walk through of how your chatbot project would progress, forging the perfect chatbot.

What should my chatbot do?

Right from the beginning of the project, It’s important to have a clear understanding of what your chatbot will do. We like to ask the question:

What is the number one reason my chatbot will exist?

Chatbot platform

Your audience should drive your chatbot platform choice if possible. If you can collect information on which messenger platforms your audience use then this should assist your decision. Facebook Messenger is the most popular with over 1 billion active users as well as being constantly improved by the Facebook team. This is our favourite messaging platform. We particularly like the UI elements which we can provide using the Facebook platform. Have a look at our Customer Support chatbot to see an example of these elements.

If you want your chatbot project to live in a voice interface we recommend either Amazon Alexa or Google Home. The Amazon Echo has brought the voice interface to over 20 million homes around the world. Alexa is not just for handling home tasks Alexa for business means she can help you at work, acting as an intelligent assistant and integrating with your enterprise systems.

Chatbot Requirements

We like to capture chatbot requirements as user stories. The story is in the same format:

As a , I want , so that for example:

  • I’m a hotel guest, I want to book a table in the restaurant, so that I can eat tonight
  • As a hotel owner, I want to collect a guest review, so that I can improve their experience.
  • As a previous customer, I want to have similar clothing choices recommended so I can match my style.

Chatbot Persona/Personality

Decide on bot’s personality and tone of voice. This character can then be used in planning the conversation in later steps forming the bots persona in conversing with users.

We recommend creating a complete agent character which we can then model and grow, possibly adding humor to responses. Our visual designers can assist in coming up with a chatbot character.

Chatbot Conversation Design

We prioritise the user stories and plan them our in more detail. Elaborating as we go through each one. and noting main entry points to back-end system integration.

Design the conversational workflow at a high level. Record all the possible topics and conversation parts, a whiteboard session is great at this point and a simple mind map.

Chatbot in Messenger

The next step is the conversational ui scripts(cui). We will write the bot scripts incrementally, starting with the core functionality and then expanding into personality driven intents and multiple responses. Always trying to focus on one conversational part at a time. Some examples of the scripts:

Hi there,
I'm the macbot ready to give you weather forecasts
   hi macbot
where do you live, so I can send you weather forecasts.
   leeds
ah ok, nice city
right now its 1°C I hope you've got a hat and gloves!

As part of the script design we will also elaborate on other elements of the dialogue, for example sets of options, conditions, user input and entities from the input.

We will also define any custom entities for the chatbot. The entities are used for extracting parameter values from natural language inputs. For example the following entities:

  • Total Spa Experience
  • Experience Wellbeing Massage
  • Experience Body Pumice

Then if you said “can I book a total spa experience” the chatbot would be able to pick out the total spa experience in your reply.

{Hi, hello, good-day} I'm the spaworld bot 
which spa treatment did you want to book?
   can I book the [body pumice experience] please
sure, what time and date?
   [midday] on the [23rd of feb] 
ok sure, same as last time right, with Anton?
   actually is [Denise] available
yes no problem, all booked

We will agree on the core conversation dialogues and fine tune them. Then we will also plan on how to handle users straying away from what we call the happy path (following the normal conversational flow). We will also allow for users trying to challenge the bot with sexts, swearing, off context questions, swearing or gibberish. We will always keep an eye on  the conversation goals and insure they offer the best user experience whilst making sure the intents match core functionality. 

Chatbot UI Design

The BOT Forge will produce prototypes for each core intent as an interactive mock-up providing the visual text interface and voice interactions to show how the conversation will flow.

We also decide on whether we will use different types of structured messages (images, buttons, quick replies, lists, web-views. Depending on the chosen chatbot integration the mock-ups will also include some UI elements specific to the platform. We can share these mockups online or provide them as an animated gif. This is a great way of showing how a bot will work in real chatbot environment, or how the conversation will sound in the voice interface.

Chatbot development

We use an Agile development process using sprints, releasing features little and often to meet the story features. We work closely with our clients, always testing, improving the bot flow, the conversational knowledge base, the bots personality and the overall user experience. This process of iterative delivery a working chatbot will be  deployed and ready to use by real users, right from the very first sprint.

Chatbot Platform Integration

We like to carry out the integration work for the chatbot as one of the first pieces of development work. This is so we can provide a working bot for our clients to be able to see a beta/testing version of the chatbot as early as possible. Then we can release bot features and conversation intents regularly.

Conversation Development

The conversational ability will then be implemented in the chatbot following the conversation design and initially focusing on the core intents and text responses. This will be an iterative process. Matching user intents to core functionality and features and training the natural language processor to understand users and handle conversation failure scenarios gracefully. As this stage some integration features will be mocked to return dummy data. During this development stage the chatbot will be provided as a beta implementation so that its available for its first conversations with our client. Users can be notified of new intents for testing.

The training data at this stage will be invaluable for perfecting the bot conversation. This process will also highlight any need for new responses as a continuous cycle. Testing the bot based on responses will continue, we call this supervised learning .

Further UI elements will also be created dependent on the chosen integration platform for the chatbot.

Integration Development

Once the conversational ability has been implemented we will  implement any integrations needed for the core chatbot functionality.  Writing the code to connect and extend your backend services and integrating with external services needed for the bot to deliver the correct functionality.

Working through each story element and replacing any mocked data entry points. Each piece will be unit and system tested.

Chatbot Alpha/Beta Testing

Once development has been completed we will define how long we are going to do Alpha and Beta testing. Alpha testing is a type of acceptance testing; performed to identify all possible issues/bugs and continued  supervised learningbefore releasing the chatbot to your users. Bugs will be logged and tracked on our tracking tool and prioritized and fixed on a regular basis.  The aim is to carry out the interactions with the bot that a typical user might perform. Making sure to carry out each user story to get the expected outcome.  We are happy for our clients to become involved although to be fair you will already of had exposure to the bot as part of the ongoing agile project.

Beta Testing of a chatbot is performed by “real users” of the software application in a “real environment”.

Ideally the chatbot Beta version is released to a limited number of end-users of the product to obtain feedback on the product quality. Beta testing reduces conversation and integration related failure risks and provides increased quality of the user experience through customer validation.

It is the final test before shipping the chatbot to your customers. Direct feedback from customers is a major advantage of Beta Testing. This testing helps to tests the bot in real time environment.

The experiences of the early users are passed on to the developers, who make final changes  before releasing the bot commercially.

Chatbot Deployment

Once the round of beta/alpha testing has been completed we can deploy the chatbot as a live application.

Chatbot Future

Of course it doesn’t end there. Once deployed the chatbot project will be maintained by The BOT Forge as a yearly subscription. We will constantly monitor your bot carrying out daily supervised learning and weekly improvements. Monitoring conversations and confirming qualified intents as well as checking for unmatched intents and fixing them as needed.

We will carry out third party and integration maintenance, monitor api’s for version updates. Making sure your bot is performing well and healthy!

The BOT Forge are always available to discuss further improvements and functionality to add to your chatbot or just to talk to us about your next great idea.