What is the best way to get client sign-off without chasing emails?

Send one link instead of a thread. The handover shows the client the work with every step checkable, displays its state honestly as pending, and gives them one decision to record: Accept or Flag. The sign-off lands on the work itself, with the decider and the time saved.

Last updated: 2026-10-17

Email sign-off has a structural flaw: the approval and the work live in different places. The work is in a drive, a repo, or an attachment; the approval is a sentence in a thread, written from memory, quotable out of context, and deniable in a dispute. Chasing is what you do because the sentence is the only artifact, and it is a weak one.

The handover merges the two places. The client opens the delivery and the decision is part of the same object: the steps they can check, the gaps labelled, and the two honest outcomes. Accept records approval against that exact delivery, so a later revision starts a new decision instead of muddying the old one. Flag records the specific step in question, which turns a vague "not quite right" into a fixable item.

The pending state does quiet work for you. While the client has not decided, the record says pending and the release stays on hold, visible to both sides. There is no need for a third follow-up email; the state is the follow-up. When they accept, the acceptance receipt closes the loop you used to chase.

Template: the sign-off request that replaces the chase

Send this with the link: "Your delivery is here: [handover link]. Every step of the work is behind that link and checkable in your browser. When you have reviewed it, please record your decision on the page itself: Accept if it matches what we agreed, or Flag the step that needs another look. Your decision is saved with the work, so we both keep the same record." One message, one link, one decision. If a reminder is needed, resend the same link and point at the pending state; never summarize the work again in the reminder.

Worked example

The two public handovers are the two endings of this story. https://zambo.dev/handover/45434a17-4afc-486a-9646-e689bcee4297 : accepted, decision recorded, release ok to release, no thread archaeology required. https://zambo.dev/handover/bd7e5325-33fd-4c5e-b029-76b781fa2f51 : pending, release on hold, the state itself saying what an email chase would.

Frequently asked questions

What if the client says "approved" in an email anyway?

Thank them, and ask them to record it on the link so the approval attaches to the delivery it approves. An email approval of "the work" has started real disputes when two versions existed; the recorded decision names the exact record it accepted.

Can a client delegate the decision to someone on their team?

Whoever holds the link can record the decision, and the record shows it was made through the client link. Agree the decision-maker when you send the link, the same way you would agree who signs a contract.

How long should I wait before following up?

The pending state is visible to both sides, so a single reminder after your agreed review window, pointing at the state, is enough. Repeated chasing devalues the decision; the record's patience is the point.

By Brennan Zambo, founder of Zambo.

Last verified: 2026-10-17.

Get your next sign-off on the work itself, not in a thread: build the handover at https://zambo.dev/demo/ .

Try a handover

A handover gives your client one proof link with verifiable receipts to review, then Accept or Flag.

try it: say 'use zambo to hand this over to <client>' in your ai

Add Zambo · Handover docs · Real public handover · AER-1