Chatbot Platforms: Developers and Business Users
Should Chatbot platforms target business users or developers ?
Chatbot platforms apparently have a choice. Do they target business users or developers?
One answer to this question is that they will need both as they both need to be involved in the process.
A better question might be what is the best way to allow business users and developers to contribute effectively to chatbot building in a way that best exploits their different skill sets?
Business users understand the business domain and the problem they are trying to solve better than the developer. Much time could be saved and the product quality could be improved if they could build the chatbot directly in the software.
Developers, of course, have the skills to customize the software in any way that is required. If the software requires customization beyond what is easily done, developers need to be involved.
From the point of view of the chatbot platform, the trade-off is that the ability to customize introduces complexity to the product. At some point, the learning curve becomes too onerous for business users and only power users can use the product. There is another point where the complexity is such that only developers can use the product.
One way to look at this question of the best way for developers and business users to collaborate is to consider how much complexity is actually required in building a bot. Would it be possible to have a platform where business users could do everything?
My answer to this is “No” if the bot is built from scratch or needs customization.
My answer is “Yes” if the bot is very simple or is build from a comprehensive template.
An FAQ bot is an example of a very simple bot. This is the sort of bot that business users can easily build. A bot that is built exclusively from a template can also be built by the business users.
Most bot use cases, however, require customization even if they use templates. At a minimum, systems need to be integrated and this can’t be done by a business user. There is also the fact of customization. It is very often the case that a company has either a novel use case or ideas that require the chatbot to be customized. These customizations are normally hard to do in a GUI created for business users and therefore they need to be done by developers.
That is not to say that there is not an optimal way for business users and developers to work together on a platform to optimize productivity. The question is in what ways should the platform cater to business users and developers to reach this optimal collaboration?
There are some bot platforms that provide highly simplified GUIs for business users. These GUIs create the illusion that business users will be in control of the chatbot building process. The chatbot models they build can then be accessed by developers programmatically to create customizations and integrations.
The problem with the highly simplified GUI is that it limits what the business user can do. It is also the case that the developer normally has much more experience in understanding the optimal ways to build software, so they may need to be involved in the design choices at the level of the GUI.
There is a bot platform that allows business users to apparently create a sophisticated chatbot from scratch without any code. The example I saw was of a pizza ordering chatbot. Essentially the business user just needed to fill out a form listing the parameters they wished to capture for the pizza order like size and toppings and the associated questions and the bot would do the rest.
There were three problems here
The first is that business users are unlikely to use naming conventions for parameters and adhere to other design conventions without training. This can then create a messy bot even if they are working within the limits of the GUI.
The second problem is that extensive customization of the chatbot would be needed in reality. For example, the chatbot would need to know and track prices as the user went through the order and would need to integrate with the backend. Even though the business user has much more knowledge of the requirements, they may actually be slowing the developer down by being involved in this way.
The third problem is that the right GUI could actually speed up the developer's work. If the developer wants to use the GUI, they have to use a GUI with very limited functionality and then do the rest in code which is the most complex way to do things. A sophisticated GUI could radically cut down on the coding they needed to do.
The optimal solution may require companies to be more realistic about what it takes to create a high quality chatbot. This means that they need to recognize that extensive customization is needed, like for any software, and therefore it is better for developers (or at the very least power users with sophisticated tools) to be in control of the development process.
Business users must be in control of the overall design. They also need to be directly in control of the content and intents.
The most efficient way for them to work with the developers is for them to follow an agile methodology and to iterate towards the best solution. This means using agile techniques to quickly build the chatbot according to an original design and then have business users test and refine the chatbot by giving feedback on a regular basis.
From the bot platform point of view this means two things:
- Ensure that business users can easily do the things they definitely need to do like manage content and the phrases for intents.
- Ensure that the developers can do everything else as efficiently as possible. This means making sure the GUI is highly flexible and works in the way that developers would want it to work.
Bot platforms should also allow for the creation and sharing of templates and wizards. Templates and wizards (used by business users) can help companies get to production faster even if there is still material customization to do.
Another trend in building chatbots is that intents will be replaced by object descriptions. Business users will be able to select objects that are supported by the platform and simply update the properties associated with these objects. The platform will then take care of handling end user questions about these objects.
For example, a business user could select a “credit card” object for a chatbot for banking and then fill out a form related to this object. The form might ask who the user should contact if the card is lost and who they should contact if the card needs to be replaced etc. In a similar way to using a template or wizard, the business user can benefit from a chatbot that is already created to some extent for the task at hand.
The chatbot platform will determine in part how business users and developers can collaborate on a given chatbot. In our view, the most efficient way to collaborate is to allow business users to have full control over tasks they can do completely by themselves, such as content and augmenting intents, and then allow the developer to build the chatbot as efficiently as possible.
The business user will ultimately be in charge of the design and will need to be fully engaged in the process to ensure that the chatbot meets expectations. The developer will need to create the underlying functionality as efficiently as possible.