We had learned some lessons with our initial release of both Todemy bots. Here are some of our tips of what we learned.

Why use the Facebook platform

Well firstly why would you initially bother with the Facebook platform even though there are other mediums available. There are a few things that Facebook messenger gives you right out of the box

  • Auth is handled for you
  • Basic user management details are handled for you
  • Facebook graph api
  • Delivery mechanism (facebook app) handled for you
  • Arguably simpler UX/UI platform

However as with everything in computer science there is no free lunch here are some of the trade-offs

  • Limited by their apis offerings
  • Vendor lock-in
  • Have to deal with their approval process and T&Cs
  • Not all users will want to use Facebook

For Todemy however it seemed to be a great fit and here are some our tips if you also decide to start a Facebook messenger bot

Start the submission process early

Similar to a lean start-up idea its easy to add more features after the approval. This will be your largest external dependency so get a very very simple app out and start their approval process. You’ll have to make a video and provide some details in your submission. Since a human actually reviews it be prepared to send the submission again if it gets declined. For example our initial review got rejected we resubmitted with the exact same app (no code changes) only to get it approved straight away.

Next ideally you’ll want to have your minimum app use all the permissions you want up-front such that you don’t have to go through the additional pain of request for them which can delay your feature release. For example the Todemy bots required the permission to send messages outside the standard 24 hour window lock out which we had requested in our initial release even when that feature set was not built yet.

You can always make additional code changes after the initial review so start this early.

Understand your API dependencies are prepare back-up plans

They like to break and change things so read through what they have available and try to decide if your app can still work if various user information is no longer available. With their recent media attention the company has been clamping down on their API which has caused some pain for other app developers relying on user information previously exposed. I’d suggest to limit this information dependency and ask the user to provide it themselves such that you store it. Data is king so its best if you own it yourself.