Before we deep dive into this topic, lets first understand what are Webhooks.
Webhooks are automated messages sent from apps to pre-configured endpoints when something happens. They have a payload that is sent to a unique URL. They’re a simple way your online accounts can talk to each other and get notified automatically when something new happens.
As per WikiPedia “A Webhook in web development is a method of augmenting or altering the behavior of a web page, or web application, with custom callbacks. These callbacks may be maintained, modified, and managed by third-party users and developers who may not necessarily be affiliated with the originating website or application.”
It’s how PayPal tells your accounting app when your clients pay you, how HubSpot notifies you when a new lead is received, and how Box.com can notify you about new file being uploaded.
So lets look at how Webhooks play a role in AgilePoint NX.
Event based architecture has been one of the core strengths of AgilePoint over the years. AgilePoint engine uses a publisher – subscriber mechanism and for every action that takes place on AgilePoint engine, an event is raised which can be subscribed to to take additional actions or even override default engine behavior.
Traditionally this is done using AgileConnector which is one of the core pillars of extension framework with AgilePoint. Though using AgileConnector is a very strong feature, it means you need to have a .Net developer to write server side implementation of this module and also need access to the AgilePoint server to deploy the new AgileConnector. Also the logic will have to reside in AgileConnector which is executed on the AgilePoint server. This might be duplicate effort at times specially if that logic already resided outside of AgilePoint system.
AgileConnector is still a preferred event based extension feature due to the fact that it runs within context of AgilePoint engine and is easier to develop using AgilePoint Developer SDK. However since it needs server side deployment, this option is available for OnPremises and Private Cloud customers only which means there is no mechanism for OnDemand cloud customers to listen to AgilePoint engine events and take additional actions outside of AgilePoint.
With AgilePoint NX 7.0 SU2, we are introducing the concept of Webhooks in AgilePoint where by just using your browser, you could configure the AgilePoint engine event to be sent to an endpoint which is hosted outside of AgilePoint and that service can then take additional actions.
With introduction of Webhooks, even AgilePoint OnDemand customers can listen to AgilePoint engine events and take additional action which was not possible in past. Moreover this developer need not be a .Net developer. Though it has a special significance for OnDemand clients, it is equally important for OnPremises and Private Cloud customers because they can now leverage developers with Non-.Net skill sets to build extensions as well as leverage already existing service code outside of AgilePoint.
Here is a short video on how this feature works.