When an agent edits an AI-drafted reply before sending it, two artifacts exist: the draft the model produced and the reply the customer received. The gap between them is the training signal. Capture both in your helpdesk integration rather than reconstructing them later from memory or screenshots.
A capture record needs a few fields to be useful downstream: the ticket ID, the customer message, the retrieved knowledge context, the model and prompt version, the raw draft, the final sent text, the agent ID and a timestamp. Most helpdesks already expose draft and send events through APIs. Drafting tools in Desk365, for example, let agents rephrase, correct grammar or translate a generated reply before sending, which means the "before" text exists in the system at the moment the feature runs (Desk365 AI Copilot documentation). Store that version, not the version that gets overwritten.
Two design rules matter here. First, log drafts as immutable records. If an agent regenerates three times before editing, you want all four artifacts, because a discarded draft tells you what the model tends to do wrong. Second, log the send event with the exact text that left the building. Edits applied after send, such as follow-up corrections, are a different dataset about escalation, not drafting.
The quality of your eventual dataset is bounded by what you capture. Data problems such as insufficient volume, imbalanced coverage and poor quality are the leading causes of model training failure, and the same applies to fine-tuning sets (Oracle on AI model training challenges). A dataset that only reflects tickets an agent happened to edit, and never the ones the draft got right, is imbalanced by construction. Capture drafts for every assisted ticket, edited or not, so you can measure an edit rate instead of guessing at one.



