Deucalion Docs
How-to guideA task-oriented guide for completing a specific goal.
adminclient-handoverquotesapprovalscustomers

Managing Client Handover and Quote Approval

Publish controlled handover material and capture customer quote decisions through the correct customer boundary.

Before you start

  • The customer account, site, and source records already exist.
  • Reports, inspections, quotes, or work orders are ready to share with a customer.
  • You have organization-admin access to CRM and quote workflows.

Expected outcome

Handover grants are created with the correct boundary, and quote decisions remain tied to the quote and its audit trail.

Use the right customer workflow

Use Client Handover to assemble approved reports, completed inspections, non-draft quotes, or deployed work orders and bind revocable API access to a known customer identity. The recipient must authenticate and accept an email-matched invitation.

A standalone customer package-browser UI is not currently shipped. Invitation acceptance confirms the identity binding and then tells the recipient they can close the page. Do not describe the current invitation as a complete self-service handover portal.

Use the quote detail Approval Workflow when a recipient needs to view one customer-safe quote and approve or decline it. The approval page is authorized by its private bearer link; it does not require the client-handover login flow.

Neither workflow repairs unsafe source data. Correct the source and customer-facing title before release.

Create a handover package

  1. Open Client Handover and select New package.
  2. Search for the site. The form uses its linked CRM account when present; choose an account override only when the handover belongs to another account.
  3. Review the server-derived source list. Blocked records are visible for context but cannot be selected.
  4. Select at least one ready record and edit each customer title so it is understandable without internal context.
  5. Add recipient emails when access should be available immediately after publication. Choose view, download, or respond, and set an optional expiry date.
  6. Create the draft and inspect package detail.
SourceReady for selection when
Generated reportApproved
InspectionCompleted
QuoteNot draft, and linked to the chosen site/account
Work orderDeployed beyond draft, and linked to the organization/site/account

Check void state separately: A voided quote can remain selectable because void is separate metadata. Open each quote candidate and confirm it is not voided. If it becomes voided after release, revoke the package and replace it with a corrected package.

Review and publish

  1. Open package detail and select Refresh readiness when the source records may have changed.
  2. Review every included item, customer title, recipient, permission, and expiry.
  3. Select Publish and read the confirmation summary. It identifies included records, active recipients, expired grants, expiry dates, and recipients eligible for an invitation.
  4. Confirm only when the summary matches the intended customer release.
  5. If the package changes while the confirmation is open, review the new revision instead of retrying the stale confirmation.

Publication revalidates source readiness and scope inside the transaction. A published package remains committed even if a later invitation email fails.

Deliver and manage access

Permissions are cumulative:

  1. view exposes package metadata and customer-safe item titles through the authenticated API.
  2. download adds item downloads.
  3. respond includes download and marks a response capability in the API, but no handover response endpoint is shipped. It is not the quote decision workflow.

At publication, Deucalion creates links for eligible unaccepted email grants and starts email dispatch after commit. Treat the admin Sent invite badge as link creation/dispatch intent, not provider-delivery confirmation.

The recipient must sign in with the invited email before accepting. Acceptance binds the grant to that user. Revoked, expired, wrong-email, wrong-user, wrong-account, invalid, and unavailable access fails closed. If a valid recipient needs another link, use the grant action to create and copy a replacement; the previous link becomes invalid, and regeneration does not send email by itself.

Revoke one grant to remove one recipient. Revoke the package to remove access for everyone, including when an included source is later found unsafe.

Follow the two release paths

Rendering diagram…

The equivalent sequence is:

  1. An organization admin reviews customer-safe content and chooses the workflow that matches the customer's need.
  2. Client Handover assembles ready records, rechecks the release at publish time, creates invitations after commit, and requires an authenticated email match before binding access.
  3. An active customer grant lets the authenticated API return only the published package, included ready items, and permission-scoped download URLs. A standalone customer browser and response action are not shipped; expiry or revocation closes API access.
  4. Quote Approval sends one customer-safe quote through a private, expiring bearer link. The recipient can view the quote and PDF while the grant and quote remain usable.
  5. Approval records the signer, signature, optional purchase-order evidence, response, and purpose-specific handoff. Decline records the signer and required reason. Both outcomes retain an audit trail and consume the link.

Send a quote for approval

  1. Open Quotes, then open the quote detail.
  2. Check purpose, customer, CRM account, site, line items, totals, validity date, customer email, and customer-safe terms.
  3. For a PPM contract quote, complete PPM Setup and its expected routines first.
  4. Select Send for Approval. A draft quote moves to sent before the approval grant is created.
  5. Confirm the invited email and choose an expiry from 1 to 90 days. The default is 30 days.
  6. Create the link. The dialog returns the private URL for immediate copy, and email delivery starts asynchronously by default.

Creating a replacement grant revokes older active approval links for that quote. The quote detail shows grant status, invited email, creation/expiry/last-viewed dates, the latest response, response detail, submitted date, and approval events. It never exposes token hashes. An active URL can be copied later only when retrievable encrypted token storage is available; otherwise create a replacement link.

Provider acceptance or a returned non-delivery state is recorded after the link response returns; an unexpected dispatch exception is logged. None of those delivery failures removes the active grant or the copied URL. Check approval events and use an approved delivery channel rather than assuming that link creation proves inbox delivery.

What the quote recipient can do

The private approval page uses no-store, noindex, and no-referrer protections. While the grant is active and the quote remains sent, the recipient can:

  • view the customer-safe quote and its generated PDF;
  • approve with signer identity and a typed or drawn signature;
  • optionally add a PO number, comment, and one PDF or supported image up to 15 MB;
  • decline with signer identity and a required reason.

Approval or decline is single-use. An expired, revoked, used, malformed, wrong-scope, missing, or voided quote link returns no quote. A second response conflicts instead of overwriting the first decision.

Record a decision received elsewhere

When the real customer decision arrives outside the link:

  1. Open the sent quote.
  2. Select Manual Approve or Manual Decline.
  3. Choose Email, Phone, Customer Portal, In Person, or Other as the decision source.
  4. Enter the required decision note and save.

Manual decisions are audit records for decisions that already happened. Do not use them to skip commercial review.

Follow through after approval

  • Remedial approval creates or reuses the linked work order when work-order access is available. If the handoff fails, correct the cause and retry from the accepted quote.
  • PPM contract approval creates or reuses one service contract and its expected routines. Correct an incomplete setup, then retry Create Service Contract from the accepted quote.
  • Ad hoc approval changes the quote state without creating a work order or service contract automatically.
  • Finance can receive accepted non-PPM quotes, including remedial and ad hoc quotes, and completed work orders when those sources are linked to CRM accounts. It does not currently receive PPM contract occurrences.

Use Send Reminder only while the quote is sent. It sends the current quote pack to the customer email on the quote and records accepted or failed delivery evidence. Reconcile the approval events before sending repeated reminders.

Troubleshooting

ProblemWhat to check
No handover sources appearSelect both a site and its intended CRM account, then confirm eligible records exist in that scope.
Handover publication is blockedRefresh readiness and correct every source blocker. A stale confirmation must be reviewed again.
Invite says sent but the customer has no emailThe badge is not provider confirmation. Verify the recipient, then create/copy a replacement link and deliver it through an approved channel.
Customer cannot accept a handover inviteThey must be authenticated with the invited email. Check both invite and grant expiry, revocation, user binding, package state, and account consistency.
Customer cannot download an itemConfirm the grant includes download, the package is published, and the item remains included and ready.
Customer expects a package browser after acceptingAcceptance binds the API grant but no standalone customer package browser is shipped. Set expectations accordingly.
A quote in a handover package is voidedRevoke the package immediately and replace it without the unsafe quote.
Quote approval link is unavailableConfirm the quote can be sent, has recipient identity, passes tenant scope, and—when PPM—has complete setup. Replace an expired, revoked, or used link.
Quote approval email was not deliveredLink creation is asynchronous from delivery. Check approval events, copy the active link when available, or create a replacement link.
Recipient cannot respondThe quote must still be sent, the grant must be active/unexpired, and the quote must not be voided.
Reminder is unavailableOnly sent quotes can receive reminders; confirm the current quote customer email.
  1. Use Quoting a PPM Contract and Creating Routines for approval readiness, resend, reminders, and the PPM service-contract handoff.
  2. Use Finance, Receivables, and Billing for the current ready-to-invoice boundary.

On this page