QuoteCloud fires an event at each moment that matters, from the first view to the deposit. Here is every one, and the way to get it to your own system today.
QuoteCloud's document events are the triggers in its Zapier app, such as Recipient First Viewed Document, Document Signing Complete, Document Part Paid and Document Expired. To get one to your own system, build a Zap on that trigger with a Webhooks by Zapier POST to your endpoint. QuoteCloud doesn't document direct webhooks.
Last reviewed by the QuoteCloud team
Two overlapping panels with sample data. Behind, the activity of Tidewell Pavilion's proposal TP-2741: created through the API on Thursday 29 October, viewed by Hannah that evening, signed by Hannah and James on Monday 2 November and the $4,922.28 deposit paid, each line naming its QuoteCloud event. In front, an illustrative JSON body that Tidewell's endpoint receives from a Zap when signing is complete, with the document number, title, enquiry ID and total.
Document activityTidewell PavilionSample data
Activity
Created through the API from enquiry ENQ-50418Thu 29 Oct, 8:15 pm · Create Document
Viewed by HannahThu 29 Oct, 9:02 pm · Recipient First Viewed Document
Signed by Hannah and JamesMon 2 Nov, 7:42 pm · Document Signing Complete
// What your endpoint receives is up to you: in the Zap, the// Webhooks by Zapier POST step sends the fields you map from// QuoteCloud's trigger. Illustrative values.{"event": "Document Signing Complete","documentNumber": "{DOCUMENT_NUMBER}","title": "Hannah & James's wedding reception","enquiryId": "ENQ-50418","total": 24611.40,"signedAt": "2026-11-02T19:42:00"}
Illustrative. You design this body in the Zap's Webhooks by Zapier step; QuoteCloud's own event payload isn't published.
What your system receives
WhichdocumenteventsdoesQuoteCloudfire?
Every trigger in QuoteCloud's Zapier app, grouped, with when it fires as QuoteCloud describes it.
Opened and signed
Recipient First Viewed DocumentAn identified recipient first views the document.Use it to move the record to Viewed and prompt a follow-up.
Recipient Signed DocumentA recipient completes every signature field assigned to them.Use it to log each signer; chase the next one.
Document Signing CompleteThe document has all its required signatures.Use it to confirm the booking, order or job.
Document AcceptedThe document is accepted.
Paid
Document Part PaidThe document is partly paid, such as a deposit.Use it to record the deposit and release the date or stock.
Document PaidThe document is fully paid.
Document Payment EventA payment against the document is received, fails or is refunded.Use it to catch failed and refunded payments too.
Status and outcome
Document CreatedA document is fully created.Use it to link it to your record.
Document Status ChangedA document changes to the status you pick.
Document ExpiredThe document expires.Use it to release a held date or follow up.
Document LostThe document is marked as lost.
Delivery
Document Delivery Status ChangedA delivery changes state, optionally one state you pick.
Document Delivery FailedAn email bounces or delivery fails.Use it to flag a wrong email address before the client waits.
Forms, comments and reviews
Form Submitted on DocumentA recipient submits a form in the document (Form Builder, Essentials and up).
Document Comment EventA comment is created, resolved or reopened.
Document Review AcceptedA workflow review is accepted.
Contacts and products
New Contact CreatedA contact is added to the address book.
Contact UpdatedA contact genuinely changes.
Contact RemovedA contact is deleted.
Product ChangedA product is created, updated, activated or deactivated.Use it to keep your catalogue in step.
These are QuoteCloud's exact trigger names on Zapier. Make is bring-your-own: you'd build the equivalent in your scenario.
Howdoesaneventreachyourserver?
One small Zap per event: QuoteCloud's trigger, then Zapier's own Webhooks step posting to your URL.
ZapSigning complete: confirm the booking
WhenQCQuoteCloudTriggerDocument Signing CompleteFires once every required signature is in.Passes on
Document number
Title
Total
OrQCQuoteCloudSearch · optionalFind Document by FieldOnly if the trigger doesn't carry your ID: search the Enquiry ID data item.Searches on
Search By
Search Value
ThenZaWebhooks by ZapierActionPOSTSends JSON to your endpoint, with a secret header you check.Mapped in
URL
Data
Headers
Repeat it per event, or use Document Status Changed with the status you need. Zapier is the documented route: QuoteCloud doesn't document webhooks of its own.
Hannah and James sign on Monday evening. Seconds later Tidewell's booking system has the booking confirmed, the final value and the document number on file, and the held date is no longer at risk.
Result
Your system hears about each signature, payment and expiry without polling, and without anyone forwarding an email.
You design the body in the Webhooks by Zapier step, from the trigger's fields. Send the event name, the document number and your own ID, and check a secret header before you trust it.
Apply each event once. A record of the events you've already handled keeps a repeated delivery from confirming a booking twice.
Check a secret header you set in the Zap.
Ignore an event you've already applied.
Reply quickly; do slow work after you answer.
Your endpointTidewell PavilionSample code
Illustrative
What your endpoint receives
// What your endpoint receives is up to you: in the Zap, the// Webhooks by Zapier POST step sends the fields you map from// QuoteCloud's trigger. Illustrative values.{"event": "Document Signing Complete","documentNumber": "{DOCUMENT_NUMBER}","title": "Hannah & James's wedding reception","enquiryId": "ENQ-50418","total": 24611.40,"signedAt": "2026-11-02T19:42:00"}
Your handler
// Illustrative handler on your server (Node-style JavaScript).app.post("/hooks/quotecloud", async (req, res) => {if (req.get("X-Hook-Secret") !== process.env.HOOK_SECRET) {return res.sendStatus(401); // a header you set in the Zap }const { event, enquiryId, documentNumber } = req.body;const seen = await bookings.alreadyApplied(event, documentNumber);if (!seen) {if (event === "Document Signing Complete") await bookings.confirm(enquiryId);if (event === "Document Part Paid") await bookings.markDeposit(enquiryId);if (event === "Document Expired") await bookings.releaseDate(enquiryId); } res.sendStatus(200);});
Illustrative. You design this body in the Zap's Webhooks by Zapier step; QuoteCloud's own event payload isn't published.
Patternsthatkeepyourrecordsright
Find the document by your own ID
Keep your record's ID in a data item. Find Document by Field finds the newest document whose custom field matches it exactly.
Check the status when you need it
Find Document Status returns a document's current status, and Find Latest Document by Status finds the one that most recently moved into a status.
Watch failed and refunded payments
Document Payment Event fires when a payment is received, fails or is refunded, not only when it succeeds. Payments run through QuoteCloud Payments with Stripe or PayPal.
File the signed PDF straight away
Generate or Fetch Document PDF Link returns a short-lived link, so download or upload the file in the same run, not later.
Test the events on a trial
Start a free 14-day trial, connect QuoteCloud in Zapier and sign a test document to see each event arrive.
QuoteCloud doesn't document a webhook subscription you can point at your own server. Its events are published as triggers in QuoteCloud's Zapier app, and that's the route this page describes: a Zap on the trigger, then Webhooks by Zapier to your endpoint.
If you build in Make, you design the scenario yourself, calling QuoteCloud's API or Zapier endpoints. If your build needs events without Zapier, talk to the QuoteCloud team about what's possible for your account.
Getyourfirsteventinfoursteps
1
Build the endpoint
Add a route on your server that accepts JSON, checks a secret header and applies each event once.
2
Pick the trigger
In Zapier, start a Zap with QuoteCloud's trigger, such as Document Signing Complete, and connect your QuoteCloud account.
3
Post to your URL
Add Webhooks by Zapier POST, map the fields you need into the body and add the secret header.
4
Test with a document
Sign a test document on the trial, check your endpoint received it once, then turn the Zap on.
Eventquestions
Does QuoteCloud support webhooks?
Not as a documented feature. QuoteCloud publishes its document events as triggers in its Zapier app. To get one to your own server, build a Zap on the trigger and add a Webhooks by Zapier POST to your endpoint. Ask the QuoteCloud team if your build needs events without Zapier.
Which event fires when every signer has signed?
Document Signing Complete fires when a QuoteCloud document has all its required signatures. Recipient Signed Document fires for each signer as they complete their own signature fields, so use it to log each signature and chase whoever is still to sign.
Can my system hear about deposits and refunds?
Yes. Document Part Paid fires when a document is partly paid, such as a deposit, and Document Paid when it's fully paid. Document Payment Event fires when a payment is received, fails or is refunded. Payments run through QuoteCloud Payments, on Essentials and up.
How do I match an event to my own record?
Keep your record's ID in a data item when you create the document, and map it into the body your Zap posts. If a trigger doesn't carry it, QuoteCloud's Find Document by Field search finds the newest document whose custom field matches the value exactly.