Additional Items Approval Workflow
Add-ons requested on site go to the customer for email approval, then append to the sales order with a record of who approved what.
- Role
- Built
- Status
- SHIPPED
- Stack
- MongoDB, Transactional email, PDF generation
The gap I spotted
Add-ons were landing on sales orders without a record that the customer had agreed to the price. I added an approval step before anything changes.
The problem
How do add-ons a customer asks for on site get a recorded approval before they change the sales order?
Add-ons requested on site were noted by hand and approved by phone or chat, so sales-order changes had no approval record.
The system
- An Add Items flow with searchable products and a mandatory discount, reusing the existing discount when a device is already on the sales order.
- Send for Approval emails the customer a branded proposal; approval notifies the project manager and appends items to the sales order.
- Post-launch fixes: choosing between several sales orders per project, quantities starting at 1, branding and programming charges in the PDF, and showing only pending items until approval.
- 01
PM adds items on site
- 02
Customer approval email
- 03
Customer approves
- 04
PM notified
- 05
Items appended to sales order
Engineering decisions
- Items join the sales order only after the customer approves
- Every change to the order amount is backed by a recorded approval, which protects both sides in a dispute.
- A discount is required, and reused when the device is already on the order
- Add-on pricing stays consistent with what the customer already agreed to.
- Changes can be made and the request re-sent before approval
- The customer approves the final list, not an earlier draft.
What failed
- Items already on the sales order started at their existing quantity (6 units showed as 6) instead of 1. Every add-on now starts at 1.
- The approval PDF was missing the company logo and the programming charges. Both added.
- The summary relied on a single approved flag, so already-approved items kept reappearing. Pending items now come back separately, and only those show until approval.
- Some projects have several sales orders, with no way to pick one. The dialog now lists them and loads the right rooms.
- The selected room and device weren’t always included when saving, leaving incomplete records. Both are now always sent.
Impact
Every post-sale change is linked to a recorded customer approval, giving the team an audit trail instead of memory and chat history.
AHA Smart Homes screens on this site are recreated with dummy data.
Want to talk through how I built this?
I'm happy to walk through the decisions, what failed and what I'd change.