This blog is a short explanation of a voice enabled business process demo which I built using Alfresco Process Services powered by Activiti and Amazon Alexa. The solution also has integration with a variety of technologies such as Alfresco Content Services, Email, Twilio, Decooda etc. A user can interact with the process over voice using their Amazon Echo and mobile phone! The source code of my demo components are available at https://github.com/cijujoseph/activiti-examples/tree/master/activiti-alexa-demo along with a detailed README of all components.
Demo Use Case
The use case for my demo is a “Vehicle Service Booking” business process. The business process is modeled and run using Alfresco Process Services. The business process can be started by a user using an Amazon Echo device. Once started, the process will schedule an appointment in the system and will go into a wait state until the booking date. While the process is in a wait state, the appointment can be changed or cancelled by the user via their Echo device. On the appointment day, a “User Task” will get assigned to a technician/mechanic who will complete the task upon service completion. Once the “User Task” is completed by the technician, a “Service Report” file is generated by the process which is then emailed to the customer and saved to Alfresco Content Services for records. At this stage the user is also notified by a Text message and asked to participate in a short survey. The next step in the process will collect user feedback through a voice call using the Twilio APIs. The feedback provided by user is analysed using a modern cognitive analytics platform (Decooda) which will accurately measure the customer experience. The results from the analytics platform is passed through a set of business rules (DMN rule engine available in Alfresco Process Services) and process will get routed accordingly.
To me, the most interesting parts of this whole demo are the following:
- Use of voice (Echo) to start and manage the process.
- Ease of integration of Alfresco Process Services with external cloud platforms such as Twilio.
- The power of platforms such as Decooda for measuring customer’s emotions and the value it can bring to a business process like this!
Please find below the solution diagram followed by a BPMN diagram (modeled using the BPMN Modeler in Alfresco Process Services) which shows the various steps in my business process and the components involved in each step:
Demo Stack Explained
- Alfresco Process Services powered by Activiti- The business process which is the core component of this demo is built using Alfresco Process Services powered by Activiti. Please refer to https://www.alfresco.com/platform/process-services-bpm for more details.
- Alfresco Content Services - The contents associated with the process (customer feedback, service report etc) are configured to be stored in Alfresco Content Services platform. For more details on Alfresco Content Services please refer to https://www.alfresco.com/platform/content-services-ecm. Alfresco Process Services has out of the box integration with popular content management repositories such as Alfresco Content Services, Box, Google Drive etc. Please refer to http://docs.alfresco.com/process-services1.6/topics/integration_with_external_systems.html for configuring Alfresco Process Services with these systems.You can modify the demo process to save the content to GDrive, Box etc.
- Amazon Alexa Integration - A user can schedule a service using their Amazon Echo device. In addition to starting the process using Echo, the user is also able to Change Appointment Date, Cancel their appointment and Check their appointment date at any time using their Alexa device.
- Any Alexa Compatible Device such as Amazon Echo, Echo Dot etc
- Amazon Alexa Skill Kit - https://developer.amazon.com/alexa-skills-kit
- Amazon Lambda - https://aws.amazon.com/lambda/ - The backend service required for the custom Alexa Skills are written using Alexa Skills Kit SDK for Node.js that can be easily hosted on AWS Lambda
- Twilio Integration - https://www.twilio.com/ - Voice and Messaging integration with Alfresco Process Services is done using Twilio cloud communication platform in this demo.
- User will receive a text notification when the servicing is complete and the car is ready to be picked up.
- User can make a call to one of the Twilio numbers and provide feedback over the phone.
- Twilio recording and transcription services are used to record the voice message and subsequently transcribe the voice to text for further analysis!
- Decooda Integration - https://decooda.com/ - Decooda is a powerful Cognitive Text Mining and Big Data Analytics Platform which is used to analyse the transcribed customer feedback. The Decooda analytics results will help you accurately understand the customer, their emotions, service experience etc. The Decooda results are then used to run some business rules(DMN based) in the process model and route the process through appropriate paths depending on the customer experience.
I want to keep it simple, so that’s all I have in this blog! Now go ahead and try this out yourselves! Demo code along with instructions are available at https://github.com/cijujoseph/activiti-examples/tree/master/activiti-alexa-demo