How Clients Approve a Quote in CrmLeaf
All editions. Core feature - no add-on required.
Availability: All editions. Core feature — no add-on required.
Overview
CrmLeaf gives every sent quote a direct approval option. The client opens a signed public link, reviews the quote and approves or declines it without logging in. This article explains what the client does, what changes in CrmLeaf as a result and what you see on your side. Approval is the event that creates the invoice, so it is worth understanding before you send your first quote.
How It Works
Quote sent → Client opens link → Reviews → Approves or declines → Status updates
- The link has the form
/estimate/{hash}. It is signed, so only someone who has the link can open that quote. - The client does not need a CrmLeaf account login or portal access.
- When the client opens the quote, CrmLeaf records the time as
last_viewed. - Approving records the client's signature, sets the status to
acceptedand creates anunpaidinvoice. The invoice is created once, even if the approval is submitted twice. - Declining sets the status to
declined. No invoice is created. - The quote has a
valid_tilldate. Treat a quote past that date as expired and raise a new one.
Who Can Use This Feature?
User
- Send the quote and check its status, last viewed value and outcome.
- Open the invoice created by an approval.
Client
- Open the public link, review the quote and approve or decline it.
The client acts through the public link, not through your permission scopes. Your own view of the quote follows the ownership-based scope set for your role.
Prerequisites
- The quote has been sent, so its status is
waiting. Adraftcannot be opened by the client. - The quote's valid-till date has not passed.
- The client has the link.
For Users
Step 1: Make sure the quote is sent
What to do: Find the quote and confirm its status is waiting. If it is draft, use Send on the row or Action → Send on the quote.
What to verify: The status reads waiting.
Step 2: Tell the client what to expect
What to do: Let the client know the quote has a direct approval link, that no login is needed, and that approving records their signature and starts invoicing.
What to verify: The client knows the approval is a commitment to the figures on the quote.
Step 3: See whether the client opened it
What to do: Open the quote and check the last_viewed value.
What to verify: A value means the client opened the quote. No value means they have not yet.
Step 4: Confirm the outcome
What to do: Refresh the quote or the quotes list after the client acts.
What to verify: accepted means the signature is stored and an invoice exists. declined means the client said no and nothing was invoiced.
Step 5: Handle a declined or expired quote
What to do: If the client declined or the quote expired, agree the change with them, cancel the old quote and create a new one with the revised line items.
What to verify: The new quote is waiting and the old one is not.
Expected Result
The client approves on the link without a login, the quote shows accepted with a stored signature, and an unpaid invoice exists for the same figures.
Important Notes
- Menu names and their position can differ between product editions and can be customised for your account, so your sidebar may not match these paths exactly. Use Search or your Quick Access items if you cannot find a screen.
- Anyone who has the link can open the quote. Send it only to the intended client.
- The approval creates the invoice. Do not ask the client to approve until the figures are final.
- An approved proposal behaves differently: it records the client's decision and comment, but it does not create an invoice.
Common Scenarios
Example: a finance contact approves. A buyer forwards the link to their finance lead, who has no CrmLeaf login. The finance lead opens the link, approves, and the invoice is created for the same figures.
Example: the client wants a change. The client replies that one line is too high. You cancel the waiting quote, create a new one with the corrected line, and send that. The client approves the new quote, and only that quote creates an invoice.
Troubleshooting
| Issue | Possible Cause | Resolution |
|---|---|---|
| The client says the link does not open | The quote is still draft, has expired, or the link was copied incompletely | Send the quote, check the valid-till date, and give the client the full link. |
The quote is waiting but last_viewed has a value | The client opened it but has not approved | Follow up. See QTC-18. |
| The client approved but there is no invoice | The status is not accepted | Check the status. See QTC-17. |
| The client approved by mistake | Approval records a signature and creates an invoice | Treat the quote as final and handle the invoice as described in QTC-05. |
Frequently Asked Questions
Does the client need a CrmLeaf login to approve?
No. The quote is shared on a signed public link.
Can a client approve twice?
A repeated approval does not create a second invoice. Invoice creation is idempotent.
How do I know the client has opened the quote?
CrmLeaf records last_viewed when the client opens it.
What happens when the client declines?
The status becomes declined and no invoice is created.
Is the client's approval legally binding?
CrmLeaf stores the client's signature against the quote. Whether that is binding depends on your contract terms and local law. Check with your legal adviser.
Related Articles
Our support team answers on business days. Reference QTC-15 so we can jump straight in.