Implementation

Contribution To The Field

In the system architecture overview, we summarised all key aspects of our system as designed for the purpose of NHS medical advice chatbots. We also hinted on how some design decisions were motivated by aiming to serve a larger problem than the specific scope of this project. In this post, we summarise that.

Unified Bot Format

Our UBF can be used to develop interfaces between various design platforms for chatbots. If one creates a package to convert Platform X to UBF, then everyone can immediately benefit from all other features of our ecosystem, including SMS deployment and user interfaces. The format is strictly specified with an already provided functioning input verifier.

UBF SMS API

Standardises the API to a backend, providing a service for uploading and managing SMS bots in UBF format. It makes it simpler for one to extend our ecosystem by allowing the deployment of UBF bots into other SMS providers.

vf-to-ubf node package

Allows any Voiceflow design (with some documented restrictions) to be converted to an equivalent bot in UBF, with robust error handling.

vftoubfnpm

ubf-to-twilio node package

Implementation of UBF SMS API for Twilio. Allows any UBF chatbot to be uploaded and managed on Twilio’s servers, bypassing any needs to have a backend. All relevant chatbot data is stored there. Uploaded chatbots are immediately accessible from everywhere in the world.

ubftotwilionpm

We Made It Super Easy To Make SMS Bots!

Let us summarise what these software packages mean in practice. The following code snippet loads a Voiceflow design export, converts it to UBF, uploads that to Twilio, and connects it to a live phone number. The best part? All packages are already published on NPM!

import {voiceflowToBotFormat} from 'vf-to-ubf'
import api from 'ubf-to-twilio'
const fs = require('fs');

design = fs.readFile("./VoiceflowFile.vf")

ubf = voiceflowToBotFormat(design)

client = await api.tryConnecting({"TwilioAccountSid","TwilioAuthToken"})
assistant_id = await api.uploadNewBot(client, bot)
api.changeBotPhoneNumber(client, assistant_id, "+447123456789")
//Boom! Bot Deployed

Just within those three calls, you now have a live SMS chatbot which you can distribute to the masses.

The UBF Standard

overview

Now imagine someone else comes and writes Microsoft Bot Composer to UBF package. They have all the documentation and tools to do that.

Another developer could make a UBF to GOV.UK Notify backend for example.

Now you can plug and play with as many different conversation platforms and SMS backends due to the creation of UBF and the UBF SMS API.

All these operations are now in a well defined ecosystem of automated bots and SMS interfaces. We hope that this helps other developers bring more SMS tools and services to the market.