
Case study · Packaging manufacturing · India
How BBF Packaging gave its delayed orders a memory
BBF Packaging runs on SAP, but chasing late sales orders was manual. Every Friday someone pulled the delay report, emailed each salesperson for a reason, collected the replies, analysed them for management and acted on them. The next week the comments and decisions were gone, and the team started again. We built an agent that reads the report and sends every order to Production first, who know why it is late. It then routes each order by their comment to the team that has to act, and remembers what was said and decided the week before.
- The problem
- Every week's comments and decisions were lost, so the same questions were asked again.
- What we built
- An agent that takes the SAP delay report, gets Production's reason for every order, routes it by that reason and keeps its history.
- What BBF gets
- Each late order has a history, an owner and a next step. Management can ask for a dashboard.
- Status
- Live for about three months. The team uploads the SAP report each Friday.
The same problem shows up in
- Packaging and printing manufacturers
- Make-to-order factories on SAP
- Auto and industrial component suppliers
- Any business that chases late orders by email
If the reason an order is late lives in someone's inbox, you will ask for it again next week.
Before and after.
Before
The same chase, every Friday
A weekly routine run by hand, with nothing carried over.
- 1Download the delayed sales order report from SAP
- 2Work out which salesperson owns each order
- 3Email each salesperson their list and ask why it is late
- 4Collect the replies and analyse them
- 5Take the serious cases to upper management
- 6Act, then do it all again next Friday
Last week's comments and decisions weren't kept. Finding them meant digging through emails, and some weeks the analysis wasn't done properly.
After
Every order keeps its story
Still a Friday routine. The asking, reading and sorting are the agent's.
- 1The team downloads the report from SAP and uploads it to the agent
- 2Production get an email about their pending comments, and one button opens their queue
- 3They pick a reason for each order, because they know why it is late
- 4The agent reads the comment and sends the order to the team that has to act
No longer done by hand
- Working out who to ask about each order
- Emailing for comments by hand
- Reading and sorting every reply
- Digging through old emails for last week's decision
~120
Delayed sales orders
In the weekly report the agent works through.
5
Salespeople
Asked only about orders that need Sales.
0
Emails written by hand
The team uploads the report. The agent does the chasing.
5
Teams an order can reach
Production, Purchase, Sales, SAP and Management.
The problem
Why the chase kept failing.
Every week started from zero
Last week's comments and decisions weren't kept anywhere the team could search.
The answers lived in email
To find what had been decided for one order, someone dug through old threads.
The analysis took the time
Reading every reply, judging the reason and deciding who should act is slow work, so it wasn't done properly every week.
Management saw it late
Only some orders needed upper management, and the team had to spot them by hand.
Why not just a better report?
SAP already knows which orders are late. It doesn't know why.
So we didn't try to change SAP. We kept it as the source and put the agent on the other side of the report.
- 01
A report shows late, not why
The reason sits with the people who know the order, and it arrives as a sentence in an email.
- 02
Comments come in people's own words
“Board received late, dispatching on the 28th.” A column can't read that. An agent can, and can decide who should act on it, even when the reason is written in their own words.
- 03
Each reason needs judgement
Is it a material delay, a clearance hold or a vague answer? Each one belongs to a different team.
- 04
A report forgets
Next week's report has no idea what was said this week. The agent keeps every comment against its order.
What they asked for
Stop repeating the Friday chase, and never lose what a team or a manager said about an order.
One more: don't just collect answers. Start with the people who know why an order is late, send it on to the team that can move it, and bring management in only when the rules say so.
So the goal was a delayed-order desk that remembers, not a mailing tool.
The agent
What it does.
Starts from the SAP report
The team uploads the delayed sales order report. The agent reads it and loads every line.
Production comments first
Every order starts with Production, because they know why it is late. They get an email about pending comments, and its button opens their queue. They pick a reason from a short list, add any detail it needs and save.
Reads the comment
It takes the comment as written and works out what it says about the delay.
Routes by the comment
Purchase, Sales, SAP or management, depending on what Production said. Sales and Purchase use the same queue to clarify as a second step, and the order moves on.
Remembers every week
Every earlier comment and decision stays with the order, so you can see how it was delayed, why, and what was done.
A dashboard on request
Status counts, orders by team and salesperson, the oldest orders, critical reasons and orders with no action taken.
It has no connection to SAP, so it can't change anything there. It only sees the report the team uploads. It never invents a dispatch date, and it never adds management just because an order is old.
The comment queue
What Production sees.
SO Comment Queue
Week of 23 Oct · 4 visible
Select a reason and fill any required fields. Press Enter or click Save to move to the next row.
| Order | Item | Age | Balance | Comment for this week |
|---|---|---|---|---|
| SO-B201 | FG-1042 | 112 d | 5,700 | Select a reason…Save SALES04 SepWaiting for dispatch clearanceShow history (6) |
| SO-B207 | FG-1058 | 64 d | 1,800 | Select a reason…Save PROD16 OctDispatching on 30 OctShow history (3) |
| SO-B214 | FG-1077 | 38 d | 3,000 | Select a reason…Save |
Production choose from a short list of reasons, such as Raw Material Not Received, Artwork Approval Pending or Already Dispatched, or write their own. Orders that need a comment are marked, and anything said earlier sits under the order with its history. Sales and Purchase see the same queue when the agent needs their clarification.
The dashboard
What management sees.
SO Analysis Report — Management Dashboard
Team records
Management can add a comment to any order from any team view.
- Production (12)
- Purchase (6)
- Sales (2)
- SAP (1)
- Management (5)
| Order | Age | Team | Reason | Status |
|---|---|---|---|---|
| SO-A101 | 92 d | Production + Management | Promised dispatch date passed, dispatch not confirmed. | Escalated |
| SO-A105 | 57 d | Production + Management | Cause changed from material to a QC hold. | Moving target |
| SO-A103 | 66 d | Purchase | Material expected beyond the 20-day procurement window. | Open |
| SO-A102 | 41 d | Production | In production, dispatch promised within 15 days. | Promise pending |
| SO-A104 | 35 d | Sales | No dispatch clearance, Sales to confirm a date. | Open |
| SO-A106 | 48 d | SAP | Dispatched, but the order still shows open. | Check SAP |
Once Production have commented, each order sits under the team that has to act. Management sees what is oldest, what is critical and what has no action, and can export the lot to Excel.
One order, three Fridays
How an order's story builds up.
- Week 1 · SO-A105
Production said
“No board. Expected on 12 Nov.”
Purchase
Material pending, due beyond the procurement window.
- Week 2 · SO-A105
Production said
“Board received late. Dispatching on 28 Nov.”
Production + Purchase
Date logged as a promise, due within 15 days.
- Week 3 · SO-A105
Production said
“Order is on a QC hold.”
Production + Management
The cause changed from material to quality, and the promised date has passed. Both go to management.
A recreation. The order and its comments are constructed.
Without last week's comments, week 3 looks like a new problem. With them, it's a reason that keeps moving, and the agent says so.
Trust and data
Safe to run.
An agent that reads comments and routes orders can send the wrong order to the wrong team, if it's careless. So it follows written rules, one order at a time.
No SAP access needed
It works from the report the team uploads. It never connects to SAP, so it can't change an order there.
Only what was said
A dispatch date is taken from this week's comment. It is never estimated.
One order at a time
Each order is analysed on its own, so a comment on one can't change where another goes.
Management by rule
Management is added only through set triggers, never for age alone.
The process
How we worked.
- 01First
Their way of judging a delay became the rules
Production comment first, because they know the reason. Each kind of delay, who owns it and when management steps in were written down as the agent's instructions.
- 02Build
One order at a time
The agent analyses a single order line per run and saves one result for it, so one odd comment can't affect another order.
- 03Connection
Works with the upload, not an API
SAP's API wasn't opened up, so the team downloads the report and uploads it. The agent starts from there and never touches SAP.
- 04Live
In use every Friday
BBF's team has used it for about three months. Each Friday starts with the upload, and the agent does the rest.
The hard part
Judging a reason the same way, every week.
The obvious build: a model that reads each comment and decides who should act, with nothing written down.
Why that fails
One sentence can point three ways
“Awaiting clearance” belongs to Sales. “Board received late” belongs to Production and Purchase. “Will update” needs management's attention. A model left to decide would drift, and no one could say why an order went where it did.
What we did instead
The rules came first, in strict order
Each kind of delay has a written rule, checked in priority order. Some rules end the check at once, so an order that was already dispatched never reaches management. Every result says which rule fired and why.
| The Friday routine did | The agent does |
|---|---|
| Read each comment and judged the reason | Checks this week's comment against the rules, in order |
| Remembered what it could from last week | Compares this week's comment with every earlier one, and flags a reason that keeps changing |
| Took a date on trust | Logs a dispatch date only if the comment states one, and escalates it if the date passes |
| Pulled in management as the discussion went | Adds management only through the listed triggers |
| Followed up by email | Gives each order one follow-up for the team that has to act |
Where it is better than before
Memory
Every comment and decision stays with the order.
Consistency
The same comment gets the same routing every week.
Time
The team uploads a report instead of writing and reading emails.
Visibility
Management can ask for the dashboard any day, not just Friday.
How we held that bar
The agent writes the rule that fired and why into every result, so anyone can check a routing against what Production actually said.
Faster is easy. The hard part is never sending an order to the wrong team, or crediting a date nobody promised.
Six months from now
How it stays predictable.
The agent's instructions are written, not improvised, and they limit what it may do. For every order it asks the same questions in the same order.
- 1Does the comment end the check, like a missing comment, an already dispatched order or a clearance hold?
- 2Is a stated dispatch date inside 15 days, already past, or missing?
- 3Has the reason shifted from earlier weeks?
- 4Does one of the listed triggers allow management?
- Goes live
An example from the rules
A comment says “awaiting clearance” on an order that is over 600 days old. Age alone doesn't send it to management. Clearance holds go to Sales, and the rule says so explicitly.
Find out what your Friday chase is costing you.
A short discovery session about the report your team chases every week. We'll show you what an agent would do with it.
Book an AI KickoffOr email hello@avestalabs.ai