To make it easier for the restaurants to have their customers order food for deliveries or pickups from their own page on Facebook(goal is to expand it to other social media platforms such as skype etc.)
What it does
It allows the customers to order the food from facebook restaurant page through facebook messenger. Restaurants can get those orders on our customized iOS app. Our bot also allows message/order status communication back and forth between messenger and iOS app.
How we built it
We used Amazon LEX with lambda in the backend along with DynamoDB(database). We configured our facebook page with the messenger permissions and other permissions that are needed to communicate with the Facebook messenger bot. We also have our iOS app integrated with API gateway which internally uses AWS lambda for communication. We also have our bot integrated with SES and SNS for email and SMS communication.
Challenges we ran into
Some of the challenges include-
- Using correct response formats for the orders to show up in the bot
- Time out scenarios from the bot where the session expires but we want the customers to be able to initiate the communication again.
- Integrating the flow between cBot and Stripe API so that we can perform the handback from Stripe URL to the cBot
- Allowing customers to view their order summary within the bot, this was done using the LEX with View cart template of Facebook messenger bot
Accomplishments that we're proud of
We were able to completely execute the flow from showing the menu categories, items, taking the payments and processing them with Stripe account. All these orders are controlled with in the iOS app in the restaurant, starting from initiation of orders, accepting them, canceling them and completing the orders. This is one of the rare achievements that we were able to accomplish between different components
What we learned
We learnt that the bots can be built so easily with LEX without any prior experience/knowledge of Artificial intelligence models. With minimal background of one of the programming languages such as Java, we were able to completely learn the flow right from the database level till the UI components. This is a very good learning experience which will enhance our skill set and improves our development ability to build some challenging and interesting bots in the future.
What's next for cBot
We are going to expand our bot beyond Facebook messenger and integrate it with other social media platforms that support bots. We are also planning to make this bot accessible with a plugin that can integrate into websites and mobile apps.