<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Samir Saci</title>
    <description>The latest articles on DEV Community by Samir Saci (@samirsaci).</description>
    <link>https://dev.to/samirsaci</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2204841%2Fb4743181-4926-4814-abf0-facd825d74d2.JPG</url>
      <title>DEV Community: Samir Saci</title>
      <link>https://dev.to/samirsaci</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/samirsaci"/>
    <language>en</language>
    <item>
      <title>Why Supply Chain is the Best Domain for Data Scientists in 2026 (And How to Learn It)</title>
      <dc:creator>Samir Saci</dc:creator>
      <pubDate>Mon, 09 Feb 2026 07:11:00 +0000</pubDate>
      <link>https://dev.to/samirsaci/why-supply-chain-is-the-best-domain-for-data-scientists-in-2026-and-how-to-learn-it-1pb9</link>
      <guid>https://dev.to/samirsaci/why-supply-chain-is-the-best-domain-for-data-scientists-in-2026-and-how-to-learn-it-1pb9</guid>
      <description>&lt;p&gt;&lt;em&gt;My take after 10 years in Supply Chain on why this can be an excellent playground for data scientists who want to see their skills valued.&lt;/em&gt;&lt;br&gt;
As we step into 2026, my LinkedIn inbox is full of data scientists reaching out. &lt;/p&gt;

&lt;p&gt;Same questions. Same concerns. Is supply chain data science the right move? &lt;/p&gt;

&lt;p&gt;After 10 years in supply chain data science, including five years writing on this blog, I have developed strong views on this question.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyiej01juo395h0kioi8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyiej01juo395h0kioi8.png" width="800" height="351"&gt;&lt;/a&gt;My first articles published in this blog more than 5 years ago - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Supply chain is an exceptional playground for data scientists. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1qa2w1cyfnfncqhaahgc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1qa2w1cyfnfncqhaahgc.png" width="800" height="264"&gt;&lt;/a&gt;Four types of Supply Chain Analytics - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Rich problems, beautiful mathematics and tangible impacts.&lt;/p&gt;

&lt;p&gt;But I'm not here to tell you what's best for your career. &lt;/p&gt;

&lt;p&gt;In this article, I want to give an honest view of the opportunities that excite me and the challenges that frustrate me.&lt;/p&gt;

&lt;p&gt;More importantly, I will show how to explore this domain yourself using the tutorials and case studies shared across this blog.&lt;/p&gt;

&lt;p&gt;You can then test yourself to see whether supply chain analytics resonates with you.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why do we need Supply Chain Analytics?
&lt;/h1&gt;

&lt;h2&gt;
  
  
  What is a Supply Chain?
&lt;/h2&gt;

&lt;p&gt;A Supply Chain is usually defined as several parties exchanging flows of material, information or monetary resources with the ultimate goal of fulfilling a customer request.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmt2ppd9jjw985gq3lo81.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmt2ppd9jjw985gq3lo81.png" width="800" height="267"&gt;&lt;/a&gt;Representation of a value chain with factories, warehouses and stores - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Factories, warehouses and planning teams use systems to communicate and exchange information.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuwh3it7vbs0snu9qxjti.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuwh3it7vbs0snu9qxjti.png" width="800" height="209"&gt;&lt;/a&gt;Systems exchanging data across the value chain - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;These systems store a large amount of transactional data in databases that reflects the activity of your entire supply chain.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Warehouse Management Systems (WMS) store all the inbound &lt;em&gt;(flows coming to the warehouse)&lt;/em&gt; and outbound &lt;em&gt;(flows leaving the warehouse)&lt;/em&gt; transactions.&lt;/li&gt;
&lt;li&gt;Enterprise Resource Planning (ERP) systems can store all the purchase orders (to suppliers) and invoices (to customers)&lt;/li&gt;
&lt;li&gt;Transportation Management Systems (TMS) will record all the shipments leaving the warehouse and notify you when they are delivered.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As it is impossible to track each shipment across the supply chain, these data remain the only way to monitor your operations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh5dd8vdifnww3c816v8h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh5dd8vdifnww3c816v8h.png" width="800" height="450"&gt;&lt;/a&gt;Example of transactional data - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Therefore, Supply Chain Analytics has emerged as a methodology that organisations use to gain insights from data associated with all processes within the value chain.&lt;/p&gt;

&lt;p&gt;We need to exploit this data, but for what?&lt;/p&gt;

&lt;h3&gt;
  
  
  Descriptive Analytics: Bring Visibility to Operational Teams
&lt;/h3&gt;

&lt;p&gt;Yes, this isn't machine learning or advanced optimisation yet. &lt;/p&gt;

&lt;p&gt;But it's where most supply chain analytics journeys begin, and where you can deliver immediate value!&lt;/p&gt;

&lt;p&gt;I discovered in my first years as a Supply Chain Solution Designer that operational teams were drowning in data but unable to see patterns. &lt;/p&gt;

&lt;p&gt;They know something went wrong, but they can't explain why.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Operations manager: we don't manage to increase our capacity of orders prepared per day and we don't why!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In a warehouse storing products for a cosmetics retailer, I was asked to support the reengineering of operations to increase e-commerce capacity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fezv3u0314me367mtvvl0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fezv3u0314me367mtvvl0.png" width="800" height="450"&gt;&lt;/a&gt;Illustration of the warehouse with receiving, storage and outbound area - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Around November 11th, you have a huge e-commerce festival in China during which volumes are multiplied by ten.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Operations manager: we recruit more operators but it does not impact the capacity.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To find the root cause, I decided to go on-site and observe a shift during peak hours.&lt;/p&gt;

&lt;p&gt;And I quickly observed that many operators were packed in some alleys of the warehouse waiting for their turn to pick products.&lt;/p&gt;

&lt;p&gt;I assumed that was probably the root cause, but I needed a way to prove that and communicate it to the operations manager.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw16r04owadbnk03882v2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw16r04owadbnk03882v2.png" width="800" height="446"&gt;&lt;/a&gt;Warehouse Heatmap - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;With this heatmap, showing the percentage of orders per storage location, we unlocked the situations by quickly understanding the root cause.&lt;/p&gt;

&lt;p&gt;They knew that some areas contained high rotation SKUs, but not to this extent.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Operations Manager: we must spread the high rotations across the warehouse to avoid congestion.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This simple visualisation, which I learned from EDAs in Kaggle, was the beginning of a more complex optimisation study that I documented in this series of articles.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftikvclqukwivcdbf8fpi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftikvclqukwivcdbf8fpi.png" width="800" height="353"&gt;&lt;/a&gt;Series of three articles showing how to use Python to optimise Picking Processes (with source code) - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Even if this isn't deep learning or complex optimisation, never underestimate the value of the proper visualisation solving the right operational problem.&lt;/p&gt;

&lt;p&gt;The reengineering study that started from this simple visual helped us to renew the contract with this customer and earn several million euros.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if you want more technical challenge?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Diagnostic Analytics: Data supporting Root Cause Analysis
&lt;/h3&gt;

&lt;p&gt;We can now step up the technical complexity.&lt;/p&gt;

&lt;p&gt;Let me introduce a methodology that became my favourite playground for supply chain data science: Lean Six Sigma.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.samirsaci.com/tag/lean-six-sigma/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F287ya6a0iegaqycuun5g.png" width="800" height="344"&gt;&lt;/a&gt;Three articles in my blog with case studies using Lean Six Sigma - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Lean Six Sigma is a step-by-step approach to process improvement that uses statistical tools to validate assumptions.&lt;/p&gt;

&lt;p&gt;Why Lean Six Sigma? Because it forces rigour through statistically backed assumptions.&lt;/p&gt;

&lt;p&gt;Operations teams make assumptions daily that are most often based on their experience, but rarely on data, as they're too deep in the day-to-day management.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We can support them with statistics using the Lean Six Sigma approach.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I first used this approach for a project supporting the transportation team of a factory in North America.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpwvzdn316bhlm7pky7wl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpwvzdn316bhlm7pky7wl.png" width="800" height="450"&gt;&lt;/a&gt;Illustration of the case study - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The  &lt;strong&gt;Inbound Transportation Manager  &lt;/strong&gt;received products from two different routes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Route 1:  &lt;/strong&gt;&lt;em&gt;with difficult road conditions and heavy traffic&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route 2:  &lt;/strong&gt;&lt;em&gt;with no traffic and a beautiful modern road&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An external service provider allocates the shipment to a pool of drivers (D1, D2, D3).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What's the problem?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When an order is allocated to the northern regional hub, the lead time for the request to be accepted is 35% higher than at the southern hub.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Transportation Manager: We assume that drivers avoid as much as possible to be allocated to the north route.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Before jumping to conclusions (and starting a conflict with drivers), we decided to analyse the past shipment confirmations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fookymw4m12c80sfgkw85.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fookymw4m12c80sfgkw85.png" width="612" height="430"&gt;&lt;/a&gt;Analysis of the past shipments - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;We used &lt;strong&gt;cross-validation and the Chi-Squared test&lt;/strong&gt; to show that there is no significant proof that the driver’s allocation is linked to the Hub.&lt;/p&gt;

&lt;p&gt;This helped the team to investigate other potential root causes to solve the problem.&lt;/p&gt;

&lt;p&gt;For more details about the approach (and examples with source code), you can have a look at these videos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=Voaq0l39LuE&amp;amp;ref=samirsaci.com" rel="noopener noreferrer"&gt;Lean Six Sigma with Python | Kruskal-Wallis Test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://youtu.be/-C6Zr5wB1rk?ref=samirsaci.com" rel="noopener noreferrer"&gt;Lean Six Sigma with Python | Logistic Regression&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://youtu.be/GAvo3BaCvso?ref=samirsaci.com" rel="noopener noreferrer"&gt;Lean Six Sigma with Python | Chi-Squared Test&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With these descriptive and diagnostic tools at hand, you can find the root cause of most operational issues in warehouses, factories, and planning teams.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why do we have a drop in productivity with this shift of operators?&lt;/li&gt;
&lt;li&gt;Why are there +20% picking errors in this area?&lt;/li&gt;
&lt;li&gt;Why do we have an additional day of lead time in this specific freight road?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Answering these questions with statistically backed methodologies can help teams implement action plans.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can we support these action plans with data-backed prescriptions?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If we summarise what we've seen so far, in the continuous improvement journey, you can&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Help to identify the problem with a carefully chosen visualisation&lt;/li&gt;
&lt;li&gt;Use statistical methods to find the root cause&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is time now to provide solution-oriented insights to support operational improvements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prescriptive Analytics: Optimisation for Decision Making
&lt;/h3&gt;

&lt;p&gt;The idea here is to solve an optimisation problem.&lt;/p&gt;

&lt;p&gt;We want to maximise or minimise a specific &lt;strong&gt;objective function&lt;/strong&gt;(e.g., procurement cost, number of operators hired, space used, production costs)**** while respecting &lt;strong&gt;particular constraints.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvnfabosaauswxanavreg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvnfabosaauswxanavreg.png" width="800" height="332"&gt;&lt;/a&gt; Examples in my Towards Data Science blog - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;In this blog, you can find dozens of examples using linear and non-linear programming to optimise a specific process.&lt;/p&gt;

&lt;p&gt;I will use the Supply Chain Network Design problem to illustrate the challenges you may face when conducting this kind of study.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewijvcymcn37d1241hzx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewijvcymcn37d1241hzx.png" width="800" height="450"&gt;&lt;/a&gt;Supply Chain Network Design Problem - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;A multinational company with markets and factories in different countries would like to redesign its supply chain network to reduce costs and environmental footprint.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkcmvjwvbdxymc8e7vyc3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkcmvjwvbdxymc8e7vyc3.png" width="800" height="450"&gt;&lt;/a&gt;Data you have on hand - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Their supply chain director expects you to tell them where to open factories to minimise the overall production cost.&lt;/p&gt;

&lt;p&gt;These are the decision variables in your optimisation model that you can build using the Python library PuLP.&lt;/p&gt;

&lt;p&gt;I faced many issues collecting input data and fixing the objective functions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What are the challenges?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Indeed, most of the time, the problem is never stated fully and comprehensively.&lt;/p&gt;

&lt;p&gt;For instance, in a project for a fashion retailer, it took us weeks to finalise the objective function.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zbzm9y25yh5lzpzhktz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zbzm9y25yh5lzpzhktz.png" width="800" height="507"&gt;&lt;/a&gt;Initial Scenario - Cost of Goods Sold by Market - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Indeed, after presenting the initial results, we noticed that the objective of reducing the overall production cost (across all countries combined) can affect markets through the Cost of Goods Sold (COGS).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felluaxyghno3g3500y4o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felluaxyghno3g3500y4o.png" width="800" height="495"&gt;&lt;/a&gt;Scenario where COGS are the highest in the low purchase power markets - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;You cannot have scenarios in which it's more expensive to produce in India than in the USA.&lt;/p&gt;

&lt;p&gt;This is where I had the opportunity to support the customer in adjusting their business and operational assumptions, drawing on my understanding of the model.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F243eamso8cr0marscvtz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F243eamso8cr0marscvtz.png" width="800" height="323"&gt;&lt;/a&gt;My presentation of the consensus effort needed across the teams - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;These kinds of strategic projects can help you shine with your skills as you directly deal with decision-makers on projects that impact profitability.&lt;/p&gt;

&lt;p&gt;Our value-added here is not lines of code, but bridging the gap between business aspects and optimisation levers.&lt;/p&gt;

&lt;p&gt;For more details, I explain in this video how I use AI with Claude connected to an MCP server to solve this issue:&lt;/p&gt;

&lt;p&gt;To achieve this, you need a basic understanding of the operations coupled with your data science skills.&lt;/p&gt;

&lt;p&gt;I have some content for that.&lt;/p&gt;

&lt;h2&gt;
  
  
  What do you need to start?
&lt;/h2&gt;

&lt;p&gt;The biggest issue I saw when managing analysts and data scientists on analytics projects was their limited understanding of operations.&lt;/p&gt;

&lt;p&gt;This creates a trust deficit. &lt;/p&gt;

&lt;p&gt;Operations teams may see data scientists as people who've never set foot in a warehouse.&lt;/p&gt;

&lt;p&gt;You need operational knowledge to succeed in supply chain analytics.&lt;/p&gt;

&lt;p&gt;Not to become an expert. But enough understanding to communicate effectively, frame problems accurately, and design solutions that actually work in practice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrwnbj1yzukd8v9q9z1t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrwnbj1yzukd8v9q9z1t.png" width="800" height="286"&gt;&lt;/a&gt;Example of basic supply chain terms explained in short on Supply Science - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;This means learning the basics: how warehouses and factories operate, how transportation networks function, how inventory flows through a supply chain.&lt;/p&gt;

&lt;p&gt;Here's where to start.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learn Supply Chain Processes with 5-min Explainer Videos.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://bit.ly/supplyscience-play-process?ref=samirsaci.com" rel="noopener noreferrer"&gt;In this playlist of 40+ short explainer videos&lt;/a&gt;, I share a condensed version of my 10 years of experience as a solution design manager and as a logistics performance manager.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/supplyscience-play-process?ref=samirsaci.com" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxvswy2ajvc72zwjoyeat.png" width="800" height="308"&gt;&lt;/a&gt;Example of playlist to learn the basics of Supply Chain &amp;amp; Logistics - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;It starts with the basics of warehousing and transportation operations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/supplyscience-play-process?ref=samirsaci.com" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F05pntnbul078edx3ovkq.png" width="800" height="470"&gt;&lt;/a&gt;&lt;a href="https://bit.ly/supplyscience-play-process?ref=samirsaci.com" rel="noopener noreferrer"&gt;Short explainer videos covering basics of logistics operations&lt;/a&gt; - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;These videos will give the basics to understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Warehouse processes&lt;/strong&gt; : receiving goods (inbound), storage of goods (inventory) and shipping of goods (outbound)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transportation Management&lt;/strong&gt; : Full Truck Load vs. Less Than a Truck Load, performance indicators and cost structures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The focus is operational and financial, as this remains a key concern in logistics operations and is my primary expertise as a Supply Chain Solution Manager.&lt;/p&gt;

&lt;p&gt;These videos will give you the basic knowledge to understand most of the logistics-related case studies presented in this blog.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ur8ms7n5w09poplbymx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ur8ms7n5w09poplbymx.png" width="800" height="342"&gt;&lt;/a&gt;Purely Warehousing-Related Analytics Case Studies that you can find in here - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;In each of these articles, you can find the solution's source code linked to a GitHub repository and an explainer video summarising the case study.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What can you do with that?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I usually advise playing with the input data, parameters, and scenarios to adapt the solution to your company's problem.&lt;/p&gt;

&lt;p&gt;You can be imaginative or ask LLM to generate new scenarios and play around with them.&lt;/p&gt;

&lt;p&gt;Do not forget that the objective is to develop your technical skills as well as your operational understanding.&lt;/p&gt;

&lt;h3&gt;
  
  
  Productise your solutions for better adoption.
&lt;/h3&gt;

&lt;p&gt;In this blog, we want to build solutions that impact operations.&lt;/p&gt;

&lt;p&gt;We need to ensure their adoption with a user-friendly deployment.&lt;/p&gt;

&lt;p&gt;Therefore, I dedicated multiple tutorials and articles to the productisation of algorithms and visualisations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhskjxbnqb3mm2t4ikwkw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhskjxbnqb3mm2t4ikwkw.png" width="800" height="394"&gt;&lt;/a&gt;Example of web application that you can deploy following this tutorial - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.samirsaci.com/build-and-deploy-your-first-supply-chain-app-in-20-minutes/" rel="noopener noreferrer"&gt;In my last article&lt;/a&gt;, I showed you step by step how to deploy an inventory simulation application using Python's Streamlit library.&lt;/p&gt;

&lt;p&gt;This approach can be used for any of the 50+ analytics solutions shared in this blog.&lt;/p&gt;

&lt;p&gt;I hope that you are now convinced that you have everything on hand to become a supply chain data scientist whose skills are valued for their impact on operations.&lt;/p&gt;

&lt;p&gt;As someone who recently started my own company providing analytics products, I can confirm there is a need for these skills.&lt;/p&gt;

&lt;p&gt;And we can have fun working on these kinds of projects!&lt;/p&gt;

&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;Let’s connect on &lt;a href="https://www.linkedin.com/in/samir-saci/?ref=samirsaci.com" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://twitter.com/Samir_Saci_?ref=samirsaci.com" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;. I am a Supply Chain Engineer who uses data analytics to improve logistics operations and reduce costs.&lt;/p&gt;

&lt;p&gt;For consulting or advice on analytics and sustainable supply chain transformation, feel free to contact me via &lt;a href="https://www.logi-green.com/?ref=samirsaci.com" rel="noopener noreferrer"&gt;Logigreen Consulting&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are interested in Data Analytics and Supply Chain, look at my website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://samirsaci.com/?ref=samirsaci.com" rel="noopener noreferrer"&gt;&lt;strong&gt;Samir Saci | Data Science &amp;amp; Productivity&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>supplychain</category>
      <category>datascience</category>
      <category>logistics</category>
      <category>ai</category>
    </item>
    <item>
      <title>The Hidden Opportunity in AI Workflow Automation with n8n for Low-Tech Companies</title>
      <dc:creator>Samir Saci</dc:creator>
      <pubDate>Mon, 02 Feb 2026 13:09:32 +0000</pubDate>
      <link>https://dev.to/samirsaci/the-hidden-opportunity-in-ai-workflow-automation-with-n8n-for-low-tech-companies-klo</link>
      <guid>https://dev.to/samirsaci/the-hidden-opportunity-in-ai-workflow-automation-with-n8n-for-low-tech-companies-klo</guid>
      <description>&lt;p&gt;Every day on professional social media, someone claims their “AI agent” will run your entire business while you sleep.  &lt;/p&gt;

&lt;p&gt;It is as if they can deploy AGI across factories, finance teams, and customer service using their "secret" n8n template.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F394so6bsl46twsy4wji1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F394so6bsl46twsy4wji1.png" width="800" height="244"&gt;&lt;/a&gt;n8n is a low-code automation platform that lets you connect APIs and AI models using visual workflows - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;My reality check is that many companies are still struggling to collect and harmonise data to follow basic performance metrics.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Logistics Director: “I don’t even know how many orders have been delivered late, what do you think your AI agent can do?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And these advertised AI workflows, which are often not ready for production, can unfortunately do nothing to help with that.&lt;/p&gt;

&lt;p&gt;Therefore, I adopt a more pragmatic approach for our supply chain projects.&lt;/p&gt;

&lt;p&gt;Instead of promising an AGI that will run your entire logistics operations, let us start with local issues hurting a specific process.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Logistics Director: "I want our operators to get rid of papers and pens for order preparation and inventory cycle count."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most of the time, it involves data extraction, repetitive data entry, and heavy admin work using manual processes that are inefficient and lack traceability.&lt;/p&gt;

&lt;p&gt;For example, a customer was using paper-based processes to organise inventory cycle counts in its warehouse.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcaj3f75wedgzdrt83l7v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcaj3f75wedgzdrt83l7v.png" width="800" height="431"&gt;&lt;/a&gt;Example of a Warehouse with hundreds of picking locations to manage - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Imagine an inventory controller who prints an Excel file listing the locations to check.&lt;/p&gt;

&lt;p&gt;Then he walks through the alleys and manually records the number of boxes at each location on a form like the one below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7os7d6wl3alzh9m0fow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7os7d6wl3alzh9m0fow.png" width="736" height="235"&gt;&lt;/a&gt;Actual Example of the Inventory Cycle Count List used by the operators - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;At each location, the operator must pause to record the actual quantity and confirm that the area has been checked.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We can (and must) digitalize this process easily!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is what we did with a Telegram Bot using n8n, connected to a GPT-powered agent, enabling voice commands.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftcn1lm3nzwpkh5dgox92.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftcn1lm3nzwpkh5dgox92.png" width="800" height="365"&gt;&lt;/a&gt;Example of "digitalisation" of inventory cycle count using a Telegram bot - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Our operator now only needs to follow the bot's instructions and use audio messages to report the number of boxes counted at each location.  &lt;/p&gt;

&lt;p&gt;This local digitalisation becomes the first concrete step in the digital transformation of this low-data-maturity company.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We even added logging to improve the traceability of the process and report productivities.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In this article, I will use two real-world operational examples to show how n8n can support SMEs' supply chain digital transformations.&lt;/p&gt;

&lt;p&gt;The idea is to use this automation platform to implement simple AI workflows that have a real impact on operations.&lt;/p&gt;

&lt;p&gt;For each example, I will provide a link to a complete tutorial (with a GitHub repository containing a template) that explains in detail how to deploy the solution on your instance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vocalisation of Processes
&lt;/h2&gt;

&lt;p&gt;In logistics and supply chain operations, it is always about productivity and efficiency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwkjkzuyy88po7iz9q1wc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwkjkzuyy88po7iz9q1wc.png" width="800" height="442"&gt;&lt;/a&gt;Example of two packing stations in a fashion retail warehouse - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Supply Chain Solution Designers analyse processes to estimate the optimal productivity by analysing each step of a task.&lt;/p&gt;

&lt;p&gt;A breakthrough was the implementation of voice-picking, also called vocalisation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr84p0to1p5mr059dfqzg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr84p0to1p5mr059dfqzg.png" width="800" height="422"&gt;&lt;/a&gt;Example of an operator receiving instructions via vocalisation - (Image generated with Gemini by Samir Saci)&lt;/p&gt;

&lt;p&gt;The idea is to have the operators communicate with the system by voice to receive instructions and provide feedback with interactions like this one:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Voice Picking: "Please go to location A, pick five boxes."&lt;/li&gt;
&lt;li&gt;Operator: "Location A, five boxes picked."&lt;/li&gt;
&lt;li&gt;Voice Picking: "Please go to location D, pick six boxes."&lt;/li&gt;
&lt;li&gt;Operator: "Location D, six boxes picked."&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This boosts operators' productivity, as they now need only focus on picking the correct quantities at the proper locations.&lt;/p&gt;

&lt;p&gt;But these solutions, typically provided by Warehouse Management System vendors, may be too expensive for small operations.&lt;/p&gt;

&lt;p&gt;This is where we can use n8n to build a lightweight solution powered by multimodal generative AI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vocalisation of Inventory Cycle Count
&lt;/h3&gt;

&lt;p&gt;I want to come back to the initial example to show you how I used &lt;strong&gt;Text-To-Speech (TTS)&lt;/strong&gt; to digitalise a paper-based process.&lt;/p&gt;

&lt;p&gt;We support the stock management team at a medium-sized fashion retail warehouse.&lt;/p&gt;

&lt;p&gt;Regularly, they conduct what we call inventory cycle counts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;They randomly select storage locations in the warehouse&lt;/li&gt;
&lt;li&gt;They extract from the system the inventory level in boxes&lt;/li&gt;
&lt;li&gt;They check at the location the actual quantity&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For that, they use a spreadsheet like this one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftjphs20rzzafa98sjhf4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftjphs20rzzafa98sjhf4.png" width="765" height="416"&gt;&lt;/a&gt;Inventory Cycle Count Spreadsheet - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Their current process is highly inefficient because the stock counter must manually enter the actual quantity.&lt;/p&gt;

&lt;p&gt;We can replace printed sheets with smartphones using Telegram bots orchestrated by n8n.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9qh5s50rq6j2tghhnwe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9qh5s50rq6j2tghhnwe.png" width="800" height="253"&gt;&lt;/a&gt;Step 1: Initialisation of the process - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The operator starts by connecting to the bot and initiating the process with the &lt;strong&gt;/start&lt;/strong&gt; command.&lt;/p&gt;

&lt;p&gt;Our bot will take the first unchecked location and instruct the operator to go there.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3i2zd0uo2b25o9gmf5b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3i2zd0uo2b25o9gmf5b.png" width="800" height="366"&gt;&lt;/a&gt;Step 2: The operator uses the vocal command to inform the number of units - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The operator arrives at the location, counts the number of boxes, and issues a vocal command to report the quantity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg97udy11p2z3mmixf8bm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg97udy11p2z3mmixf8bm.png" width="760" height="416"&gt;&lt;/a&gt;Step 3: Results Recorded - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The quantity is recorded, and the location is marked as checked.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftej22ct13e2sofn4vqlq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftej22ct13e2sofn4vqlq.png" width="771" height="286"&gt;&lt;/a&gt;Step 4: Next Location - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The bot will then automatically ask the operator to move to the next unchecked location.&lt;/p&gt;

&lt;p&gt;If the operator's vocal feedback contains an error, the bot asks for a correction.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Florb35848me2i3imbtmf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Florb35848me2i3imbtmf.png" width="768" height="299"&gt;&lt;/a&gt;Our bot asks for a correction - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The process continues until the final location is reached.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwpe0w7ozl7z0lzwvr1ud.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwpe0w7ozl7z0lzwvr1ud.png" width="770" height="287"&gt;&lt;/a&gt;Final Location - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The cycle count is completed without using any paper!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgp4hdtx8387kq88dq87q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgp4hdtx8387kq88dq87q.png" width="754" height="423"&gt;&lt;/a&gt;Cycle Count Completed - (Image by Author)&lt;/p&gt;

&lt;p&gt;This lightweight solution has been implemented for 10 operators with cycle counts orchestrated using a simple spreadsheet.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How did we achieve that?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkkv1rzecqeyap6odi4m3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkkv1rzecqeyap6odi4m3.png" width="800" height="436"&gt;&lt;/a&gt;A light version of the workflow is available on my GitHub - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Let us have a look at the workflow in detail.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vocalise Logistics Processes with n8n
&lt;/h3&gt;

&lt;p&gt;A majority of the nodes are used for the orchestration of the different steps of the cycle count.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgzawi95ln5gu3frzzm3y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgzawi95ln5gu3frzzm3y.png" width="800" height="449"&gt;&lt;/a&gt;All the nodes in red are only for the orchestration - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;First, we have the nodes to generate the instructions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;(1)&lt;/strong&gt; is triggering the workflow when an operator sends a message or an audio&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;(6)&lt;/strong&gt; guides the operator if he asks for help or uses the wrong command&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;(7)&lt;/strong&gt; and &lt;strong&gt;(8)&lt;/strong&gt; are looking at the spreadsheet to find the next location to check&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For that, we don't need to store state variables as the logic is handled by the spreadsheet with "X" and "V" in the &lt;code&gt;checked&lt;/code&gt; column.&lt;/p&gt;

&lt;p&gt;The key part in this workflow is in the green sticker&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs3d92qlvd8j4339a2nvp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs3d92qlvd8j4339a2nvp.png" width="800" height="365"&gt;&lt;/a&gt;Section using Generative AI - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The vocalisation is handled here as we collect the audio file in the &lt;code&gt;Collect Audio&lt;/code&gt; node.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fak067ex4l6lkguinknng.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fak067ex4l6lkguinknng.png" width="800" height="367"&gt;&lt;/a&gt;The audio file is sent to OpenAI Audio Transcription API using this node - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;This file is sent to OpenAI's Audio Transcription Node in n8n, which provides a written transcription of our operator's vocal command.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3iaocbx9nxogthm9s9qg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3iaocbx9nxogthm9s9qg.png" width="800" height="503"&gt;&lt;/a&gt;The transcription here is "Location A14, 10 Boxes" - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;As we cannot guarantee that all operators will follow the message format, we use this OpenAI Agent Node to extract the location and quantity from the transcription.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[SYSTEM PROMPT]
Extract the storage location code and the counted quantity from 
this short warehouse transcript (EN/FR).

Return ONLY this JSON:
{"location_id": "...", "quantity": "0"}

- location_id: string or null (location code, e.g. "A-01-03", "B2")
- quantity: string or null (convert words to numbers, e.g. "twenty seven" → 27)

If a value is missing or unclear, set it to null. 
No extra text, no explanations.


[
  {
    "output": {
      "location_id": "A14",
      "quantity": "10"
    }
  }
]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Thanks to the &lt;strong&gt;Structured Output Parser&lt;/strong&gt; , we get a valid JSON with the required information.&lt;/p&gt;

&lt;p&gt;This output is then used by the blocks (4) and 5)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fap5aa9ulfuoiozezbjzn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fap5aa9ulfuoiozezbjzn.png" width="783" height="604"&gt;&lt;/a&gt;n8n workflow section for output processing - (Image by Samir Saci)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;(4)&lt;/strong&gt; will ask the operator to repeat if there is an error in the transcription&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;(5)&lt;/strong&gt; is updating the spreadsheet with the quantity informed by the operator if locations and quantities are valid&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have now covered all potential scenarios with a robust AI-powered solution.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vocalisation of processes using TTS
&lt;/h3&gt;

&lt;p&gt;With this simple workflow, we improved stock counters' productivity, reduced errors, and added logging capabilities.&lt;/p&gt;

&lt;p&gt;We are not selling AGI with this solution.&lt;/p&gt;

&lt;p&gt;We solve a simple problem with an approach that leverages the &lt;strong&gt;Text-To-Speech capabilities&lt;/strong&gt; of generative AI models.&lt;/p&gt;

&lt;p&gt;For more details about this solution (and how you can implement it), you can have a look at this tutorial (+ workflow)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/_EOJ3M7APsQ" rel="noopener noreferrer"&gt;https://youtu.be/_EOJ3M7APsQ&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What about image processing?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the following example, we will explore how to use LLMs' image-processing capabilities to support receiving processes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automate Warehouse Damage Reporting
&lt;/h2&gt;

&lt;p&gt;In a warehouse, receiving damaged goods can quickly become a nightmare.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsrc2gjbjkweqma6zotrk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsrc2gjbjkweqma6zotrk.png" width="800" height="420"&gt;&lt;/a&gt;Example of a receiving area with a workstation for quality check - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;Because receiving can become a bottleneck for your distribution team, inbound operations teams are under significant pressure.&lt;/p&gt;

&lt;p&gt;They need to receive as many boxes as possible so the inventory is updated in the system and stores can place orders.&lt;/p&gt;

&lt;p&gt;When they receive damaged goods, the whole machine has to stop to follow a specific process:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Damages have to be reported with detailed information&lt;/li&gt;
&lt;li&gt;Operators need to attach pictures of the damaged goods&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For operators that have high productivity targets (boxes received per hour), this administrative charge can quickly become unmanageable.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hopefully, we can use the computer vision capabilities of generative AI models to facilitate the process.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Inbound Damage Report Process
&lt;/h3&gt;

&lt;p&gt;Let us imagine you are an operator on the inbound team at the same fashion retail company.&lt;/p&gt;

&lt;p&gt;You received this damaged pallet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F55ry9emdx53wv2uwlgu4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F55ry9emdx53wv2uwlgu4.png" width="800" height="512"&gt;&lt;/a&gt;Picture of a damaged pallet generated with Gemini by Samir Saci&lt;/p&gt;

&lt;p&gt;You are supposed to prepare a report that you send by email, with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Damage Summary: a one-sentence summary of the issues to report&lt;/li&gt;
&lt;li&gt;Observed Damage: details of the damage with location and description&lt;/li&gt;
&lt;li&gt;Severity (Superficial, Moderate, Severe)&lt;/li&gt;
&lt;li&gt;Recommended actions: return the goods or quick fixes&lt;/li&gt;
&lt;li&gt;Pallet Information: SKU or Bar Code number&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fortunately, your team gave you access to a newly deployed Telegram Bot.&lt;/p&gt;

&lt;p&gt;You initiate the conversation with a &lt;code&gt;/start&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0thnkho9qnkseqi2n3aw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0thnkho9qnkseqi2n3aw.png" width="790" height="417"&gt;&lt;/a&gt;Initiate the process with the bot - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;You follow the instructions and start by uploading the picture of the damaged pallet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flb2a76pljqvbvaw3b3s4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flb2a76pljqvbvaw3b3s4.png" width="779" height="567"&gt;&lt;/a&gt;Step 2: uploading the barcode - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The bot then asks you to upload the barcode.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7vtop8qra8v6ekdvfg1w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7vtop8qra8v6ekdvfg1w.png" width="764" height="239"&gt;&lt;/a&gt;Step 3: uploading the bar code - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;A few seconds later, you receive this notification.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyq065ezqutpirgoytgp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyq065ezqutpirgoytgp.png" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can now transfer the pallet to the staging area.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What happened?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The automated workflow generated this email that was sent to you and the quality team.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd7enfd09sic0nlxtwrpk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd7enfd09sic0nlxtwrpk.png" width="800" height="519"&gt;&lt;/a&gt;Damage Report Generated by the automated workflow - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The report includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pallet ID&lt;/li&gt;
&lt;li&gt;Damage Summary, Observed damages and severity assessment&lt;/li&gt;
&lt;li&gt;Recommended actions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was automatically generated just after you uploaded the photo and the barcode.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How does it work?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Behind this Telegram bot, we also have an n8n workflow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6kwm0vrpujyinpdwh0k1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6kwm0vrpujyinpdwh0k1.png" width="800" height="319"&gt;&lt;/a&gt;n8n workflow to automate damage reporting - (Image by Samir Saci)&lt;/p&gt;

&lt;h3&gt;
  
  
  Damage Analysis with Computer Vision using n8n
&lt;/h3&gt;

&lt;p&gt;Like in the previous workflow, most nodes (in red sticky notes) are used for orchestration and information collection.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fddr4q8sbwz9e0kzeuug6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fddr4q8sbwz9e0kzeuug6.png" width="800" height="339"&gt;&lt;/a&gt;AI sections are in green - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The workflow is also triggered by messages received from the operator:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;(1) and (2) ensure that we send the instruction message to the operator if the message does not contain an image&lt;/li&gt;
&lt;li&gt;(3) is using state variables to know if we expect to have a picture of damaged goods or a barcode&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The output is sent to AI-powered blocks.&lt;/p&gt;

&lt;p&gt;If we expect a barcode, the file is sent to section (4); otherwise, it is sent to section (5).&lt;/p&gt;

&lt;p&gt;For both, we are using OpenAI's &lt;code&gt;Analyze Image&lt;/code&gt; nodes of n8n.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ncwapx5298zdmuv21mr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ncwapx5298zdmuv21mr.png" width="800" height="646"&gt;&lt;/a&gt;Nodes to extract the bar code - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The downloaded image is sent to the image analysis node with a straightforward prompt.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Read the barcode, just output the value, nothing else.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Here, I chose to use a generative AI model because we cannot guarantee that operators will always provide clear bar code images.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fshqzidflwp1zsyiojd9y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fshqzidflwp1zsyiojd9y.png" width="800" height="671"&gt;&lt;/a&gt;(5) Analyse Damage Goods and Generate the report - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;For (5), the system prompt is slightly more advanced to ensure the report is complete.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You are an AI assistant specialized in warehouse operations 
and damaged-goods reporting.
Analyze the image provided and output a clean, structured damage report.
Stay factual and describe only what you can see.

Your output MUST follow this exact structure:

Damage Summary:
- [1–2 sentence high-level description]

Observed Damage:
- Packaging condition: [...]
- Pallet condition: [...]
- Product condition: [...]
- Stability: [...]

Severity: [Minor / Moderate / Severe]

Recommended Actions:
- [...]
- [...]

Guidelines:
- Do NOT hallucinate information not visible in the image.
- If something is unclear, write: "Not visible".
- Severity must be one of: Minor, Moderate, Severe.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This system prompt was written in consultation with the quality team, who shared their expectations for the report.&lt;/p&gt;

&lt;p&gt;This report is stored in a state variable that will be used by (6) and (7) to generate the email.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F95t7uzt8ohedlae0ukh8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F95t7uzt8ohedlae0ukh8.png" width="800" height="591"&gt;&lt;/a&gt;State variables are collected to generate a report using the JS node &lt;code&gt;Generate Report&lt;/code&gt; - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The report includes JavaScript code and an HTML template that are populated with the report data and the barcode.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3p0u781cm04b9oy9gea.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3p0u781cm04b9oy9gea.png" width="800" height="692"&gt;&lt;/a&gt;Final report - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;The final result is a concise report ready to be sent to our quality team.&lt;/p&gt;

&lt;p&gt;If you want to test this workflow on your instance, you can follow the detailed tutorial (+ template shared) in this video.&lt;/p&gt;

&lt;p&gt;All these solutions can be directly implemented in your n8n instance.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;But what if you have never used n8n?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Start Learning Automation with n8n
&lt;/h2&gt;

&lt;p&gt;For the beginners, I have prepared a complete end-to-end tutorial in which I show you how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set your n8n instance&lt;/li&gt;
&lt;li&gt;Set up the credentials to connect to Google Sheets, Gmail and Telegram&lt;/li&gt;
&lt;li&gt;Perform basic data processing and create your first AI Agent Node&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the end of this tutorial, you will be able to run any of these workflows presented above.&lt;/p&gt;

&lt;p&gt;A great way to practice is to adapt them to your own operations.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to improve this workflow?
&lt;/h3&gt;

&lt;p&gt;I challenge you to improve this initial version using the Text-To-Speech capabilities of generative AI models.&lt;/p&gt;

&lt;p&gt;We can, for instance, ask the operator to provide additional context via audio and have an AI Agent node incorporate it into the report.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This is not my first project using n8n to automate workflows and create AI-powered automations.&lt;/p&gt;

&lt;p&gt;However, these workflows were always linked to complex analytics products performing optimisation like &lt;a href="https://www.samirsaci.com/build-an-ai-agent-for-strategic-budget-planning-with-langgraph-and-n8n/" rel="noopener noreferrer"&gt;budget allocation&lt;/a&gt;, &lt;a href="https://www.samirsaci.com/ai-agents-for-supply-chain-optimisation-with-n8n/" rel="noopener noreferrer"&gt;production planning&lt;/a&gt; or forecasting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ornymvp7hte9rahasyl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ornymvp7hte9rahasyl.png" width="800" height="382"&gt;&lt;/a&gt;Other examples of workflow automation using n8n - (Image by Samir Saci)&lt;/p&gt;

&lt;p&gt;These advanced prescriptive analytics capabilities addressed the challenges faced by large companies.&lt;/p&gt;

&lt;p&gt;To support less mature SMEs, I had to take a more pragmatic approach and focus on solving "local issues".&lt;/p&gt;

&lt;p&gt;This is what I tried to demonstrate here.&lt;/p&gt;

&lt;p&gt;I hope this was convincing enough. Do not hesitate to try the workflows yourself using my tutorials.&lt;/p&gt;

&lt;p&gt;In the next article, we will explore using an MCP server to enhance these workflows.&lt;/p&gt;

&lt;h1&gt;
  
  
  About Me
&lt;/h1&gt;

&lt;p&gt;Let’s connect on &lt;a href="https://www.linkedin.com/in/samir-saci/?ref=samirsaci.com" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://twitter.com/Samir_Saci_?ref=samirsaci.com" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;; I am a Supply Chain Engineer using data analytics to improve logistics operations and reduce costs.&lt;/p&gt;

&lt;p&gt;For consulting or advice on analytics and sustainable supply chain transformation, feel free to contact me via &lt;a href="https://www.logi-green.com/?ref=samirsaci.com" rel="noopener noreferrer"&gt;Logigreen Consulting&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>n8n</category>
      <category>supplychain</category>
      <category>ai</category>
      <category>logistics</category>
    </item>
  </channel>
</rss>
