Implementing Blockchain for Shipment Management in SharePoint
Tags: sharepoint, blockchain, azure
Published: 2023-11-21 07:30:00

In the ever-evolving landscape of logistics management, precision and transparency form the bedrock of operational success. Recently, I undertook a transformative initiative, implementing a cutting-edge blockchain-based solution designed to monitor and manage shipments and deliveries.

At the heart of this groundbreaking approach is the integration of **Azure Logic Apps**, serving as the backbone for the intricate web of **blockchain** operations. This synergy between advanced technology and logistics is poised to reshape the way we perceive shipment tracking.

Picture this: every nuance of a shipment, from its inception to modifications and even deletions, is meticulously recorded and securely stored in **SharePoint Online**. The utilization of **blockchain** technology adds an extra layer of security and traceability, ensuring a comprehensive and unalterable record of each shipment and delivery detail.

![NBA Shirts Blockchain generated by DALLE-3](https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4edf2c6a-0e11-421f-bd18-f93abaecc35b_1024x1024.png)

In this exploration, we will navigate through the intricacies of the solution, shedding light on the pivotal role played by **Azure Logic Apps**. The example, the solution, and the tangible outcomes await as we delve into the realm where cutting-edge technology meets the pragmatic demands of shipment and delivery tracking.

> This post is the first of two parts. It covers the business side and the solution broadly. The second part, titled [Technical Dive for Implementing Blockchain for Shipment Management in SharePoint](https://intranetfromthetrenches.substack.com/p/blockchain-tech-implementation-in-sharepoint), gets into the technical details, sharing source code and configurations. Hope you enjoy both!


## The Example

Let's dive into the practical application of the **blockchain-based** solution through a compelling real-world example involving a clothing company. This particular enterprise focuses on providing NBA shirts to enthusiasts around the globe, navigating the landscape of shipments, and deliveries.

### The Challenge

In the realm of clothing distribution, managing the logistics of diverse products demands precision and transparency. Our clothing company faced the challenge of efficiently tracking the journey of NBA shirts from shipment to the hands of eager customers. The lack of a seamless tracking system resulted in uncertainties and difficulties in maintaining a clear record of the supply chain.

### The Solution in Action

The implemented solution orchestrates a synchronized ballet between two **SharePoint Online** lists: one for recording shipment details and another for capturing delivery information. The employees responsible for managing shipments enter key information like ID, date, and relevant details into the dedicated **SharePoint Online** list. Simultaneously, delivery details, including shipment ID, date, and additional information, are logged in a separate list.

### Blockchain Ensuring Integrity

The linchpin of the solution lies in a third **SharePoint Online** list acting as a **blockchain** ledger. Every event surrounding the shipment and delivery lists—creation, modification, and deletion—is meticulously recorded in this **blockchain-powered** registry. This ensures the integrity and immutability of the information stored in every item from the shipment and delivery lists.

### Realizing Accountability

By employing this innovative solution, our apparel company established an accountability framework throughout the supply chain. The **blockchain** based event registration list became a testament to the authenticity of each transaction, providing a reliable and tamper-proof audit trail.

### The Outcome

The implementation of the **blockchain-based** solution catalyzed a paradigm shift in the company's logistics management. Inventory tracking became more efficient, and the entire supply chain experienced heightened transparency. The example of the clothing company demonstrates how the solution, leveraging **SharePoint Online** and **blockchain**, can be a transformative force in the world of shipments and deliveries.


## The technical solution

The technical solution revolves around the integration of **SharePoint Online** as the primary data manager. Utilizing **SharePoint** lists, I store detailed information about shipments, deliveries, and the tracking system. The user-friendly interface simplifies the configuration of lists and fields, enabling power users to effortlessly manage data with mouse-driven actions. This choice is driven by the simplicity of configuration and the intuitive UI, ensuring easy access for employees to navigate and comprehend information.

**Azure Logic Apps** form the backbone of the **blockchain** functionality, seamlessly managing the tracking system. Triggered by events such as the creation, modification, or deletion of **SharePoint Online** items, **Azure Logic Apps** dynamically tracks every transaction. This ensures a transparent and tamper-proof record of events associated with each shipment and delivery. To fill the gap of a missing standard action for creating hashes in **Azure Logic Apps**, I employ an API based on Azure Functions. A custom connector integrates this functionality, allowing the creation of hashes to maintain data integrity within the **blockchain**.

![Technical blueprint diagram of the solution](https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab81cd7-092f-4c61-843f-d393d2264147_2718x1176.png)

> For an in-depth breakdown of each part and its real-world use, please refer to the related article, [Technical Dive for Implementing Blockchain for Shipment Management in SharePoint](https://intranetfromthetrenches.substack.com/p/blockchain-tech-implementation-in-sharepoint).

### Key things

Three crucial elements take center stage in the solution: **blockchain**, custom connector, and **Azure Logic Apps**. Let's delve a little deeper into each of these integral components.

#### Blockchain

**Blockchain** stands as the bedrock technology, chosen to fortify the security, transparency, and traceability of the data. Its primary role is to safeguard the integrity of every piece of information, ensuring that any modification, creation, or deletion in the data is immutably recorded. This approach instills a robust layer of security, assuring that each step in the supply chain is not only meticulously documented but also shielded from unauthorized alterations. The beauty of **blockchain** unfolds in the transparency it affords -  every nuance of the process, from the initial steps to the final ones, is effortlessly traceable. This not only fosters accountability but also elevates the reliability and authenticity of the entire shipment and delivery tracking system.

#### Azure Logic Apps Custom Connector

The implementation of a custom connector emerges as a pivotal element, addressing a critical need unmet by default **Azure Logic Apps** capabilities. Recognizing the absence of built-in actions for creating hashes, I proactively integrated a bespoke solution. In this scenario, my preference led me to develop a straightforward *Azure Functions* implementation, serving as a dedicated API endpoint. 

This *custom connector* not only allows us to tailor the functionality precisely to the requirements but also provides the advantage of maintaining control over its deployment and storage within the environment. By opting for this approach, I ensure a seamless and secure integration, empowering the solution with a customized layer of hashing capability, fundamental to the integrity and authenticity of the **blockchain-driven** shipment and delivery tracking system.

#### Azure Logic Apps vs Power Automate

The choice between *Power Automate* and **Azure Logic Apps** doesn't really matter much - they're both tools that work similarly. In my situation, I went with **Azure Logic Apps** because I didn't have a *Power Automate Premium license*, which meant I couldn't use *custom connectors*. Without those, I couldn't set up the hashing functions needed for the solution. However, I found that keeping everything in one place, like within an *Azure Resource Group*, made more sense for the solution. It simplified things by avoiding the need for different technologies, making it easier to manage everything in one console at the end of the day.


## Conclusion

The integration of a **blockchain** technique in the solution plays a pivotal role in fortifying the security, transparency, and traceability of the event registry. This innovative approach ensures that every event, be it the creation, modification, or deletion of shipment and delivery details, is immutably recorded. **Blockchain**, known for its tamper-resistant nature, adds an extra layer of reliability to the entire process, creating a secure environment for managing logistics operations. 

Furthermore, the seamless integration of this **blockchain** solution into **SharePoint Online** brings an unparalleled level of accessibility and familiarity to users. By leveraging **SharePoint Online** as the foundation, I not only ensure a user-friendly experience but also tap into the robust features that have made it a global leader in document management.


## References

- *Technical dive for Implementing Blockchain for Shipment Management in SharePoint: [https://intranetfromthetrenches.substack.com/p/blockchain-tech-implementation-in-sharepoint](https://intranetfromthetrenches.substack.com/p/blockchain-tech-implementation-in-sharepoint)*
- *Blockchain success starts here: [https://www.ibm.com/topics/blockchain](https://www.ibm.com/topics/blockchain)*
- *Custom connectors: [https://learn.microsoft.com/en-us/connectors/custom-connectors/](https://learn.microsoft.com/en-us/connectors/custom-connectors/)*
- *Create a custom connector from scratch: [https://learn.microsoft.com/en-us/connectors/custom-connectors/define-blank](https://learn.microsoft.com/en-us/connectors/custom-connectors/define-blank)*
- *Write code in a custom connector: [https://learn.microsoft.com/en-us/connectors/custom-connectors/write-code](https://learn.microsoft.com/en-us/connectors/custom-connectors/write-code)*
- _Thanks to [Hector Sosa](https://dev.to/ekqt), the author of usescreenshot.app application, for allowing framing pictures: [https://usescreenshot.app/](https://usescreenshot.app/)_