Integrations
Public portal
Share a quotation with your client through a token-gated link. They review, accept, or reject — no Zeng Book account required.
What gets shared
When you send a quotation from inside Zeng Book, we generate a public link of the form:
text
https://www.zengbook.com/portal/q/<token>The token is a unique, unguessable string. Anyone with the link can view the quotation; without it, the URL is a 404.
What the client sees
- Your firm's name and uploaded logo.
- The quotation document — header, line items (or BQ sections), retention and GST, totals.
- Accept and Reject buttons. Acceptance is final; rejecting closes the link.
- Expiry notice if the link is past its valid-until date.
Lifecycle
- Created. A unique token is minted when you click Send. The token is associated with the quotation and your org. Status:
SENT. Webhook fired:quotation.sent. - Accepted. The client clicks Accept. Status moves to
ACCEPTED; the link continues to render the document but no further actions are possible. Webhook:quotation.accepted. - Rejected. Same as accepted, but with
REJECTEDandquotation.rejected. - Expired.If you set an expiry, the link returns a polite "this link has expired" page after that date. The underlying record stays intact.
Re-sending
You can resend the same quotation; we mint a new token each time and retire previous links.
Branding
The portal uses your org's display name and logo (uploaded under Settings → Branding). The page is on www.zengbook.com and not on your own domain — custom domains are a Business-plan feature on the roadmap.
Integrating with the rest of your stack
The public portal is opaque to the API — there is no endpoint to create or list public links directly. To react to client actions:
- Subscribe to
quotation.acceptedvia webhooks to post a notification to Slack, kick off your project setup, or generate the matching invoice. - Use
GET /v1/quotationsto read current quotation statuses from your own systems.