This week we had major breakthroughs in relation to our proof of concept and the longer-term feasibility of our approach.
Breakdown of Goals
We found concrete ways to get all data we need out of VoiceFlow, have a method of deploying bots on Twillio and started planning for a UI frontend.
1. The User Interface When it comes to the User Interface, based on the previous sketches, we started to think deeper into thinking how and what we would use to implement the UI.
2. Voiceflow JSON Diagram Extraction This week, we managed to develop a way of extracting this diagram with just the user login credentials for Voiceflow and creating the necessary network requests based on that.
3. Twilio Autopilot We also explored deeper into the features of Twilio Autopilot and tried to figure out where we can use the platform itself to host the logic behind the bot, and as such, we do not need a backend.
We previously discovered that whenever you upload a Voiceflow bot to Google or Alexa, Voiceflow generates a network request which creates a diagram of the current Voiceflow project the user was working on.
How the process works is that we take the Voiceflow username and password and capture the authentication token, which will give us access to the Voiceflow API.
With this token, we can attain the user workspaces, the projects within in workspace and ultimately the conversation graph for a specific project.
The network requests and how to use them have been documented within GitHub.
Twilio naturally won't allow us to upload a schema of a chatbot to automatically deploy onto the platform, but they support some interesting features.
A Task represents a single item of work waiting to be processed. Every Task has attributes, allowing you to pass along whatever data is required for your application to route the task and take the appropriate action on assignment.
Twilio Functions is a serverless environment that allows you to create production-grade, event-driven Twilio applications easily. Twilio Functions replaces our need to find hosting or worry about maintaining or scaling web infrastructure