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.
The REST API was implemented to give the ability for the client to start the dialog with users and get the result of the dialog; as well we used Swagger to generate API documentation. Amazon S3 is used as storage for the images from users' MMS. Amazon SQS used for incoming messages to reduce the server load. We used dashbot.io to track detailed statistics of the dialogs and analyze them for further bot 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.