How a 30-Person Countertop Company Replaced Its Sales Spreadsheet with One-Click Quotes

A 30-person cabinet and countertop company swapped a macro-heavy sales spreadsheet for an Airtable bid form, AI-built PandaDoc contracts, and a Pipedrive sync.

Nov 13, 2026
How a 30-Person Countertop Company Replaced Its Sales Spreadsheet with One-Click Quotes
TL;DR: A ~30-person cabinet and countertop company in Arizona replaced the macro-heavy spreadsheet its 15 salespeople used for every bid with one guided form. Pricing, city sales tax, installer pay, the quote, and the contract now come out of a single entry, and 24 possible product combinations run through one document path instead of a pile of templates.

The situation

The company sells and installs countertops (prefab and slab), cabinets, tile, and some general contracting for residential and commercial jobs. About 30 people use its systems: roughly 15 salespeople, around 10 admin staff, and a bench of installer subcontractors.
The stack was typical for a growing trades business. Pipedrive handled leads and deals. Sage 50 ran accounting. PandaDoc handled e-signatures. A photo and project-management app was in the mix but on pause. Location matters here for one reason: Arizona sales tax varies by city, so every bid has to price tax based on where the job is.

The problem: one "glorified spreadsheet" ran the whole sale

Every bid, contract, and install packet came out of a single file the team called the sales doc. The owner who led the project described it as "a glorified spreadsheet" with macros, hidden columns of city tax rates, and pricing logic that changed with the cabinet line and the vendor's shipping costs.
A salesperson filled in a customer tab, a countertop worksheet, and a cabinet worksheet. The sheet then built contract language line by line (picking a granite added the stone's name; checking "credit card" added a 3.5% surcharge clause). After a win, the same file produced the field packet and pay sheet installers needed.
Three things made it fragile:
  • One job per file. To write a second contract, a salesperson cleared everything and started from zero. There was no history of versions or revisions.
  • Errors traveled downstream. In the owner's words: "if the customer's phone number was incorrect from the beginning, it now gets perpetuated throughout all these manual processes."
  • Everything was retyped. Bids went to customers by hand. Accountants keyed customer data from the CRM into Sage. Leads from marketplaces like Thumbtack and Angi landed in inboxes, not the CRM.
When the rebuild started, the team also found pricing formulas in the old sheet that didn't match each other. Nobody had noticed, because nobody could see inside the spreadsheet's logic.

What they'd already tried

The company had tried its CRM's built-in e-signature first, but it didn't fit their process: signed copies went out by plain email, and the feature broke once other integrations were connected. They moved to PandaDoc, but that only fixed signing. The bid still started in the spreadsheet.
They weren't trying to buy a big ERP to solve this. The owner wanted to keep costs down and build on tools the team already had. Most of the install crew also works in limited English, so whatever came next had to be simple to use.

What we built: automated quotes and contracts

Over about three months of ZoomFlow working sessions, a Connex consultant rebuilt the sales doc as a relational database in Airtable and wired it to the rest of the stack.

A database instead of hidden tabs

Customers, deals, bids, countertops, sinks, cabinets, tile, fees, installer pay rates, and a city sales tax table each got their own table. A price change or a new pay rate is now one edit in one place, not a hunt through hidden columns.

A guided bid form

Salespeople fill out one form with conditional sections. Countertop questions only appear when an install is selected. The cabinetry section handles about 55 possible inputs and calculates box counts, installer pay, and the customer charge from them. Delivery fees, card fees, and city tax are computed automatically from the job address.

Quotes and contracts generated from the record

When a salesperson submits a bid, an automation in Make sends the data to PandaDoc and builds the quote, then the contract. A job can include any mix of countertops, cabinets, tile, and general contracting, which works out to 24 combinations. Rather than maintain 24 templates, the automation uses OpenAI to assemble the document payload and line-item descriptions from whichever sections are filled in. The output lands in one fixed contract template, so the AI writes descriptions and does not set prices or terms.
Each document is named with the bid ID and customer name so two quotes cranked out back to back don't get mixed up. The PDF is emailed to the salesperson and attached to the record. To revise a quote, a salesperson duplicates the bid and changes what moved, so earlier versions are kept.

The CRM stays the source of truth

New Pipedrive deals create bid records in Airtable automatically. When a contact's phone, email, or address changes in Pipedrive, the linked records update too, with checks to stop duplicate records. Because the address drives the tax rate, fixing it once in the CRM fixes it on the bid. That directly targets the "wrong phone number travels everywhere" problem.

Guardrails

  • Permissions: salespeople work through an interface and see only their own clients. They never touch the underlying database.
  • Tested pricing: prefab and slab countertop scenarios, cabinet box counts, and tax were checked against real bids. Mismatches inherited from the old sheet were fixed rather than copied over.
  • Recovery: base snapshots and revision history give the owner a way back if someone breaks something.
  • Staged rollout: the owners ran real won contracts through the system first. Then a small group of two or three salespeople piloted it before the wider team.

The results

We don't have a before-and-after time measurement for this one. The company never tracked how long a bid took in the spreadsheet, and we won't put a number on hours saved that we can't back up. Here's what changed:
  • One entry instead of a multi-tab spreadsheet. Customer, pricing, quote, and contract come from a single form submission.
  • 24 product combinations, one document path. Mixed jobs no longer need hand-edited contract language.
  • Tax and installer pay are calculated, not looked up. City tax comes from the job address and pay comes from box counts.
  • Customer data typed once. Contact and address details flow from the CRM to the bid, quote, and contract.
  • Bids have history. Revisions are duplicates with names, not overwrites of a single file.
  • Fifteen salespeople, isolated views. Each rep sees their own pipeline, and the owner keeps control of the data.
The next steps were to update the deal stage in Pipedrive when a contract is signed and to push won-deal customer data into accounting, which removes the last retyping step.

Client voice

At the end of the build, as the owner moved into testing with real contracts, she put it simply: "This is awesome. I'm excited. We're really close."

FAQ

Will this work with the CRM and e-signature tool we already use?

Usually, yes. This build kept Pipedrive as the CRM and PandaDoc for signatures and added a database and automation layer between them. The goal was to connect what the team already used, not to replace it.

Is it safe to let AI touch customer contracts?

Here the AI only assembles line-item descriptions and the document structure. Prices, tax, and totals come from tested formulas in the database, and the contract template is fixed. Each document goes to the salesperson before the customer signs anything.

How long did it take?

About three months from first session to pilot, working in focused blocks. The pricing logic took the most time because every countertop, cabinet, and fee rule in the old spreadsheet had to be pulled apart and verified.

Our salespeople aren't technical. Will they use it?

That was a design requirement. Salespeople get a guided form with only the questions that apply to the job. They don't work in tables, formulas, or the CRM's settings.

Stuck in a spreadsheet that runs your whole sale?

If your quotes, contracts, and job packets all depend on one file that only a couple of people understand, we can help you turn it into a system your team can trust. We build these in live ZoomFlow sessions with your team, so you see every pricing rule before it reaches your reps. Book a call with Connex.