Quote & Proposal Generator
AI-generated proposals from templates, CRM data, and product catalog
How do I use this software?
This software runs wherever suits you — you just need somewhere to host it. Pick the option that fits your team:
| Option | What it means |
|---|---|
| Self-hosting | Set up the environment and run it yourself, on your own infrastructure. |
| Tooltwist hosting | Tooltwist can host and run it for you. |
| Other providers | Find a host in the provider directory — or, if you already have a support company, we're happy to give them the tools to deploy the application for you. |
Licensing
This variant is open source — you're free to use it and modify it at no cost. Hosting and support arrangements are provided separately and are not covered by this licence.
Who can help me?
Plenty of people can help you get the most from this software — browse the provider directory. Some providers can host it for you, others can customise it to your needs, and others again offer technical support and a helpdesk.
Tooltwist can customise, host, or provide support for this software, but feel free to choose a more suitable provider for your location, language or industry from the provider directory.
Already have a support provider? We're happy to give them the tools to fully support the platform.
Not sure who to ask? Feel free to .
How can I help?
If you would like to help develop or test this project, go to the Collaborators tab (after you log in) and request to join. Your help will be appreciated!
Stage
Collaborators
philcal (project owner)
Read me first
If you have just been handed this product and have no idea what it is, start here. It is written for the person who will actually use it — somebody who sells things for a living, or who runs the team that does — and not for whoever installs it. There is no code in it and nothing you need to look up.
The product is called Quotient.
1. Who this is for
Four kinds of people, and the product looks different to each of them.
Sales representatives. The people this is really built for. They write proposals all day, usually against a deadline, usually juggling several live deals at once. Everything in the product is arranged around getting a correct, persuasive proposal in front of a prospect quickly. When what suits a rep conflicts with what suits anybody else, the rep wins.
Managers. They come in to unblock somebody else, often briefly, often on a phone. They need to see what they are approving, why it needed approving at all, and decide in seconds.
Sales operations and administrators. They set up what the company sells, the rules about discounting, the look of the documents that go out, and who is allowed to do what. They do this rarely but thoroughly.
Buyers. The people on the other end. They never sign in, never get trained, often open a proposal on a phone, and may be using a screen reader. Everything they touch has to work the first time, with no instructions and no account.
2. What it does
It turns a deal into a document, gets that document agreed, and tells you what happened to it.
Concretely: you pick what the customer is buying from a list of what you sell, set quantities and any discount, and the product works out the price — including tax, recurring charges, and what the whole thing is worth over the contract. It writes the words around those numbers. If the discount is deeper than your company allows, it routes the proposal to a manager before it can leave. Then it sends the buyer a private web address, watches how they read it, takes their signature, and — if you have set that up — takes their money.
The thing that makes it unusual is the writing. Most tools in this space drop the customer's name into a template. This one drafts the actual argument from what is known about the deal, and a person approves that draft before anybody sees it.
Everything about money is calculated, never claimed. The written words and the priced table cannot disagree with each other, because figures in the text are inserted from the quote rather than typed.
3. The domain
This is the world of quoting and proposals in business-to-business selling.
When a company sells something that is not simply listed on a shelf — a subscription with a setup fee, equipment plus installation plus ongoing support, a multi-year contract with volume breaks — somebody has to produce a written offer. That offer has to state exactly what is included, exactly what it costs, and exactly how long the price stands. It usually has to be signed. It is frequently a legally binding contract.
Getting there involves three recurring problems, and this product exists because of them.
The numbers are easy to get wrong. Quantities, tiered pricing, discounts on individual items versus the whole deal, tax, one-off versus monthly charges, currency. Get one wrong and you have either lost money or lost the deal.
The words take hours. Reps routinely spend a working afternoon writing a proposal that reads as though it were written for that customer — and, under pressure, they often do not, and send something generic instead.
Discounting has to be governed. Somebody has to stop a rep giving away thirty percent to close a quarter. But that control cannot be so slow that the deal goes cold waiting.
The industry has two established answers, and neither is good. Proposal tools look attractive but cannot really price anything. Enterprise configure-price- quote systems can price anything but take half a year to install and a specialist to operate. This product is deliberately aimed between them.
4. Where it fits
The customers you will use it with are other businesses, not consumers. Anything from a single contact who can sign, up to a procurement team and a legal reviewer who will read the terms closely. The buyer-facing document is written to survive that kind of reading.
The people inside your company who will touch it are reps, their managers, and whoever runs sales operations. It does not replace your customer database, your accounting system, or your invoicing.
The other systems it expects to live alongside:
- Your customer relationship system. The product can connect to HubSpot or Salesforce, pull deal context in, and push proposal status back out, so the opportunity record stays current without anybody retyping it.
- Email. The product sends proposals to recipients itself and records what happened to each message, including failures.
- A card payment provider. Stripe, if you want to collect money as part of accepting the proposal.
- An AI provider. Needed for the drafting. Without it everything else still works; you simply write the words yourself.
- Your sign-in system. People sign in with your company's existing accounts. The product does not hold passwords of its own, and who is an administrator is decided there, not here.
- Whatever does your billing. The product works out a payment schedule from a signed agreement and makes it available to be read. It does not raise invoices and does not chase them.
Every one of those is optional except sign-in. The product is honest about which are switched off, and says so on the screen where the feature would otherwise be, rather than failing quietly.
5. First run
There is nothing to set up before you can use it. The very first time the product starts it prepares itself: it creates your organisation, decides the default currency, sets how long a proposal stays valid, starts the reference numbering, and puts in place the shape a first proposal begins from. You do not have to design a document before you can write one.
What it deliberately does not create is anything that belongs to you — no products, no customers, no tax rates, no discount rules. Those are yours.
So the first thing to do is sign in and build one proposal end to end, even a throwaway one. Add a product, put a quantity on it, look at the total, and send it to your own email address. Open the address you receive as though you were the buyer. That single round trip tells you more about whether this suits your business than any amount of reading.
One thing to know before your first sign-in: nobody becomes an administrator by getting there first. Administrator rights come from your company's sign-in system. If nobody there is marked as an administrator, whoever installs the product can name one email address in advance. Anybody else who signs in becomes an ordinary rep straight away — nobody is left waiting on a screen for somebody to let them in.
6. Setting up
Work through these in order. Each stands on its own, so you can stop after any of them and still have something usable.
Put in what you sell. This is the only step that genuinely must happen. Each item needs a code, a name, a price and whether it is charged once or repeatedly. You can type them in, or load a spreadsheet. A spreadsheet is checked before anything is taken from it, and if any row will not do, none of the file is applied — you are told which rows failed and why, you fix them, and you load it again. Nothing arrives half-loaded.
Add your tax rates, and, if you quote in more than one currency, the exchange rates you are prepared to quote at. The product never fetches a rate from a market. A rate you set is copied onto each proposal line when it is used, so changing it later never silently re-prices something you have already sent.
Set your branding. Your logo, one accent colour, and the footer every proposal carries. Applied once, everywhere.
Adjust the starting template. The sections a new proposal begins with, and any paragraphs worth reusing across proposals.
Write your discount rules. These are expressed as conditions rather than as named people: "anything discounted fifteen percent or more needs a manager", for instance, or a rule based on deal value or contract length. Any one condition being met is enough to hold the proposal back. Get this right early — it is the single control that stops margin leaking.
Add your people, and give each of them a role. Roles are explained below.
Connect the outside systems you want, in whatever order suits you: your customer relationship system, email, payments, the AI provider. Each is independent and none blocks the others.
The technical detail of installing and configuring all this lives in Preparing a stage or production deployment for first use, listed in the document map below. Hand that one to whoever is doing the installation.
7. Day to day
Building a proposal. Name the deal, choose what it is priced in, then add items from your catalog. Set quantities and any discount — on individual items, or across the whole proposal. The totals update as you go, and always show the original price beside the discounted one, so anybody reviewing it can see what was given away.
Writing it. Below the priced lines is the proposal itself, section by section. You can write it yourself, or ask for a draft. When you insert an amount into the text, insert it from the quote rather than typing the number — that is what guarantees the words and the table can never contradict each other.
Getting it approved. If the proposal trips one of your discount rules, it goes to a manager rather than to the customer, and you are told why. The manager sees what is being approved, what it is worth, and which rule caught it. They either approve it or send it back, and either way they have to give a reason, which you then see.
Sending it. Name the recipients and say what each is there to do — read it, or sign it. Each one gets their own private web address. There is also a copyable address for your own use, which deliberately cannot be used to sign. Once sent, the proposal is locked. If it needs to change, you withdraw it and reissue.
Watching what happens. Once a proposal is out you can see how often it was opened, for how long, and which sections held the reader's attention. A section somebody spent four minutes on is where your follow-up call should start. A proposal nobody has opened at all is told to you as exactly that, rather than shown as an empty chart.
Getting it signed. The buyer opens their address, reads the proposal, and signs it in four short steps — confirming the exact document, agreeing to sign electronically, optionally confirming their email address with a code, and then signing. They can stop at any step. What they signed is recorded permanently and can be checked afterwards, which matters on the day somebody disputes it.
Getting paid. If you have connected a payment provider, you can ask for payment as part of the proposal. If you have not, the product still works out what is due and when, and makes that schedule available to whatever does your billing.
Handing the document over. Any proposal can be downloaded three ways: one for reading and forwarding, which reads correctly aloud for anyone using a screen reader; one built to be filed and kept for the long term; and an editable copy, clearly marked as not being the proposal, for when somebody wants to quote from it.
8. Ongoing care
Weekly. Look at proposals that have gone quiet — sent, opened once, and nothing since. The reading figures tell you which are worth chasing.
Monthly. Check your catalog prices still match what you actually charge. Check the record of messages the product sent, for anything that failed to arrive. Review which discount rules are firing: a rule that catches every proposal is set too tight and is training people to treat approval as a formality.
Quarterly. Review who has an account and what they are allowed to do, particularly anybody who has left. Re-read your standard terms.
Continuously, without doing anything. Records of how buyers read proposals are kept for two years and then removed automatically. Anybody named on a proposal can ask for their records to be removed sooner, and there is a screen for doing that.
Backups are not your job, but knowing the promise is. Signed agreements, their signature records and payment records are held so that none of them can be lost. Unsent drafts may lose a few minutes of edits in a serious failure. Buyers can expect to get back to a proposal they were sent within an hour of any outage. Ask whoever runs your installation to confirm this is actually being honoured.
A short glossary
Proposal — the document you send a customer: the words and the prices together, at one fixed web address.
Quote — the priced part of a proposal: the items, quantities, discounts and totals.
Catalog — the list of what your company sells, with prices.
Line — one item on a quote, with its own quantity, discount and total.
Configure-price-quote, often shortened to CPQ — the industry's name for software that handles complicated pricing. This product does that part without the usual installation burden.
Approval policy — a rule that decides when a proposal must go to a manager before it can be sent. Written as a condition, not as a person's name.
Recipient — somebody the proposal was sent to. Each gets a private address of their own, and is marked either as a reader or as a signer.
Engagement — the record of how a buyer read a proposal: how often, for how long, and which sections.
Reference — the human-readable number on a proposal, such as QP-000042, used in conversation and on the document. It is deliberately separate from the long unguessable web address the buyer uses, which cannot be guessed from it.
Reissue — sending a corrected version after withdrawing one that had already gone out. The original stays on the record.
The other documents here, and what each is for
- preparing-a-deployment — for whoever installs the product. How a fresh installation is brought up for the first time, what it creates, what it deliberately does not, and how the first administrator is established. Not a document a salesperson needs.
- api-reference, and openapi beside it — for developers connecting another system to this one. Every operation the product exposes, in prose and then in the machine-readable form their tools expect. Ignore both unless you are building an integration.
Who can do what
Three roles. They are about authority, not job titles, and they are enforced on every action rather than by hiding a button.
- Rep — writes proposals, sends them, and sees their own.
- Manager — everything a rep can do, plus seeing everybody's proposals and approving or rejecting the ones that need it.
- Administrator — everything a rep can do, plus setting up the catalog, the rules, the branding and the people. An administrator can read any proposal, and every time one does so that is recorded. Administrators deliberately cannot approve proposals: approving is a manager's job, so that whoever configures the rules is not also the person waving things through.
The last administrator on an installation cannot have that role taken away, because there would then be nobody able to give it back.
The sample data, and starting clean
The preview version of this product arrives with a fictional company already loaded: a haulage telematics seller called Northfield Logistics, with a priced catalog, an approval rule, ten proposals spread across every state a proposal can be in, buyers who have read some of them, one deal signed and one turned down. None of it is faked — the prices are the product's own arithmetic and the signed agreement carries a genuine signature record.
It is there so you can see a working system rather than an empty one. Sign in as the rep, the manager and the administrator in turn: each sees a different product, and the approval queue only has anything in it for the manager. That is the product working, not thin data.
A real installation starts completely empty of all this. You get the organisation, the numbering and a starting template — nothing else. There is nothing to delete and no sample data to clear out.
Things people ask, and things people trip over
"Why can I not edit a proposal I have sent?" Because the buyer may be reading it, and a document that changes after it is sent is not a document. Use withdraw and reissue.
"The buyer says they cannot sign." Check they are using the address sent to them personally, not the copyable address you kept for yourself. That one deliberately refuses to sign, and says so.
"The discount is applied but the unit price looks unchanged." On the quote the column beside the discount shows the unit price your pricing rules resolved, before that line's own discount is taken off. The discount is in the line total and in the proposal total, both of which are correct.
"Nothing is being emailed." On a sample or preview installation, nothing ever is — by design, so a demonstration cannot post a proposal to somebody who never asked for one. Every message it would have sent is listed, with a note saying it was not attempted. On a real installation, check that email has been connected.
"Where is the AI writing?" It needs an AI provider to be connected. On a preview installation there is none, because a preview is sealed off from the outside world, and each section says so. Everything else works regardless.
"Somebody left the company and their proposals vanished from my list." They have not. A manager or administrator can see everybody's proposals.
"Can I convert a price into another currency?" Only at a rate you have set yourself. The product will not invent one, and will refuse to add a product priced in a currency you have no rate for. That is deliberate: a rate nobody chose has no business in a binding offer.
Where to get help
This product came out of the WBSP community at wbsp.ai. That is the place to go to ask how something works, to suggest what it ought to do next, or to find somebody who can adapt it to your business.
It is worth saying plainly what you have: this is the core of a product, not a finished one. Every part of it works, but it wears no branding and makes no assumptions about your industry. It was built to be taken and made specific — your look, your language, your rules, the extra things your business actually needs. If you have the domain knowledge and can work with AI tools, you can do that yourself. If not, the community can introduce you to people who do it for a living. And it is worth looking around while you are there: other members have built other versions of this, and of quite different products, and one of them may already be closer to what you want than a blank page.
Configuration
What this application asks for when somebody installs it. These are the questions, not anyone's answers — no values are held or shown here.
People sign in to this application. The hosting platform registers the sign-in for you when you install it, so there is nothing to set up yourself.
You will be asked for 19 things
- Anthropic API key for proposal drafting
ANTHROPIC_API_KEYWhere to get this - EMAIL_WEBHOOK_SECRET
EMAIL_WEBHOOK_SECRET - GENERATION_BASE_URL
GENERATION_BASE_URL - HUBSPOT_API_BASE
HUBSPOT_API_BASE - Email of the first Administrator (used only where the identity provider designates none)
INITIAL_ADMIN_EMAIL - SALESFORCE_LOGIN_URL
SALESFORCE_LOGIN_URL - STRIPE_API_BASE
STRIPE_API_BASE
hubspot
Optional, and all or nothing — supply every part or skip the whole set. A half-configured integration is refused at install time.
- HUBSPOT_CLIENT_ID
HUBSPOT_CLIENT_ID - HUBSPOT_CLIENT_SECRET
HUBSPOT_CLIENT_SECRET
salesforce
Optional, and all or nothing — supply every part or skip the whole set. A half-configured integration is refused at install time.
- SALESFORCE_CLIENT_ID
SALESFORCE_CLIENT_ID - SALESFORCE_CLIENT_SECRET
SALESFORCE_CLIENT_SECRET
smtp
Optional, and all or nothing — supply every part or skip the whole set. A half-configured integration is refused at install time.
- SMTP_FROM
SMTP_FROM - SMTP_HOST
SMTP_HOST - SMTP_PASSWORD
SMTP_PASSWORD - SMTP_PORTwhole number
SMTP_PORT - SMTP_USER
SMTP_USER
stripe
Optional, and all or nothing — supply every part or skip the whole set. A half-configured integration is refused at install time.
- STRIPE_PUBLISHABLE_KEY
STRIPE_PUBLISHABLE_KEY - STRIPE_SECRET_KEY
STRIPE_SECRET_KEY - STRIPE_WEBHOOK_SECRET
STRIPE_WEBHOOK_SECRET
Supplied automatically — no typing needed
The hosting platform provides these when the application is installed, either by generating them or because it already knows them.
- APP_URL
- AUTH_CLIENT_ID
- AUTH_CLIENT_SECRET
- AUTH_ISSUER
- AUTH_SECRET
- ENCRYPTION_KEY















