Problem
The operator ran a Frappe-based transport management system that held real order data — yet the last mile to the customer was manual. Every document and every status update had to be exported, recreated or typed out by hand.
Business Context
The operation moves a high volume of orders daily. Customers expect a document and a status update for each one. Any re-keying multiplied across every order in the day.
Constraints
- No change to the core transport workflows was allowed — the business side was already correct.
- WhatsApp is the primary customer channel and must remain the channel.
- Documents had to reflect live system data, never a snapshot typed by a person.
- Everything sent to a customer had to be traceable to an order.
Analysis
Tracing one order through the whole day showed the same problem repeated in two places: generating the document, and delivering the message. Both were manual, both were error-prone, and both had no audit trail.
Architecture
A background job watches order state changes. When an order reaches a defined state, the system renders the document from live data, attaches it, and hands the payload to a WhatsApp delivery pipeline that retries, logs and reports every send.
Solution
The manual PDF and message creation steps were removed. The system now produces the document at the right moment and sends it through the messaging pipeline with full logging.
Technology
- Frappe framework for the job system
- WhatsApp Business API integration
- Server-rendered PDF documents from live DocType data
- Queue with retry and failure logging
Implementation
The document renderer was wired to live order data first, then the state machine that triggers delivery, then the messaging pipeline. Each layer was tested with real order states before the next was added.
Challenges
WhatsApp delivery semantics needed careful handling — retries, rate limits and error states had to be visible inside the system, not swallowed by the integration layer.
Outcome
The copy-paste step is gone. A document that used to be recreated by hand is now generated the moment the order state changes, and the customer receives it through the same pipeline the business already trusts.
Lessons
The last manual mile is often the most valuable thing to automate. The core system was fine — the break was in the hand-off between system, document and channel.
Future Improvements
Routing status updates through templates per customer segment, and adding a verification layer where a human confirms unusual order states before any message is sent.