Troubleshooting & Reference · Article 7.17
„Mój klient dostał e-mail z przypomnieniem, ale już zapłacił"
Rzadki wyścig stanów — przypomnienie zostało wysłane chwilę przed tym, jak potwierdzenie płatności się upowszechniło. Zadanie beat ponownie sprawdza status płatności w momencie wysyłki; jeśli zapłacono, pomija. Jeśli to widzisz, luka trwała ułamki sekund.
E-mail z przypomnieniem wysłany do klienta, który już zapłacił, jest kłopotliwy, ale nieszkodliwy. Clozo chroni przed tym dwukrotnie (sprawdzenie idempotentności zdarzenia na osi czasu + ponowne sprawdzenie statusu płatności przy każdej wysyłce), ale ścisły wyścig między przetwarzaniem webhooków a wysyłką może się prześlizgnąć. Jeśli zdarzy się raz, przeproś i idź dalej; jeśli zdarza się wielokrotnie, to błąd, o którym chcemy wiedzieć.
Step by step
Przeproś klienta.
Osobista wiadomość: „Przepraszam — to przypomnienie wyszło chwilę przed tym, jak nasz system zobaczył Twoją płatność. Wszystko jest uregulowane."
Sprawdź status płatności
— powinien być poprawnie
Opłaconyw Clozo. Jeśli nie jest, to inny problem (Sekcja 10.14).Jeśli powtarzalne (wiele opłaconych ofert dostaje przypomnienia)
skontaktuj się z pomocą techniczną.
Why this works this way
Zadanie beat send_overdue_reminders (tasks.py L2107) uruchamia się co godzinę i kolejkuje wysyłki per-poziom. Dyspozytor send_overdue_reminder_email (L2165) ponownie sprawdza proposal.status != Proposal.STATUS_OVERDUE w momencie wysyłki i pomija jeśli zapłacono. Okno wyścigu to kilkaset milisekund między ponownym sprawdzeniem a rzeczywistym wywołaniem API Resend.
Jeśli e-mail z przypomnieniem faktycznie wysłał się dla opłaconej oferty, płatność musiała dotrzeć w tym wąskim oknie. Wysoce niezwykłe.
Troubleshooting
Keep reading
Refunds & Notifications
Email: Auto-reminders for overdue invoices (3 / 7 / 14 day escalation)
When a final invoice goes unpaid past its due date, Clozo sends three escalating reminders to the client at +3, +7, and +14 days. Tone moves from gentle to formal; the +14-day reminder cites the EU Late Payment Directive.
Lifecycle
Status: Awaiting final payment, then Paid
You've issued the final invoice. The client now owes the remaining balance (full amount minus the deposit they already paid). When the money lands, status flips to `Paid` and the final receipt is generated.
Refunds & Notifications
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.