Proposals
Send professional proposals, track when clients view them, and convert acceptances into projects automatically — all without leaving WorkWiz.
Creating a proposal
Head to /proposals/new to open the proposal builder. Follow the steps below to build and save your first proposal.
- 1Open the proposal builderNavigate to
/proposals/new. You can also click New Proposal from the Proposals index page at/proposals. - 2Select or create a clientChoose an existing client from your list, create a new client inline, or defer client collection until the proposal is accepted. See the Client modes section below for details on each option.
- 3Add line itemsAdd one or more line items — each with a description, quantity, and unit price. WorkWiz calculates the subtotal for each line automatically. You can also pull items in from a saved Price List to speed things up.
- 4Set tax rate and discountEnter a tax rate percentage and an optional discount percentage. WorkWiz applies the discount first, then calculates tax on the discounted subtotal, and displays the final total.
- 5Configure payment termsDefine a percentage-based payment schedule. For example: 30% on acceptance, 40% at a milestone, and 30% on completion. WorkWiz calculates the exact currency amounts from each percentage. See the Payment terms section below.
- 6Save as draftClick Save as Draft to save the proposal without sending it. Drafts can be edited at any time before you send them to a client.
Proposal status lifecycle
Every proposal moves through a defined set of statuses. WorkWiz updates these automatically where possible — for example, marking a proposal as VIEWED the moment the client opens the public link.
| Status | Meaning |
|---|---|
DRAFT | The proposal has been created but not yet sent to the client. It is fully editable at this stage. |
SENT | You have shared the public link with the client. The proposal is locked from further edits to preserve what the client sees. |
VIEWED | WorkWiz detected that the client opened the public link. A viewed_at timestamp is recorded automatically. |
ACCEPTED | The client accepted the proposal. A linked project is automatically created in WorkWiz. |
REJECTED | The client declined the proposal. No project is created. You can duplicate the proposal to revise and resend it. |
EXPIRED | The proposal passed its expiry date without a response. WorkWiz moves it to this status automatically if an expiry date was set. |
Client modes
When creating a proposal you choose how the client is associated with it. WorkWiz supports three modes to cover different sales scenarios — from existing clients to cold outreach.
| Mode | When to use | What happens |
|---|---|---|
SELECT_EXISTING | You already have the client in WorkWiz. | Pick the client from your list. The proposal is linked to their record immediately. |
CREATE_NEW | The client is new and not yet in your contacts. | Fill in the client details inline. WorkWiz creates the client record and links it to the proposal in one step. |
REQUEST_ON_ACCEPTANCE | You are sending to a cold lead and do not have their details yet. | No client is attached upfront. When the lead accepts the proposal, WorkWiz prompts them to enter their contact information before finalising acceptance. Their details are then saved as a new client record. |
Payment terms
WorkWiz lets you define a percentage-based payment schedule instead of a single lump-sum due date. Each instalment is expressed as a percentage of the proposal total, and WorkWiz calculates the exact currency amount automatically whenever the total changes.
Example payment schedule
A common three-stage schedule for project work might look like this:
| Instalment | Trigger / milestone | Percentage |
|---|---|---|
| 1st payment | On proposal acceptance | 30% |
| 2nd payment | At project milestone (e.g. design sign-off) | 40% |
| Final payment | On project completion | 30% |
You can add as many instalments as needed, as long as the percentages add up to 100%. You can also add custom payment method instructions — such as a bank transfer reference, a Stripe payment link, or a PayPal address — so the client knows exactly how to pay each instalment.
Sharing with clients
Each proposal gets a unique public URL that your client can open in any browser — no WorkWiz account required. WorkWiz automatically records a viewed_at timestamp the first time the client opens that link so you know when they looked at it.
- 1Click "Send"From the proposal detail page, click the Send button. This transitions the proposal from
DRAFTtoSENTand makes the public link active. - 2Copy the public linkWorkWiz displays the unique public URL for this proposal. Click Copy link to put it on your clipboard.
- 3Share it with your clientPaste the link into an email, message, or any other channel. The client opens the proposal in their browser, reviews the scope and pricing, and can accept or decline directly from that page.
- 4Track the viewOnce the client opens the link, the proposal status updates to
VIEWEDand theviewed_attimestamp appears on your proposal detail page. No manual follow-up needed to know when they looked.
From proposal to project
The new project will appear in your Projects list with a reference back to the originating proposal. All payment terms and client information carry over, so your project starts with full context from day one.
Price lists
Price lists let you save reusable product and service catalogs — each entry with a name, description, and multi-tier pricing. Instead of typing line items from scratch every time, you import them from a saved Price List directly inside the proposal builder.
Manage your Price Lists at /price-lists. You can create multiple lists (e.g., one for design services, one for development retainers) and keep pricing up to date in one place so every new proposal reflects your current rates.
PDF export
WorkWiz can generate a professional PDF version of any proposal. Use it to send proposals via email as an attachment or to keep a paper record for your files.
/api/proposals/[id]/pdf. Clicking Download PDF on the proposal detail page hits this route and streams the file directly to your browser.