Application

Webapp GitHub

Inspiration

I have always wanted to make smart assistants you can communicate with. With Square's API, all it took was a quick middle layer to get communication going from a business user to Square's information store.

What it does

An SMS bot that responds to text message prompts to retrieve and update business-owner data.

How we built it

Built using Flask/Gunicorn hosted on a bare Ubuntu server. There is one front-end page for user sign-up. The magic happens in the text message to Square API communication.

  • Users send queries via text message, these are received by Twilio, which triggers HTTP calls to our Flask endpoint that listens for incoming text messages.
  • These text messages are then parsed and the proper data is retrieved from Square using API calls.
  • This system need not store any merchant data (other than information used to communicate with Square) and is stateless.
  • User data is currently stored using a json blob, but would eventually go into a SQL instance

Challenges we ran into

  • Finding the proper service for programatic SMS, service for hosting Linux VMs, taking an OS from scratch and building it out to host a live service
  • Coming up with a system of commands without necessarily hard-coding every possible query from the user. Some progress was made towards this by making the first command the "key word" and basing a decision tree off of that, but ended up hard-coding a few commands for the sake of the demo. Ultimately, would hope to build a Natural Language Model middle layer that interprets user input and translates it into actionable calls to Square

Accomplishments that we're proud of

  • This concept doesn't seem to be around based on preliminary searches, seems like we have a relatively fresh idea for a useful tool for small business owners.
  • Always cool to be able to interact with software using text messaging, proud of having software be able to "talk back to you"

What we learned

  • How to bring up a service end-to-end, from code to hosting to testing from real-world phones
  • 6 weeks is a lot shorter than you think for a part-time project with large scope

What's next for Square SMS Assistant

  • Usability: An NLM middle-layer for AI-like communication between user and assistant bot. The ML would take spoken user input and translate it into actionable Square API calls
  • Scaling: Adapt to a growing user-base via improved database performance, SMS service scaling via AWS, CDN, etc

Built With

Share this project:

Updates