Quotes and booking invites

Share this article

Overview

Quotes in Mallard Bay are how you package a trip offer—listing, dates, package, guests, add-ons, optional coupon, notes, and pricing—before it becomes a confirmed booking. The dashboard keeps this work in the Quotes area (/send-quote), separate from your main bookings list.

In practice you will see two layers:

  1. Quote requests — Inquiries from guests (for example via a listing or website) who asked for a quote. Each row shows listing, contact, preferred dates, status (Quote requested vs Quote sent), and links into detail.
  2. Sent quotes — Quotes you have created. Each row summarizes the guest, listing, dates, guests, add-ons, notes, and coupon. Opening a row goes to a detail page where you can copy the guest link, manage invoices (when available), duplicate, archive, or edit (depending on permissions).

Creating a quote walks through the same kind of information you use for a booking (listing, availability-driven dates, package, guests and add-ons, payments step for the coupon, then a review/summary). Saving creates the quote and opens its detail page so you can share it.

Prerequisites

  • Select an outfitter in the dashboard. The Quotes routes require an outfitter context; otherwise you will see a “select an outfitter” empty state.
  • Feature access: The Quotes experience is gated by the Booking invites capability on your account (the dashboard paywall uses the BookingInvites feature). If you do not have access, you will see upgrade or limitation messaging instead of the full workflow.
  • Listings and availability: Dates and guest limits respect listing availability in the quote builder (the same availability concepts that drive bookability elsewhere).

Step-by-step: use Quotes in the dashboard

Open the Quotes area

  1. Go to Quotes in the dashboard (URL path: /send-quote).
  2. Use the tabs at the top:
    • Quote requests — default view; same route as /send-quote/requests.
    • Quotes sent/send-quote/quotes.

Work quote requests

  1. On Quote requests, browse or search the table (search and filters, including listing and archived state, sync to the URL where those tools are enabled).
  2. Open a request by clicking a row to see contact details, preferred dates, trip notes, related sent quotes (if any), and listing context.
  3. From the row actions menu you can:
    • View details (same as clicking the row).
    • Convert to quote — opens the quote builder with that request attached (contact and dates can be prefilled; builds from the request are treated as invoice-style in the form’s initial settings).
    • Archive — moves the request out of the active workflow (with confirmation).

Status logic in the UI:

  • Quote requested — no linked sent quote yet.
  • Quote sent — a quote exists linked to that request.

Create a new quote (from scratch)

  1. On either tab, use Create quote in the page header (primary action).
  2. Complete the guided steps:
    • Listing — choose the trip/listing.
    • Dates — pick dates; guest capacity considers availability for those dates.
    • Package — choose pricing package (and, where relevant, which fields the guest may still change on their link—package, dates, guest count, add-ons, coupon—via field locks).
    • Guests and add-ons — set guest counts and optional add-ons.
    • Payments — apply an optional coupon (subject to the same guest-editable rules).
    • Summary — review dates, packages, notes, optional invoice block (when invoice mode is on), and pricing.
  3. Confirm Create on the last step. On success, the app navigates to the quote detail page and shows a success toast.

Starting from a lead or client (verified entry points in this repo):

  • Leads: Lead row menu includes Send quote, opening the quote form with that lead (lead_id in the URL).
  • Clients: Client quick actions include New quote, prefilled from the client record (client_id). Client profiles can also surface quote-related tables (sent quotes and quote requests) in dedicated tabs.

Editing an existing quote:

  • Open the quote detail page (/send-quote/:id), then use Edit in the actions menu (when your role allows). The form opens at Summary for that quote; saving updates and returns you to the detail page.

Share the quote with the guest

On the quote detail page, use Copy link to copy the guest join URL from your browser clipboard and send it however you normally communicate (email, text, etc.). The dashboard does not, in this codebase, show the exact automatic emails the guest receives—that behavior lives outside this app.

Manage sent quotes from the list

On Quotes sent:

  • Click a row to open the detail page.
  • Use search and filters (including listing and archived state) to narrow the list.

Actions on the quote detail page

From the overflow () menu (exact options depend on archive state, invoice eligibility, and your permissions):

  • Edit — full edit flow (account owners see this; see Permissions below).
  • Copy link — always available for non-archived quotes in the menu configuration.
  • Resend invoice / View invoice — only when can_send_invoice is true and your role allows invoice actions.
  • Duplicate — create a copy (with confirmation).
  • Archive — hide from the main list (with confirmation); archived quotes still expose duplicate (and invoice actions when allowed).

Permissions note

Several actions (Edit, Duplicate, Archive, and invoice send/view) are tied to portal entity owner–style permissions in the dashboard. If you are a team member without those rights, you may still copy the guest link but not change or retire the quote.

Common pitfalls

  • Quotes vs bookings: A quote lives under Quotes until the guest finishes whatever checkout you use on the guest site. Confirmed bookings are managed in the main bookings workflow; do not expect quotes to appear in the bookings table as confirmed trips.
  • Guest-editable fields: If guests can change package, dates, counts, add-ons, or coupon on the link, that is controlled by field locks / editable fields on each package and on the quote. Tighten those locks if you need a fixed offer.
  • Quote requests and invoice mode: Converting a quote request initializes invoice mode in the builder. If that is not what you want, adjust invoice settings on the summary/noting steps before creating.
  • Archived items: Archived quotes and requests disappear from default lists; use archived filters to find them again.
  • Single-day trips: The builder normalizes a single selected day into a start/end pair for the API; you do not need to pick two different days for a one-day trip.

Related workflows

  • Leads and clients: Quote requests sit in the sales funnel between leads and bookings; you can jump from a lead or client straight into Create quote with contact prefilled.
  • Listings and availability: Quote dates and guest caps depend on the same listing and availability data used for booking.
  • Coupons and pricing: Coupons and payment-related settings are chosen in the quote flow; pricing summaries on the detail page mirror listing fee configuration where applicable.
  • Messaging and automations: The codebase references automation and template types for quote reminders and booking invite emails/invoices. Exact template text and when messages fire are configured in your communication/automation setup, not on the Quotes page itself.

What this repository does not show

The guest experience after they open the quote link (checkout steps, deposit, confirmation, conversion to a booking record) is implemented outside this dashboard. For those specifics, rely on product documentation or support.

Related knowledge articles

Website performance insights

The Web Performance area (/web-performance) in the Mallard Bay admin dashboard is where you review t...

Read
Mallard Bay Logo
Pricing
Mallard Bay Logo

Quick Links

Pricing

Sitemap

FAQs

Get in Touch

+1 (225) 831-8219

sales@mallardbay.com

Made in Houston Texas