We continue to share our best practices and success stories. Here is an article on the creation of a chatbot for a car-repairing business in our blog:
Goal
The project is designed to get the extent of damage to the window in the user`s car and send the link with the total cost for repairing to the user.
The main concept was to use SMS for dialog between user and chatbot, control and analyze the dialogs, monitor all the errors.
Solution
We selected the Dialogflow platform to create the chatbot, because it's easy to design and integrate.
For sending SMS, we chose Twilio. Twilio provides webhooks, which were used to get answers from users.
We decided to use PHP framework Laravel as the bridge between Dialogflow and Twilio.
To communicate with Dialogflow and Twilio from Laravel, we used the open source SDKs. PostgreSQL chosen as a database to store users’ data.
The functionality was expanded with Javascript framework Vue.js to build the frontend for easy and convenient chatbot testing.
To give an ability to the client side to start the dialog with users and get the result of the dialog, the REST API was implemented. The Swagger used to generate API documentation.
Amazon S3 used as storage for the images from users' MMS. Amazon SQS used for incoming messages to reduce the server load.
The dashbot.io used to track detailed statistics of the dialogs and analyze it for further chatbot’s flow optimization.
We also decided to implement the Small Talk to engage end-users in conversation. It instigates them to build interactions with the bot and improves the recall rates.
For application monitoring and errors tracking we chose Sentry. It helped us to diagnose, fix, and optimize the performance of the code.
Technologies
Dialogflow, AWS SQS, AWS S3, PostgreSQL, Twilio, Laravel, VueJS, Swagger, Dashbot.io, Sentry
Team
Three specialists worked on this project:
- Two backend developers - development of the application functionality
- QA - testing of the application
The flow diagram turned out to be quite interesting and extensive and thereby hard to publish. If you are curious about it, please contact us and we will gladly share it with you.