I recently built a Messenger Bot. This is the second in a series describing how I built it and what I learned. My first post was about why I started down this path of building a bot.

Why Messenger?

I decided on a Messenger bot mostly because I have a head start on familiarity with the Facebook platform (disclosure: yes I work at Facebook but don’t touch anything remotely related to messaging).

  1. It’s integrated with products like Facebook Analytics and Facebook ads.</p>
  2. Messenger works cross-platform (iOS, Android, web). I use the Messenger app all the time. Like it’s probably my #1 app by usage. It’s my preferred method of communication. I also have friends that work on Messenger, so there’s a personal connection.

  3. Messenger is easy to integrate with for **NLP (Natural Language Processing)**. NLP is a short way of saying that my bot can understand that “what is my power production this month?” and “how much power did I produce this month” are the same question. NLP is one of the hotter areas of artificial intelligence these days.

Alternatives to Messenger

Before committing, I thought about some other technologies that could push my solar power data on a regular interval or notify me of disruptions:

Twitter. I could build a tweet bot that would tweet my solar production every hour. I could also setup push notifications. But there’s little value in broadcasting my solar data. Nobody else cares about my power production. I’d rather build a system that can scale to serve other people with the same needs as myself, than a system that just works for me but tells everyone about my system.

iOS push notifications. This is my preferred way to receive notifications. I’d have to build an iOS app which requires a lot more decisions and coding than a bit (it’s a whole different adventure that I’ve been wanting to try). It also wouldn’t work cross-platform e.g. Android.

e-mail. This is probably the easiest, via an SMTP server or some cloud service. But it’s so 90’s. I also don’t check email often enough, and the idea of archiving these notifications in gmail feels wasteful.

twilio. Twilio is what lots of startups are using to call and SMS their users. Uber was their biggest customer, sending the “your car is arriving” message via SMS. This would have been easy for me to implement, and I am familiar with Twilio’s API a bit from an intern project I did. But I despise SMS and phone calls.

bot aggregators. There are a bunch of platforms that aggregate bots across multiple channels. message.io and engati.com let you communicate via Slack, Skype and more by building to a single spec. I suppose this is useful if you’re a business serving customers all over the world. But systems like are often lowest common denominator and don’t include all the latest and greatest from each messaging platform.

slack. Slack is cool. But I don’t use it much, if ever. There is also no team element to what I need in a bot, though I suppose there are use cases where a team, business, or family all want to interact with the same solar power system. This could be an interesting v2.

Plot twist: I actually started with Amazon’s Alexa and will share that experience in my next post. But what else should I have looked into?