Sitefinity 12.2 is out and, as the dust settles and the CPUs are cooling down, we’re looking at one of those new features, which start small but can make a big difference down the road.
Curiosity drives discovery. Right. Stating the obvious is lazy story-telling. OK, one can’t argue with the 1% talent, 99% hard work saying but let’s be honest here. We innovate, optimize and automate to get more done in less time. And we do it because we want to work harder the rest of the time? Come on. Not everyone is a project manager.
Jokes aside, the tasks we automate are not necessarily the ones we hate. And lazing the afternoon away is not the (only) reason we do it. You know, some think of it as a zero-sum game, where we risk automating ourselves out of a job. The flipside, of course, being that the time saved through automation is put back into exploring new and better ways of doing new and better things. We hope it’s the latter.
Our long-term vision for Sitefinity is a fully decoupled platform—not only in terms of architecture (BE from FE, multiple renderers feeding off shared content) but also in terms of extending the out-of-the-box capabilities via microservices and functionalities outside the Sitefinity code base. Solutions in the user’s preferred language and framework.
Sitefinity 12.2 provides a means of setting up webhooks to be triggered on specific events. In the long run, this means various integrations that can be developed and tested as stand-alone microservices outside of Sitefinity for separation-of-concerns-driven scalability and modularity.
Alright then, let’s get to it. Webhooks are widely used for automation and integration and you must have seen or set them in action on more than a few occasions, be it service hooks in Azure DevOps, linking BitBucket repositories to JIRA projects or setting up GitHub webhooks in Jenkins.
So, it might be a novelty in Sitefinity, but by no means a new concept per se. And if you know your CMS, you should be well at home with the event system and the wealth of integration points provided by exposed system events. The EventHub is the biggest collection of exposed events in Sitefinity and serves as the central, uniform mechanism for publishing and subscribing to events.
Now, the new webhook feature takes it another step up by letting you subscribe to different CMS events and trigger follow-up actions in external systems and applications that you want to sync or integrate with Sitefinity.
When an event registered in EventHub is triggered, its data is sent to a specified URL via a POST callback with JSON payload. You can add an extra level of security hashing the request body. The webhook secret field computes a hash-based message authentication code, which needs to be verified on the receiving end making sure the request comes from a trusted source, i.e. Sitefinity.
Overall, you can have your CMS securely talk to third party or your own apps and services without writing a single line of code in Sitefinity. You can have virtually anything on the receiving end of a webhook. A microservice that extends the existing Sitefinity capabilities—in a technology that you like and are familiar with or is best suited to the job. An application hosted wherever the deployment and maintenance costs are the most affordable. Most importantly though, you don’t need to deploy Sitefinity—there’s zero downtime involved.
Like we said up front, we started small in Sitefinity 12.2. The current list of supported events is barely scratching the surface. To be fair, engineering actually needed some of them in order to develop, maintain and test in a smarter, more efficient way. Anyway, the potential is there and the ways to get the most out of Sitefinity are possibly limitless. You’ll probably have your own ideas too.
Support for the IOutputCacheInvalidationEvent for example was added in anticipation of a future upgrade, which will see the entire web content served via CDN. Caching under a CDN will provide a significant performance boost for every site in Sitefinity Cloud and that goes beyond the media and static files to include the dynamic site content as well.
The IFormEntryCreatedEvent is perhaps the one with the most practical applications. Beyond configuring various notifications each time a form is submitted—which you can do with form rules anyway—you can capture the user data and send it over to a CRM.
Imagine you have a web form that accepts user registrations and you want to print a badge after a successful form submission. You set up a microservice that handles the print job. When a form is submitted, a call is made to the endpoint you configured. The microservice will execute the operation and can even call the system back to confirm the job has been successfully completed.
Bottom line, webhooks are a nifty tool that sees a collection of apps and services sync with Sitefinity or trigger a follow-up action when an event takes place.
As an admin, you may want to define an endpoint that’s going to be called whenever a given Sitefinity event occurs. This way you will be able to sync your external assets with the CMS and develop extra functionalities outside of the Sitefinity code base for a truly decoupled integration.
Webhooks are just about starting in Sitefinity 12.2 but you shouldn’t be short on ideas about how to make the best out of your CMS by integrating it with external apps and services that are key to your business and workflow. As webhooks continue to evolve so will the ways to extend an already powerful CMS by choosing technologies that you’re not only comfortable working with but are the best tool for the job at hand.
So, watch this space for more and smarter ways to optimize and automate and be sure to share in the comments below which Sitefinity events you think should get the webhook support next. Stay curious.
A new addition to the Sitefinity Product Marketing team, Anton has a mixed background of software and writing for the web. He has spent the last 7 years in software development, on the project management and product ownership side, all the while writing about technology, gadgets and their use and usability. Always trying to get to the bottom of it without missing the bigger picture.
Subscribe to get all the news, info and tutorials you need to build better business apps and sites
Copyright © 2019 Progress Software Corporation and/or its subsidiaries or affiliates.All Rights Reserved.
Progress, Telerik, Ipswitch, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.