Docs / Partners

Quote pages

Send your customer a hosted quote in your brand, and let them accept it without ever seeing Gage.

A lead becomes a quote when your customer sees a price. The quote page is how that happens: a hosted page at a private link, dressed entirely as you, showing the price at your margin, the line items, the validity date, and an Accept button. Gage hosts it so you do not have to build one, the way Stripe hosts an invoice or a home-services app hosts an estimate, and the customer sees your name on it, not ours.

#Sending one

From the pipeline, open a lead or quote and press Send quote. Confirm the customer's email, add a note if you like, and send. The customer gets an email in your brand with the link. The row moves to Quoted and shows sent, opened, accepted or declined as things happen.

From code, POST /api/v1/quotes/{quote_id}/send does the same, with an optional body:

{ "email": "dana@example.com", "name": "Dana Reyes", "note": "As discussed on the phone." }

It needs a live key, since it writes to a real person's inbox. Without email, the customer address from the lead is used.

#What the page shows

  • Your logo or name, your accent colour, light or dark.
  • The customer's name, the project, and your intro paragraph.
  • The total at your margin, the expected range, and the validity date.
  • Line items: steel framing, transport, and modeling, detailing and engineering, each at retail.
  • The building, the delivery city, and the fabricator's regional alias ("Mountain West Fabricator") and lead time if you allow it. The shop's name is never on the page: see Fabricator identity.
  • Your terms in the footer, your reply-to address and website. Under the card, small and neutral, a "Powered by Gage" mark, the way a payment processor is named under an invoice.

Nothing about wholesale, margin, or routing appears. The page is frozen at the moment of sending: a later change to your margin, logo or wording does not touch a quote someone has already read.

#Accept and decline

Accept reserves the fabricator on your account, the same as pressing Reserve yourself. The shop is told a job is coming and nothing is owed until you trigger the build. The customer gets a confirmation email; you get a quote.accepted webhook and, if the toggle is on, an email. The row moves to Reserved with the project reference.

Not right now lets the customer decline with an optional reason, which lands on your row and in a quote.declined webhook.

Opening the page for the first time sends quote.viewed. A page whose quote has passed its validity date shows as expired and cannot be accepted; send a fresh quote.

#After acceptance: your customer, your choice

The Quote page card on your dashboard has one setting that matters more than the rest: what the customer is offered after accepting.

  • Tracking page on Gage, in your brand. The customer gets a private page showing the frame as it is confirmed, fabricated, shipped and delivered, styled as you, with an optional Gage account to keep projects together. Good when you have no customer portal of your own.
  • Send them to my own site or account. The button after acceptance goes to a URL you set, with {ref}, {email} and {quote} filled in. Status keeps arriving on your webhook, so your own account pages can show the frame as a line item, and the customer never sees Gage at all. This is the right choice when you already run accounts for your customers.
  • Nothing beyond the confirmation. The customer sees the acceptance and your contact details. You follow the job from the pipeline and your webhook.

The "via Gage" toggle sets the sender on customer emails: "Your Company via Gage", or just "Your Company". The address stays Gage's verified one, which is what keeps the mail out of spam folders. The page uses a neutral typeface and takes only your logo and accent colour, so it sits under any brand.

#Reading it back

GET /api/v1/quotes/{quote_id}/document returns the page as sent: the frozen snapshot, who it went to, when it was opened, accepted or declined, the project reference, and the tracking URL if there is one. Partners who want to render the quote on their own site use this and the webhooks, and can still let the customer accept through the hosted page or through /reserve.

#Preview

Preview page on the Quote page card opens your page with sample numbers, exactly as a customer would see it, so you can check the logo, colour and wording before sending anything real.