Integrating Business Critical Systems with your Website
When business critical software binds together key elements of your business and customer operations, finding the right website platform to integrate with can be more complicated. The technology you choose needs to fit around your existing (or planned) processes to ensure a seamless flow of data at each critical touch point, and there needs to be a robust approach to how each of your different systems communicate with each other.
Our experience has seen us integrate websites with Merlin Business Software, Orderwise and a variety of other platforms. Alternative platforms such as Unleashed, Khaos Control or even your own custom bespoke internal system will generally have an API (application programming interface) that will allow data to be exchanged in a common format. The scale and scope of building an integration with a business critical system means future changes to either the website or the operations management tool can be far reaching, so it's important to settle on a compatible partnership.
Choosing a web platform
To make sure that you can integrate with your business critical system, you will need a web platform that is easy to customise. Security is also important. If you have a secure system holding all of your business and customer account data but introduce vulnerabilities through an insecure website, you are potentially exposing this data to the outside world. With fines for data breaches through the GDPR now up to €20million (or 4% of your global revenue), the risks here are simply too great to ignore.
Even with wide ranging security from many cloud based services, if your website has vulnerabilities and gets hacked, the code could be altered allowing hackers to perform all sorts of operations that exposes your data. This could involve targeting email addresses, modifying API connection calls that could potentially delete all of your data in your system. This kind of scenario may sound extreme, but isn’t impossible, and the loss of data coupled with public exposure would be very serious for any business.
Beyond choosing a secure platform, it's clearly vital that the integration between systems is also secure and the data can’t be intercepted between them. This will generally fall back to the security of the APIs in use by your chosen system vendor, but it needs to be matched by a secure and robust web platform to complete the circle.
Integrations with Craft CMS
Craft CMS is our preferred choice of content management system, and the platform which we are using to build the majority of our websites. We've been registered Craft Partners for several years and have found most of our recent build projects have involved some form of integration with third party systems.
Craft CMS is just one of many content management systems though, and although it's not as widely known as WordPress, Craft offers an incredible range of flexibility when integrating with other systems and services. It's capability with commerce extends this even further, allowing it to sit at the heart of your company's digital experience.
Having worked with several types of business management software, as well as building integrations with email campaign platforms, CRM and well known services like EventBrite, we've been able to develop our experience to ensure connections to these systems are secure and performant.
What we've learnt from Craft CMS integrations
Complex Data Queries can Impact Performance
Complex queries can be written to get detailed information from databases. However, using an external database encapsulated in a third party platform rather than a local database can cause performance to suffer. Additional security checks and separate server to server connections can impact on both timing and performance. There are however a few simple and effective ways to keep these queries performant in Craft CMS.
Caching in Craft can be added to your templates and given unique identifiers. As an example, this would mean that we could cache product data within a loop instead of running queries against individual items. This reduces the number of queries your page is making for each piece of product data, avoiding a query that is multiplied by the number of products in the database. By loading a cached version of the queries, there will be immediate speed enhancements.
Speed can be further enhanced by using Amazon S3 for image storage where an external product catalogue is being used. Craft can access a text reference to the URL of the uploaded image, allowing it to be downloaded directly from the S3 source, rather than it being part of the data payload from the external system. Craft CMS can then use a plugin such as Imager to transform and optimise these images for the browser. When combined with caching, this can drastically reduce load times.
Adding lazy loading into your pages can result in quicker page load times, with placeholders appearing whilst the rest of the data is being fetched from your integration. This is usually used on long lists to load in additional rows as you scroll down the page, but we can also use this for the initial data to give the perception of a faster loading page. When we couple this with caching and image manipulations, it can load the content in very quickly, while in cases where the cache may be unavailable, visitors can at least see activity on the page that can reduce user-frustration as data loads.
Fast Loading Data that's Out of Date
Caching isn't necessarily a silver bullet to improving performance. An excellent example of this is where we might have a product page with stock indicators. If the page was always cached in its entirety, the product would show as always being in stock. By excluding the stock level from the cache, the page will show the correct stock level, but at the risk of loading in very slowly.
What we need here is a hybridisation of our techniques. We can cache the product data, without any stock information, then we can make a separate server request to a simplified file that holds stock values, loading in the reference we need, once the remainder of the page has finished loading. This method allows site visitors to view the products quickly and the amount of uncached data is very small, so there would be a minimal delay in the stock level appearing. A further enhancement could be to show a loading icon on top of any add to basket buttons so they are only enabled if stock is present.
Choosing to integrate your business critical software with your website can be a daunting prospect, but with the right planning, it doesn’t need to be a painful process. If your system has quality documentation or you have direct contact with the vendor, your integration should be a relatively smooth process.
Data outputs from these systems don't have to be ugly or slow when displayed on the web. In fact, once the data has been extracted, it can be styled and designed to give the best possible user experience.
The overriding factor to keep in mind throughout the integration process is security. We recommend that you're selective about the data you need to be able to access, and only load the data you need. Irrespective of the data though, a connection will always be open to abuse if it is not secure in the first place.
No platform is truly impenetrable. However some platforms are more susceptible than others when it comes to their overall security. Craft CMS is a robust content management system which with the right approach, can provide a secure access point to your business data where it needs to interact and respond to your customer demands.