I saw the possibility of increasing engagement with the 311 office in a more passive way via Facebook Messenger's new chat bot platform.
Having worked with PublicStuff in the past and seeing San Mateo County's involvement with Open311 via the SeeClickFix platform.
The mobile app SeeClickFix provides has very little engagement, a chat bot will interface into the same system and be available for all users of Facebook messenger without needing to install a new app. If they independently look up the app and find it, one study says 30% of app installs don't happen simply because users don't have space on their phones.
900 million people use Facebook Messenger, 3 times the population of the US and talking with a chatbot would be just as passive as talking to your friends.
And thus, Civic.ai was born, your neighborhood artificial intelligence!
What it does
The chat bot takes images and text and formats them to conform with the open311 protocol and drop them into SeeClickFix's server. With the proper latitude and longitude it will route to San Mateo's system as a legitimate work request.
How I built it
Using ElasticBeanstalk on AWS and Node.js
Challenges I ran into
Facebook Messenger app connection required me to have a domain name with ssl. This caused delays, and in the past this would have taken at least 72 hours. But I was able to use AWS' "Route 53" product to choose a domain name and have it connectible within 30 minutes and Amazon's ACM service to generate a free SSL certificate in 10 minutes. The instructions to link an SSL certificate to ElasticBeanstalk were also tricky, as there was an alternate process for the new ACM SSL certificates!
Accomplishments that I'm proud of
I got the bot to send an automated response to users that message from Facebook desktop!
What I learned
- How to use ElasticBeanstalk and why it can be better than Heroku or other offerings
- Making SSL certificates and linking them to ElasticBeanstalk
- Facebook Messenger bot nuances. FB's chatbot framework was released in April 2016 and is in its infancy.
What's next for Civic.ai
Have the bot prompt users for Open311 compliant information to send it to the municipality.
The server on ElasticBeanstalk needs to monitor for changes to requests and send updates to users on their Facebook Messenger chat.
User persistence on AWS Cognito Robust responses leveraging Wolfram Alpha
Port bot to Telegram messenger Port bot to Slack