Two design choices shape everything in MaxPax. Why the settings exist, why the products page works the way it does, why there's a review queue, why credits work the way they do. Both come from the same starting point: you can't let an AI make up prices.
Idea 1: the AI never invents the price
The obvious approach is to ask the AI directly: here's the email, what should we charge? Modern models produce answers that look plausible. They're also wrong often enough that you can't trust them, and you won't know which answers are wrong until a customer accepts one. For a print shop, one underpriced job costs more than the time saved by a hundred correctly-priced ones.
So MaxPax doesn't price anything. Your spreadsheet does. The same workbook your team already uses for manual quotes, with all its conditional formatting, lookup tables, volume breaks, and special-case formulas, stays the source of truth. MaxPax's job is the input work: read the customer's email, work out which numbers go in which cells, write them in, and read the answer back. Your formulas do the pricing.
This is the part that surprises print shops the most. You don't change your workbook. You don't simplify it. You don't migrate to a new pricing engine. You upload the .xlsx you already use, point MaxPax at the input cells and the output cell, and the AI becomes a faster way to fill in the form.
What this enables. The pricing logic stays where your team can audit, edit, and trust it. When a price comes back, you can open the workbook, see the cells the AI filled in, and trace the formula yourself. The price always traces back to arithmetic you can inspect.
Idea 2: the four-stage pipeline
Every email that lands in your inbox follows the same path through MaxPax. There are five boxes on the diagram, but the work happens in four stages: intent, match, extract, price. Each stage exists for a reason, and the order matters.
Stage 1: Intent filter
Most of what lands in a print shop's inbox isn't a quote request. It's order confirmations, supplier newsletters, "thanks!", "received, will pay this week", calendar invites, the occasional spam. If we ran the full pipeline on every one of those, you'd burn credits on emails that were never going to produce a quote. So before anything else, MaxPax asks a small fast model a single question: is this email actually asking for a price?
If the answer is no, the email is filtered out, recorded in the audit log, and charged a tenth of a credit. The expensive stages never run. If the answer is yes, the email continues. If the model call itself fails for any reason, the email passes through rather than being silently dropped.
Why first. The intent filter is by far the cheapest stage. Putting it at the front means you only pay for the expensive stages on emails that have a real chance of producing a quote.
Stage 2: Match products
Once an email is through the filter, MaxPax hands it to the AI along with your full product catalog: each product's name, description, and what it covers. The AI reads the email and decides which products the customer is asking about. One email can match multiple products: "500 flyers and 200 business cards" matches both Flyers and Business Cards, and each gets priced separately in the same reply.
The product descriptions you write during setup are what make this stage accurate. If you describe a product as "flyers, leaflets, handbills, A5, A4, DL", the AI knows to match emails asking for "pamphlets" or "concert handbills" to that product, even when the customer doesn't use your exact words.
Stage 3: Extract fields
This is the stage that translates English into spreadsheet inputs. For each matched product, MaxPax knows the fields it needs: quantity, size, paper, finishing, packing, whatever you configured. The AI reads the email and fills in those fields for each quote it finds.
MaxPax reads the email and pulls out the values your sheet needs: quantity, size, paper, whatever fields you configured. Every quote includes a thinking summary: a plain-English trace of what the AI understood. You can read it to see why a field came out the way it did, and correct it if needed.
One email often asks for more than one thing. MaxPax handles this in two ways:
Multiple variants of the same product. If someone writes "quote for 1000 and 2000 flyers", the reply comes back with two separate priced rows, one for each quantity. Same goes for different sizes: "A3 and A4 flyers" gets two rows, each with its own size and its own price.
Multiple products in one email. If someone writes "500 flyers and 200 business cards", both products are matched in stage 2 and both get priced. Combined with the above, a single email like "1000 and 2000 flyers, plus 500 business cards" comes back as three priced rows, two flyer variants and one business card job.
Stage 4: Price (back to your workbook)
For each quote from stage 3, MaxPax writes the extracted values into your workbook's input cells, waits for Excel to recalculate, and reads the price out of the output cell. Your formulas do all the work. MaxPax doesn't know how you price, doesn't try to guess, doesn't care. It just reads what the sheet says.
If the workbook returns something that doesn't look like a valid price. An error, a placeholder, a value you've configured as “blocked”, the quote is held for your review instead of being sent. The reply never goes out without a price the workbook produced.
Why this is the safe spot. Every other stage involves an AI making a decision. Pricing doesn't. The AI's job ends when it fills in the cells. From there to the customer, it's just spreadsheet maths.
When the AI isn't sure, it asks you
Sometimes a customer email is genuinely ambiguous. They ask for "matt cards" and it's not clear whether they mean matte stock or matt lamination. Or the quantity is buried in a long thread and the AI isn't confident it got the right number.
When MaxPax is uncertain about a quote, it holds it for review instead of sending it. The quote appears on your Quotes page flagged for attention. You open it, check the fields the AI extracted, correct anything that's off, and hit send. The customer gets an accurate reply; MaxPax learns from your correction.
New accounts start with every quote held for review so you can build confidence in the output. Once you're comfortable, switch to auto. MaxPax sends the straightforward quotes on its own and holds only the ones it's unsure about.
The boundary line
The mental model that ties this together: MaxPax is the translator, your workbook is the pricer. The AI's domain is everything between the email and the input cells: reading messy human language, deciding what the customer wants, filling in the values. Your domain is everything from the input cells onward: the formulas, the volume breaks, the discount rules, the special cases for big customers. Each side stays in its lane.
Where the decisions happen · the boundary between AI and your sheet
When the AI gets something wrong, like a misread quantity, picked the wrong paper stock, you correct it on the Quotes page and the system learns from the edit. When the price is wrong, that's a workbook problem and you fix the formula. The two failure modes have different fixes, in different places, for different people on your team. That separation isn't a bug, it's the design.
What to focus on during setup
Knowing how the pipeline works tells you where to put your effort. The product descriptions drive both stage 2 (matching) and stage 3 (extraction). A good description helps the AI recognise which product the customer is asking about, and a good field list tells it what numbers to pull out. The workbook (stage 4) you barely touch: upload the file you already have and point MaxPax at the output cell. The intent filter (stage 1) just works; you only notice it when something goes wrong.
The quick start guide walks through the setup steps in order. The full documentation covers every screen in the app.