At SupportBee, we have been thinking about our API and platform from day one because we believe that good customer support is all about having the right data. We want our users to be able to pull in and push out the data to any service they want. One way to do this would be to write a lot of integrations ourselves. However this doesn’t scale.
As part of our research, we have been looking at the APIs of several other platforms including Github, Pivotal Tracker and HipChat. One thing that can make your platform stand out is a webhook. The concept of a WebHook is simple. A WebHook is an HTTP callback: an HTTP POST that occurs when something happens; a simple event-notification via HTTP POST (definition from Webhooks.org). Webhooks are a great way to get data in from other services and also let other services consume your data in (almost) realtime. However if you want your platform to be widely used, you need to consider the usability of your webhooks.
Typically, to create a webhook, a user logs into your service and enters the url that (s)he wants to be called on specific events. For instance, this is what Pivotal Tracker does. However this is very a limiting approach. If a service provider wants to create an integration with your service, they need to give out their users a customized url that they should manually go and put into your system. This is what HipChat does for integrating with Pivotal Tracker or Exceptional. The process is cumbersome and also inflexible. If you want to change the url or add another one, it has to be done manually. The service provider (Hipchat in this case) cannot edit or add a new webhook automatically. So for example, everytime you add a new project, you must manually go in and setup all the webhooks again.
Compare this to Github. They have an API for their web hooks. A service provider can get your auth token and then create or edit webhooks without any manual intervention. This leads to beautiful services like Gemnasium. Without an API for Github’s webhooks, Gemnasium won’t be possible or be so clumsy that no one would really use it.
If you are planning on adding webhooks to your service, consider adding an API for managing them. You will be surprised by the kind of applications that other people come up with on top of your services. Make it easy for developers to use your platform