If you're running PandaDoc Enterprise (not CPQ), you've probably hit this wall. Your templates have every possible line item baked in so reps can grab what they need. Then they spend the next five minutes clicking through 28 zero-quantity items to delete them one at a time before the quote is ready to send.
Three clicks per item. Five seconds each. Twenty-eight items per quote. Forty quotes a week.
I ran those numbers and landed on roughly six hours a month of nothing but clicking. That's not a process problem, that's a product limitation, and it was quietly eating someone's time every single week.
The Problem PandaDoc Won't Solve For You
Our team runs PandaDoc Enterprise integrated with HubSpot CRM. It's a solid setup for move/add/change quotes at the volume we're running (40โ50 per week). The challenge is in how templates work.
A typical quote in our system starts from a master template with around 30 line items. That covers everything a customer could possibly need: different seat tiers, one-time charges, recurring services, provisioning fees. From that master template, a real quote usually ends up with 2 or 3 actual items. One monthly recurring seat, one provisioning charge, maybe a one-time fee.
The other 27 items? They need to go. And PandaDoc has no native feature to hide or auto-remove zero-quantity line items from the quote builder block. You just sit there and click.
I looked this up. Other people are asking for it. It's been a feature request for years. It's still not there.
Why More Templates Wasn't the Answer
When our head of sales floated the idea of building 10โ20 scenario-specific templates (one for each common quote type), I understood the instinct. If a rep only sees the items they need, no cleanup required.
But I've maintained enough template libraries to know where that goes. Every time verbiage changes, every time there's a pricebook update, every time a product gets renamed, you're touching 15 templates instead of 2. That's a maintenance burden that compounds over time. And reps still have to know which template to pick, which is its own source of errors.
The better path was to keep 2โ3 master templates and automate the cleanup. One source of truth. One place to update. Reps work from the same starting point every time, and the cleanup happens in seconds.
What I Built
The solution is a Chrome extension backed by AWS infrastructure.
When a sales rep or admin is on a PandaDoc quote, the extension adds two buttons. One button scrubs all zero-quantity line items from the current quote. The second button undoes a scrub if something got removed by mistake.
The extension doesn't talk directly to PandaDoc's API or hold any credentials. Everything routes through AWS API Gateway, which hands off to Lambda functions. Lambda handles the actual PandaDoc API calls (identifying and removing zero-quantity items), and DynamoDB stores the state needed for the undo feature.
Keeping credentials out of the extension was a deliberate decision. Users don't configure anything. They click a button, the request goes to our API Gateway endpoint, and the backend does the work. No secrets sitting in browser storage, and access is controlled centrally.
The extension is currently waiting on Google Chrome Web Store approval (unlisted, for internal use). Once that clears, distribution is simple.
Architecture Overview
How AI Tools Cut the Build Time
I want to be direct about this because it matters for anyone evaluating whether a project like this is worth starting.
I used Claude Code locally to build the Chrome extension files: the manifest, the content script, the popup, the background service worker, handling CORS correctly, structuring the button actions. That part came together fast. My role was directing the build and reviewing the output, not writing boilerplate from scratch.
For the AWS backend, I gave Claude access to the AWS CLI and walked through the infrastructure with it. API Gateway setup, Lambda function logic, DynamoDB table schema for storing undo state. Again, I was steering and reviewing, not manually configuring every resource in the console.
Neither of those tools is magic. I still had to understand what I was building, make decisions about security and architecture, and debug when things didn't work as expected. But the time from "I want to build this" to "this is working" was compressed significantly.
For teams without a dedicated developer, this kind of project used to feel out of reach. It doesn't anymore. The hard part is knowing what to build and why. The building itself is faster now.
The Results
The numbers are straightforward.
We went from manually deleting 28 items per quote (roughly 5 seconds and 3 clicks each) to clicking one button. Across 40+ quotes a week, that's about 6 hours a month returned to the team.
Template count stayed at 2โ3 instead of growing to 10โ20. That's a maintenance decision that pays dividends every time something changes in the pricebook or product catalog.
Reps and sales admins work from one master template. No hunting for the right scenario-specific template, no risk of choosing the wrong one.
And the error risk is gone. Before, there was always a chance someone sent a quote with zero-quantity items still on it because they forgot to clean up, or they were rushing. That's a bad look with a customer. Now the scrub is one button and takes seconds.
What's Next
A few things are on the list.
Comment sync to HubSpot is the immediate next piece. Right now, notes and comments in PandaDoc don't automatically push back to the HubSpot deal. That's a gap in activity logging I want to close.
PandaDoc's reporting has some frustrating gaps at this volume. There are things I want to track across quotes that aren't surfaced natively. That's a longer project but worth scoping.
The bigger one: a catalog sync between Rev.io, PandaDoc, and HubSpot. If you're running a stack where the billing system, the quoting tool, and the CRM are all separate, keeping products and pricing consistent across all three is painful. That project could save a lot more than 6 hours a month.
If You're Hitting PandaDoc Limitations
PandaDoc Enterprise is a capable quoting tool, but it was not designed to handle every workflow edge case. When you're doing high-volume quoting with complex templates, you will eventually hit walls.
The answer usually isn't to restructure everything around the tool's limitations. It's to build lightweight automation that fills the gaps. A Chrome extension plus a small AWS backend is a real option now, especially with AI-assisted development making the build faster than it's ever been.
If you're dealing with zero-quantity line items, too many templates, or any other PandaDoc friction, the problem is almost certainly solvable. The question is whether anyone has sat down to scope it.
That's usually where I start.