Turn your website's form into a signable proposal
Keep the form on your own site, in your own design. Your server, or a Zap, turns each submission into a QuoteCloud proposal the client can sign and pay.
- 5/5 on G2
- 4.2 on Capterra
- Building QuoteCloud since 2013
Keep the enquiry form on your own website. When it's submitted, your server calls QuoteCloud's API to create a proposal from a template, filling its data items and price-table rows from the answers, then adds the client as a recipient and sends it. Without code, a Zap can catch the form and do the same.
Last reviewed by the QuoteCloud team
Two overlapping panels with sample data. In front, Tidewell Pavilion's own website enquiry form as Hannah Lee filled it in: names Hannah Lee and James Okoro, Saturday 13 March 2027, 96 guests, the Boathouse Terrace, the Waterside Classic package. Behind, the QuoteCloud wedding reception proposal TP-2741 it became, with the package priced for 96 guests.
Wedding reception proposal
Hannah & James's wedding reception
Prepared for Hannah Lee & James Okoro · Saturday 13 March 2027 · Date held until Thu 5 Nov 2026
Thank you, Hannah and James, for your enquiry. Here is your day on the Boathouse Terrace for 96 guests, priced from the package you chose. Tick any extras you'd like, then both sign and pay the deposit to confirm the date.
Your reception · 96 guests
| Item | Qty | Rate | Amount |
|---|---|---|---|
| Food & beverages | $17,280 | ||
Waterside Classic packagePer guest, from the enquiry's guest count
|
96 guests | $118 | $11,328.00 |
Premium beverages · 5 hoursSparkling, premium wine, beer, soft drinks
|
96 guests | $62 | $5,952.00 |
| Ceremony, styling & music | $3,750 | ||
Ceremony on the lawn60 chairs, arbour, signing table, wet-weather plan
|
1 lot | $1,400 | $1,400.00 |
Theming & stylingCentrepieces for 10 tables, candles and linen
|
1 lot | $1,250 | $1,250.00 |
DJ · 5 hoursCeremony music, first dance and dance floor
|
1 lot | $1,100 | $1,100.00 |
| Extras · from the template Tick to add | |||
Welcome cocktailOn arrival, per guest
|
96 guests | $12 | $1,152.00 |
Late-night grazing stationServed at 9.30 pm, per guest
|
96 guests | $14 | $1,344.00 |
Photo booth · 3 hoursProps and prints
|
1 lot | $890 | $890.00 |
- Subtotal
- $21,030.00
- Tax (10%)
- $2,103.00
- Total
- $23,133.00
- Plus, monthly
- $0.00/mo
- Deposit to confirm your date (20%)
- $4,626.60
Check your date and get your proposal
We'll email a priced proposal for your day.
- Your names
- Hannah Lee & James Okoro
- hannah.lee@example.com
- Event date
- Saturday 13 March 2027
- Guests
- 96
- Space
- The Boathouse Terrace
- Package
- Waterside Classic
Send my proposal
Sent to tidewell.example.com · enquiry ENQ-50418
Why not just email a PDF back?
Tidewell Pavilion's website form used to land in an inbox. Someone copied the answers into a template, exported a PDF and emailed it the next morning, by which time the couple had asked two other venues.
Now the form posts to Tidewell's own server, which creates the proposal in QuoteCloud straight away: branded, priced for the guest count, and ready for Hannah and James to tick extras, sign and pay the deposit online.
- Your form, your design, your validation: QuoteCloud never needs to be on the page.
- One template per kind of enquiry; your code picks which.
- Send it at once, or hold it as a draft for your team to check.
From the form to the proposal
Hannah's answers on Tidewell's site, and the proposal Tidewell's server created from them a moment later.
Check your date and get your proposal
We'll email a priced proposal for your day.
- Your names
- Hannah Lee & James Okoro
- hannah.lee@example.com
- Event date
- Saturday 13 March 2027
- Guests
- 96
- Space
- The Boathouse Terrace
- Package
- Waterside Classic
Send my proposal
Sent to tidewell.example.com · enquiry ENQ-50418
Your server
- Create Document
- Add Document Recipient
- Send Document
Data items filled from the enquiry
Event date- Saturday 13 March 2027From your system · event_date
Guests- 96From your system · guests
Space- The Boathouse TerraceFrom your system · space
Enquiry ID- ENQ-50418From your system · id
Your reception · 96 guests
| Item | Qty | Rate | Amount |
|---|---|---|---|
| Food & beverages | $17,280 | ||
Waterside Classic packagePer guest, from the enquiry's guest count
|
96 guests | $118 | $11,328.00 |
Premium beverages · 5 hoursSparkling, premium wine, beer, soft drinks
|
96 guests | $62 | $5,952.00 |
| Ceremony, styling & music | $3,750 | ||
Ceremony on the lawn60 chairs, arbour, signing table, wet-weather plan
|
1 lot | $1,400 | $1,400.00 |
Theming & stylingCentrepieces for 10 tables, candles and linen
|
1 lot | $1,250 | $1,250.00 |
DJ · 5 hoursCeremony music, first dance and dance floor
|
1 lot | $1,100 | $1,100.00 |
| Extras · from the template Tick to add | |||
Welcome cocktailOn arrival, per guest
|
96 guests | $12 | $1,152.00 |
Late-night grazing stationServed at 9.30 pm, per guest
|
96 guests | $14 | $1,344.00 |
Photo booth · 3 hoursProps and prints
|
1 lot | $890 | $890.00 |
- Subtotal
- $21,030.00
- Tax (10%)
- $2,103.00
- Total
- $23,133.00
- Plus, monthly
- $0.00/mo
- Deposit to confirm your date (20%)
- $4,626.60
The extras stay in the template for the couple to tick. All data is fictional.
What does the form handler do?
Save the enquiry in your own system first, then make the create call with the template for that kind of event, the answers as data items and the rows your pricing rules produce. Keep the document number against the enquiry.
Run it on your server, never in the browser: the credential QuoteCloud issues must stay out of your web pages.
- Validate the form before you create anything.
- Store the document number with your record.
- Thank the guest at once; the proposal follows by email.
Form handler
// Illustrative: your website's form handler (Node-style JavaScript).// QUOTECLOUD_API_URL and the credential come from QuoteCloud.app.post("/enquire", async (req, res) => { const f = req.body; // the guest's answers const enquiry = await enquiries.save(f); const doc = await fetch(process.env.QUOTECLOUD_API_URL, { method: "POST", headers: { "Content-Type": "application/json", Authorization: process.env.QUOTECLOUD_CREDENTIAL }, body: JSON.stringify({ template: templateFor(f.eventType), // one per event type title: `${f.names}'s wedding reception`, dataItems: { "Event date": f.date, Guests: f.guests, "Enquiry ID": enquiry.id }, tableId: "reception", rows: rowsFor(f.package, f.guests) // your own price rules }) }).then((r) => r.json()); await enquiries.link(enquiry.id, doc.documentNumber); res.redirect("/thank-you"); // the proposal follows by email});
Illustrative. templateFor, rowsFor, enquiries and app are your own code; the endpoint, credential and field names come from QuoteCloud.
No server? Let a Zap catch the form
Point the form at a Zapier URL instead, and build the same steps without code.
ZapWebsite enquiry: create and send the proposal
-
When
ZaWebhooks by ZapierTriggerCatch HookYour form posts its answers to the Zap's URL.Passes on
- names
- event_date
- guests
- package
-
Then
QCQuoteCloudSearchFind or Create ContactMatches the email exactly, or creates the contact.Searches on
- Email Address
- First Name
-
Then
QCQuoteCloudActionCreate DocumentFrom your template; data items and rows mapped from the answers.Mapped in
- Document Title
- Event date
- Guests
- Line Item Label
- Quantity
- Price
-
Then
QCQuoteCloudActionAdd Document RecipientMapped in
- Document Number
- Existing Contact
-
Or
QCQuoteCloudAction · optionalSend DocumentOr leave a draft for the team.Mapped in
- Document Number
- To
A form tool with its own Zapier app can start the Zap instead of Catch Hook. Make works too, as a scenario you build with QuoteCloud's API.
Tidewell's site has no server code to spare, so the form posts to a Zapier URL. The proposal still arrives in Hannah's inbox within a minute of the enquiry.
Result
The same proposal, created without code. Each document a Zap creates carries the per-document fee.
QuoteCloud's Zapier app: Essentials and up
The functions team's side of itWhat else can your app show or change?
Small calls that put QuoteCloud's document into your own pages and portals.
A preview image of a page
Get Document Page Preview renders a page as a fresh PNG and returns a secure URL valid for one hour, for a thumbnail in your portal.
The PDF, when it's signed
Generate or Fetch Document PDF Link returns a short-lived secure link. Download the file straight away and keep it with your record.
Where it's up to
Find Document Status returns the current status, so your page can say Sent, Viewed or Signed without anyone checking QuoteCloud.
Your images in the document
Upsert Document Image copies an image into a named image block, by the API Link ID set in that block, such as a client's logo.
Build the template, then the form
Start a free 14-day trial, build the proposal template with data items, then connect your form.
Connect your website form in five steps
- 1
Build the template
One template per kind of enquiry, with data items for the answers and a price table named for API rows.
- 2
Map the answers
Decide which answer fills which data item, and which rows your pricing rules add.
- 3
Write the handler
Save the enquiry, call Create Document from your server, add the recipient and keep the document number. Or build the Zap.
- 4
Send or hold
Send it at once for standard enquiries, or leave a draft for your team to check.
- 5
Listen for the result
Use document events to confirm the booking when it's signed and paid.
Website form questions
Can a form on my website create a QuoteCloud proposal?
Yes. Your form posts to your own server, which calls QuoteCloud's API to create the proposal from a template with the answers in data items and price-table rows. Without code, the form can post to a Zap that runs QuoteCloud's Create Document, Add Document Recipient and Send Document.
Can I embed a QuoteCloud document in my own site?
Not as a documented feature. Your app can show a page preview image, valid for an hour, from Get Document Page Preview, show the status from Find Document Status, and send the client the document by email to open and sign. Ask us about anything beyond that for your build.
Should the API call run in the browser?
No. Make the call from your server, where the credential QuoteCloud issues stays private. The browser only posts the form to your own site. Putting the credential in a web page would let anyone who views the page create documents in your account.
Can the form use QuoteCloud's own forms instead?
Yes, inside a document. QuoteCloud's Form Builder, on Essentials and up, adds a form to a QuoteCloud document, and the Form Submitted on Document trigger fires when a recipient submits it. For a form on your own website, use your server or a Zap as this page shows.
More you can build
Create documents, react to events, keep the catalogue in step.
- Create documents from templatesOne call per document: your template, its data items filled from your data, and price-table rows you send.
- React to document eventsViewed, signed, paid, expired: the document events QuoteCloud fires, and how to get them to your system.
- Keep the product catalogue in stepCreate, find and list products by SKU, so quotes price from the same catalogue as your other systems.
- Authentication and the IDs you needHow each route signs in, where to find template, data item, table and document IDs, and what to ask us.
- What the QuoteCloud API can and can't doWhat a call can set, what stays with your team and your client, and what isn't published yet.
- What the QuoteCloud API costsEssentials and up, plus a fee for each document created through the API or Zapier.
- Security for API integrationsWhere documents are stored, how signers are verified, and how to keep your credentials safe.
- FAQAnswers to the questions developers ask before they build on QuoteCloud.
Your form. Their proposal, in a minute.
Start a free 14-day trial of QuoteCloud and connect your website's enquiry form.
Website form to proposalFree 14 days · no card
Start free trial