Brian Dunagan

May 31 2021
Saving $100k per Year with Order Processing Automation

Unsplash - @_imkiran

Order processing is one of those unglamorous corporate tasks that is tedious, repetitive, and absolutely essential. Processing an order as fast as possible enables Operations to quickly fulfill the order for the customer as well as start the clock on the invoice terms, typically NET30. At Retrospect, our online store handles fulfillment automatically, but for channel sales, orders are processed by Operations.

For channel sales, our channel distributors send us orders in a variety of formats, including CSV, Excel, and PDF. Operations must take those orders and add them to Salesforce with a variety of items to check. For instance, if there is an existing pipeline opportunity, Operations needs to use that and fulfill it. Operations also needs to check for existing accounts or contacts in case they are current customers. Customers can have support contracts, so those need to be updated when new orders are processed. Operations must check all of these items and more when processing an order to make sure Salesforce is a clean and accurate representation of our customers and opportunities.

Introducing errors through inaccurate data (like typos) or duplicate data (like multiple Salesforce accounts) costs time later for Operations to fix the fulfillment and for Sales to clean their Salesforce accounts.

Building an Internal Tool

Five years ago, we had no automation. Operations had a full-time person dedicated to order processing. It took them 30 minutes per order. Some days, they didn’t process all of the orders that had come in. Because there were always more orders to process, they didn’t always check for an existing account, contact, or opportunity, introducing duplication and pipeline confusion. Sales had to clean up their accounts periodically.

In 2016, the VP of Sales talked me through these issues during a 1-on-1 and asked if there was anything we could do about it, like some amount of automation. He had already asked Operations to stop duplicating Salesforce data, but duplicate data still crept in. Given Sales’ level of frustration, I took a couple days and wrote a v1 of a tool, and it looks about the same today.

Order Import - Choose Import Type

It was a single page, hosted on our website behind a sign-in wall, and it imported orders, showed the accounts and contacts with Salesforce links if they already existed, and let Operations type in the correct names if they could find it in Salesforce.

Order Import - Verify Data

After the information was accurate, click “Create Prospect Opportunity”, and the page would show a Salesforce link to the imported order as an opportunity.

Order Import - Create Opportunity

Over the last five years, I’ve continued iterating on the order import page based on Sales feedback to automate a growing list of tasks:

  • Look up and use an existing pipeline opportunity
  • Auto-correct the top 250 resellers and distributors to their Salesforce account names
  • Process CSVs, Excels, and PDFs in various formats
  • Link to Salesforce searches to find missing accounts or contacts
  • Color code the results: green is good with everything linked, red is bad with extra attention needed to see what’s missing
  • Change support contracts based on the new order
  • Upload multiple files to attach to the order
  • Add per-distributor instructions for which email addresses to email for what order fulfillments

In total, I’ve spent around a month building out the tool.

Boosting Productivity by 5x

The original goal of the tool was to reduce Salesforce duplication and Sales frustration, and the tool certainly did that. Sales no longer needs to periodically clean their accounts like they used to.

However, the unintended consequence was the drastic productivity boost in order processing. Manually processing an order used to take 30 minutes. Now, it takes 5-6 minutes–a 5x productivity boost.

The tool automated the mundane but necessary workflow for order entry and processing, let Operations focus on other tasks, and let Sales spend more time selling, all while reducing the time to fulfill orders for customers.


As a time estimate, the order processing tool cost $15k for Engineering (1 person-month), but in the first year, it saved $100k: $50k for Operations (10 person-months) and $50k for Sales (3 person-weeks for each sales rep). An $85k ROI in one year, and we’ve been using it for five years.

I think the productivity boost justifies the internal tool in this case, and the initial version only took a couple days, with iterations after that based on feedback. Still, there was still an opportunity cost to building it. At a different company, $100k per year might not have been enough to justify 1 person-month of Engineering. It did for Retrospect at the time.

Retrospect Backup 18: Ransomware Protection Optimizing Retrospect's Algorithm for Resource Scheduling
LinkedIn GitHub Email