Zeng Book
ProductIndustriesIntegrationsPricingResources
Sign inContact salesTry it free
Introduction
  • Overview
  • Quickstart
API reference
  • Authentication
  • Errors
  • Rate limits
  • Pagination
  • Interactive explorer
Resources
  • Organization
  • Leads
  • Clients
  • Projects
  • Quotations
  • Invoices
Integrations
  • Overview
  • Webhooks
  • Public portal
  • Zapier
  • Make / n8n recipes
  • Xero (coming soon)

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

  1. 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.
  2. 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.
  3. Rejected. Same as accepted, but with REJECTED and quotation.rejected.
  4. 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.accepted via webhooks to post a notification to Slack, kick off your project setup, or generate the matching invoice.
  • Use GET /v1/quotations to read current quotation statuses from your own systems.