Implementation

What If x Breaks?

We understood the limits of the current solution, but that is assuming our system dependencies keep on working. Here we try to brainstorm what could happen if the various factors outside the control of our system break.

What If a Software Dependency Of This Project Has a Breaking Change?

We have specified which exact dependency versions the app is developed for and works with in the respective package.json directories around the code. If a developer wants to upgrade that, it is their responsibility to check for any breaking updates.

What if Voiceflow Changes Their Format

The package vf-to-ubf is written to detect any format changes and throw errors. The UI is written to clearly display these errors and disallow the user from proceeding. A developer must intervene and update the package according to the new spec.

This does not create any downtime for currently deployed SMS chatbots, as this only reflects uploading new Voiceflow designs.

To make this more reliable, one could implement a visual editor for the Unified Bot Format. That way, you can save your bot designs in UBF and never depend on Voiceflow being available.

What if Voiceflow Bans Data Export Altogether

Someone should identify a different tool for chatbot design and develop a package which converts that format into the Unified Bot Format. We have documentation for that. The rest of the system should work seamlessly.

What If Twilio Updates Their API

First, they probably would give a long enough notice to that. Second, they have kept previous versions of the API in the past. However, if this doesn’t happen, then tough luck, you are locked out of controlling your currently deployed bots via our application. They likely would still function and serve customers, but you wouldn’t be able to update them.

What If Twilio Stops Existing

Then your SMS chatbots will disappear. You should still have your chatbot designs as a file, but they won’t be deployed. If this is a significant enough risk, one should consider implementing their own backend, which adheres to the UBF SMS API. The rest of the system should integrate seamlessly.