Skip to main content

Lifecycle · Article 2.13

Timeline-Ereignisse: Jeder Ereignistyp erklärt

Die Timeline-Komponente auf jeder Angebotsdetailseite verzeichnet 21+ Ereignistypen. Dies ist die kanonische Liste mit Beschreibungen und Auslösern — nützlich, wenn Sie nachvollziehen wollen, was bei einem Angebot passiert ist.

Die Timeline ist Ihr Audit-Trail. Jeder Webhook, jeder Klick, jeder E-Mail-Versand erzeugt ein Ereignis. Wir bewahren sie über die gesamte Lebensdauer des Angebots auf (10 Jahre gesetzliche Aufbewahrung). Wenn Sie herausfinden möchten „Wann hat der Kunde tatsächlich unterschrieben?" oder „Ist die Anzahlungsrechnung jemals rausgegangen?", ist die Timeline die maßgebliche Quelle — auch dann, wenn UI-Badge oder E-Mail-Bestätigung einen anderen Eindruck vermitteln.

Why this works this way

Timeline-Ereignisse werden im Modell ProposalTimelineEvent gespeichert, mit Feldern: event_type (Enum), created_by (User oder null bei kundeninitiierten Aktionen), data (JSON: IPs, Beträge, Signaturbeweise usw.), created_at (UTC-Zeitstempel). Sie sind nur anhängbar — wir bearbeiten oder löschen kein Ereignis. Wird ein Vorgang rückgängig gemacht (z. B. Status zurückgesetzt), verzeichnen wir ein neues Ereignis, das die Rücknahme erläutert, und lassen das Original unverändert.

### Referenz: alle Ereignistypen

EreignisAuslöserWichtigste Metadaten
createdAngebot zum ersten Mal gespeichertcreated_by user
sentFreelancer klickt Sendto_email, sent_from_ip
viewedKunde öffnet Link erstmals mit gültiger PINviewer_ip, user_agent
signedKunde klickt Sign auf öffentlicher Seitesigner_name, signer_ip, ua, signed_at, consent
pdf_generatedAsynchrones PDF-Rendering abgeschlossendoc_type (PRO/AGR/CON/DEP/INV/STR/DCR/CRN/REC), r2_key
deposit_paidStripe-Webhook oder manuelle Markierungmethod, amount, payment_intent_id
final_invoice_issuedFreelancer stellt Schlussrechnung ausinvoice_number, total
payment_received (final)Stripe-Webhook oder manuelle Markierungmethod, amount
completedFreelancer markiert als abgeschlossennotes
declinedKunde lehnt auf öffentlicher Seite abdecline_reason
expired90-Tage-Cron-Jobdays_since_sent
archivedFreelancer archiviertreason
amendment_proposedNachtrag erstelltamendment_id, delta_total
amendment_viewedKunde öffnet Nachtrags-Linkviewer_ip
amendment_signedKunde unterschreibt Nachtragsigner_name, ip, evidence_stack
amendment_declinedKunde lehnt Nachtrag abdecline_reason
amendment_cancelledFreelancer bricht Nachtrag vor Unterschrift abcancelled_by
amendment_expired90-Tage-Ablauf des Nachtrags
refund_initiatedErstattungsablauf gestartetcredit_note_number, amount
refund_completedStripe-Webhook oder manuelle Markierungmethod, completed_at

Troubleshooting

Keep reading

Timeline-Ereignisse: Jeder Ereignistyp erklärt · Help · Clozo