UrbanZoom Assistant Google Assistant and Twilio agent that performs property valuation homes in Singapore.
TECHNOLOGY
BUILD
Express
Dialogflow
TwiML
TOOLS
Grunt
Actions on Google
Postman
PLATFORMS
Firebase Functions
Google App Engine
Google Assistant
Twilio
ABOUT
DESCRIPTION
UrbanZoom agent is a Google Assistant application built for property price prediction of Singapore homes, with support for Google Assistant users, Google Home devices, as well as non-technical users through phone calls. The agent handles queries on property price valuation for a specified postal code, providing accurate predictions on HDB and condominium prices, also known as ZoomValue. Users will provide a postal code, the flat type (for HDBs), floor number, unit number and floor area (auto-fill available) to complete the query.
MOTIVATION
The UrbanZoom action was created to make UrbanZoom property valuation API accessible to consumers, regardless of their technical knowledge and skills. This application was also created to demonstrate the accessibility and ease of integrating the UrbanZoom API for property valuation into web-based applications. I saw this project as a chance to try out the Dialogflow API, as well as to learn about voice UX design.
CHALLENGES
One of the biggest challenges would be to ensure accuracy and reliability in speech-to-text recognition of addresses. For users with Singaporean accent and especially for non-English speaking pioneers, getting the right addresses from voice commands would be difficult. This was made worse with complex and native addresses. My workaround was to prompt for postal addresses, then improve the reliability of reading floor, unit numbers and postal code from voice commands. The results were localised through a dictionary of corrections, generated from a series of tests conducted by locals.

This agent was built before the availability of Google Duplex. As such, one-click voice call integrations were unavailable, at least not directly. I integrated the agent with Twilio Programmable Voice service to receive and parse commands through phone calls and ensured that the Dialogflow agent webhook was generic enough to support services other than Google Assistant, such as Telegram bot and Facebook Messenger.

Another issue I had encountered would be the cold-start timings when serving the webhook off Firebase Functions. Due to poor cold-start timings on Firebase Functions, connections with the agent tend to time-out and break off midway, especially when traffic to the webhook was low or sporadic. Switching over to Google App Engine improved the experience tremendously.
FEATURES
ACCURACY
UrbanZoom Assistant utilises the UrbanZoom API for highly accurate property valuation results. This allows the agent to provide reliable answers to user queries.
GUIDED INTERFACE
Dialogues with UrbanZoom Assistant are guided with clear instructions and feedback to prompt users for required fields such as postal code, floor and unit number. Housing type is automatically derived from the postal code, matching addresses are suggested when the user provide an incomplete postal code and the floor area is automatically fetched for homes already in the database.
DEVICE AGNOSTIC
Integrating with Google Action means the agent can be accessed through all Google Assistant enabled devices, regardless of the input surface. The agent can be used with Google Home, iOS, Android and third-party Google Assistant enabled devices. With Twilio integration, the application is also accessible from land lines, mobile phones or VOIP devices. However, note that the calls are not toll-free, and charges might be incurred by your service provider.