This one's for the engineers. Early on we had a subtle bug in how drafts remembered the company a prospect worked for, and fixing it changed how we think about every piece of generated content in the system.
The setup
When OnlyLeads drafts a message, it's drafting about something: this person, at this company, given this signal. The draft is a point-in-time artefact. The message you approve on Tuesday was written from what we knew on Tuesday.
Our mistake was treating the company link as a live reference rather than a snapshot. A draft pointed at "the contact's current company" instead of recording "the company this draft was written about." Most of the time those are identical, so the bug was invisible, right up until enrichment updated a contact's employer, or a record got re-processed, and a draft would silently start referring to the wrong place.
A generated message is a statement about a moment. If the facts can move underneath it, the message can quietly become a lie.
The fix
We made the draft carry its own copy of the facts it was written from. The company is stamped onto the draft at generation time, propagated through every step that creates one, and backfilled across the rows that predated the fix. The draft now means what it said when it was written, no matter what changes later.
The principle
Anything an LLM generates should be reproducible from a frozen set of inputs. If you can't point at exactly what a piece of content was generated from, you can't trust it, you can't audit it, and you definitely can't put your name on it in a review queue. "Snapshot the truth at generation time" is now a rule we apply to every generator in the codebase, not just drafts.
It's the kind of bug you only catch because a human reads every message before it sends. Which brings us back to the review queue, again.