Author : Arun Avanathan, Platform Lead, IPP Data Services. Enjoys developing core platform services for IPP. In the past, built highly scalable applications & services for eBay & Nextag.
Webhooks
At Intuit Partner Platform we are currently considering introducing a new feature to provide support for Webhooks. We’d like your feedback on this topic to help evaluate the importance of this type of feature.
For context we provide a brief explanation below discussing the benefits of such a feature.
Webhook is an HTTP POST callback request sent to a URL of the your choice in response to some event occurring. This eliminates the need for you to build polling functionalities in your application to the server to check whether a particular event has occurred or not.
How is it going to help you the Application Developer?
Today, the Application Developer writes scripts to periodically poll Intuit Partner Platform(IPP) API for QuickBooks to know whether Data changed or not. Even though the data hasn’t changed, the polling script will still call & the API will return “no data changed” response. This is where Webhooks can remove the need for developers to add a polling mechanism .
Once a Webhook endpoint is registered by an application, IPP will notify the app of data changes in the Cloud. The Webhook payload will contain the company ID, entity name and the time the entity changed. The application can then call IPP API for QuickBooks to get the details of the changes.
Security - How does the REST endpoint know that caller is IPP?
When the Webhook endpoint is registered for the application, IPP will generate an auth token – specifically a Webhook auth token – in the App Center. With every call back, IPP will use this token to make a POST request over https with Basic Auth. The Webhook endpoint can validate this token to ensure the requests are coming from IPP.
Sample Webhook call
Webhooks are not limited to solving just polling problem. Under the hood they are designed to notify any event, qualified for notification. More events will be identified & added as part of the iterative improvement process.
Here are some of the potential use cases webhooks can help :
- Data Change events
- Connection initiation
What do you think? Any other events you want to be notified for? We’d love to hear from you & let us know of any other use cases you would like to cover in this feature. So, if it’s important to you, make sure you are heard by commenting on this blog post.
To avoid excessive polling, my application relies on user interaction to trigger an IPP API call that checks for new data. This manual procedure is tedious for the user, but it allows me to avoid polling for data when the likelihood of a change is low. Introducing web hooks would allow me to circumvent this manual process by updating local entities whenever IPP sends an event.
Posted by: Rbright | March 11, 2013 at 11:51 AM
This sounds great! We'd like to be notified when data changes, and WHICH data changed (or data type, like an invoice or customer). Just knowing that "something" changed isn't as useful...
What would really be nice is to define a set of conditions, like a rules engine. An example might be "when an invoice is paid AND the invoice is more than 90 days past due". Or, "new invoice added AND total amount is greater than $10,000"...
Hope that helps,
Lon
Posted by: Lon Orenstein | March 13, 2013 at 05:30 AM
Grace - if we can get webhooks on IPP, we'd have some very happy users. From a user experience standpoint, this would allow them to have a richer experience using an App Center app. We're all for it.
Posted by: Danny Do Couto | March 13, 2013 at 06:01 AM
We'd use this for Method CRM in a heartbeat. Users appreciate that we can currently do a sync instantly from Method to QBO, but there is confusion as to why changes in QBO don't instantly go to Method. Webhooks would allow us to deliver a truly seamless environment, reduce the chance of sync conflicts, and make our users run more efficiently.
Paul
Posted by: PaulAlexJackson | March 13, 2013 at 06:19 AM
This would be a great feature. We do a lot of syncing with QuickBooks and this would eliminate a lot of unnecessary calls to see if data has changed. I'm all for it. -Brad
Posted by: Brad_hall | March 26, 2013 at 01:33 PM
This new feature will be a major driver in continuous auditing solutions for QuickBooks. Imagine how empowering ERP solutions will be when they can alert stakeholders to changes in financial position (low cash balances, negative cash balances, bank covenant breaches in AR/AP balances, purchase transactions that exceed pre-defined limits, etc..
Posted by: Greg Frazier | April 10, 2013 at 10:08 AM