How event-driven integration can help keep your customers happy

To get online shoppers to repeatedly buy from you, organisations need to provide a simple and reliable shopping experience. Whilst most retailers provide a modern front-end that is sleek and easy to place the order, integration between this and the various systems involved in fulfilling an order is often inadequate, resulting in a poor customer experience.

Many of us have experiences where online orders have gone wrong.  During the stage 4 lockdown in Melbourne in 2020, with most of us working from home, I ordered a desk from a well known international furniture brand. As part of the checkout process, I scheduled a time for it to be delivered.  The earliest available slot was roughly a month away, not great, but we were in the middle of a lockdown so understandable.

The day before delivery, I received a text reminding me of my delivery, including a link to the 3rd party delivery company to track the delivery status. So far, so good…

Tomorrow came, it was a typically busy day, a couple of packages were delivered, but it wasn’t until we sat down for dinner that we realised the desk still hadn’t arrived. Clicking on the delivery status link, it showed a map on my phone, and in small writing, the top left-hand corner was the word “cancelled”. 

At this point, I’m thinking, “Okay we are in the middle of a pandemic, these things happen. I’m sure someone will contact me shortly to reschedule my delivery.”

A couple of days passed, and no one contacted me. I received nothing to alert me to the fact that my delivery had been cancelled. I went back to the website to check the status of my order, it showed that the delivery was scheduled, it’s just that the scheduled date was now in the past!  The only option was to reschedule my delivery, which put me at the back of the queue, with the next available delivery slot weeks away. 

The experience of course could have been so much better if I’d received a response in real-time, as soon as my delivery was cancelled…

If we were using event-driven integration, when the delivery was recorded as cancelled in the 3rd party logistics (3PL) system, that event would have been picked up by an event broker.  Event brokers, as their name suggests, sit between event producers and event consumers, routing events between different systems within your IT infrastructure.

The additional challenge in this scenario is that the producer of the event was located in the 3PL’s IT network, whilst the consumer of the event would be located in the retailers IT network. In event-driven integration, the role of distributing events across event-brokers that span multiple networks, is the function of an event mesh. Technologies such as Solace PubSub+ platform provide a comprehensive way to create, document, discover and stream events from where they are produced to where they need to be consumed – securely, reliably, quickly, and guaranteed. 

Using event-driven integration and leveraging an event mesh would have allowed the delivery cancellation event to be captured and propagated from the 3PL to the furniture retailer in real-time. Once received, the next step would be to initiate an automated process to handle the failed delivery and schedule a new delivery time. The smart way to implement this process would be to re-use the same application components involved in scheduling the original delivery, as this would enable the solution to be quickly implemented, with minimal requirements to build new functionality.

The key to enabling re-use of application components is through exposing the functionality provided by these applications through APIs. In our desk example, there would be APIs to retrieve a list of available delivery dates, schedule delivery and send a message to a delivery recipient.

When building new applications, best practices dictate taking an API-led integration approach. But in most businesses, many of these functional capabilities and a lot of the data are locked up in existing applications that don’t provide suitable APIs. 

Exposing existing application components as re-usable APIs and then combining them together is the role of the application network.  Technologies such as MuleSoft Anypoint Platform allow companies to securely expose functionality and data held in their existing platforms, so they can be quickly combined to deliver new capabilities. 

In the case of our failed delivery process, we would implement a process on MuleSoft Anypoint Platform that would be initiated on receipt of the Failed Delivery Event, via the Solace event mesh. The process would first invoke the send message API to inform me that unfortunately my delivery could not be made today and ask me to select a new delivery date. Before guiding me through the process of viewing available delivery dates and selecting one that is convenient, again re-using existing functionality exposed via APIs.

Key to achieving this quickly and cost-effectively is the need to have a modern event-driven integration backbone that allows you to distribute, process and act upon events in real-time, irrespective of where that event occurred in your value chain. 

Whilst the example given above is relatively simple, once you have these events flowing through your digital backbone, it allows your business to be a lot more agile in putting in place solutions to better address customer needs. 

For example, it would now be easy to collect data on the number of failed deliveries per day, this would allow the retailer to reserve some of their delivery capacity for re-deliveries rather than having to push failed deliveries to the back of the queue.

Of course, the need for business to react in real-time is a requirement for nearly every industry, in particular where things don’t go to plan. Often it’s not the case that something went wrong, but more how an organisation responds to those events to rectify the situation that can lead to a satisfied customer or one that chooses to take their future business elsewhere.

Case in point, my desk did finally turn up.  Ironically, I received a notification to let me know that my order had been delivered. Though I doubt the company will ever be aware that they failed in the first place (unless of course, they read this blog!).

Want to learn more about event-driven integration?  Read our Solution Brief to learn how APIs and events are key enablers of Event-Driven Architecture.