Refunds & Notifications ยท Article 6.1
Every email Clozo sends, in one table
Clozo dispatches 13 distinct transactional emails across the proposal and amendment lifecycle. This page lists each one, who triggers it, who receives it, and what's attached.
Clozo's email layer is built for two audiences: your client (who needs clarity and a clear next step) and you (who needs the audit trail and a copy in your archive). Every email serves a single state transition โ a proposal moving to Sent, a deposit landing, an amendment being countersigned. The inventory below is the master index; each row links to a dedicated article with the trigger, the body, the attachments, and the recovery flow.
Why this works this way
Three properties hold across every email Clozo dispatches:
1. Idempotency by design. Every send is wrapped in the _claim_email_field() pattern ([D-070]). Before the task assembles a message, it atomically flips a per-row timestamp from NULL to now(). If a Celery retry, a webhook replay, or a manual re-fire arrives after the field is already claimed, the second attempt exits silently โ your client never receives a duplicate.
2. Attachments come from R2, not memory. PDFs are rendered once (when the underlying event fires) and uploaded to immutable Cloudflare R2 storage. The email task downloads the bytes from R2 at send time; if R2 is briefly unreachable, the task retries with exponential backoff up to three times. This separation means a slow Gotenberg render never holds up the email queue.
3. Locale resolves once, on the proposal. When a client first signs (or when you set the proposal language), the locale is pinned to the proposal record. Every subsequent email โ reminder, refund, amendment โ looks up the same value, so a client never receives an English deposit invoice followed by a German final-invoice reminder.
Troubleshooting
Keep reading
Refunds & Notifications
Email: "Proposal from [your name]"
The first email your client receives. Triggered the moment you click `Send` on the proposal wizard; carries the proposal PDF and the 4-digit access code.
Refunds & Notifications
Email: "Signed โ [proposal title]"
Fires the instant the client signs. Two recipients, two slightly different bodies โ yours has the audit summary, your client's has the deposit invoice and a payment CTA.
Configuration
Auto-reminders: gentle nudges on the EU Late Payment Directive cadence
Toggle one switch and Clozo emails the client at three escalating intervals after an invoice goes overdue โ default 3, 7, and 14 days, fully customisable per user.
Refunds & Notifications
What to do when an email didn't arrive
A diagnostic flowchart for the most common case โ your client (or you) is missing an email Clozo should have sent. Five checks, in order, that resolve 95% of cases.