How Quotes Relate to the Rest of the System
Understanding where quotes fit helps avoid confusion:
Pricing Catalog (quote_items) ← Your master price list
↓
Quote Builder ← Pulls from catalog + custom items + packages
↓
Saved Quote ← Stored with customer info, pricing, status
↓
Book Quote ← Creates a calendar Event, syncs to Google Calendar
↓
Invoice ← Generated from the same quote data, sent after booking
Quotes and invoices share the same underlying data record. An invoice is simply a quote that's been booked and re-labeled.
The Pricing Catalog
Before building quotes you should populate your Pricing Catalog — the master list of items you quote. This is separate from your inventory tracking items and is focused purely on pricing.
Pricing Catalog vs. Inventory Items
| Pricing Catalog | Inventory Items | |
|---|---|---|
| Purpose | Set prices for quotes | Track equipment quantities |
| Appears in | Quote builder | Availability view, calendar |
| Tracks availability | No | Yes |
| Has unit price | Yes | Yes (estimate only) |
| Has category + name | Category + Description | Category + Name |
Managing Pricing Catalog Items
Navigate to Quotes > Pricing Catalog.
Fields for each catalog item:
| Field | Required | Description |
|---|---|---|
| Category | Yes | Grouping label (e.g., "Tents", "Tables", "Chairs") |
| Description | Yes | Item name as shown on quotes (e.g., "40x80 Frame Tent") |
| Unit Price | Yes | Default price per unit in USD |
| Notes | No | Shown in the quote builder to guide pricing (e.g., "Per day", "Base rental includes setup") |
The combination of Category + Description must be unique. You cannot have two catalog items with the same category and description.
Managing catalog items:
- Add — Click New Item, fill in fields, save.
- Edit — Click the edit icon. Changes apply to new quotes; existing quotes retain the price they were saved with.
- Delete — Click the delete icon. This removes the catalog entry but does not affect existing quotes that used it.
Creating a Quote
Navigate to Quotes > New Quote.
Step 1: Customer Information
| Field | Required | Notes |
|---|---|---|
| Customer Name | Recommended | Used on the PDF, event title, and email |
| Customer Email | For emailing | Required to email the quote |
| Customer Phone | Optional | Carried to the event when booked |
| Event Date | Required to book | Required to convert the quote to a calendar event |
Step 2: Adding Line Items
The quote builder has three types of line items:
Catalog Items
Search your pricing catalog and add items with quantities:
- Type in the search box to filter by category or description.
- Click an item to add it.
- Set the quantity.
- The unit price pre-fills from the catalog — you can override it per line item.
- Optional notes per line (appear on the quote PDF next to that item).
Custom Items
For one-off items not in your catalog:
- Click Add Custom Item.
- Enter a description, quantity, and unit price.
- Custom items are marked "Custom" in the PDF and do not map to inventory.
Packages
Pre-built bundles at a fixed price:
- Click Add Package.
- Select a package from the dropdown.
- Set the quantity (usually 1).
- The package price is used as-is — individual item prices inside the package don't matter.
- Package contents are listed on the PDF for transparency.
Step 3: Pricing Calculations
The pricing section calculates automatically as you add items:
| Field | How It Works |
|---|---|
| Subtotal | Sum of all line item totals (catalog + custom; packages use their base price) |
| Discount | A flat dollar amount subtracted from the subtotal. Capped at the subtotal value — can't go negative. |
| Delivery Fee | Flat fee added after the discount |
| Tax | Defaults to your Settings tax percentage. Can be turned off per quote with Tax Exempt. |
| Tax Amount | Calculated as (subtotal − discount) × tax_rate |
| Total | (subtotal − discount) + delivery_fee + tax_amount |
| Deposit Rate | Default 25%. Can be changed per quote. |
| Deposit Amount | total × deposit_rate |
| Price Override | A flat amount that replaces the calculated total. When set, tax is applied on top of the override (not on line items). Deposit is calculated from this new total. |
| Tax Exempt | Toggle to zero out all tax on this quote. |
How Price Override Works
Price Override is a power-user field for negotiated flat pricing:
- When set to a non-zero value, the total becomes
price_override + (price_override × tax_rate)rather than being calculated from line items. - Deposit is then
(price_override + tax) × deposit_rate. - Line items are still listed on the PDF for reference, but the total shown to the customer is the override amount.
- To cancel an override, clear the field.
Step 4: Notes
| Field | Visible To Customer? | Notes |
|---|---|---|
| Notes | Yes — on PDF and email | Customer-facing comments, terms, or instructions |
| Private Notes | No | Internal reminders — never shown on PDFs or emails |
Step 5: Status
Every quote has a status that tracks its lifecycle:
| Status | Meaning |
|---|---|
draft |
Work in progress, not yet booked |
booked |
Converted to a calendar event (set automatically when you click Book) |
Status is shown on the quotes list. Draft quotes are open; booked quotes are locked to the event they created.
Editing a Quote
Open any quote from the list and modify any field. All pricing recalculates automatically. You can edit a quote even after it's been emailed — just remember to re-send the updated version to the customer.
Note: Editing a booked quote does not retroactively update the event. The event was created from the quote data at the time of booking. If you need to update event pricing after booking, do so directly on the event.
Attaching Layouts to Quotes
Layouts designed in the Layout Designer can be attached to quotes:
- Open a quote.
- Scroll to the Layouts section.
- Click Attach Layout.
- Select from your saved layouts.
- The layout is linked to this quote.
When you email the quote:
- Layout PDFs are included as email attachments.
- A secure public link to the layout(s) is included in the email body.
Customers can view their layouts at: /public/quotes/{id}/layout.pdf?token={token} — no login required.
Multiple layouts can be attached to a single quote (e.g., a tent layout plus a dance floor detail).
Booking a Quote (Converting to an Event)
Clicking Book converts the quote into a calendar event. The booking creates a readable event title from the customer name and event term, such as Smith — Event. This is an irreversible status change — the quote's status becomes booked.
What Happens During Booking
- Event title is built from the customer name and event term, for example,
Smith — Event. - Event date comes from the quote's
event_datefield — this field is required to book. - Contact info (name, phone, email) is carried over from the quote.
- Items are extracted from the quote:
- Catalog items → matched to your inventory and tracked for availability.
- Package items → each component item inside the package is extracted individually.
- Custom items → carried over as one-off line items (not tracked in inventory).
- Pricing is carried over in full: subtotal, tax, discount, delivery, deposit rate, price override, tax-exempt status.
- Event description is populated with: "Booked from Quote #X", private notes, customer notes, and per-item notes.
- Google Calendar sync — if connected, a Google Calendar event is created immediately.
- Layout links — layouts attached to the quote are linked to the new event so they appear in the event detail panel.
- Booking confirmation email — if email delivery is configured and the customer has an email, a booking confirmation email is automatically sent to the customer. This email includes:
- The event date and customer name
- A summary of the items booked
- Pricing totals
- A link to view their layout PDF (if a layout is attached)
Requirements to Book
- Quote must have an event date set.
- Quote must have at least one valid line item. Custom items count too; you do not need a catalog or package item to book.
- Quote must not already be booked.
Emailing a Quote
Requires: email delivery configured
- Open a quote.
- Click Email Quote.
- Optionally override the recipient email (defaults to the customer email on the quote).
- Click Send.
What the Customer Receives
- An HTML email with your business branding
- Your business name, phone, and email in the header
- A summary of the quote: customer name, event date
- All line items with quantities, unit prices, and line totals
- Subtotal, discount, delivery fee, tax, total, and deposit amount
- Customer-facing notes
- Accept & Book and Request a Change buttons for the customer
- If layouts are attached: layout PDFs as email attachments, plus a link to view layouts online
Email and Quote Status
Sending an email does not automatically book the quote. You still need to click Book.
Deleting a Quote
Click Delete on any quote. This permanently removes the quote and its associated layout links. If the quote was booked, the event remains — deleting the quote does not delete the event.
Quote PDF
Every quote can generate a PDF without emailing it. The PDF includes:
- Business name and logo (from Settings)
- Quote number (the quote ID)
- Customer name, event date
- Itemized list with quantities, unit prices, and totals
- Package breakdowns (what's included)
- Custom items
- Subtotal, discount, delivery, tax breakdown, total, and deposit
- Customer-facing notes
To view the quote PDF, click View PDF on the quote detail page. The PDF opens in a new browser tab.
Gotchas
- Pricing catalog changes don't affect saved quotes: If you change a catalog item's unit price, existing quotes keep the price they were created with. Only new quotes use the updated catalog price.
- Event date is required to book: Without an event date on the quote, the Book button is disabled. Add the event date before trying to book.
- Booking is permanent: Once a quote is booked, you can't undo the booking from the app. If you booked by mistake, delete the event that was created and contact support if you need the quote reset.
- Custom items don't track inventory: Custom line items are pure pricing entries. They show up on the quote PDF and are carried to the event's pricing, but they don't deduct from your inventory. Only catalog items that map to inventory items via Item Mappings affect availability.
- Price override only overrides the total — not tax: When you set a price override, the tax is still calculated and added on top:
price_override + (price_override × tax_rate) = final total. The override is the pre-tax amount, not the final all-in amount. - Discount is capped at the subtotal: You can't discount more than the subtotal amount. If you enter a discount larger than the subtotal, it's automatically capped.
- Package item prices aren't individual: When you add a package, the entire package is priced at its
base_price— you can't override the price of individual items inside it per-quote. If you need item-level pricing control, add items individually instead of using a package. - Category + Description must be unique in the catalog: If you get a "duplicate" error when adding a catalog item, it means that exact category + description combination already exists. Either edit the existing entry or use a slightly different name.
- Booking confirmation email is automatic and immediate: As soon as you click Book (and email delivery is configured and the quote has a customer email), a confirmation email is sent to the customer. There's no preview step. Make sure the quote's customer email is correct before booking.
- Public layout links use tokens: Layout links included in quote emails use secure, random
public_tokenvalues. These links are safe to send to customers — they can only access the specific layouts attached to that quote.